Base support for vxworks 7 on aarch64
[official-gcc.git] / gcc / ChangeLog
blob6e7b7cc5d6d637526d17b4a48335756bbdbc4334
1 2019-11-14  Doug Rupp  <rupp@adacore.com>
2             Olivier Hainque  <hainque@adacore.com>
3             Jerome Lambourg  <lambourg@adacore.com>
5         * config.gcc: Handle aarch64*-wrs-vxworks7*.
6         * config/aarch64/aarch64-vxworks.h: New file.
7         * config/aarch64/t-aarch64-vxworks: New file.
9 2019-11-06  Jerome Lambourg  <lambourg@adacore.com>
10             Olivier Hainque  <hainque@adacore.com>
12         * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove
13         definition, pointless with a VxWorks specific version
14         of crtstuff.
15         (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO.
16         * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC):
17         New local macros, controlling the addition of vxworks specific
18         crtstuff objects depending on the EH mechanism and kind of
19         module being linked.
20         (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them.
22 2019-11-06  Pat Bernardi  <bernardi@adacore.com>
23             Jerome Lambourg  <lambourg@adacore.com>
24             Olivier Hainque  <hainque@adacore.com>
26         * config.gcc: Add comment to introduce the TARGET_VXWORKS
27         common macro definitions, conveying VXWORKS7 or 64bit general
28         variations.  Add a block to set gcc_cv_initfini_array
29         unconditionally to "yes" for VxWorks7.
30         config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string
31         by default.  Update some comments.
32         config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by
33         default, to be added the end of VXWORKS_LIBS_RTP.
34         (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP
35         and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may
36         redefine.
37         (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities.
38         (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation
39         to account for the now available TLS abilities.
40         (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities.
41         (VXWORKS_HAVE_TLS): Likewise.
43 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
45         * tree-vect-slp.c (vect_contains_pattern_stmt_p): New function.
46         (vect_slp_convert_to_external): Likewise.
47         (vect_slp_analyze_node_operations): If analysis fails, try building
48         the node from scalars instead.
50 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
52         * tree-cfg.c (verify_gimple_assign_unary): Handle conversions
53         between vector types.
54         * tree-vect-stmts.c (vectorizable_conversion): Extend the
55         non-widening and non-narrowing path to handle standard
56         conversion codes, if the target supports them.
57         * expr.c (convert_move): Try using the extend and truncate optabs
58         for vectors.
59         * optabs-tree.c (supportable_convert_operation): Likewise.
60         * config/aarch64/iterators.md (Vnarroqw): New iterator.
61         * config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2)
62         (trunc<mode><Vnarrowq>2): New patterns.
64 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
66         * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Don't
67         require vectype and nunits_vectype to have the same size;
68         instead assert that nunits_vectype has at least as many
69         elements as vectype.  Don't compute a separate nunits_vectype
70         if the scalar type is obviously the same as vectype's.
71         Tweak dump messages.
73 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
75         * config/aarch64/aarch64.c (aarch64_vectorize_related_mode): New
76         function.
77         (aarch64_autovectorize_vector_modes): Also add V4HImode and V2SImode.
78         (TARGET_VECTORIZE_RELATED_MODE): Define.
80 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
82         * tree-vectorizer.h (vec_info::mode_set): New typedef.
83         (vec_info::used_vector_mode): New member variable.
84         (vect_chooses_same_modes_p): Declare.
85         * tree-vect-stmts.c (get_vectype_for_scalar_type): Record each
86         chosen vector mode in vec_info::used_vector_mode.
87         (vect_chooses_same_modes_p): New function.
88         * tree-vect-loop.c (vect_analyze_loop): Use it to avoid trying
89         the same vector statements multiple times.
90         * tree-vect-slp.c (vect_slp_bb_region): Likewise.
92 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
94         * machmode.h (opt_machine_mode::operator==): New function.
95         (opt_machine_mode::operator!=): Likewise.
96         * tree-vectorizer.h (vec_info::vector_mode): Update comment.
97         (get_related_vectype_for_scalar_type): Delete.
98         (get_vectype_for_scalar_type_and_size): Declare.
99         * tree-vect-slp.c (vect_slp_bb_region): Print dump messages to say
100         whether analysis passed or failed, and with what vector modes.
101         Use related_vector_mode to check whether trying a particular
102         vector mode would be redundant with the autodetected mode,
103         and print a dump message if we decide to skip it.
104         * tree-vect-loop.c (vect_analyze_loop): Likewise.
105         (vect_create_epilog_for_reduction): Use
106         get_related_vectype_for_scalar_type instead of
107         get_vectype_for_scalar_type_and_size.
108         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Replace
109         with...
110         (get_related_vectype_for_scalar_type): ...this new function.
111         Take a starting/"prevailing" vector mode rather than a vector size.
112         Take an optional nunits argument, with the same meaning as for
113         related_vector_mode.  Use related_vector_mode when not
114         auto-detecting a mode, falling back to mode_for_vector if no
115         target mode exists.
116         (get_vectype_for_scalar_type): Update accordingly.
117         (get_same_sized_vectype): Likewise.
118         * tree-vectorizer.c (get_vec_alignment_for_array_type): Likewise.
120 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
122         * tree-vect-stmts.c (vectorizable_call): Require the types
123         to have the same size.
125 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
127         * tree-vect-stmts.c (vectorizable_call): If an operand is
128         constant or external, use get_vectype_for_scalar_type
129         rather than get_same_sized_vectype to get its vector type.
130         (vectorizable_conversion, vectorizable_shift): Likewise.
131         (vectorizable_operation): Likewise.
133 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
135         * tree-vectorizer.h (vec_info::vector_size): Replace with...
136         (vec_info::vector_mode): ...this new field.
137         * tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly.
138         (vect_analyze_loop, vect_transform_loop): Likewise.
139         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
140         * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
141         (vect_make_slp_decision, vect_slp_bb_region): Likewise.
142         * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
143         * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
145 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
147         * target.h (vector_sizes, auto_vector_sizes): Delete.
148         (vector_modes, auto_vector_modes): New typedefs.
149         * target.def (autovectorize_vector_sizes): Replace with...
150         (autovectorize_vector_modes): ...this new hook.
151         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
152         Replace with...
153         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): ...this new hook.
154         * doc/tm.texi: Regenerate.
155         * targhooks.h (default_autovectorize_vector_sizes): Delete.
156         (default_autovectorize_vector_modes): New function.
157         * targhooks.c (default_autovectorize_vector_sizes): Delete.
158         (default_autovectorize_vector_modes): New function.
159         * omp-general.c (omp_max_vf): Use autovectorize_vector_modes instead
160         of autovectorize_vector_sizes.  Use the number of units in the mode
161         to calculate the maximum VF.
162         * omp-low.c (omp_clause_aligned_alignment): Use
163         autovectorize_vector_modes instead of autovectorize_vector_sizes.
164         Use a loop based on related_mode to iterate through all supported
165         vector modes for a given scalar mode.
166         * optabs-query.c (can_vec_mask_load_store_p): Use
167         autovectorize_vector_modes instead of autovectorize_vector_sizes.
168         * tree-vect-loop.c (vect_analyze_loop, vect_transform_loop): Likewise.
169         * tree-vect-slp.c (vect_slp_bb_region): Likewise.
170         * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes):
171         Replace with...
172         (aarch64_autovectorize_vector_modes): ...this new function.
173         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
174         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
175         * config/arc/arc.c (arc_autovectorize_vector_sizes): Replace with...
176         (arc_autovectorize_vector_modes): ...this new function.
177         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
178         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
179         * config/arm/arm.c (arm_autovectorize_vector_sizes): Replace with...
180         (arm_autovectorize_vector_modes): ...this new function.
181         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
182         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
183         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Replace with...
184         (ix86_autovectorize_vector_modes): ...this new function.
185         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
186         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
187         * config/mips/mips.c (mips_autovectorize_vector_sizes): Replace with...
188         (mips_autovectorize_vector_modes): ...this new function.
189         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete.
190         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define.
192 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
194         * tree-vect-stmts.c (vectorizable_shift): Check the number
195         of vector elements as well as the type mode when deciding
196         whether an op1_vectype is compatible.  Reuse the result of
197         this check when generating vector statements.
199 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
201         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): If
202         targetm.vectorize.preferred_simd_mode returns an integer mode,
203         use mode_for_vector to decide what the vector type's mode
204         should actually be.  Use build_vector_type_for_mode instead
205         of build_vector_type.
207 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
209         * target.def (get_mask_mode): Take a vector mode itself as argument,
210         instead of properties about the vector mode.
211         * doc/tm.texi: Regenerate.
212         * targhooks.h (default_get_mask_mode): Update to reflect new
213         get_mode_mask interface.
214         * targhooks.c (default_get_mask_mode): Likewise.  Use
215         related_int_vector_mode.
216         * optabs-query.c (can_vec_mask_load_store_p): Update call
217         to get_mask_mode.
218         * tree-vect-stmts.c (check_load_store_masking): Likewise, checking
219         first that the original mode really is a vector.
220         * tree.c (build_truth_vector_type_for): Likewise.
221         * config/aarch64/aarch64.c (aarch64_get_mask_mode): Update for new
222         get_mode_mask interface.
223         (aarch64_expand_sve_vcond): Update call accordingly.
224         * config/gcn/gcn.c (gcn_vectorize_get_mask_mode): Update for new
225         get_mode_mask interface.
226         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
228 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
230         * tree.h (build_truth_vector_type): Delete.
231         (build_same_sized_truth_vector_type): Likewise.
232         * tree.c (build_truth_vector_type): Rename to...
233         (build_truth_vector_type_for): ...this.  Make static and take
234         a vector type as argument.
235         (truth_type_for): Update accordingly.
236         (build_same_sized_truth_vector_type): Delete.
237         * tree-vect-generic.c (expand_vector_divmod): Use truth_type_for
238         instead of build_same_sized_truth_vector_type.
239         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
240         (vect_record_loop_mask, vect_get_loop_mask): Likewise.
241         * tree-vect-patterns.c (build_mask_conversion): Likeise.
242         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
243         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
244         (vect_build_gather_load_calls, vectorizable_call): Likewise.
245         (scan_store_can_perm_p, vectorizable_scan_store): Likewise.
246         (vectorizable_store, vectorizable_condition): Likewise.
247         (get_mask_type_for_scalar_type, get_same_sized_vectype): Likewise.
248         (vect_get_mask_type_for_stmt): Use truth_type_for instead of
249         build_truth_vector_type.
250         * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred):
251         Use truth_type_for instead of build_same_sized_truth_vector_type.
252         * config/rs6000/rs6000-call.c (fold_build_vec_cmp): Likewise.
254 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
256         * tree.h (build_truth_vector_type_for_mode): Declare.
257         * tree.c (build_truth_vector_type_for_mode): New function,
258         split out from...
259         (build_truth_vector_type): ...here.
260         (build_opaque_vector_type): Fix head comment.
261         * tree-vectorizer.h (supportable_narrowing_operation): Remove
262         vec_info parameter.
263         (vect_halve_mask_nunits): Replace vec_info parameter with the
264         mode of the new vector.
265         (vect_double_mask_nunits): Likewise.
266         * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
267         (vect_double_mask_nunits): Likewise.
268         * tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h.
269         (vect_maybe_permute_loop_masks): Remove vinfo parameter.  Update call
270         to vect_halve_mask_nunits, getting the required mode from the unpack
271         patterns.
272         (vect_set_loop_condition_masked): Update call accordingly.
273         * tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info
274         parameter and update call to vect_double_mask_nunits.
275         (vectorizable_conversion): Update call accordingly.
276         (simple_integer_narrowing): Likewise.  Remove vec_info parameter.
277         (vectorizable_call): Update call accordingly.
278         (supportable_widening_operation): Update call to
279         vect_halve_mask_nunits.
280         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
281         Use build_truth_vector_type_mode instead of build_truth_vector_type.
283 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
285         * machmode.h (mode_for_int_vector): Delete.
286         (related_int_vector_mode): Declare.
287         * stor-layout.c (mode_for_int_vector): Delete.
288         (related_int_vector_mode): New function.
289         * optabs.c (expand_vec_perm_1): Use related_int_vector_mode
290         instead of mode_for_int_vector.
291         (expand_vec_perm_const): Likewise.
292         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
293         (aarch64_evpc_sve_tbl): Likewise.
294         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
295         (s390_expand_vcond): Likewise.
297 2019-11-14  Richard Sandiford  <richard.sandiford@arm.com>
299         * target.def (related_mode): New hook.
300         * doc/tm.texi.in (TARGET_VECTORIZE_RELATED_MODE): New hook.
301         * doc/tm.texi: Regenerate.
302         * targhooks.h (default_vectorize_related_mode): Declare.
303         * targhooks.c (default_vectorize_related_mode): New function.
304         * machmode.h (related_vector_mode): Declare.
305         * stor-layout.c (related_vector_mode): New function.
306         * expmed.c (extract_bit_field_1): Use it instead of mode_for_vector.
307         * optabs-query.c (qimode_for_vec_perm): Likewise.
308         * tree-vect-stmts.c (get_group_load_store_type): Likewise.
309         (vectorizable_store, vectorizable_load): Likewise
311 2019-11-14  Richard Henderson  <richard.henderson@linaro.org>
313         * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Declare.
314         * config/arm/aarch-common.c (arm_md_asm_adjust): New.
315         * config/arm/arm-c.c (arm_cpu_builtins): Define
316         __GCC_ASM_FLAG_OUTPUTS__.
317         * config/arm/arm.c (TARGET_MD_ASM_ADJUST): New.
318         * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros):
319         Define __GCC_ASM_FLAG_OUTPUTS__.
320         * config/aarch64/aarch64.c (TARGET_MD_ASM_ADJUST): New.
321         * doc/extend.texi (FlagOutputOperands): Add documentation
322         for ARM and AArch64.
324         * config/arm/arm-modes.def (CC_NZ): Rename from CC_NOOV.
325         * config/arm/predicates.md (nz_comparison_operator): Rename
326         from noov_comparison_operator.
327         * config/arm/arm.c (arm_select_cc_mode): Use CC_NZmode name.
328         (arm_gen_dicompare_reg): Likewise.
329         (maybe_get_arm_condition_code): Likewise.
330         (thumb1_final_prescan_insn): Likewise.
331         (arm_emit_coreregs_64bit_shift): Likewise.
332         * config/arm/arm.md (addsi3_compare0): Likewise.
333         (*addsi3_compare0_scratch, subsi3_compare0): Likewise.
334         (*mulsi3_compare0, *mulsi3_compare0_v6): Likewise.
335         (*mulsi3_compare0_scratch, *mulsi3_compare0_scratch_v6): Likewise.
336         (*mulsi3addsi_compare0, *mulsi3addsi_compare0_v6): Likewise.
337         (*mulsi3addsi_compare0_scratch): Likewise.
338         (*mulsi3addsi_compare0_scratch_v6): Likewise.
339         (*andsi3_compare0, *andsi3_compare0_scratch): Likewise.
340         (*zeroextractsi_compare0_scratch): Likewise.
341         (*ne_zeroextractsi, *ne_zeroextractsi_shifted): Likewise.
342         (*ite_ne_zeroextractsi, *ite_ne_zeroextractsi_shifted): Likewise.
343         (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
344         (andsi_not_shiftsi_si_scc): Likewise.
345         (*andsi_notsi_si_compare0, *andsi_notsi_si_compare0_scratch): Likewise.
346         (*iorsi3_compare0, *iorsi3_compare0_scratch): Likewise.
347         (*xorsi3_compare0, *xorsi3_compare0_scratch): Likewise.
348         (*shiftsi3_compare0, *shiftsi3_compare0_scratch): Likewise.
349         (*not_shiftsi_compare0, *not_shiftsi_compare0_scratch): Likewise.
350         (*notsi_compare0, *notsi_compare0_scratch): Likewise.
351         (return_addr_mask, *check_arch2): Likewise.
352         (*arith_shiftsi_compare0, *arith_shiftsi_compare0_scratch): Likewise.
353         (*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch): Likewise.
354         (compare_scc splitters): Likewise.
355         (movcond_addsi): Likewise.
356         * config/arm/thumb2.md (thumb2_addsi3_compare0): Likewise.
357         (*thumb2_addsi3_compare0_scratch): Likewise.
358         (*thumb2_mulsi_short_compare0): Likewise.
359         (*thumb2_mulsi_short_compare0_scratch): Likewise.
360         (compare peephole2s): Likewise.
361         * config/arm/thumb1.md (thumb1_cbz): Use CC_NZmode and
362         nz_comparison_operator names.
363         (cbranchsi4_insn): Likewise.
365         * config/arm/constraints.md (c): Use cc_register predicate.
367         * config/aarch64/constraints.md (c): New constraint.
369 2019-11-14  Jan Hubicka  <hubicka@ucw.cz>
371         * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time,
372         ipa_merge_fn_summary_after_inlining): Micro optimize.
374 2019-11-14  Jan Hubicka  <hubicka@ucw.cz>
376         * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30).
378 2019-11-14  Jan Hubicka  <hubicka@ucw.cz>
380         * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file.
381         (ipa_value_range_from_jfunc): New function.
382         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add
383         known_value_ranges parameter; use it to evalulate conditions.
384         (evaluate_properties_for_edge): Compute known value ranges.
385         (ipa_fn_summary_t::duplicate): Update use of
386         evaluate_conditions_for_known_args.
387         (estimate_ipcp_clone_size_and_time): Likewise.
388         (ipa_merge_fn_summary_after_inlining): Likewise.
389         * ipa-prop.h (ipa_value_range_from_jfunc): Declare.
391 2019-11-14  Martin Liska  <mliska@suse.cz>
393         * ipa-inline.c (want_inline_small_function_p): Use
394         CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead
395         of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT.
397 2019-11-14  Martin Liska  <mliska@suse.cz>
399         * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn
400         of a callee to get value of the param.
401         * ipa-inline.c (inline_insns_auto): Use proper
402         opt_for_fn.
403         * opts.c (maybe_default_option): Do not overwrite param
404         value if optimization level does not match.  Note that
405         params usually have default value set via Init() keyword.
406         * params.opt: Remove -param=max-inline-insns-auto-O2.
407         * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove.
408         * doc/invoke.texi: Remove documentation of
409         max-inline-insns-auto-O2.
411 2019-11-14  Martin Liska  <mliska@suse.cz>
413         * tree-switch-conversion.c (switch_conversion::switch_conversion):
414         Do not initialize m_other_count.
415         (switch_conversion::collect): Do not count m_default_count and
416         m_other_count as we use frequencies for edges.
417         * tree-switch-conversion.h: Remove m_default_count and m_other_count.
419 2019-11-14  Martin Liska  <mliska@suse.cz>
421         PR other/92329
422         * doc/invoke.texi: Document -fallocation-dce.
424 2019-11-14  Martin Liska  <mliska@suse.cz>
426         PR target/92389
427         * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
428         PTA_ICELAKE_CLIENT which is later interited by
429         PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
431 2019-11-14  Martin Liska  <mliska@suse.cz>
433         * ipa-icf.c (sem_item_optimizer::execute): Save
434         loaded_symbols.
435         (sem_item_optimizer::parse_nonsingleton_classes):
436         Return number of loaded symbols.
437         (sem_item_optimizer::merge_classes): Print
438         statistics about totally needed symbols.
439         * ipa-icf.h (parse_nonsingleton_classes): Change return
440         type.
441         (merge_classes): Add one argument.
443 2019-11-14  Martin Liska  <mliska@suse.cz>
445         * ipa-icf-gimple.c (func_checker::hash_operand): Improve
446         func_checker::hash_operand by handling of FIELD_DECLs.
448 2019-11-14  Martin Liska  <mliska@suse.cz>
450         * ipa-icf-gimple.h (func_checker::func_checker): Add
451         default constructor.
452         * ipa-icf.c (sem_function::init): Make operand_equal_p
453         and hash_operand public.
454         (sem_item::add_expr): Remove.
455         (sem_item::add_type): Remove.
456         (sem_function::hash_stmt): Use m_checker for hashing
457         of GIMPLE statements.
458         (sem_function::parse): Init with checker.
459         (sem_variable::parse): Pass NULL as checker.
460         (sem_item_optimizer::parse_funcs_and_vars):
461         Pass checker to ::parse function.
462         (sem_item_optimizer::parse_nonsingleton_classes): Likewise.
463         (sem_variable::parse): New function.
464         (sem_variable::get_hash): Only return computed hash value.
465         (sem_variable::init): Initialize hash of a variable.
466         * ipa-icf.h: Remove add_expr, add_type and add func_checker
467         to couple of functions as a new argument.
469 2019-11-14  Martin Liska  <mliska@suse.cz>
471         * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update
472         bail out reason.
473         (func_checker::compare_gimple_assign): Likewise.
475 2019-11-14  Jakub Jelinek  <jakub@redhat.com>
477         * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't
478         change sse4.2 to sse4_2 and sse4.1 to sse4.1.
479         * config/i386/t-omp-device (omp-device-properties-i386): Likewise.
481         * omp-general.c (omp_context_name_list_prop): New function.
482         (omp_context_selector_matches): Use it.  Return 0 if it returns
483         NULL.
484         (omp_context_selector_props_compare): Allow equivalency of an
485         identifier and a string literal containing no embedded zeros.
487 2019-11-14  Aldy Hernandez  <aldyh@redhat.com>
489         * range-op.cc (RANGE3): Remove.
490         (range_tests): Remove all selftest that check for multi-ranges.
491         Put tests in namespace selftest.
492         * selftest.h: Move range_tests into namespace selftest.
493         * value-range.h (class value_range): Unfriend range_tests.
495 2019-11-14  Aldy Hernandez  <aldyh@redhat.com>
497         * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for
498         normalize_symbolics and normalize_addresses working in place.
499         (range_fold_unary_symbolics_p): Same.
500         (range_fold_unary_symbolics_p): Same.
501         * value-range.cc (num_pairs): Same.
502         (lower_bound): Same.
503         (upper_bound): Same.
504         (contains_p): Same.
505         (normalize_addresses): Same.
506         (normalize_symbolics): Same.
507         * value-range.h (normalize_symbolics): Same.
508         (normalize_addresses): Same.
510 2019-11-14  Feng Xue  <fxue@os.amperecomputing.com>
512         PR ipa/91682
513         * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG.
514         (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs.
515         (ipa_agg_jf_item): Add new field jftype and type, redefine field value.
516         (ipa_agg_jump_function): Remove member function equal_to.
517         (ipa_agg_jump_function_p): Remove typedef.
518         (ipa_copy_agg_values, ipa_release_agg_values): New functions.
519         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump
520         information for aggregate jump function.
521         (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to
522         record last definition statement.
523         (load_from_unmodified_param_or_agg): New function.
524         (ipa_known_agg_contents_list): Add new field type and value, remove
525         field constant.
526         (build_agg_jump_func_from_list): Rename parameter const_count to
527         value_count, build aggregate jump function from ipa_load_agg_data.
528         (analyze_agg_content_value): New function.
529         (extract_mem_content): Analyze memory store assignment to prepare
530         information for aggregate jump function generation.
531         (determine_known_aggregate_parts): Add new parameter fbi, remove
532         parameter aa_walk_budeget_p.
533         (update_jump_functions_after_inlining): Update aggregate jump function.
534         (ipa_find_agg_cst_for_param): Change type of parameter agg.
535         (try_make_edge_direct_simple_call): Add new parameter new_root.
536         (try_make_edge_direct_virtual_call): Add new parameter new_root and
537         new_root_info.
538         (update_indirect_edges_after_inlining): Pass new argument to
539         try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call.
540         (ipa_write_jump_function): Write aggregate jump function to file.
541         (ipa_read_jump_function): Read aggregate jump function from file.
542         (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to.
543         * ipa-cp.c (ipa_get_jf_arith_result): New function.
544         (ipa_agg_value_from_node): Likewise.
545         (ipa_agg_value_set_from_jfunc): Likewise.
546         (propagate_vals_across_arith_jfunc): Likewise.
547         (propagate_aggregate_lattice): Likewise.
548         (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result.
549         (propagate_vals_across_pass_through): Call
550         propagate_vals_across_arith_jfunc.
551         (get_clone_agg_value): Move forward.
552         (propagate_aggs_across_jump_function): Handle value propagation for
553         aggregate jump function.
554         (agg_jmp_p_vec_for_t_vec): Remove.
555         (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item>
556         with vec<ipa_agg_value>.
557         (copy_plats_to_inter, intersect_with_plats): Likewise.
558         (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise.
559         (intersect_aggregate_with_edge): Likewise.
560         (find_aggregate_values_for_callers_subset): Likewise.
561         (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
562         (estimate_local_effects): Replace vec<ipa_agg_jump_function> and
563         vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
564         (gather_context_independent_values): Likewise.
565         (perform_estimation_of_a_value, decide_whether_version_node): Likewise.
566         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace
567         vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
568         (evaluate_properties_for_edge): Likewise.
569         (estimate_edge_devirt_benefit): Likewise.
570         (estimate_edge_size_and_time):  Likewise.
571         (estimate_calls_size_and_time): Likewise.
572         (ipa_call_context::ipa_call_context): Likewise.
573         (estimate_ipcp_clone_size_and_time):  Likewise.
574         * ipa-fnsummary.h (ipa_call_context): Replace
575         vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
576         * ipa-inline-analysis.c (do_estimate_edge_time): Replace
577         vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>.
578         (do_estimate_edge_size): Likewise.
579         (do_estimate_edge_hints): Likewise.
581 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
583         * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across
584         binary operations.
586 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
588         * ipa-profile.c (check_argument_count): Check properly that e_info
589         is non-NULL; do not check descriptors.
591 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
593         * ipa-inline-analysis.c (do_estimate_edge_time): Relax
594         check for ipa profiles.
596 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
598         PR c++/92421
599         * ipa-prop.c (update_indirect_edges_after_inlining):
600         Mark parameter as used.
601         * ipa-inline.c (recursive_inlining): Reset node cache
602         after inlining.
603         (inline_small_functions): Remove checking ifdef.
604         * ipa-inline-analysis.c (do_estimate_edge_time): Verify
605         cache consistency.
607 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
609         PR ipa/92498
610         * ipa-profile.c (check_argument_count): Do not ICE when descriptors
611         is NULL.
612         (ipa_profile): Fix reversed test.
614 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
616         * ipa-cp.c (ignore_edge_p): Do not check caller flags.
617         (propagate_constants_topo): Fix typo.
619 2019-11-13  Aldy Hernandez  <aldyh@redhat.com>
621         * Makefile.in (OBJS): Add value-range.o.
622         (GTFILES): Add value-range.h.
623         * gengtype.c (open_base_files): Add value-range.h to list of
624         header files.
625         * tree-vrp.c: Move the following value_range related functions:
626         ranges_from_anti_range, value_range, check, equal_p, symbolic_p,
627         constant_p, set_undefined, set_varying, may_contain_p,
628         singleton_p, type, dump, dump_value_range, debug, vrp_val_max,
629         vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero,
630         set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p,
631         value_inside_range, ranges_from_anti_range, union_ranges,
632         intersect_ranges, intersect_helper, union_helper, union_,
633         normalize_addresses, normalize_symbolics, num_pairs, lower_bound,
634         upper_bound, contains_p, invert, intersect...
635         * value-range.cc: ...to here.
636         * tree-vrp.h: Move class value_range, enum_value_range_kind, and
637         associated inline methods from here...
638         * value-range.h: ...to here.
640 2019-11-13  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
642         * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
643         instead of asserting its value.
645 (2019-11-13  Aldy Hernandez  <aldyh@redhat.com>
647         * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range
648         constructors and set methods so value_range_kind is the last
649         argument and defaults to VR_RANGE.
650         * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same.
651         * ipa-cp.c (propagate_vr_across_jump_function): Same.
652         * ipa-prop.c (ipa_get_value_range): Same.
653         (ipa_compute_jump_functions_for_edge): Same.
654         * range-op.cc (value_range_from_overflowed_bounds): Same.
655         (operator_cast::op1_range): Same.
656         (range_tests): Same.
657         * range.cc (range_nonzero): Same.
658         * tree-ssanames.c (get_range_info): Same.
659         * tree-vrp.c (value_range_equiv::set): Same.
660         (value_range::value_range): Same.
661         (value_range_equiv::value_range_equiv): Same.
662         (value_range_equiv::update): Same.
663         (value_range_equiv::deep_copy): Same.
664         (value_range_equiv::move): Same.
665         (value_range_equiv::set_undefined): Same.
666         (value_range::set): Same.
667         (value_range::set_nonzero): Same.
668         (ranges_from_anti_range): Same.
669         (extract_range_from_plus_minus_expr): Same.
670         (value_range::intersect_helper): Same.
671         (value_range_equiv::intersect): Same.
672         (value_range::union_helper): Same.
673         (value_range_equiv::union_): Same.
674         (value_range::normalize_symbolics): Same.
675         (value_range::invert): Same.
676         (determine_value_range_1): Same.
677         * tree-vrp.h (class value_range): Same.
678         (class value_range_equiv): Same.
679         * vr-values.c (set_value_range_to_nonnegative): Same.
680         (set_value_range_to_truthvalue): Same.
681         (vr_values::update_value_range): Same.
682         (vr_values::extract_range_for_var_from_comparison_expr): Same.
683         (vr_values::extract_range_from_binary_expr): Same.
684         (vr_values::extract_range_from_comparison): Same.
685         (vr_values::extract_range_basic): Same.
686         (vr_values::adjust_range_with_scev): Same.
687         (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same.
688         (vr_values::extract_range_from_phi_node): Same.
690 2019-11-13  Ulrich Drepper  <drepper@redhat.com>
692         * tree-dump.c (dequeue_and_dump): Print first tree operand
693         for VIEW_CONVERT_EXPR.
695 2019-11-13  Joseph Myers  <joseph@codesourcery.com>
697         * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX,
698         DBL_NORM_MAX, LDBL_NORM_MAX): Define.
699         * real.c (get_max_float): Add norm_max argument.
700         * real.h (get_max_float): Update prototype.
701         * builtins.c (fold_builtin_interclass_mathfn): Update calls to
702         get_max_float.
704 2019-11-13  Martin Liska  <mliska@suse.cz>
706         * dbgcnt.c (test_sorted_dbg_counters): New.
707         (dbgcnt_c_tests): Likewise.
708         * selftest-run-tests.c (selftest::run_tests): Likewise.
709         * selftest.h (dbgcnt_c_tests): Likewise.
711 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
712             Martin Jambor  <mjambor@suse.cz>
714         PR ipa/92454
715         * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists.
716         (identify_dead_nodes): Likewise.
718 2019-11-13  Martin Liska  <mliska@suse.cz>
720         * ipa-icf.c (sem_function::equals_private): Do not overuse
721         push/pop_cfun functions.
723 2019-11-13  Martin Liska  <mliska@suse.cz>
725         * common.opt: Document change of -fdbg-cnt option.
726         * dbgcnt.c (DEBUG_COUNTER): Remove.
727         (dbg_cnt_is_enabled): Remove.
728         (dbg_cnt): Work with new intervals.
729         (dbg_cnt_set_limit_by_index): Set to new
730         list of intervals.
731         (dbg_cnt_set_limit_by_name): Likewise.
732         (dbg_cnt_process_single_pair): Process new format.
733         (dbg_cnt_process_opt): Likewise.
734         (dbg_cnt_list_all_counters): Likewise.
735         * doc/invoke.texi: Document change of -fdbg-cnt option.
736         (cmp_tuples): New.
738 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
740         * ipa-inline.c (ipa_inline): Check that function is defined before
741         flattening.
743 2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
744             Julian Brown  <julian@codesourcery.com>
746         * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure
747         flag_worker_partitioning is not set.
748         (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition.
749         * config/gcn/gcn.opt (macc-experimental-workers): Default to off.
751 2019-11-13  Andrew Stubbs  <ams@codesourcery.com>
753         * config/gcn/gcn-run.c (heap_region): New global variable.
754         (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn.
755         (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent.
756         (get_kernarg_region): Move contents to ....
757         (get_memory_region): .... here.
758         (get_heap_region): New function.
759         (init_device): Initialize the heap_region.
760         (device_malloc): Add region parameter.
761         (struct kernargs): Move heap ....
762         (heap): ... to global scope.
763         (main): Allocate heap separate to kernargs.
765 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
767         * ipa-prop.c (ipa_print_node_jump_functions,
768         ipa_print_node_params): Print info about missing summaries.
770 2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
772         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include
773         the cost of generating loop masks.
775 2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
777         * tree-vectorizer.h (vect_apply_runtime_profitability_check_p):
778         New function.
779         * tree-vect-loop-manip.c (vect_loop_versioning): Use it.
780         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
781         (vect_transform_loop): Likewise.
782         (vect_analyze_loop_costing): Don't take the cost of versioning
783         into account for the static profitability threshold if it turns
784         out that no versioning is needed.
786 2019-11-13  Jan Hubicka  <hubicka@ucw.cz>
788         * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node
789         and target_option_default_node to get -fprofile-generate ctors working
790         right with LTO.
792 2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
794         * tree-vectorizer.h (vect_nop_conversion_p): Declare.
795         * tree-vect-stmts.c (vect_nop_conversion_p): New function.
796         (vectorizable_assignment): Don't add a cost for nop conversions.
797         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
798         Likewise.
799         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
801 2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
803         * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the
804         number of ncopies as an additional argument.
805         (vectorizable_conversion): Update call accordingly.  Use "modifier"
806         to check whether a conversion is between vectors with the same
807         numbers of units.
809 2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
811         * config/aarch64/aarch64-sve-builtins-functions.h
812         (unary_count::expand): Use aarch64_sve_int_mode instead of
813         mode_for_int_vector.
815 2019-11-13  Martin Liska  <mliska@suse.cz>
817         * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY.
819 2019-11-13  Martin Liska  <mliska@suse.cz>
821         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
822         Remove call to finalize_options_struct.
824 2019-11-13  Georg-Johann Lay  <avr@gjlay.de>
826         PR target/92055
827         * config/avr/t-avr (avr-mcus): Do not depend on
828         $(srcdir)/config/avr/t-multilib.
830 2019-11-13  Richard Biener  <rguenther@suse.de>
832         PR tree-optimization/92473
833         * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
834         direct optab reduction in the correct type.
836 2019-11-12  Segher Boessenkool  <segher@kernel.crashing.org>
838         * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
839         hexadecimal literal.
841 2019-11-12  Segher Boessenkool  <segher@kernel.crashing.org>
843         * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
844         UNORDERED if !HONOR_NANS (DFmode).
845         (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
846         if !HONOR_NANS (<MODE>mode).
848 2019-11-12  Jan Hubicka  <hubicka@ucw.cz>
850         * ipa-cp.c (ignore_edge_p): Also look for optimize flag.
851         (ipcp_verify_propagated_values): Likewise.
852         (propagate_constants_across_call): Likewise.
853         (propagate_constants_topo): Likewise.
854         (ipcp_propagate_stage): Likewise.
856 2019-11-12  Jan Hubicka  <hubicka@ucw.cz>
858         PR ipa/92471
859         * ipa-profile.c (check_argument_count): Break out from ...;
860         watch for missing summaries.
861         (ipa_profile): Here.
863 2019-11-12  Martin Sebor  <msebor@redhat.com>
865         PR tree-optimization/92412
866         * targhooks.c (default_ref_may_alias_errno): Errono can only alias
867         extern variables.
869 2019-11-12  Martin Sebor  <msebor@redhat.com>
871         PR middle-end/83688
872         * gimple-ssa-sprintf.c (format_result::alias_info): New struct.
873         (directive::argno): New member.
874         (format_result::aliases, format_result::alias_count): New data members.
875         (format_result::append_alias): New member function.
876         (fmtresult::dst_offset): New data member.
877         (pass_sprintf_length::call_info::dst_origin): New data member.
878         (pass_sprintf_length::call_info::dst_field, dst_offset): Same.
879         (char_type_p, array_elt_at_offset, field_at_offset): New functions.
880         (get_origin_and_offset): Same.
881         (format_string): Call it.
882         (format_directive): Call append_alias and set directive argument
883         number.
884         (maybe_warn_overlap): New function.
885         (pass_sprintf_length::compute_format_length): Call it.
886         (pass_sprintf_length::handle_gimple_call): Initialize new members.
887         * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
889 2019-11-12  Ilya Leoshkevich  <iii@linux.ibm.com>
891         PR rtl-optimization/92430
892         * cfgcleanup.c (pass_jump_after_combine::execute): Free
893         dominance info at the beginning.
895 2019-11-12  Richard Biener  <rguenther@suse.de>
897         PR tree-optimization/92460
898         * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
899         expression before gimplifying.
901 2019-11-12  Richard Biener  <rguenther@suse.de>
903         PR tree-optimization/92461
904         * tree-vect-loop.c (vect_create_epilog_for_reduction): Update
905         stmt after propagation.
907 2019-11-12  Martin Liska  <mliska@suse.cz>
909         * config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
910         Use SET_OPTION_IF_UNSET.
911         (ix86_option_override_internal): Likewise.
912         * opts.c (default_options_optimization): Likewise.
913         (finish_options): Likewise.
914         (enable_fdo_optimizations): Likewise.
915         (common_handle_option): Likewise.
917 2019-11-12  Martin Liska  <mliska@suse.cz>
919         * common/common-target.def: Remove option_validate_param and
920         option_default_params.
921         * common/common-targhooks.c (default_option_validate_param):
922         Remove.
923         * common/common-targhooks.h (default_option_validate_param):
924         Remove.
925         * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
926         Remove usage of this.
927         (TARGET_OPTION_VALIDATE_PARAM): Likewise.
928         (aarch64_option_validate_param): Likewise.
929         (aarch64_option_default_params): Likewise
930         * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
931         (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
932         * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
933         (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
934         * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
935         (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
936         * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
937         (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
938         * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
939         (TARGET_OPTION_DEFAULT_PARAMS): Likewise.
940         * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
941         guard_size here.
942         * doc/tm.texi: Remove option_default_params and option_validate_param.
943         * doc/tm.texi.in: Likewise.
945 2019-11-12  Martin Liska  <mliska@suse.cz>
947         * common/common-target.def:
948         Do not mention set_default_param_value
949         and set_param_value.
950         * doc/tm.texi: Likewise.
952 2019-11-12  Martin Liska  <mliska@suse.cz>
954         * common.opt: Remove param_values.
955         * config/i386/i386-options.c (ix86_valid_target_attribute_p):
956         Remove finalize_options_struct.
957         * gcc.c (driver::decode_argv): Do not call global_init_params
958         and finish_params.
959         (driver::finalize): Do not call params_c_finalize
960         and finalize_options_struct.
961         * opt-suggestions.c (option_proposer::get_completions): Remove
962         special casing of params.
963         (option_proposer::find_param_completions): Remove.
964         (test_completion_partial_match): Update expected output.
965         * opt-suggestions.h: Remove find_param_completions.
966         * opts-common.c (add_misspelling_candidates): Add
967         --param with a space.
968         * opts.c (handle_param): Remove.
969         (init_options_struct):. Remove init_options_struct and
970         similar calls.
971         (finalize_options_struct): Remove.
972         (common_handle_option): Use SET_OPTION_IF_UNSET.
973         * opts.h (finalize_options_struct): Remove.
974         * toplev.c (general_init): Do not call global_init_params.
975         (toplev::finalize): Do not call params_c_finalize and
976         finalize_options_struct.
978 2019-11-12  Martin Liska  <mliska@suse.cz>
980         * Makefile.in: Remove PARAMS_H and params.list
981         and params.options.
982         * params-enum.h: Remove.
983         * params-list.h: Remove.
984         * params-options.h: Remove.
985         * params.c: Remove.
986         * params.def: Remove.
987         * params.h: Remove.
988         * asan.c: Do not include params.h.
989         * auto-profile.c: Likewise.
990         * bb-reorder.c: Likewise.
991         * builtins.c: Likewise.
992         * cfgcleanup.c: Likewise.
993         * cfgexpand.c: Likewise.
994         * cfgloopanal.c: Likewise.
995         * cgraph.c: Likewise.
996         * combine.c: Likewise.
997         * common/config/aarch64/aarch64-common.c: Likewise.
998         * common/config/gcn/gcn-common.c: Likewise.
999         * common/config/ia64/ia64-common.c: Likewise.
1000         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
1001         * common/config/rs6000/rs6000-common.c: Likewise.
1002         * common/config/sh/sh-common.c: Likewise.
1003         * config/aarch64/aarch64.c: Likewise.
1004         * config/alpha/alpha.c: Likewise.
1005         * config/arm/arm.c: Likewise.
1006         * config/avr/avr.c: Likewise.
1007         * config/csky/csky.c: Likewise.
1008         * config/i386/i386-builtins.c: Likewise.
1009         * config/i386/i386-expand.c: Likewise.
1010         * config/i386/i386-features.c: Likewise.
1011         * config/i386/i386-options.c: Likewise.
1012         * config/i386/i386.c: Likewise.
1013         * config/ia64/ia64.c: Likewise.
1014         * config/rs6000/rs6000-logue.c: Likewise.
1015         * config/rs6000/rs6000.c: Likewise.
1016         * config/s390/s390.c: Likewise.
1017         * config/sparc/sparc.c: Likewise.
1018         * config/visium/visium.c: Likewise.
1019         * coverage.c: Likewise.
1020         * cprop.c: Likewise.
1021         * cse.c: Likewise.
1022         * cselib.c: Likewise.
1023         * dse.c: Likewise.
1024         * emit-rtl.c: Likewise.
1025         * explow.c: Likewise.
1026         * final.c: Likewise.
1027         * fold-const.c: Likewise.
1028         * gcc.c: Likewise.
1029         * gcse.c: Likewise.
1030         * ggc-common.c: Likewise.
1031         * ggc-page.c: Likewise.
1032         * gimple-loop-interchange.cc: Likewise.
1033         * gimple-loop-jam.c: Likewise.
1034         * gimple-loop-versioning.cc: Likewise.
1035         * gimple-ssa-split-paths.c: Likewise.
1036         * gimple-ssa-sprintf.c: Likewise.
1037         * gimple-ssa-store-merging.c: Likewise.
1038         * gimple-ssa-strength-reduction.c: Likewise.
1039         * gimple-ssa-warn-alloca.c: Likewise.
1040         * gimple-ssa-warn-restrict.c: Likewise.
1041         * graphite-isl-ast-to-gimple.c: Likewise.
1042         * graphite-optimize-isl.c: Likewise.
1043         * graphite-scop-detection.c: Likewise.
1044         * graphite-sese-to-poly.c: Likewise.
1045         * graphite.c: Likewise.
1046         * haifa-sched.c: Likewise.
1047         * hsa-gen.c: Likewise.
1048         * ifcvt.c: Likewise.
1049         * ipa-cp.c: Likewise.
1050         * ipa-fnsummary.c: Likewise.
1051         * ipa-inline-analysis.c: Likewise.
1052         * ipa-inline.c: Likewise.
1053         * ipa-polymorphic-call.c: Likewise.
1054         * ipa-profile.c: Likewise.
1055         * ipa-prop.c: Likewise.
1056         * ipa-split.c: Likewise.
1057         * ipa-sra.c: Likewise.
1058         * ira-build.c: Likewise.
1059         * ira-conflicts.c: Likewise.
1060         * loop-doloop.c: Likewise.
1061         * loop-invariant.c: Likewise.
1062         * loop-unroll.c: Likewise.
1063         * lra-assigns.c: Likewise.
1064         * lra-constraints.c: Likewise.
1065         * modulo-sched.c: Likewise.
1066         * opt-suggestions.c: Likewise.
1067         * opts.c: Likewise.
1068         * postreload-gcse.c: Likewise.
1069         * predict.c: Likewise.
1070         * reload.c: Likewise.
1071         * reorg.c: Likewise.
1072         * resource.c: Likewise.
1073         * sanopt.c: Likewise.
1074         * sched-deps.c: Likewise.
1075         * sched-ebb.c: Likewise.
1076         * sched-rgn.c: Likewise.
1077         * sel-sched-ir.c: Likewise.
1078         * sel-sched.c: Likewise.
1079         * shrink-wrap.c: Likewise.
1080         * stmt.c: Likewise.
1081         * targhooks.c: Likewise.
1082         * toplev.c: Likewise.
1083         * tracer.c: Likewise.
1084         * trans-mem.c: Likewise.
1085         * tree-chrec.c: Likewise.
1086         * tree-data-ref.c: Likewise.
1087         * tree-if-conv.c: Likewise.
1088         * tree-inline.c: Likewise.
1089         * tree-loop-distribution.c: Likewise.
1090         * tree-parloops.c: Likewise.
1091         * tree-predcom.c: Likewise.
1092         * tree-profile.c: Likewise.
1093         * tree-scalar-evolution.c: Likewise.
1094         * tree-sra.c: Likewise.
1095         * tree-ssa-ccp.c: Likewise.
1096         * tree-ssa-dom.c: Likewise.
1097         * tree-ssa-dse.c: Likewise.
1098         * tree-ssa-ifcombine.c: Likewise.
1099         * tree-ssa-loop-ch.c: Likewise.
1100         * tree-ssa-loop-im.c: Likewise.
1101         * tree-ssa-loop-ivcanon.c: Likewise.
1102         * tree-ssa-loop-ivopts.c: Likewise.
1103         * tree-ssa-loop-manip.c: Likewise.
1104         * tree-ssa-loop-niter.c: Likewise.
1105         * tree-ssa-loop-prefetch.c: Likewise.
1106         * tree-ssa-loop-unswitch.c: Likewise.
1107         * tree-ssa-math-opts.c: Likewise.
1108         * tree-ssa-phiopt.c: Likewise.
1109         * tree-ssa-pre.c: Likewise.
1110         * tree-ssa-reassoc.c: Likewise.
1111         * tree-ssa-sccvn.c: Likewise.
1112         * tree-ssa-scopedtables.c: Likewise.
1113         * tree-ssa-sink.c: Likewise.
1114         * tree-ssa-strlen.c: Likewise.
1115         * tree-ssa-structalias.c: Likewise.
1116         * tree-ssa-tail-merge.c: Likewise.
1117         * tree-ssa-threadbackward.c: Likewise.
1118         * tree-ssa-threadedge.c: Likewise.
1119         * tree-ssa-uninit.c: Likewise.
1120         * tree-switch-conversion.c: Likewise.
1121         * tree-vect-data-refs.c: Likewise.
1122         * tree-vect-loop.c: Likewise.
1123         * tree-vect-slp.c: Likewise.
1124         * tree-vrp.c: Likewise.
1125         * tree.c: Likewise.
1126         * value-prof.c: Likewise.
1127         * var-tracking.c: Likewise.
1129 2019-11-12  Martin Liska  <mliska@suse.cz>
1131         * asan.c (asan_sanitize_stack_p): Replace old parameter syntax
1132         with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
1133         macro.
1134         (asan_sanitize_allocas_p): Likewise.
1135         (asan_emit_stack_protection): Likewise.
1136         (asan_protect_global): Likewise.
1137         (instrument_derefs): Likewise.
1138         (instrument_builtin_call): Likewise.
1139         (asan_expand_mark_ifn): Likewise.
1140         * auto-profile.c (auto_profile): Likewise.
1141         * bb-reorder.c (copy_bb_p): Likewise.
1142         (duplicate_computed_gotos): Likewise.
1143         * builtins.c (inline_expand_builtin_string_cmp): Likewise.
1144         * cfgcleanup.c (try_crossjump_to_edge): Likewise.
1145         (try_crossjump_bb): Likewise.
1146         * cfgexpand.c (defer_stack_allocation): Likewise.
1147         (stack_protect_classify_type): Likewise.
1148         (pass_expand::execute): Likewise.
1149         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
1150         (estimate_reg_pressure_cost): Likewise.
1151         * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
1152         * combine.c (combine_instructions): Likewise.
1153         (record_value_for_reg): Likewise.
1154         * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
1155         (aarch64_option_default_params): Likewise.
1156         * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
1157         * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
1158         * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
1159         * common/config/sh/sh-common.c (sh_option_default_params): Likewise.
1160         * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
1161         (aarch64_allocate_and_probe_stack_space): Likewise.
1162         (aarch64_expand_epilogue): Likewise.
1163         (aarch64_override_options_internal): Likewise.
1164         * config/alpha/alpha.c (alpha_option_override): Likewise.
1165         * config/arm/arm.c (arm_option_override): Likewise.
1166         (arm_valid_target_attribute_p): Likewise.
1167         * config/i386/i386-options.c (ix86_option_override_internal): Likewise.
1168         * config/i386/i386.c (get_probe_interval): Likewise.
1169         (ix86_adjust_stack_and_probe_stack_clash): Likewise.
1170         (ix86_max_noce_ifcvt_seq_cost): Likewise.
1171         * config/ia64/ia64.c (ia64_adjust_cost): Likewise.
1172         * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
1173         (get_stack_clash_protection_guard_size): Likewise.
1174         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
1175         * config/s390/s390.c (allocate_stack_space): Likewise.
1176         (s390_emit_prologue): Likewise.
1177         (s390_option_override_internal): Likewise.
1178         * config/sparc/sparc.c (sparc_option_override): Likewise.
1179         * config/visium/visium.c (visium_option_override): Likewise.
1180         * coverage.c (get_coverage_counts): Likewise.
1181         (coverage_compute_profile_id): Likewise.
1182         (coverage_begin_function): Likewise.
1183         (coverage_end_function): Likewise.
1184         * cse.c (cse_find_path): Likewise.
1185         (cse_extended_basic_block): Likewise.
1186         (cse_main): Likewise.
1187         * cselib.c (cselib_invalidate_mem): Likewise.
1188         * dse.c (dse_step1): Likewise.
1189         * emit-rtl.c (set_new_first_and_last_insn): Likewise.
1190         (get_max_insn_count): Likewise.
1191         (make_debug_insn_raw): Likewise.
1192         (init_emit): Likewise.
1193         * explow.c (compute_stack_clash_protection_loop_data): Likewise.
1194         * final.c (compute_alignments): Likewise.
1195         * fold-const.c (fold_range_test): Likewise.
1196         (fold_truth_andor): Likewise.
1197         (tree_single_nonnegative_warnv_p): Likewise.
1198         (integer_valued_real_single_p): Likewise.
1199         * gcse.c (want_to_gcse_p): Likewise.
1200         (prune_insertions_deletions): Likewise.
1201         (hoist_code): Likewise.
1202         (gcse_or_cprop_is_too_expensive): Likewise.
1203         * ggc-common.c: Likewise.
1204         * ggc-page.c (ggc_collect): Likewise.
1205         * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
1206         (MAX_DATAREFS): Likewise.
1207         (OUTER_STRIDE_RATIO): Likewise.
1208         * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
1209         * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
1210         * gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
1211         * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
1212         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1213         (imm_store_chain_info::output_merged_store): Likewise.
1214         (pass_store_merging::process_store): Likewise.
1215         * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
1216         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
1217         (scop_to_isl_ast): Likewise.
1218         * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
1219         (optimize_isl): Likewise.
1220         * graphite-scop-detection.c (build_scops): Likewise.
1221         * haifa-sched.c (set_modulo_params): Likewise.
1222         (rank_for_schedule): Likewise.
1223         (model_add_to_worklist): Likewise.
1224         (model_promote_insn): Likewise.
1225         (model_choose_insn): Likewise.
1226         (queue_to_ready): Likewise.
1227         (autopref_multipass_dfa_lookahead_guard): Likewise.
1228         (schedule_block): Likewise.
1229         (sched_init): Likewise.
1230         * hsa-gen.c (init_prologue): Likewise.
1231         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
1232         (cond_move_process_if_block): Likewise.
1233         * ipa-cp.c (ipcp_lattice::add_value): Likewise.
1234         (merge_agg_lats_step): Likewise.
1235         (devirtualization_time_bonus): Likewise.
1236         (hint_time_bonus): Likewise.
1237         (incorporate_penalties): Likewise.
1238         (good_cloning_opportunity_p): Likewise.
1239         (ipcp_propagate_stage): Likewise.
1240         * ipa-fnsummary.c (decompose_param_expr): Likewise.
1241         (set_switch_stmt_execution_predicate): Likewise.
1242         (analyze_function_body): Likewise.
1243         (compute_fn_summary): Likewise.
1244         * ipa-inline-analysis.c (estimate_growth): Likewise.
1245         * ipa-inline.c (caller_growth_limits): Likewise.
1246         (inline_insns_single): Likewise.
1247         (inline_insns_auto): Likewise.
1248         (can_inline_edge_by_limits_p): Likewise.
1249         (want_early_inline_function_p): Likewise.
1250         (big_speedup_p): Likewise.
1251         (want_inline_small_function_p): Likewise.
1252         (want_inline_self_recursive_call_p): Likewise.
1253         (edge_badness): Likewise.
1254         (recursive_inlining): Likewise.
1255         (compute_max_insns): Likewise.
1256         (early_inliner): Likewise.
1257         * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
1258         * ipa-profile.c (ipa_profile): Likewise.
1259         * ipa-prop.c (determine_known_aggregate_parts): Likewise.
1260         (ipa_analyze_node): Likewise.
1261         (ipcp_transform_function): Likewise.
1262         * ipa-split.c (consider_split): Likewise.
1263         * ipa-sra.c (allocate_access): Likewise.
1264         (process_scan_results): Likewise.
1265         (ipa_sra_summarize_function): Likewise.
1266         (pull_accesses_from_callee): Likewise.
1267         * ira-build.c (loop_compare_func): Likewise.
1268         (mark_loops_for_removal): Likewise.
1269         * ira-conflicts.c (build_conflict_bit_table): Likewise.
1270         * loop-doloop.c (doloop_optimize): Likewise.
1271         * loop-invariant.c (gain_for_invariant): Likewise.
1272         (move_loop_invariants): Likewise.
1273         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
1274         (decide_unroll_runtime_iterations): Likewise.
1275         (decide_unroll_stupid): Likewise.
1276         (expand_var_during_unrolling): Likewise.
1277         * lra-assigns.c (spill_for): Likewise.
1278         * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
1279         * modulo-sched.c (sms_schedule): Likewise.
1280         (DFA_HISTORY): Likewise.
1281         * opts.c (default_options_optimization): Likewise.
1282         (finish_options): Likewise.
1283         (common_handle_option): Likewise.
1284         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1285         (if): Likewise.
1286         * predict.c (get_hot_bb_threshold): Likewise.
1287         (maybe_hot_count_p): Likewise.
1288         (probably_never_executed): Likewise.
1289         (predictable_edge_p): Likewise.
1290         (predict_loops): Likewise.
1291         (expr_expected_value_1): Likewise.
1292         (tree_predict_by_opcode): Likewise.
1293         (handle_missing_profiles): Likewise.
1294         * reload.c (find_equiv_reg): Likewise.
1295         * reorg.c (redundant_insn): Likewise.
1296         * resource.c (mark_target_live_regs): Likewise.
1297         (incr_ticks_for_insn): Likewise.
1298         * sanopt.c (pass_sanopt::execute): Likewise.
1299         * sched-deps.c (sched_analyze_1): Likewise.
1300         (sched_analyze_2): Likewise.
1301         (sched_analyze_insn): Likewise.
1302         (deps_analyze_insn): Likewise.
1303         * sched-ebb.c (schedule_ebbs): Likewise.
1304         * sched-rgn.c (find_single_block_region): Likewise.
1305         (too_large): Likewise.
1306         (haifa_find_rgns): Likewise.
1307         (extend_rgns): Likewise.
1308         (new_ready): Likewise.
1309         (schedule_region): Likewise.
1310         (sched_rgn_init): Likewise.
1311         * sel-sched-ir.c (make_region_from_loop): Likewise.
1312         * sel-sched-ir.h (MAX_WS): Likewise.
1313         * sel-sched.c (process_pipelined_exprs): Likewise.
1314         (sel_setup_region_sched_flags): Likewise.
1315         * shrink-wrap.c (try_shrink_wrapping): Likewise.
1316         * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
1317         * toplev.c (print_version): Likewise.
1318         (process_options): Likewise.
1319         * tracer.c (tail_duplicate): Likewise.
1320         * trans-mem.c (tm_log_add): Likewise.
1321         * tree-chrec.c (chrec_fold_plus_1): Likewise.
1322         * tree-data-ref.c (split_constant_offset): Likewise.
1323         (compute_all_dependences): Likewise.
1324         * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
1325         * tree-inline.c (remap_gimple_stmt): Likewise.
1326         * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
1327         * tree-parloops.c (MIN_PER_THREAD): Likewise.
1328         (create_parallel_loop): Likewise.
1329         * tree-predcom.c (determine_unroll_factor): Likewise.
1330         * tree-scalar-evolution.c (instantiate_scev_r): Likewise.
1331         * tree-sra.c (analyze_all_variable_accesses): Likewise.
1332         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1333         * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
1334         (dse_optimize_redundant_stores): Likewise.
1335         (dse_classify_store): Likewise.
1336         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1337         * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
1338         * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
1339         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1340         (try_peel_loop): Likewise.
1341         (tree_unroll_loops_completely): Likewise.
1342         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
1343         (CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
1344         (MAX_CONSIDERED_GROUPS): Likewise.
1345         (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
1346         * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
1347         * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
1348         * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
1349         (L1_CACHE_SIZE_BYTES): Likewise.
1350         (L2_CACHE_SIZE_BYTES): Likewise.
1351         (should_issue_prefetch_p): Likewise.
1352         (schedule_prefetches): Likewise.
1353         (determine_unroll_factor): Likewise.
1354         (volume_of_references): Likewise.
1355         (add_subscript_strides): Likewise.
1356         (self_reuse_distance): Likewise.
1357         (mem_ref_count_reasonable_p): Likewise.
1358         (insn_to_prefetch_ratio_too_small_p): Likewise.
1359         (loop_prefetch_arrays): Likewise.
1360         (tree_ssa_prefetch_arrays): Likewise.
1361         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1362         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1363         (convert_mult_to_fma): Likewise.
1364         (math_opts_dom_walker::after_dom_children): Likewise.
1365         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
1366         (hoist_adjacent_loads): Likewise.
1367         (gate_hoist_loads): Likewise.
1368         * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
1369         (compute_partial_antic_aux): Likewise.
1370         * tree-ssa-reassoc.c (get_reassociation_width): Likewise.
1371         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
1372         (vn_reference_lookup): Likewise.
1373         (do_rpo_vn): Likewise.
1374         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
1375         * tree-ssa-sink.c (select_best_block): Likewise.
1376         * tree-ssa-strlen.c (new_stridx): Likewise.
1377         (new_addr_stridx): Likewise.
1378         (get_range_strlen_dynamic): Likewise.
1379         (class ssa_name_limit_t): Likewise.
1380         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
1381         (create_variable_info_for_1): Likewise.
1382         (init_alias_vars): Likewise.
1383         * tree-ssa-tail-merge.c (find_clusters_1): Likewise.
1384         (tail_merge_optimize): Likewise.
1385         * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
1386         (thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
1387         (thread_jumps::find_jump_threads_backwards): Likewise.
1388         * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
1389         * tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
1390         * tree-switch-conversion.c (switch_conversion::check_range): Likewise.
1391         (jump_table_cluster::can_be_handled): Likewise.
1392         * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
1393         (SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
1394         (param_switch_conversion_branch_ratio): Likewise.
1395         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
1396         (vect_enhance_data_refs_alignment): Likewise.
1397         (vect_prune_runtime_alias_test_list): Likewise.
1398         * tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
1399         (vect_get_datarefs_in_loop): Likewise.
1400         (vect_analyze_loop): Likewise.
1401         * tree-vect-slp.c (vect_slp_bb): Likewise.
1402         * tree-vectorizer.h: Likewise.
1403         * tree-vrp.c (find_switch_asserts): Likewise.
1404         (vrp_prop::check_mem_ref): Likewise.
1405         * tree.c (wide_int_to_tree_1): Likewise.
1406         (cache_integer_cst): Likewise.
1407         * var-tracking.c (EXPR_USE_DEPTH): Likewise.
1408         (reverse_op): Likewise.
1409         (vt_find_locations): Likewise.
1411 2019-11-12  Martin Liska  <mliska@suse.cz>
1413         * Makefile.in: Include params.opt.
1414         * flag-types.h (enum parloops_schedule_type): Add
1415         parloops_schedule_type used in params.opt.
1416         * params.opt: New file.
1418 2019-11-12  Martin Liska  <mliska@suse.cz>
1420         * common.opt: Remove --param and --param= options.
1421         * opt-functions.awk: Mark CL_PARAMS for options
1422         that have Param keyword.
1423         * opts-common.c (decode_cmdline_options_to_array):
1424         Replace --param key=value with --param=key=value.
1425         * opts.c (print_filtered_help): Remove special
1426         printing of params.
1427         (print_specific_help): Update title for params.
1428         (common_handle_option): Do not handle OPT__param.
1429         opts.h (SET_OPTION_IF_UNSET): New macro.
1430         * doc/options.texi: Document Param keyword.
1432 2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
1433             Frederik Harwath  <frederik@codesourcery.com>
1434             Thomas Schwinge  <thomas@codesourcery.com>
1436         gcc/
1437         * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
1438         enumeration constant.
1439         (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1440         (is_gimple_omp_offloaded): Likewise.
1441         * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
1442         constant.  Adjust the value of ORT_NONE accordingly.
1443         (is_gimple_stmt): Handle OACC_SERIAL.
1444         (oacc_default_clause): Handle ORT_ACC_SERIAL.
1445         (gomp_needs_data_present): Likewise.
1446         (gimplify_adjust_omp_clauses): Likewise.
1447         (gimplify_omp_workshare): Handle OACC_SERIAL.
1448         (gimplify_expr): Likewise.
1449         * omp-expand.c (expand_omp_target):
1450         Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1451         (build_omp_regions_1, omp_make_gimple_edges): Likewise.
1452         * omp-low.c (is_oacc_parallel): Rename function to...
1453         (is_oacc_parallel_or_serial): ... this.
1454         Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
1455         (scan_sharing_clauses): Adjust accordingly.
1456         (scan_omp_for): Likewise.
1457         (lower_oacc_head_mark): Likewise.
1458         (convert_from_firstprivate_int): Likewise.
1459         (lower_omp_target): Likewise.
1460         (check_omp_nesting_restrictions): Handle
1461         GF_OMP_TARGET_KIND_OACC_SERIAL.
1462         (lower_oacc_reductions): Likewise.
1463         (lower_omp_target): Likewise.
1464         * tree.def (OACC_SERIAL): New tree code.
1465         * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
1467         * doc/generic.texi (OpenACC): Document OACC_SERIAL.
1469 2019-11-12  Jakub Jelinek  <jakub@redhat.com>
1471         PR target/92449
1472         * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
1473         don't emit UNORDERED_EXPR guarded libcall.  Formatting fixes.
1475         PR tree-optimization/92452
1476         * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
1477         into NULL_TREE, set up_bound to NULL_TREE instead of computing
1478         MINUS_EXPR on it.
1480 2019-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1482         * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
1483         safelen with 0.
1485 2019-11-12  Alan Modra  <amodra@gmail.com>
1487         * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got
1488         element of unspec vec.
1489         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support
1490         PC-relative TLS.
1491         * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec.
1492         (tls_gd_pcrel, tls_ld_pcrel): New insns.
1493         (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16.
1494         (tls_got_tprel_pcrel, tls_tls_pcrel): New insns.
1496 2019-11-12  Alan Modra  <amodra@gmail.com>
1498         * config/rs6000/rs6000.opt (mtls-markers): Delete.
1499         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define.
1500         (IS_NOMARK_TLSGETADDR): Likewise.
1501         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete.
1502         * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete.
1503         (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code.
1504         (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and
1505         allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD.
1506         (rs6000_indirect_call_template_1): Likewise.
1507         (rs6000_pltseq_template): Likewise.
1508         (rs6000_opt_vars): Remove "tls-markers" entry.
1509         * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS
1510         with TARGET_ELF.
1511         (tls_gd_high<bits>, tls_gd_low<bits>): Likewise.
1512         (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise.
1513         (pltseq_plt_pcrel<mode>): Likewise.
1514         (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test.
1515         (call_value_local64): Likewise.
1516         (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR
1517         output and length attribute sub-expression.
1518         (call_value_nonlocal_sysv<mode>),
1519         (call_value_nonlocal_sysv_secure<mode>),
1520         (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>),
1521         (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>),
1522         (call_value_indirect_pcrel<mode>): Likewise.
1523         * doc/install.texi (powerpc-*-*): Require binutils-2.20.
1524         * configure.ac (HAVE_AS_TLS_MARKERS): Delete test.
1525         * configure: Regenerate.
1526         * config.in: Regenerate.
1528 2019-11-11  Michael Meissner  <meissner@linux.ibm.com>
1530         * config/rs6000/predicates.md (prefixed_memory): New predicate.
1531         * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either
1532         address being a prefixed load/store.
1533         (stack_protect_testdi): Deal with either address being a prefixed
1534         load.
1536 2019-11-11  Jakub Jelinek  <jakub@redhat.com>
1538         PR bootstrap/92433
1539         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
1540         ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check.  Use
1541         std::swap.
1543 2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>
1545         PR tree-optimization/92420
1546         * tree-vect-stmts.c (get_negative_load_store_type): Move further
1547         up file.
1548         (get_group_load_store_type): Use it for reversed SLP accesses.
1550 2019-11-11  Jan Hubicka  <hubcika@ucw.cz>
1552         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
1553         summary.
1554         (ipcp_transformation_t::duplicate): Break out from ...
1555         (ipa_node_params_t::duplicate): ... here; add copying of agg
1556         replacements.
1557         * ipa-prop.h (ipcp_transformation): Add constructor and destructor.
1558         (ipcp_transformation_t): Add duplicate.
1560 2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>
1562         PR fortran/91828
1563         * doc/install.texi: Document that the minimum MPFR version is
1564         3.1.0.
1566 2019-11-11  Claudiu Zissulescu <claziss@gmail.com>
1568         * config/arc/arc.md (movsi_ne): Reorder instruction variants and
1569         use new register constraint letters.
1571 2019-11-11  Claudiu Zissulescu <claziss@gmail.com>
1573         * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
1574         as well, if interesting recover the symbol and re-legitimize the
1575         pic address.
1577 2019-11-11  Martin Liska  <mliska@suse.cz>
1579         * dbgcnt.def (DEBUG_COUNTER): Sort counters
1580         alphabetically.
1582 2019-11-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1584         * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
1585         account when checking if there are enough iterations to vectorize
1586         epilogue.
1588 2019-11-11  Tobias Burnus  <tobias@codesourcery.com>
1589             Kwok Cheung Yeung  <kcy@codesourcery.com>
1591         * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
1592         Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
1593         (LANG_HOOKS_DECLS): Rename also here.
1594         * langhooks.h (lang_hooks_for_decls): Rename
1595         omp_is_optional_argument to omp_check_optional_argument; take
1596         additional bool argument.
1597         * omp-general.h (omp_check_optional_argument): Likewise.
1598         * omp-general.h (omp_check_optional_argument): Likewise.
1599         * omp-low.c (lower_omp_target): Update calls; handle absent
1600         Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.
1602 2019-11-11  H.J. Lu  <hjl.tools@gmail.com>
1604         PR target/87833
1605         * config/i386/intelmic-mkoffload.c (prepare_target_image): Put
1606         -fPIC and -shared the last to create offload image.
1608 2019-11-11  Thomas Schwinge  <thomas@codesourcery.com>
1610         * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
1611         of 'offset'.
1613         * Makefile.in (LANG_CONFIGUREFRAGS): Define.
1614         (config.status): Use/depend on it.
1615         * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
1616         * configure: Regenerate.
1618 2019-11-11  Jiufu Guo  <guojiufu@linux.ibm.com>
1620         PR tree-optimization/88760
1621         * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
1622         * gcc/common/config/rs6000/rs6000-common.c
1623         (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
1624         Turn on -funroll-loops and -munroll-only-small-loops.
1625         [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
1626         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
1627         set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
1628         Turn off -munroll-only-small-loops for explicit -funroll-loops.
1629         (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
1630         (rs6000_loop_unroll_adjust): Define it.  Use -munroll-only-small-loops.
1632 2019-11-11  Kewen Lin  <linkw@gcc.gnu.org>
1634         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1635         Make scalar_load, vector_load, unaligned_load and
1636         vector_gather_load cost more to conform hardware latency and
1637         insn cost settings.
1639 2019-11-10  Iain Sandoe  <iain@sandoe.co.uk>
1641         * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
1642         (MACHO_SYMBOL_LINKER_VIS_P): New.
1644 2019-11-10  Kwok Cheung Yeung  <kcy@codesourcery.com>
1646         * lra-spills.c (assign_spill_hard_regs): Do not spill into
1647         registers in eliminable_regset.
1649 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
1651         * ipa-inline.c (compute_uninlined_call_time,
1652         compute_inlined_call_time): Take edge frequency as
1653         parameter rather than computing it by itself.
1654         (big_speedup_p, edge_badness): Manually CSE sreal
1655         frequency calculations.
1657 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
1659         * profile-count.c (profile_count::to_sreal_scale): Short circuit
1660         case where profiles are same.
1662 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
1664         * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
1666 2019-11-10  Jan Hubicka  <hubicka@ucw.cz>
1668         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
1669         args summaries of inlined edge unless it holds info about
1670         described reference.
1672 2019-11-10  Segher Boessenkool  <segher@kernel.crashing.org>
1674         * config/rs6000/rs6000.md (CC_any): New mode iterator.
1675         (*movcc_internal1): Rename to...
1676         (*movcc_<mode> for CC_any): ... this.  Support moves of all CC modes.
1678 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1680         * cgraph.h (struct cgraph_node): Add ipcp_clone flag.
1681         (cgraph_node::create_virtual_clone): Copy it.
1682         * ipa-cp.c (ipcp_versionable_function_p): Watch for missing
1683         summaries.
1684         (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
1685         (ipcp_verify_propagated_values): Do not verify nodes where ipcp
1686         is disabled.
1687         (propagate_constants_across_call): If callee is not analyzed, give up.
1688         (propagate_constants_topo): Lower to bottom latties of all callees of
1689         functions with ipa-cp disabled.
1690         (ipcp_propagate_stage): Skip functions with ipa-cp disabled.
1691         (cgraph_edge_brings_value_p): Check for availability first.
1692         (create_specialized_node): Set ipcp_clone.
1693         (ipcp_store_bits_results): Check that info is present.
1694         * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
1695         thunks.
1696         (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
1697         conservative when callee summary is missing.
1698         (remap_edge_summaries): Lookup call summary only when needed.
1699         * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
1700         * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
1701         Use get_create.
1702         (ipa_analyze_node): Use get_create.
1703         (propagate_controlled_uses): Do not propagate when function is not
1704         analyzed.
1705         (ipa_propagate_indirect_call_infos): Remove summary of inline clone.
1706         (ipa_read_node_info): Use get_create.
1707         * ipa-prop.h (IPA_NODE_REF): Use get.
1708         (IPA_NODE_REF_GET_CREATE): New.
1710 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1712         * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
1713         on function symbol.
1715 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1717         * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
1718         ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
1719         (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
1720         (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
1722 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1724         * ipa-inline-analysis.c (do_estimate_growth_1): Add support for
1725         capping the growth cumulated.
1726         (offline_size): Break out from ...
1727         (estimate_growth): ... here.
1728         (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
1729         parameters.
1730         (growth_likely_positive): Turn to ...
1731         (growth_positive_p): Re-implement.
1732         * ipa-inline.h (growth_likely_positive): Remove.
1733         (growth_positive_p): Declare.
1734         * ipa-inline.c (want_inline_small_function_p): Use
1735         growth_positive_p.
1736         (want_inline_function_to_all_callers_p): Likewise.
1738 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1740         * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
1741         calculation of min_size.
1742         (ipa_update_overall_fn_summary): Likewise.
1744 2019-11-09  Jan Hubicka  <hubicka@ucw.cz>
1746         * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
1747         estimate_edge_devirt_benefit when not computing hints;
1748         do not compute time when not asked for.
1749         (estimate_calls_size_and_time): Pass NULL hints and time when
1750         these are not computed; do not evaluate hint predicates when these are
1751         not computed.
1752         (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
1753         frequency.
1755 2019-11-09  Jakub Jelinek  <jakub@redhat.com>
1757         PR tree-optimization/92401
1758         * gimple-match-head.c (gimple_resimplify1): Call const_unop only
1759         if res_op->code is an expression with code length 1.
1760         * gimple-match-head.c (gimple_resimplify2): Call const_binop only
1761         if res_op->code is an expression with code length 2.
1762         * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
1763         if res_op->code is an expression with code length 3.
1765 2019-11-09  Iain Sandoe  <iain@sandoe.co.uk>
1767         * config/darwin.c (machopic_mcount_stub_name): Validate the
1768         symbol stub name when it is created.
1769         * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
1770         stub validation.
1772 2019-11-09  Jakub Jelinek  <jakub@redhat.com>
1774         * symtab.c: Fix comment typos.
1775         * cgraphunit.c: Likewise.
1776         * cgraph.h: Likewise.
1777         * cgraphclones.c: Likewise.
1778         * cgraph.c: Likewise.
1779         * varpool.c: Likewise.
1780         * tree-ssa-strlen.c: Likewise.
1781         * ipa-sra.c: Likewise.
1782         (scan_expr_access, check_all_callers_for_issues): Fix typo
1783         in a dump message.
1785 2019-11-08  Iain Sandoe  <iain@sandoe.co.uk>
1787         * config/darwin-protos.h: Add include quard.
1789 2019-11-08  Andrew MacLeod  <amacleod@redhat.com>
1791         * range-op.h (range_operator::fold_range): Return result in a
1792         reference parameter instead of by value.
1793         (range_operator::wi_fold): Same.
1794         * range-op.cc (range_operator::wi_fold): Return result in a reference
1795         parameter instead of by value.
1796         (range_operator::fold_range): Same.
1797         (value_range_from_overflowed_bounds): Same.
1798         (value_range_with_overflow): Same
1799         (create_possibly_reversed_range): Same.
1800         (operator_equal::fold_range): Same.
1801         (operator_not_equal::fold_range): Same.
1802         (operator_lt::fold_range): Same.
1803         (operator_le::fold_range): Same.
1804         (operator_gt::fold_range): Same.
1805         (operator_ge::fold_range): Same.
1806         (operator_plus::wi_fold): Same.
1807         (operator_plus::op1_range): Change call to fold_range.
1808         (operator_plus::op2_range): Change call to fold_range.
1809         (operator_minus::wi_fold): Return result via reference parameter.
1810         (operator_minus::op1_range): Change call to fold_range.
1811         (operator_minus::op2_range): Change call to fold_range.
1812         (operator_min::wi_fold): Return result via reference parameter.
1813         (operator_max::wi_fold): Same.
1814         (cross_product_operator::wi_cross_product): Same.
1815         (operator_mult::wi_fold): Same.
1816         (operator_div::wi_fold): Same.
1817         (operator_div op_floor_div): Fix whitespace.
1818         (operator_exact_divide::op1_range): Change call to fold_range.
1819         (operator_lshift::fold_range): Return result via reference parameter.
1820         (operator_lshift::wi_fold): Same.
1821         (operator_rshift::fold_range): Same.
1822         (operator_rshift::wi_fold): Same.
1823         (operator_cast::fold_range): Same.
1824         (operator_cast::op1_range): Change calls to fold_range.
1825         (operator_logical_and::fold_range): Return result via reference.
1826         (wi_optimize_and_or): Adjust call to value_range_with_overflow.
1827         (operator_bitwise_and::wi_fold): Return result via reference.
1828         (operator_logical_or::fold_range): Same.
1829         (operator_bitwise_or::wi_fold): Same.
1830         (operator_bitwise_xor::wi_fold): Same.
1831         (operator_trunc_mod::wi_fold): Same.
1832         (operator_logical_not::fold_range): Same.
1833         (operator_bitwise_not::fold_range): Same.
1834         (operator_bitwise_not::op1_range): Change call to fold_range.
1835         (operator_cst::fold_range): Return result via reference.
1836         (operator_identity::fold_range): Same.
1837         (operator_abs::wi_fold): Same.
1838         (operator_absu::wi_fold): Same.
1839         (operator_negate::fold_range): Same.
1840         (operator_negate::op1_range): Change call to fold_range.
1841         (operator_addr_expr::fold_range): Return result via reference.
1842         (operator_addr_expr::op1_range): Change call to fold_range.
1843         (operator_pointer_plus::wi_fold): Return result via reference.
1844         (operator_pointer_min_max::wi_fold): Same.
1845         (operator_pointer_and::wi_fold): Same.
1846         (operator_pointer_or::wi_fold): Same.
1847         (range_op_handler): Change call to fold_range.
1848         (range_cast): Same.
1849         * tree-vrp.c (range_fold_binary_symbolics_p): Change call to
1850         fold_range.
1851         (range_fold_unary_symbolics_p): Same.
1852         (range_fold_binary_expr): Same.
1853         (range_fold_unary_expr): Same.
1855 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1857         * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the
1858         vector type as an argument rather than reading it from the
1859         stmt_vec_info.
1860         (vect_create_epilog_for_reduction): Update accordingly.
1861         (vectorizable_reduction): Likewise.
1862         (vect_transform_cycle_phi): Likewise.
1864 2019-11-08  Segher Boessenkool  <segher@kernel.crashing.org>
1866         * config/rs6000/predicates.md (branch_comparison_operator): Allow only
1867         the comparison codes that make sense for the mode used, and only the
1868         codes that can be done with a single branch instruction.
1870 2019-11-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1872         PR tree-optimization/92351
1873         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are
1874         peeling the main loop for alignment, make sure to set the misalignment
1875         of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN.
1877 2019-11-08  Richard Biener  <rguenther@suse.de>
1879         * dbgcnt.def (ivopts_loop): Add.
1880         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check
1881         ivopts_loop before optimizing a loop.
1883 2019-11-08  Richard Biener  <rguenther@suse.de>
1885         PR ipa/92409
1886         * tree-inline.c (declare_return_variable): Properly handle
1887         type mismatches for the return slot.
1889 2019-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1891         PR target/92095
1892         * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
1893         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
1894         change.
1895         (got_helper_needed): New static variable.
1896         (output_load_pcrel_sym): New function.
1897         (get_pc_thunk_name): Remove after inlining...
1898         (load_got_register): ...here.  Rework the initialization of the GOT
1899         register and of the GOT helper.
1900         (save_local_or_in_reg_p): Test the REGNO of the GOT register.
1901         (sparc_file_end): Test got_helper_needed to decide whether the GOT
1902         helper must be emitted.  Use output_asm_insn instead of fprintf.
1903         (sparc_init_pic_reg): In PIC mode, always initialize the PIC register
1904         if optimization is enabled.
1905         * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
1906         by calling output_load_pcrel_sym.
1908 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1910         * tree-sra.c (create_access): Delay disqualifying the base
1911         for poly_int values until we know we have a base.
1913 2019-11-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1915         * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization
1916         for loops with SIMDUID set.  Enable epilogue vectorization for loops
1917         with SIMDLEN set after finding a main loop with a VF that matches it.
1919 2019-11-08  Jakub Jelinek  <jakub@redhat.com>
1921         PR target/92038
1922         * gimple-ssa-store-merging.c (find_constituent_stores): For return
1923         value only, return non-NULL if there is a single non-clobber
1924         constituent store even if there are constituent clobbers and return
1925         one of clobber constituent stores if all constituent stores are
1926         clobbers.
1927         (split_group): Handle clobbers.
1928         (imm_store_chain_info::output_merged_store): When computing
1929         bzero_first, look after all clobbers at the start.  Don't count
1930         clobber stmts in orig_num_stmts, except if the first orig store is
1931         a clobber covering the whole area and split_stores cover the whole
1932         area, consider equal number of stmts ok.  Punt if split_stores
1933         contains only ->orig stores and their number plus number of original
1934         clobbers is equal to original number of stmts.  For ->orig, look past
1935         clobbers in the constituent stores.
1936         (imm_store_chain_info::output_merged_stores): Don't remove clobber
1937         stmts.
1938         (rhs_valid_for_store_merging_p): Don't return false for clobber stmt
1939         rhs.
1940         (store_valid_for_store_merging_p): Allow clobber stmts.
1941         (verify_clear_bit_region_be): Fix up a thinko in function comment.
1943         PR c++/92384
1944         * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
1945         copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
1946         slot.
1947         (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
1948         force creation of a unique data.stack_parm slot.
1950 2019-11-08  Richard Biener  <rguenther@suse.de>
1952         * genmatch.c (expr::gen_transform): Use the resimplify
1953         member function instead of hard-coding the gimple_resimplifyN variant.
1954         (dt_simplify::gen_1): Likewise.
1956 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1958         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1959         POLY_INT_CST.
1961 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1963         * tree-inline.c (declare_return_variable): Check for poly_int_tree_p
1964         instead of INTEGER_CST.
1966 2019-11-08  Richard Biener  <rguenther@suse.de>
1968         PR tree-optimization/92324
1969         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1970         STMT_VINFO_REDUC_VECTYPE for all computations, inserting
1971         sign-conversions as necessary.
1972         (vectorizable_reduction): Reject conversions in the chain
1973         that are not sign-conversions, base analysis on a non-converting
1974         stmt and its operation sign.  Set STMT_VINFO_REDUC_VECTYPE.
1975         * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything
1976         for debug stmts.
1977         * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New.
1978         (STMT_VINFO_REDUC_VECTYPE): Likewise.
1980 2019-11-08  Georg-Johann Lay  <avr@gjlay.de>
1982         PR target/92055
1983         * config/avr/avr.opt (-mdouble=, -mlong-double=):
1984         Fix a missing '-' when displaying these options in the
1985         help screen.
1987 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1989         * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete.
1991 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1993         * config/aarch64/aarch64-builtins.c
1994         (aarch64_builtin_vectorized_function): Remove bswap handling.
1996 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
1998         * tree-core.h (tree_type_common::indivisible_p): New member variable.
1999         * tree.h (TYPE_INDIVISIBLE_P): New macro.
2000         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
2001         Treat the vector types as indivisible.
2003 2019-11-08  Richard Sandiford  <richard.sandiford@arm.com>
2005         * optabs.def (gather_load_optab, mask_gather_load_optab)
2006         (scatter_store_optab, mask_scatter_store_optab): Turn into
2007         conversion optabs, with the offset mode given explicitly.
2008         * doc/md.texi: Update accordingly.
2009         * config/aarch64/aarch64-sve-builtins-base.cc
2010         (svld1_gather_impl::expand): Likewise.
2011         (svst1_scatter_impl::expand): Likewise.
2012         * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise.
2013         (expand_scatter_store_optab_fn): Likewise.
2014         (direct_gather_load_optab_supported_p): Likewise.
2015         (direct_scatter_store_optab_supported_p): Likewise.
2016         (expand_gather_load_optab_fn): Likewise.  Expect the mask argument
2017         to be argument 4.
2018         (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD.
2019         (internal_gather_scatter_fn_supported_p): Replace the offset sign
2020         argument with the offset vector type.  Require the two vector
2021         types to have the same number of elements but allow their element
2022         sizes to be different.  Treat the optabs as conversion optabs.
2023         * internal-fn.h (internal_gather_scatter_fn_supported_p): Update
2024         prototype accordingly.
2025         * optabs-query.c (supports_at_least_one_mode_p): Replace with...
2026         (supports_vec_convert_optab_p): ...this new function.
2027         (supports_vec_gather_load_p): Update accordingly.
2028         (supports_vec_scatter_store_p): Likewise.
2029         * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info.
2030         Replace the offset sign and bits parameters with a scalar type tree.
2031         * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise.
2032         Pass back the offset vector type instead of the scalar element type.
2033         Allow the offset to be wider than the memory elements.  Search for
2034         an offset type that the target supports, stopping once we've
2035         reached the maximum of the element size and pointer size.
2036         Update call to internal_gather_scatter_fn_supported_p.
2037         (vect_check_gather_scatter): Update calls accordingly.
2038         When testing a new scale before knowing the final offset type,
2039         check whether the scale is supported for any signed or unsigned
2040         offset type.  Check whether the target supports the source and
2041         target types of a conversion before deciding whether to look
2042         through the conversion.  Record the chosen offset_vectype.
2043         * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete.
2044         (vect_recog_gather_scatter_pattern): Get the scalar offset type
2045         directly from the gs_info's offset_vectype instead.  Pass a zero
2046         of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD.
2047         * tree-vect-stmts.c (check_load_store_masking): Update call to
2048         internal_gather_scatter_fn_supported_p, passing the offset vector
2049         type recorded in the gs_info.
2050         (vect_truncate_gather_scatter_offset): Update call to
2051         vect_check_gather_scatter, leaving it to search for a valid
2052         offset vector type.
2053         (vect_use_strided_gather_scatters_p): Convert the offset to the
2054         element type of the gs_info's offset_vectype.
2055         (vect_get_gather_scatter_ops): Get the offset vector type directly
2056         from the gs_info.
2057         (vect_get_strided_load_store_ops): Likewise.
2058         (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD
2059         and IFN_MASK_GATHER_LOAD.
2060         * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to...
2061         (gather_load<mode><v_int_equiv>): ...this.
2062         (mask_gather_load<mode>): Rename to...
2063         (mask_gather_load<mode><v_int_equiv>): ...this.
2064         (scatter_store<mode>): Rename to...
2065         (scatter_store<mode><v_int_equiv>): ...this.
2066         (mask_scatter_store<mode>): Rename to...
2067         (mask_scatter_store<mode><v_int_equiv>): ...this.
2069 2019-11-08  Kewen Lin  <linkw@gcc.gnu.org>
2071         PR target/92132
2072         * config/rs6000/predicates.md
2073         (signed_or_equality_comparison_operator): New predicate.
2074         (unsigned_or_equality_comparison_operator): Likewise.
2075         * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
2076         (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
2077         * config/rs6000/vector.md
2078         (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
2079         (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
2080         (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
2081         (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float
2082         vector modes and same-size integer vector modes.
2083         (vec_cmp<mode><VEC_int> for VEC_F): Likewise.
2084         (vector_lt<mode> for VEC_F): New expand.
2085         (vector_le<mode> for VEC_F): Likewise.
2086         (vector_ne<mode> for VEC_F): Likewise.
2087         (vector_unge<mode> for VEC_F): Likewise.
2088         (vector_ungt<mode> for VEC_F): Likewise.
2089         (vector_unle<mode> for VEC_F): Likewise.
2090         (vector_unlt<mode> for VEC_F): Likewise.
2091         (vector_uneq<mode>): Expose name.
2092         (vector_ltgt<mode>): Likewise.
2093         (vector_unordered<mode>): Likewise.
2094         (vector_ordered<mode>): Likewise.
2096 2019-11-08  Hongtao Liu  <Hongtao.liu@intel.com>
2098         PR target/92295
2099         * config/i386/i386-expand.c (ix86_expand_vector_init_concat)
2100         Enhance ix86_expand_vector_init_concat.
2102 2019-11-08  Joseph Myers  <joseph@codesourcery.com>
2104         * doc/invoke.texi (-Wold-style-definition): Document () not being
2105         considered an old-style definition for C2x.
2107 2019-11-07  John David Anglin  <danglin@gcc.gnu.org>
2109         * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
2110         Enhance comment.
2111         (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
2112         insn patterns using ldcw instruction.
2113         (memory_barrier): Remove insn pattern using sync instruction.
2114         * config/pa/pa.opt (coherent-ldcw): New option.
2115         (ordered): New option.
2117 2019-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
2119         * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for
2120         valid conditions.
2122 2019-11-07  Jakub Jelinek  <jakub@redhat.com>
2124         * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string
2125         typo - mistmatch -> mismatch.
2126         * ipa-profile.c (ipa_profile): Likewise.
2127         * ipa-devirt.c (compare_virtual_tables): Fix a comment typo
2128         - mistmatch -> mismatch.
2130 2018-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
2132         * simplify-rtx.c (comparison_to_mask): New function.
2133         (mask_to_comparison): New function.
2134         (simplify_logical_relational_operation): New function.
2135         (simplify_binary_operation_1): Call
2136         simplify_logical_relational_operation.
2138 2019-11-07  Peter Bergner <bergner@linux.ibm.com>
2140         PR other/92090
2141         * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
2142         modes for integer constants.
2144 2019-11-07  Jan Hubicka  <jh@suse.cz>
2146         PR ipa/92406
2147         * ipa-fnsummary.c (analyze_function_body): Use get_create to copy
2148         summary.
2150 2019-11-07  Jan Hubicka  <jh@suse.cz>
2152         * optc-save-gen.awk: Generate cl_target_option_free
2153         and cl_optimization_option_free.
2154         * opth-en.awk: Declare cl_target_option_free
2155         and cl_optimization_option_free.
2156         * tree.c (free_node): Use it.
2158 2019-11-06  Jan Hubicka  <jh@suse.cz>
2160         * lto-streamer-in.c: Include alloc-pool.h.
2161         (freeing_string_slot_hasher): Remove.
2162         (string_slot_allocator): New object allocator.
2163         (file_name_hash_table): Turn to hash_table<string_slot_hasher>.
2164         (file_name_obstack): New obstack.
2165         (canon_file_name): Allocate in obstack and allocator.
2166         (lto_reader_init): Initialize obstack and allocator.
2167         (lto_free_file_name_hash): New function.
2168         * lto-streamer.h (lto_free_file_name_hash): New.
2170 2019-11-07  Feng Xue <fxue@os.amperecomputing.com>
2172         PR tree-optimization/89134
2173         * doc/invoke.texi (min-loop-cond-split-prob): Document new --params.
2174         * params.def: Add min-loop-cond-split-prob.
2175         * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some
2176         outside checks on loop into the function.
2177         (split_info): New class.
2178         (find_vdef_in_loop, get_control_equiv_head_block): New functions.
2179         (find_control_dep_blocks, vuse_semi_invariant_p): Likewise.
2180         (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise.
2181         (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise.
2182         (stmt_semi_invariant_p, branch_removable_p): Likewise.
2183         (get_cond_invariant_branch, compute_added_num_insns): Likewise.
2184         (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise.
2185         (split_loop_on_cond): Likewise.
2186         (tree_ssa_split_loops): Add loop split on conditional statement.
2188 2019-11-07  Andreas Krebbel  <krebbel@linux.ibm.com>
2190         * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split
2191         pattern.
2193 2019-11-07  Richard Biener  <rguenther@suse.de>
2195         PR tree-optimization/92405
2196         * tree-vect-loop.c (vectorizable_reduction): Appropriately
2197         restrict lane-reducing ops to single stmt chains.
2199 2019-11-07  Martin Jambor  <mjambor@suse.cz>
2201         PR lto/70929
2202         * cif-code.def (MISMATCHED_ARGUMENTS): Removed.
2203         * cgraph.h (gimple_check_call_matching_types): Remove
2204         * cgraph.c (gimple_check_call_args): Likewise.
2205         (gimple_check_call_matching_types): Likewise.
2206         (symbol_table::create_edge): Do not call
2207         gimple_check_call_matching_types.
2208         (cgraph_edge::make_direct): Likewise.
2209         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
2210         * value-prof.h (check_ic_target): Remove.
2211         * value-prof.c (check_ic_target): Remove.
2212         (gimple_ic_transform): Do nat call check_ic_target.
2213         * auto-profile.c (function_instance::find_icall_target_map): Likewise.
2214         (afdo_indirect_call): Likewise.
2215         * ipa-prop.c (update_indirect_edges_after_inlining): Do not call
2216         gimple_check_call_matching_types.
2217         * ipa-inline.c (early_inliner): Likewise.
2219 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2221         * config/arm/arm.md (arm_<simd32_op>): New define_expand.
2222         (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn.
2223         * config/arm/arm_acle.h (__ssat16, __usat16): Define.
2224         * config/arm/arm_acle_builtins.def: Define builtins for the above.
2225         * config/arm/iterators.md (USSAT16): New int_iterator.
2226         (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16.
2227         (sup): Likewise.
2228         * config/arm/predicates.md (ssat16_imm): New predicate.
2229         (usat16_imm): Likewise.
2230         * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define.
2232 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2234         * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn):
2235         New define_insns.
2236         (arm_<simd32_op>): New define_expands.
2237         * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx,
2238         __smuad, __smuadx): Define.
2239         * config/arm/arm_acle_builtins.def: Define builtins for the above.
2240         * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator.
2241         (SIMD32_BINOP_Q): Likewise.
2242         (simd32_op): Handle the above.
2243         * config/arm/unspecs.md: Define unspecs for the above.
2245 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2247         * config/arm/aout.h (REGISTER_NAMES): Add apsrge.
2248         * config/arm/arm.md (APSRGE_REGNUM): Define.
2249         (arm_<simd32_op>): New define_insn.
2250         (arm_sel): Likewise.
2251         * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge.
2252         (CALL_USED_REGISTERS): Likewise.
2253         (REG_ALLOC_ORDER): Likewise.
2254         (FIRST_PSEUDO_REGISTER): Update value.
2255         (ARM_GE_BITS_READ): Define.
2256         * config/arm/arm.c (arm_conditional_register_usage): Clear
2257         APSRGE_REGNUM from operand_reg_set.
2258         (arm_ge_bits_access): Define.
2259         * config/arm/arm-builtins.c (arm_check_builtin_call): Handle
2260         ARM_BUIILTIN_sel.
2261         * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype.
2262         * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand.
2263         FAIL if ARM_GE_BITS_READ.
2264         (*arm_add<mode>3): New define_insn.
2265         (sub<mode>3): Convert to define_expand.  FAIL if ARM_GE_BITS_READ.
2266         (*arm_sub<mode>3): New define_insn.
2267         * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8,
2268         __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax,
2269         __usub16): Define.
2270         * config/arm/arm_acle_builtins.def: Define builtins for the above.
2271         * config/arm/iterators.md (SIMD32_GE): New int_iterator.
2272         (simd32_op): Handle the above.
2273         * config/arm/unspecs.md (UNSPEC_GE_SET): Define.
2274         (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8,
2275         UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16,
2276         UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define.
2278 2019-11-07  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2280         * config/arm/arm.md (arm_smlabb_setq): New define_insn.
2281         (arm_smlabb): New define_expand.
2282         (*maddhisi4tb): Rename to...
2283         (maddhisi4tb): ... This.
2284         (*maddhisi4tt): Rename to...
2285         (maddhisi4tt): ... This.
2286         (arm_smlatb_setq): New define_insn.
2287         (arm_smlatb): New define_expand.
2288         (arm_smlatt_setq): New define_insn.
2289         (arm_smlatt): New define_expand.
2290         (arm_<smlaw_op><add_clobber_name>_insn): New define_insn.
2291         (arm_<smlaw_op>): New define_expand.
2292         * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt,
2293         __smlawb, __smlawt): Define.
2294         * config/arm_acle_builtins.def: Define builtins for the above.
2295         * config/arm/iterators.md (SMLAWBT): New int_iterator.
2296         (slaw_op): New int_attribute.
2297         * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define.
2299 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2301         * config/arm/arm.md (arm_<ss_op>): New define_expand.
2302         (arm_<ss_op><add_clobber_q_name>_insn): New define_insn.
2303         * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define.
2304         * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub.
2305         * config/arm/iterators.md (SSPLUSMINUS): New code iterator.
2306         (ss_op): New code_attr.
2308 2019-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2310         * config/arm/aout.h (REGISTER_NAMES): Add apsrq.
2311         * config/arm/arm.md (APSRQ_REGNUM): Define.
2312         (add_setq): New define_subst.
2313         (add_clobber_q_name): New define_subst_attr.
2314         (add_clobber_q_pred): Likewise.
2315         (maddhisi4): Change to define_expand.  Split into mult and add if
2316         ARM_Q_BIT_READ.
2317         (arm_maddhisi4): New define_insn.
2318         (*maddhisi4tb): Disable for ARM_Q_BIT_READ.
2319         (*maddhisi4tt): Likewise.
2320         (arm_ssat): New define_expand.
2321         (arm_usat): Likewise.
2322         (arm_get_apsr): New define_insn.
2323         (arm_set_apsr): Likewise.
2324         (arm_saturation_occurred): New define_expand.
2325         (arm_set_saturation): Likewise.
2326         (*satsi_<SAT:code>): Rename to...
2327         (satsi_<SAT:code><add_clobber_q_name>): ... This.
2328         (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ.
2329         * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed.
2330         (CALL_USED_REGISTERS): Mark apsrq.
2331         (FIRST_PSEUDO_REGISTER): Update value.
2332         (REG_ALLOC_ORDER): Add APSRQ_REGNUM.
2333         (machine_function): Add q_bit_access.
2334         (ARM_Q_BIT_READ): Define.
2335         * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define.
2336         (arm_conditional_register_usage): Clear APSRQ_REGNUM from
2337         operand_reg_set.
2338         (arm_q_bit_access): Define.
2339         * config/arm/arm-builtins.c: Include stringpool.h.
2340         (arm_sat_binop_imm_qualifiers,
2341         arm_unsigned_sat_binop_unsigned_imm_qualifiers,
2342         arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define.
2343         (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS,
2344         UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS,
2345         SET_SAT_QUALIFIERS): Likewise.
2346         (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK.
2347         (arm_init_acle_builtins): Initialize __builtin_sat_imm_check.
2348         Handle 0 argument expander.
2349         (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK.
2350         (arm_check_builtin_call): Define.
2351         * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3,
2352         arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ.
2353         * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype.
2354         (arm_q_bit_access): Likewise.
2355         * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation,
2356         __saturation_occurred, __set_saturation_occurred): Define.
2357         * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat,
2358         saturation_occurred, set_saturation_occurred.
2359         * config/arm/unspecs.md (UNSPEC_Q_SET): Define.
2360         (UNSPEC_APSR_READ): Likewise.
2361         (VUNSPEC_APSR_WRITE): Likewise.
2362         * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand.
2363         (*arm_ssadd<mode>3): New define_insn.
2364         (sssub<mode>3): Convert to define_expand.
2365         (*arm_sssub<mode>3): New define_insn.
2366         (ssmulsa3): Convert to define_expand.
2367         (*arm_ssmulsa3): New define_insn.
2368         (usmulusa3): Convert to define_expand.
2369         (*arm_usmulusa3): New define_insn.
2370         (ssmulha3): FAIL if ARM_Q_BIT_READ.
2371         (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ.
2372         * config/arm/iterators.md (qaddsub_clob_q): New mode attribute.
2374 2019-11-07  Martin Liska  <mliska@suse.cz>
2376         PR c++/92354
2377         * cgraph.c (delete_function_version): Clear global
2378         variable version_info_node if equal to deleted
2379         function.
2381 2019-11-07  Martin Liska  <mliska@suse.cz>
2383         * fold-const.c (operand_compare::operand_equal_p): Add comparison
2384         of CONSTRUCTOR_NO_CLEARING.
2385         (operand_compare::hash_operand): Likewise.
2387 2019-11-07  Georg-Johann Lay  <avr@gjlay.de>
2389         Support 64-bit double and 64-bit long double configurations.
2391         PR target/92055
2392         * config.gcc (tm_defines) [avr]: Set from --with-double=,
2393         --with-long-double=.
2394         * config/avr/t-multilib: Remove.
2395         * config/avr/t-avr: Output of genmultilib.awk is now fully
2396         dynamically generated and no more part of the repo.
2397         (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables.
2398         Pass them down to...
2399         * config/avr/genmultilib.awk: ...here and handle them.
2400         * config/avr/avr.opt (-mdouble=, avr_double). New option and var.
2401         (-mlong-double=, avr_long_double). New option and var.
2402         * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include.
2403         (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>:
2404         Set default as requested by --with-double=
2405         (TARGET_HANDLE_OPTION): Define to this...
2406         (avr_handle_option): ...new hook worker.
2407         * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double.
2408         (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double.
2409         (avr_double_lib): New proto for spec function.
2410         (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add.
2411         (DRIVER_SELF_SPECS): Call %:double-lib.
2412         * config/avr/avr.c (avr_option_override): Assert
2413         sizeof(long double) >= sizeof(double) for the target.
2414         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
2415         [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__]
2416         [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=]
2417         [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__]
2418         [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]:
2419         New built-in define depending on --with-double=, --with-long-double=.
2420         * config/avr/driver-avr.c (avr_double_lib): New spec function.
2421         * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc.
2422         * doc/install.texi (Cross-Compiler-Specific Options)
2423         <--with-double=, --with-long-double=>: Doc.
2425 2019-11-07  Richard Biener  <rguenther@suse.de>
2427         * dbgcnt.def (gimple_unroll): New.
2428         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check
2429         gimple_unroll debug counter before applying transform.
2430         (try_peel_loop): Likewise.
2432 2019-11-07  Kwok Cheung Yeung  <kcy@codesourcery.com>
2434         * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for
2435         frame pointer in multiple registers.
2436         (ira_setup_eliminable_regset): Setup eliminable_regset,
2437         ira_no_alloc_regs and regs_ever_live for frame pointer in
2438         multiple registers.
2440 2019-11-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2442         * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and
2443         V2DI modes.
2445 2019-11-06  Jan Hubicka  <jh@suse.cz>
2447         * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
2448         allocations.
2449         * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
2450         Do not silently ignore summary corruptions.
2452 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
2454         * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
2455         the epilogue if there are peeled iterations for it to handle.
2457 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
2459         * config/arc/arc.c (arc_split_ior): Add asserts.
2460         (arc_split_mov_const): Likewise.
2461         (arc_check_ior_const): Do not match known short immediate values.
2462         * config/arc/arc.md (movsi): Don't split predicated instructions
2463         (iorsi): Likewise.
2465 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
2467         * config/arc/arc.opt (mea): Update help string.
2468         * doc/invoke.texi(ARC): Update mea option info.
2470 2019-11-06  Claudiu Zissulescu  <claziss@synopsys.com>
2472         * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern.
2473         (zero_extendqisi2_ac): Likewise.
2474         (zero_extendhisi2_i): Likewise.
2475         (extendqihi2_i): Likewise.
2476         (extendqisi2_ac): Likewise.
2477         (extendhisi2_i): Likewise.
2479 2019-11-06  Richard Biener  <rguenther@suse.de>
2481         * tree-vect-loop.c (vectorizable_reduction): Remember reduction
2482         PHI.  Use STMT_VINFO_REDUC_IDX to skip the reduction operand.
2483         Simplify single_defuse_cycle condition.
2485 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
2487         * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an
2488         epilogue loop, make sure that the VF is small enough or that
2489         the epilogue loop can be fully-masked.
2491 2019-11-06  Richard Sandiford  <richard.sandiford@arm.com>
2493         * tree-vect-loop.c (vect_analyze_loop): Break out of the main
2494         loop when we've finished, rather than returning directly from
2495         the loop.  Use a local variable to track whether we're still
2496         searching for the preferred simdlen.  Make vect_epilogues
2497         record whether the next iteration should try to treat the
2498         loop as an epilogue.
2500 2019-11-06  Vineet Gupta  <vgupta@synopsys.com>
2502         * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add
2503         __arc_hard_float__, __ARC_HARD_FLOAT__,
2504         __arc_soft_float__, __ARC_SOFT_FLOAT__
2506 2019-11-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2508         PR tree-optimization/92317
2509         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also
2510         update phi's with constant phi arguments.
2512 2019-11-06  Eric Botcazou  <ebotcazou@adacore.com>
2513             Alexandre Oliva  <oliva@adacore.com>
2515         * common.opt (-fcallgraph-info[=]): New option.
2516         * doc/invoke.texi (Developer options): Document it.
2517         * opts.c (common_handle_option): Handle it.
2518         * builtins.c (expand_builtin_alloca): Record allocation if
2519         -fcallgraph-info=da.
2520         * calls.c (expand_call): If -fcallgraph-info, record the call.
2521         (emit_library_call_value_1): Likewise.
2522         * flag-types.h (enum callgraph_info_type): New type.
2523         * explow.c: Include stringpool.h.
2524         (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol.
2525         * function.c (allocate_stack_usage_info): New.
2526         (allocate_struct_function): Call it for -fcallgraph-info.
2527         (prepare_function_start): Call it otherwise.
2528         (record_final_call, record_dynamic_alloc): New.
2529         * function.h (struct callinfo_callee): New.
2530         (CALLEE_FROM_CGRAPH_P): New.
2531         (struct callinfo_dalloc): New.
2532         (struct stack_usage): Add callees and dallocs.
2533         (record_final_call, record_dynamic_alloc): Declare.
2534         * gimplify.c (gimplify_decl_expr): Record dynamically-allocated
2535         object if -fcallgraph-info=da.
2536         * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL.
2537         * print-tree.h (print_decl_identifier): Declare.
2538         (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New.
2539         * print-tree.c: Include print-tree.h.
2540         (print_decl_identifier): New function.
2541         * toplev.c: Include print-tree.h.
2542         (callgraph_info_file): New global variable.
2543         (callgraph_info_external_printed): Likewise.
2544         (output_stack_usage): Rename to...
2545         (output_stack_usage_1): ... this.  Make it static, add cf
2546         parameter.  If -fcallgraph-info=su, print stack usage to cf.
2547         If -fstack-usage, use print_decl_identifier for
2548         pretty-printing.
2549         (INDIRECT_CALL_NAME): New.
2550         (dump_final_node_vcg_start): New.
2551         (dump_final_callee_vcg, dump_final_node_vcg): New.
2552         (output_stack_usage): New.
2553         (lang_dependent_init): Open and start file if
2554         -fcallgraph-info.  Allocated callgraph_info_external_printed.
2555         (finalize): If callgraph_info_file is not null, finish it,
2556         close it, and release callgraph_info_external_printed.
2558 2019-11-06  Gergö Barany  <gergo@codesourcery.com>
2559             Frederik Harwath  <frederik@codesourcery.com>
2560             Thomas Schwinge  <thomas@codesourcery.com>
2562         * omp-low.c (struct omp_context): New fields
2563         local_reduction_clauses, outer_reduction_clauses.
2564         (new_omp_context): Initialize these.
2565         (scan_sharing_clauses): Record reduction clauses on OpenACC constructs.
2566         (scan_omp_for): Check reduction clauses for incorrect nesting.
2568 2019-11-06  Jakub Jelinek  <jakub@redhat.com>
2570         PR inline-asm/92352
2571         * gimplify.c (gimplify_asm_expr): Reject VLA in output or input
2572         operands with non-memory constraints.
2574 2019-11-05  Martin Sebor  <msebor@redhat.com>
2576         PR tree-optimization/92373
2577         * tree.c (component_ref_size): Only consider initializers of objects
2578         of matching struct types.
2579         Return null for instances of interior zero-length arrays.
2581 2019-11-05  Segher Boessenkool  <segher@kernel.crashing.org>
2583         * doc/md.texi (Insn Splitting): Fix combiner documentation.
2585 2019-11-05  Jason Merrill  <jason@redhat.com>
2587         PR tree-optimization/91825
2588         * expmed.c: Reduce -Wmaybe-uninitialized to warning.
2590 2019-11-05  Jim Wilson  <jimw@sifive.com>
2592         PR middle-end/92263
2593         * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when
2594         optimize_insn_for_speed_p is true.
2596 2019-11-05  Martin Sebor  <msebor@redhat.com>
2598         PR middle-end/92333
2599         PR middle-end/82608
2600         * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant
2601         size.
2602         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful
2603         name and location for a temporary variable.
2605 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
2607         * tree-vrp.c (value_range::value_range): Fix whitespace.
2608         (defined_ranges_p): Same.
2609         (range_fold_binary_symbolics_p): Same.
2610         (value_range::intersect_helper): Same.
2611         (value_range::union_helper): Same.
2612         * tree-vrp.h (range_fold_binary_expr): Same.
2614 2019-11-04  Martin Sebor  <msebor@redhat.com>
2616         PR middle-end/92341
2617         PR middle-end/82612
2618         * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets.
2619         * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text
2620         of message printed in a warning for empty arrays.
2621         (vrp_prop::check_mem_ref): Also handle function parameters and
2622         empty arrays.
2624 2019-11-05  Richard Biener  <rguenther@suse.de>
2626         PR tree-optimization/92371
2627         * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF
2628         on the original stmt of live stmts in the chain.
2629         (vectorizable_live_operation): Look at the original stmt when
2630         checking STMT_VINFO_REDUC_DEF.
2632 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
2634         * gimple-fold.c, gimple-loop-versioning.cc,
2635         gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c,
2636         gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h,
2637         range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c,
2638         tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc],
2639         tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to
2640         value_range_equiv, and value_range_base to value_range.
2642 2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
2644         * expr.c (build_personality_function): Fix generated type to
2645         match actual personality functions.
2647 2019-11-05  Matthew Malcomson  <matthew.malcomson@arm.com>
2649         * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate
2650         enough bytes for the NULL character.
2652 2019-11-05  Richard Biener  <rguenther@suse.de>
2654         PR tree-optimization/92280
2655         * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR
2656         had a single use do not create a new CTOR.
2657         * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold
2658         BIT_FIELD_REF of a CTOR via GENERIC.
2660 2019-11-05  Andreas Krebbel  <krebbel@linux.ibm.com>
2662         * config/s390/s390.c (s390_vector_alignment): Check if the value
2663         fits into uhwi before using it.
2665 2019-11-05  Martin Liska  <mliska@suse.cz>
2667         * symbol-summary.h: Use ggc_delete.
2669 2019-11-05  Anton Youdkevitch  <anton.youdkevitch@bell-sw.com>
2671         * config/aarch64/aarch64.c (thunderx2t99_vector_cost):
2672         Change vec_perm field to 10.
2674 2019-11-05  Arnaud Charlet  <charlet@adacore.com>
2676         * doc/install.texi: Further fix syntax for html generation.
2678 2019-11-05  Martin Liska  <mliska@suse.cz>
2680         * symbol-summary.h: Rename allocator to m_allocator and
2681         add comment.
2683 2019-11-05  Richard Biener  <rguenther@suse.de>
2685         PR tree-optimization/92324
2686         * tree-vect-loop.c (check_reduction_path): For MIN/MAX require
2687         all signed or unsigned operations.
2689 2019-11-05  Jan Hubicka  <jh@suse.cz>
2691         * hsa-brig.c: Include alloc-pool.h
2692         * hsa-dump.c: Likewise.
2693         * hsa-gen.c: Likewise.
2694         * hse-regalloc.c: Likewise.
2695         * ipa-hsa.c: Likewise.
2696         * ipa-predicate.c: Likewise.
2697         * ipa-reference.c: Likewise.
2698         * ipa-sra.c: Likewise.
2699         * omp-expand.c: Likewise.
2700         * omp-general.c: Likewise.
2701         * omp-low.c: Likewise.
2702         * sumbol-summary.h (function_summary_base): Add allocator.
2703         (function_summary<T *>::function_summary): Update construction.
2704         (fast_function_summary<T *, V>::fast_function_summary): Likewise.
2705         (call_summary_base): Add allcator.
2706         (call_summary<T *>::call_summary): Update construction.
2707         (fast_call_summary<T *, V>::fast_call_summary): Likewise.
2709 2019-11-05  Jakub Jelinek  <jakub@redhat.com>
2711         PR tree-optimization/91945
2712         * builtins.c (compute_objsize): For ARRAY_REF, only multiply off
2713         by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt.
2714         Formatting fix.
2716 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
2718         * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier.
2719         * range-op.h (wi_set_zero_nonzero_bits): New prototype.
2720         * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove.
2721         * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove.
2722         (vrp_set_zero_nonzero_bits): Move to...
2723         * vr-values.c (vr_set_zero_nonzero_bits): ...here.
2724         (vr_values::simplify_bit_ops_using_ranges): Rename
2725         vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits.
2727 2019-11-05  Martin Liska  <mliska@suse.cz>
2729         PR c++/92339
2730         * fold-const.c (operand_compare::hash_operand): Remove
2731         FIELD_DECL handling.
2733 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
2735         * tree-vrp.h (vrp_bitmap_equal_p): Remove.
2736         * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make
2737         static.
2739 2019-11-05  Aldy Hernandez  <aldyh@redhat.com>
2741         * tree-vrp.c (value_range_base::operator==): Use equal_p to
2742         properly handle symbolics.
2743         (range_compatible_p): Remove.
2745 2019-11-04  Kamlesh Kumar  <kamleshbhalui@gmail.com>
2747         * common.opt (-fabi-version): Document =14.
2748         * doc/invoke.texi (C++ Dialect Options): Likewise.
2750 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2752         * tree-vrp.c (value_range_base::set): Do not special case pointers.
2754 2019-11-04  Tobias Burnus  <tobias@codesourcery.com>
2756         * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function.
2757         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
2758         gcn_omp_device_kind_arch_isa.
2759         * config/gcn/t-omp-device: New file.
2760         * configure.ac: Support gcn for omp_device_property.
2761         * configure: Regenerate.
2763 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2765         * tree-vrp.h (vrp_val_min): Remove handle_pointers argument.
2766         (vrp_val_max): Same.
2767         (vrp_val_is_min): Same.
2768         (vrp_val_is_max): Same.
2769         (value_range_base::nonzero_p): Remove last argument to
2770         vrp_val_is_max.
2771         * tree-vrp.c (vrp_val_min): Remove handle_pointers argument.
2772         (vrp_val_max): Same.
2773         (vrp_val_is_min): Same.
2774         (vrp_val_is_max): Same.
2775         (value_range_base::set_varying): Remove last argument to vrp_val*.
2776         (value_range_base::dump): Same.
2777         (value_range_base::set): Same.
2778         (value_range_base::normalize_symbolics): Same.
2779         (value_range_base::num_pairs): Same.
2780         (value_range_base::lower_bound): Same.
2781         (value_range_base::upper_bound): Same.
2782         (ranges_from_anti_range): Remove handle_pointers argument.
2783         (value_range_base::singleton_p): Remove last argument to
2784         ranges_from_anti_range.
2786 2019-11-04  Jan Hubicka  <jh@suse.cz>
2788         * ipa-reference.c (init_function_info): Initialize
2789         info->global.statics_read.
2791 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2793         * tree-vrp.c (value_range_base::invert): Use constructors to build
2794         range.
2796 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2798         * tree-vrp.c (range_int_cst_singleton_p): Remove.
2799         * tree-vrp.h (range_int_cst_singleton_p): Remove.
2801 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2803         * tree-vrp.c (value_range_base::normalize_addresses): Handle
2804         VR_UNDEFINED.
2806 2019-11-04  Aldy Hernandez  <aldyh@redhat.com>
2808         * tree-vrp.c (dump_assert_info): New.
2809         (dump_asserts_info): New.
2811 2019-11-04  Jan Hubicka  <jh@suse.cz>
2813         * ipa-inline-transform.c: Include ipa-utils.h
2814         (inline_call): Set thunk_expansion flag.
2815         * ipa-utils.h (thunk_expansion): Declare.
2816         * ipa-devirt.c (thunk_expansion): New global var.
2817         (devirt_node_removal_hook): Do not invalidate cache while
2818         doing thunk expansion.
2820 2019-11-04  Tamar Christina  <tamar.christina@arm.com>
2822         * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt.
2824 2019-11-04  Martin Sebor  <msebor@redhat.com>
2826         PR tree-optimization/92349
2827         * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct
2828         memebers have constant sizes.
2830 2019-11-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2832         * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
2833         parameter.
2834         * tree-vectorizer.h (vect_analyze_loop): Update declaration.
2835         * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
2836         vect_analyze_loop.
2838 2019-11-04  Joel Hutton  <Joel.Hutton@arm.com>
2840         * expr.c (store_constructor): Modify to handle single element vectors.
2841         * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector
2842         constructors.
2843         (vect_slp_check_for_constructors): New function.
2844         (vect_slp_analyze_bb_1): Call new function to check for vector
2845         constructors.
2846         (vectorize_slp_instance_root_stmt): New function.
2847         (vect_schedule_slp): Call new function to vectorize root stmt of vector
2848         constructors.
2849         * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field.
2851 2019-11-04  Richard Biener  <rguenther@suse.de>
2853         PR tree-optimization/92345
2854         * tree-vect-loop.c (vect_is_simple_reduction): Return whether
2855         we produced a reduction chain.
2856         (vect_analyze_scalar_cycles_1): Do not add reduction chains to
2857         LOOP_VINFO_REDUCTIONS.
2859 2019-11-04  Jan Hubicka  <jh@suse.cz>
2861         * cgraphclones.c (cgraph_node::create_version_clone): Do not
2862         duplicate summaries.
2863         * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary
2864         first.
2865         (ipa_fn_summary_t::duplicate): Use get instead of get_create to
2866         access call summaries.
2867         (dump_ipa_call_summary): Be ready for missing edge summaries.
2868         (analyze_function_body): Use get instead of get_create to access
2869         edge summary.
2870         (estimate_calls_size_and_time): Do not access summaries of
2871         inlined edges; sanity check they are missing.
2872         (ipa_call_context::estimate_size_and_time): Use get instead
2873         of get_create to access node summary.
2874         (inline_update_callee_summaries): Do not update depth of
2875         inlined edge.
2876         (ipa_merge_fn_summary_after_inlining): Remove inline edge from
2877         growth caches.
2878         (ipa_merge_fn_summary_after_inlining): Use get instead
2879         of get_create.
2880         * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare.
2881         * ipa-inline-analyssi.c (edge_growth_cache): Turn to
2882         fast summary.
2883         (initialize_growth_caches): Update.
2884         (do_estimate_edge_time): Remove redundant copy of context.
2885         (ipa_remove_from_growth_caches): New function.
2886         * ipa-inline.c (flatten_function): Update overall summary
2887         only when optimizing.
2888         (inline_to_all_callers): Update overall summary of function
2889         inlined to.
2890         * ipa-inline.h (edge_growth_cache): Turn to fast summary.
2891         * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning
2892         to false.
2894 2019-11-04  Richard Biener  <rguenther@suse.de>
2896         * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO.
2897         * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H.
2899 2019-11-04  David Edelsohn  <dje.gcc@gmail.com>
2901         * ggc-common.c: Include system.h before malloc.h.
2903 2019-11-04  Alexandre Oliva <oliva@adacore.com>
2905         * configure.ac: Pass --enable-obsolete=* and
2906         --enable-option-checking=* down to build configure, and fail
2907         if it fails.  AC_SUBST HAVE_AUTO_BUILD.
2908         * configure: Rebuild.
2909         * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule.
2910         [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h.
2912 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2914         * config.in: Regenerate.
2915         * config/msp430/msp430.c (msp430_option_override): Emit an error if
2916         -mtiny-printf is used without GCC being configured with
2917         --enable-newlib-nano-formatted-io.
2918         * config/msp430/msp430.h (LINK_SPEC): Pass 
2919         "--wrap puts --wrap printf" when -mtiny-printf is used.
2920         * config/msp430/msp430.opt: Document -mtiny-printf.
2921         * configure: Regenerate.
2922         * configure.ac: Enable --enable-newlib-nano-formatted-io flag.
2923         Define HAVE_NEWLIB_NANO_FORMATTED_IO if
2924         --enable-newlib-nano-formatted-io is passed.
2925         * doc/invoke.texi: Document -mtiny-printf.
2927 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2929         * configure: Regenerate.
2931 2019-11-04  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2933         * config/msp430/driver-msp430.c
2934         (msp430_get_linker_devices_include_path): New spec function.
2935         * config/msp430/msp430-devices.c (msp430_dirname): New function.
2936         (extract_devices_dir_from_exec_prefix): New function.
2937         (extract_devices_dir_from_collect_gcc): New function.
2938         (msp430_check_env_var_for_devices): New function.
2939         (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP.
2940         (parse_devices_csv): Call msp430_check_env_var_for_devices if
2941         devices.csv was not found using other methods.
2942         * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices):
2943         New prototype.
2944         (msp430_dirname): Likewise.
2945         * config/msp430/msp430.c (msp430_register_pre_includes): New function.
2946         * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add
2947         msp430_get_linker_devices_include_path.
2948         (TARGET_EXTRA_PRE_INCLUDES): Define.
2949         * doc/invoke.texi: Document new ways of searching for support files.
2951 2019-11-04  Richard Biener  <rguenther@suse.de>
2953         PR tree-optimization/92301
2954         * tree-vect-stmts.c (process_use): Force reduction PHI defs live
2955         as required by epilogue generation
2957 2019-11-04  Martin Liska  <mliska@suse.cz>
2959         PR ipa/92304
2960         * fold-const.c (operand_compare::hash_operand): Fix field
2961         hashing of CONSTRUCTOR.
2963 2019-11-04  Martin Liska  <mliska@suse.cz>
2965         * ggc.h (ggc_delete): New function.
2966         * ipa-fnsummary.c (ipa_free_fn_summary): Use it.
2967         * ipa-prop.c (ipa_free_all_edge_args): Likewise.
2968         (ipa_free_all_node_params): Likewise.
2969         * ipa-sra.c (ipa_sra_analysis): Likewise.
2971 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
2973         * ipa-fnsummary.c (set_cond_stmt_execution_predicate,
2974         set_switch_stmt_execution_predicate, compute_bb_predicates,
2975         will_be_nonconstant_expr_predicate,
2976         phi_result_unknown_predicate,
2977         analyze_function_body): Pass arround params summary.
2978         (ipa_call_context::duplicate_from): New comment;
2979         only duplicate useful values.
2980         (ipa_call_context::equal_to): Only compare useful values.
2981         (remap_edge_summaries): Pass params_summary.
2982         (remap_hint_predicate): Likewise.
2983         (ipa_merge_fn_summary_after_inlining): Likewise.
2984         (inline_read_section): Initialize params summary used flags.
2985         * ipa-predicate.c (predicate::remap_after_inlining): Pass
2986         around param_summary.
2987         (add_condition): Initialized used params summary flags.
2988         * ipa-predicate.h (inline_param_summary::equals_to): Make const.
2989         (inline_param_summary::useless_p): New predicate.
2990         (remap_after_inlining, add_condition): Update prototype
2991         * ipa-prop.c (ipa_populate_param_decls): Watch overflow in
2992         move_cost.
2993         (ipa_note_param_call): Add parameter POLYMORPHIC; update params
2994         summaries.
2995         (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call.
2996         (ipa_analyze_virtual_call_uses): Likewise.
2997         (update_indirect_edges_after_inlining): Update param summaries.
2998         (ipa_print_node_params): Print used flags.
2999         (ipa_read_indirect_edge_info): Update param summareis.
3000         * ipa-prop.h (ipa_param_descriptor): Add
3001         used_by_ipa_predicates, used_by_indirect_call
3002         and used_by_polymorphic_call.
3003         (ipa_set_param_used_by_ipa_predicates,
3004         ipa_set_param_used_by_indirect_call,
3005         ipa_set_param_used_by_polymorphic_call,
3006         ipa_is_param_used_by_ipa_predicates,
3007         ipa_is_param_used_by_indirect_call,
3008         ipa_is_param_used_by_polymorphic_call): New inline functions.
3010 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
3012         * ipa-fnsummary.c (ipa_call_context::duplicate_from): New
3013         member function.
3014         (ipa_call_context::release): Add ALL parameter.
3015         (ipa_call_context::equal_to): New member function.
3016         * ipa-fnsummary.h (ipa_call_context): Add empty constructor;
3017         duplicate_form, release, equal_to and exists_p member functoins.
3018         * ipa-inline-analysis.c (node_context_cache_entry): New
3019         class.
3020         (node_context_summary): Likewise.
3021         (node_context_cache, node_context_cache_hit, node_context_cache_miss,
3022         node_context_clear): New static vars.
3023         (initialize_growth_caches): New function.
3024         (free_growth_caches): Also delete node_context_cache; output stats.
3025         (do_estimate_edge_time): Cache contexts.
3026         (reset_node_cache): New function.
3027         * ipa-inline.c (reset_edge_caches): Reset also node cache.
3028         (inline_small_functions): Initialize growth caches.
3029         * ipa-inline.h (reset_node_cache, initialize_growth_caches):
3030         Declare.
3031         * ipa-predicate.h (inline_param_summary::equal_to): New.
3032         * ipa-prop.c (ipa_agg_jf_item::equal_to): New.
3033         * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function.
3034         (ipa_agg_jump_function): Implement equal_to member function.
3036 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
3038         * ipa-fnsummary.c (inline_read_section): Set vector size
3039         ahead of time.
3041 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
3043         * ipa-fnsummary.c (ipa_call_context): New constructor.
3044         (estimate_node_size_and_time): Turn to ...
3045         (ipa_call_context::estimate_size_and_time): ... this one.
3046         (ipa_call_context::release): New.
3047         * ipa-fnsummary.h (ipa_call_context): New class.
3048         (estimate_node_size_and_time): Remove.
3049         * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size,
3050         do_estimate_edge_hints): Update.
3052 2019-11-02  Jan Hubicka  <hubicka@ucw.cz>
3054         * config.in: Regenerate.
3055         * configure: Regenerate.
3056         * configure.ac: Check for mallinfo.
3057         * ggc-common.c: Include malloc.h if available;
3058         include options.h
3059         (report_heap_memory_use): New functoin.
3060         * ggc-page.c (ggc_grow): Do not print "start".
3061         * ggc.h (report_heap_memory_use): Declare.
3062         * pases.c (execute_one_pass): Report memory after IPA passes.
3063         (ipa_read_summaries_1): Likewise.
3064         (ipa_read_optimization_summaries_1): Likewise.
3066 2019-11-02  Jakub Jelinek  <jakub@redhat.com>
3068         * gimplify.h (omp_construct_selector_matches): Change return
3069         type to int, add a new SCORES argument.
3070         * gimplify.c (omp_construct_selector_matches): Likewise.  If
3071         SCORES is non-NULL, compute scores of each construct.
3072         * omp-general.h (omp_get_context_selector): Declare.
3073         * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches):
3074         Adjust omp_construct_selector_matches callers.
3075         (omp_get_context_selector): New function, moved from c-family/c-omp.c.
3076         (omp_context_compute_score): New function.
3077         (omp_resolve_declare_variant): Compute scores and decide based on
3078         that.
3080         PR bootstrap/92314
3081         * configure.ac: Don't look for omp-device-properties files from
3082         installed offloading compilers.  Instead add tmake_file snippets
3083         for configured offloading targets and use files they generate.
3084         * Makefile.in (install): Don't depend on
3085         install-omp-device-properties.
3086         (install-omp-device-properties): Remove goal.
3087         * config/i386/t-omp-device: New file.
3088         * config/i386/t-intelmic (omp-device-properties): Remove goal.
3089         * config/nvptx/t-omp-device: New file.
3090         * config/nvptx/t-nvptx (omp-device-properties): Remove goal.
3091         * configure: Regenerated.
3093         * omp-general.h (omp_context_selector_set_compare): Declare.
3094         * omp-general.c (omp_construct_simd_compare,
3095         omp_context_selector_props_compare, omp_context_selector_set_compare,
3096         omp_context_selector_compare): New functions.
3097         (omp_resolve_declare_variant): Prune variants that are strict subset
3098         of another variant.
3100 2019-11-01  Martin Sebor  <msebor@redhat.com>
3102         PR middle-end/91679
3103         PR middle-end/91647
3104         PR middle-end/91463
3105         PR middle-end/92312
3106         * doc/invoke.texi (-Wzero-length-bounds): Document.
3107         * gimple-match-head.c (try_conditional_simplification): Use memcpy
3108         instead of a hand-rolled loop to avoid PR 92323.
3109         * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays
3110         with initializers.
3111         (vrp_prop::check_mem_ref): Handle declared struct objects.
3112         * tree.c (last_field): New function.
3113         (array_at_struct_end_p): Handle MEM_REF.
3114         (get_initializer_for): New helper.
3115         (component_ref_size): Add argument.  Rename locals.  Call
3116         get_initializer_for instead of fold_ctor_reference.  Correct handling
3117         of flexible array members.
3118         * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant.
3120 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
3122         * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes.
3123         * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS,
3124         UNSPEC_VSX_CVSPUXDS): Remove.
3125         (vsx_xvcvspdp): New define_expand, old define_insn split to...
3126         (vsx_xvcvspdp_be): ... this.  New.  And...
3127         (vsx_xvcvspdp_le): ... this.  New.
3128         (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to...
3129         (vsx_xvcv<su>xwdp_be): ... this.  New.  And...
3130         (vsx_xvcv<su>xwdp_le): ... this.  New.
3131         (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to...
3132         (vsx_xvcvsp<su>xds_be): ... this.  New.  And...
3133         (vsx_xvcvsp<su>xds_le): ... this.  New.
3135 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
3137         * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP,
3138         UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP,
3139         UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS,
3140         UNSPEC_VSX_XVCVSPSXWS): Remove.
3141         (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws,
3142         vsx_xvcv<su>xwsp): Update define_insn RTL patterns.
3144 2019-11-01  Kewen Lin  <linkw@gcc.gnu.org>
3146         * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn.
3147         (UNSPEC_VSX_XVCDPSP): Remove.
3148         * config/rs6000/rs6000.c (rs6000_generate_float2_double_code):
3149         Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp.
3151 2019-11-01  Tobias Burnus  <tobias@codesourcery.com>
3153         * hooks.c (hook_tree_tree_bool_null): New.
3154         * hooks.h (hook_tree_tree_bool_null): Declare.
3155         * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define.
3156         (LANG_HOOKS_DECLS): Add it.
3157         * langhooks.h (lang_hooks_for_decls): Add omp_array_data.
3158         * omp-low.c (install_var_field): New mode for Fortran descriptor arrays.
3159         (lower_omp_target): Handle Fortran array with descriptor in
3160         OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR.
3162 2019-10-31  Richard Sandiford  <richard.sandiford@arm.com>
3164         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types):
3165         Assert that the type we store in abi_vector_types is its own
3166         main variant.
3167         (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here.
3169 2019-10-31  Richard Earnshaw  <rearnsha@arm.com>
3171         * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets
3172         from a CONST_INT address when TARGET_THUMB2.
3174 2019-10-31  Richard Earnshaw  <rearnsha@arm.com>
3176         * config/arm/arm.md (add_not_cin): New insn.
3177         (add_not_shift_cin): Likewise.
3179 2019-10-31  Martin Liska  <mliska@suse.cz>
3181         * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove.
3182         * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label
3183         and compare_memory_operand.
3185 2019-10-31  Jakub Jelinek  <jakub@redhat.com>
3187         * configure.ac: Compute and substitute omp_device_properties and
3188         omp_device_property_deps.
3189         * Makefile.in (generated_files): Add omp-device-properties.h.
3190         (omp-general.o): Depend on omp-device-properties.h.
3191         (omp_device_properties): New make variable.
3192         (omp-device-properties.h, s-omp-device-properties-h,
3193         install-omp-device-properties): New goals.
3194         (install): Depend on install-omp-device-properties for accelerators.
3195         * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook.
3196         * target.h (enum omp_device_kind_arch_isa): New enum.
3197         * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA
3198         documentation.
3199         * omp-general.c: Include omp-device-properties.h.
3200         (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by
3201         colon instead of comma.
3202         (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New
3203         functions.
3204         (omp_context_selector_matches): Implement device set arch/isa
3205         selectors, improve device set kind selector handling.
3206         * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare.
3207         * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST,
3208         TARGET_SIMD_CLONE_USABLE): Formatting fix.
3209         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
3210         ix86_omp_device_kind_arch_isa.
3211         * config/i386/i386-options.c (struct ix86_target_opts): Move type
3212         definition from ix86_target_string to file scope.
3213         (isa2_opts, isa_opts): Moved arrays from ix86_target_string function
3214         to file scope.
3215         (ix86_omp_device_kind_arch_isa): New function.
3216         (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and
3217         isa_opts definitions to file scope.
3218         * config/i386/t-intelmic (omp-device-properties): New goal.
3219         * config/nvptx/t-nvptx (omp-device-properties): Likewise.
3220         * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function.
3221         (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to
3222         nvptx_omp_device_kind_arch_isa.
3223         * configure: Regenerate.
3224         * doc/tm.texi: Regenerate.
3226         PR middle-end/92231
3227         * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
3228         DECL_BUILT_IN in comment.  Remove redundant ()s around return
3229         argument.
3230         * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
3231         before calling fndecl_built_in_p.
3232         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
3233         TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
3234         fndecl_built_in_p on it.
3236 2019-10-31  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3238         * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default.
3240 2019-10-31  Martin Liska  <mliska@suse.cz>
3242         * config/arm/arm.c (arm_get_pcs_model): Remove usage
3243         of cgraph_local_info and use local_info_node instead.
3244         * config/bfin/bfin.c (bfin_load_pic_reg): Likewise.
3245         (bfin_function_ok_for_sibcall): Likewise.
3246         * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise.
3247         (must_reload_pic_reg_p): Likewise.
3249 2019-10-31  Jakub Jelinek  <jakub@redhat.com>
3251         PR c++/90947
3252         * tree.h (type_initializer_zero_p): Remove.
3253         * tree.c (type_initializer_zero_p): Remove.
3255 2019-10-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3257         * doc/invoke.texi (-Wshadow, -Wshadow=global
3258         -Wshadow=local, -Wshadow=compatible-local): Update documentation.
3260 2019-10-30  Tobias Burnus  <tobias@codesourcery.com>
3262         * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated
3263         GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update'
3264         and 'target exit data'.
3266 2019-10-30  Martin Jambor  <mjambor@suse.cz>
3268         ipa/92278
3269         * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix
3270         availability comparison.
3272 2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3274         * config/msp430/msp430.c (msp430_expand_helper): Support expansion of
3275         calls to __mspabi_mpy* functions.
3276         * config/msp430/msp430.md (mulhisi3): New define_expand.
3277         (umulhisi3): New define_expand.
3278         (*mulhisi3_inline): Use old mulhisi3 define_insn.
3279         (*umulhisi3_inline): Use old umulhisi3 define_insn.
3281 2019-10-30  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
3283         * config/msp430/msp430.c (msp430_check_index_not_high_mem): New.
3284         (msp430_check_plus_not_high_mem): New.
3285         (msp430_op_not_in_high_mem): Use new functions to check if the operand
3286         might be in low memory.
3287         Indicate that a 16-bit absolute address is in lower memory.
3289 2019-10-30  Martin Jambor  <mjambor@suse.cz>
3291         * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to
3292         ultimate_alias_target.
3294 2019-10-30  Richard Biener  <rguenther@suse.de>
3296         PR tree-optimization/92275
3297         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops):
3298         Copy all loop-closed PHIs.
3300 2019-10-30  Martin Liska  <mliska@suse.cz>
3302         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use
3303         const_tree as function argument.
3304         (func_checker::compare_decl): Likewise.
3305         (func_checker::operand_equal_p): Likewise.
3306         (func_checker::compare_variable_decl): Likewise.
3307         (func_checker::parse_labels): Likewise.
3308         * ipa-icf-gimple.h: Likewise.
3310 2019-10-30  Martin Liska  <mliska@suse.cz>
3312         * ipa-icf-gimple.c (func_checker::compatible_types_p):
3313         Do not compare alias sets.  It's handled by operand_equal_p.
3315 2019-10-30  Martin Liska  <mliska@suse.cz>
3317         * ipa-icf-gimple.c (func_checker::func_checker): Do not
3318         initialize m_compare_polymorphic.
3319         (func_checker::compare_decl): Do not compare polymorphic types.
3320         * ipa-icf-gimple.h (m_compare_polymorphic): Remove.
3321         * ipa-icf.c (sem_function::equals_private): Do not call
3322         compare_polymorphic_p.
3324 2019-10-30  Martin Liska  <mliska@suse.cz>
3326         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call
3327         compare_operand.
3328         (func_checker::compare_memory_operand): Remove.
3329         (func_checker::compare_cst_or_decl): Remove.
3330         (func_checker::operand_equal_valueize): Do not handle
3331         FIELD_DECL.
3332         (func_checker::compare_gimple_call): Call compare_operand.
3333         (func_checker::compare_gimple_assign): Likewise.
3334         * ipa-icf-gimple.h: Remove compare_cst_or_decl.
3335         * ipa-icf.c (sem_function::icf_handled_component_p): Remove.
3336         * ipa-icf.h (icf_handled_component_p): Remove.
3338 2019-10-30  Martin Liska  <mliska@suse.cz>
3340         * ipa-icf-gimple.c (func_checker::hash_operand): New.
3341         (func_checker::compare_cst_or_decl): Remove handling
3342         of FIELD_DECL.
3343         (func_checker::compare_operand): Transform to ...
3344         (func_checker::operand_equal_p): ... this.
3345         * ipa-icf-gimple.h (class func_checker): Add
3346         operand_equal_p and hash_operand.
3347         * ipa-icf.c (sem_function::equals_private): Fix
3348         pushing and popping of cfun.
3350 2019-10-30  Martin Liska  <mliska@suse.cz>
3352         * fold-const.c (operand_equal_p): Move to ...
3353         (operand_compare::operand_equal_p): ... here.
3354         (operand_compare::verify_hash_value): New.
3355         (add_expr): Move to ...
3356         (operand_compare::hash_operand): ... here.
3357         * fold-const.h (operand_equal_p): Move to the class.
3358         (class operand_compare): New.
3359         * tree.c (add_expr): Remove.
3361 2019-10-30  Martin Liska  <mliska@suse.cz>
3363         * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF.
3364         * tree.c (add_expr): Hash parts of OBJ_TYPE_REF.
3366 2019-10-30  Martin Liska  <mliska@suse.cz>
3368         PR lto/91393
3369         PR lto/88220
3370         * cgraph.c (cgraph_node::get_create): Overwrite node->order
3371         from a first_clone in order to get proper LTO section
3372         in LTO stream.
3373         (cgraph_node::get_untransformed_body):
3374         Use lto_get_section_data where symtab_node::order
3375         must be provided.
3376         * cgraphclones.c (cgraph_node::find_replacement):
3377         Update also symbol order.
3378         * ipa-fnsummary.c (ipa_fn_summary_read):
3379         Use new function lto_get_summary_section_data.
3380         * ipa-hsa.c (ipa_hsa_read_summary): Likewise.
3381         * ipa-icf.c (sem_item_optimizer::read_summary):
3382         Likewise.
3383         * ipa-prop.c (ipa_prop_read_jump_functions):
3384         Likewise.
3385         (ipcp_read_transformation_summaries): Likewise.
3386         * ipa-sra.c (ipa_sra_read_summary): Likewise.
3387         * lto-cgraph.c (input_node): Add also order_base.
3388         (input_varpool_node): Likewise.
3389         (input_cgraph_1): Assign the order_base.
3390         (input_cgraph_opt_summary): Use new lto_get_summary_section_data.
3391         * lto-opts.c (lto_write_options): Pass new argument.
3392         * lto-section-in.c (lto_get_section_data): Add new argumente order.
3393         (lto_get_summary_section_data): New.
3394         (lto_get_raw_section_data): Add order argument.
3395         (lto_create_simple_input_block): Likewise.
3396         * lto-section-out.c (lto_destroy_simple_output_block):
3397         Likewise.
3398         * lto-streamer-in.c (lto_input_toplevel_asms):
3399         Use lto_get_summary_section_data.
3400         (lto_input_mode_table): Likewise.
3401         * lto-streamer-out.c (produce_asm): Pass symtab_node::order.
3402         (lto_output_toplevel_asms): Pass new argument.
3403         (copy_function_or_variable): Likewise.
3404         (produce_lto_section):Likewise.
3405         (produce_symtab): Likewise.
3406         (lto_write_mode_table): Likewise.
3407         (produce_asm_for_decls): Likewise.
3408         * lto-streamer.c (lto_get_section_name): Concat symbol name
3409         and symbol order.
3410         * lto-streamer.h (lto_get_section_data): Add order argument.
3411         (lto_get_summary_section_data): New.
3412         (lto_get_raw_section_data): Add order argument.
3413         (lto_get_section_name): Likewise.
3414         * varpool.c (varpool_node::get_constructor): Pass order argument.
3416 2019-10-30  Jakub Jelinek  <jakub@redhat.com>
3418         PR tree-optimization/92262
3419         * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare
3420         ubase or cbase here.
3421         (remove_unused_ivs): Unshare comp before using it.
3423 2019-10-30  Jan Hubicka  <hubicka@ucw.cz>
3425         * ipa-prop.c (update_jump_functions_after_inlining):
3426         Watch for missing summaries.
3428 2019-10-30  Richard Biener  <rguenther@suse.de>
3430         PR tree-optimization/65930
3431         * tree-vect-loop.c (vect_is_simple_reduction): For reduction
3432         chains also allow a leading and trailing conversion.
3433         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
3434         intermediate reduction chains.
3435         (vect_analyze_slp_instance): Likewise.  Build a SLP
3436         node for a trailing conversion manually.
3438 2019-10-30  Martin Liska  <mliska@suse.cz>
3440         * cgraph.c (cgraph_node::local_info): Transform to ...
3441         (cgraph_node::local_info_node): ... this.
3442         (cgraph_node::dump): Remove cgraph_local_info and
3443         put its fields directly into cgraph_node.
3444         (cgraph_node::get_availability): Likewise.
3445         (cgraph_node::make_local): Likewise.
3446         (cgraph_node::verify_node): Likewise.
3447         * cgraph.h (struct GTY): Likewise.
3448         * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise.
3449         (duplicate_thunk_for_node): Likewise.
3450         (cgraph_node::create_clone): Likewise.
3451         (cgraph_node::create_virtual_clone): Likewise.
3452         (cgraph_node::create_version_clone): Likewise.
3453         * cgraphunit.c (cgraph_node::reset): Likewise.
3454         (cgraph_node::finalize_function): Likewise.
3455         (cgraph_node::add_new_function): Likewise.
3456         (analyze_functions): Likewise.
3457         * combine.c (setup_incoming_promotions): Likewise.
3458         * config/i386/i386.c (ix86_function_regparm): Likewise.
3459         (ix86_function_sseregparm): Likewise.
3460         (init_cumulative_args): Likewise.
3461         * ipa-cp.c (determine_versionability): Likewise.
3462         (count_callers): Likewise.
3463         (set_single_call_flag): Likewise.
3464         (initialize_node_lattices): Likewise.
3465         (estimate_local_effects): Likewise.
3466         (create_specialized_node): Likewise.
3467         (identify_dead_nodes): Likewise.
3468         * ipa-fnsummary.c (compute_fn_summary): Likewise.
3469         (ipa_fn_summary_generate): Likewise.
3470         * ipa-hsa.c (check_warn_node_versionable): Likewise.
3471         (process_hsa_functions): Likewise.
3472         * ipa-icf.c (set_local): Likewise.
3473         * ipa-inline-analysis.c (initialize_inline_failed): Likewise.
3474         * ipa-inline.c (speculation_useful_p): Likewise.
3475         * ipa-profile.c (ipa_propagate_frequency): Likewise.
3476         (ipa_profile): Likewise.
3477         * ipa-split.c (split_function): Likewise.
3478         (execute_split_functions): Likewise.
3479         * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise.
3480         (ipa_sra_ipa_function_checks): Likewise.
3481         * ipa-visibility.c (function_and_variable_visibility): Likewise.
3482         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
3483         * lto-cgraph.c (lto_output_node): Likewise.
3484         (input_overwrite_node): Likewise.
3485         * multiple_target.c (expand_target_clones): Likewise.
3486         * omp-simd-clone.c (simd_clone_create): Likewise.
3487         * trans-mem.c (expand_call_tm): Likewise.
3488         (ipa_tm_mayenterirr_function): Likewise.
3489         (ipa_tm_diagnose_tm_safe): Likewise.
3490         (ipa_tm_diagnose_transaction): Likewise.
3491         (ipa_tm_create_version): Likewise.
3492         (ipa_tm_transform_calls_redirect): Likewise.
3493         (ipa_tm_execute): Likewise.
3494         * tree-inline.c (expand_call_inline): Likewise.
3496 2019-10-29  Martin Liska  <mliska@suse.cz>
3498         * symbol-summary.h (function_summary): Pass memory location
3499         to underlaying hash_map (or vec).
3500         (V>::fast_function_summary): Likewise.
3502 2019-10-29  Martin Liska  <mliska@suse.cz>
3504         * ggc.h (ggc_alloc_no_dtor): New function.
3505         * ipa-fnsummary.c (ipa_free_fn_summary): Call
3506         destructor and ggc_free.
3507         (ipa_free_size_summary): Call delete instead
3508         of release.
3509         * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor.
3510         * ipa-prop.c (ipa_check_create_edge_args): Likewise.
3511         (ipa_free_all_edge_args): Call destructor and ggc_free.
3512         (ipa_free_all_node_params): Likewise.
3513         (ipcp_free_transformation_sum): Likewise.
3514         * ipa-prop.h (ipa_check_create_node_params):
3515         Call new ggc_alloc_no_dtor.
3516         * ipa-sra.c (ipa_sra_generate_summary): Likewise.
3517         (ipa_sra_analysis): Call destructor and ggc_free.
3518         Replace release with delete operator.
3519         * symbol-summary.h (release): Remove ..
3520         (V>::~fast_function_summary): and move logic here.
3521         Likewise for other classes.
3523 2019-10-29  Richard Biener  <rguenther@suse.de>
3525         PR tree-optimization/92260
3526         * tree-vect-slp.c (vect_get_constant_vectors): Special-case
3527         lane-reducing ops.
3529 2019-10-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3531         PR tree-optimization/88915
3532         * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
3533         * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
3534         and make the valueize function pointer also take a void pointer.
3535         * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap
3536         around vn_valueize, to call it without a context.
3537         (process_bb): Use vn_valueize_wrapper instead of vn_valueize.
3538         * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos.
3539         (~_loop_vec_info): Release epilogue_vinfos.
3540         (vect_analyze_loop_costing): Use knowledge of main VF to estimate
3541         number of iterations of epilogue.
3542         (vect_analyze_loop_2): Adapt to analyse main loop for all supported
3543         vector sizes when vect-epilogues-nomask=1.  Also keep track of lowest
3544         versioning threshold needed for main loop.
3545         (vect_analyze_loop): Likewise.
3546         (find_in_mapping): New helper function.
3547         (update_epilogue_loop_vinfo): New function.
3548         (vect_transform_loop): When vectorizing epilogues re-use analysis done
3549         on main loop and call update_epilogue_loop_vinfo to update it.
3550         * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert
3551         stmts on loop preheader edge.
3552         (vect_do_peeling): Enable skip-vectors when doing loop versioning if
3553         we decided to vectorize epilogues.  Update epilogues NITERS and
3554         construct ADVANCE to update epilogues data references where needed.
3555         * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos.
3556         (vect_do_peeling, vect_update_inits_of_drs,
3557          determine_peel_for_niter, vect_analyze_loop): Add or update
3558         declarations.
3559         * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already
3560         created loop_vec_info's for epilogues when available.  Otherwise analyse
3561         epilogue separately.
3563 2019-10-29  Richard Biener  <rguenther@suse.de>
3565         * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT
3566         example.
3568 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
3570         * tree-vect-stmts.c (vectorizable_condition): Get the reduction
3571         index for the COND_EXPR from stmt_info rather than reduc_info.
3573 2019-10-29  Richard Biener  <rguenther@suse.de>
3575         PR tree-optimization/65930
3576         * tree-vect-loop.c (check_reduction_path): Relax single-use
3577         check allowing out-of-loop uses.
3578         (vect_is_simple_reduction): SLP reduction chains cannot have
3579         intermediate stmts used outside of the loop.
3580         (vect_create_epilog_for_reduction): The adjustment might need
3581         to be converted.
3582         (vectorizable_reduction): Annotate live stmts of the reduction
3583         chain with STMT_VINFO_REDUC_DEF.
3584         * tree-vect-stms.c (process_use): Remove no longer true asserts.
3586 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
3588         * calls.c (pass_by_reference): Leave the target to decide whether
3589         POLY_INT_CST-sized arguments should be passed by value or reference,
3590         rather than forcing them to be passed by reference.
3591         (must_pass_in_stack_var_size): Likewise.
3592         * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from
3593         V31_REGNUM to P15_REGNUM.
3594         * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args):
3595         Take an extra "silent_p" parameter, defaulting to false.
3596         (aarch64_sve::svbool_type_p): Declare.
3597         (aarch64_sve::nvectors_if_data_type): Likewise.
3598         * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro.
3599         (aarch64_frame::reg_offset): Turn into poly_int64s.
3600         (aarch64_frame::save_regs_size): Likewise.
3601         (aarch64_frame::below_hard_fp_saved_regs_size): New field.
3602         (aarch64_frame::sve_callee_adjust): Likewise.
3603         (aarch64_frame::spare_reg_reg): Likewise.
3604         (ARM_PCS_SVE): New arm_pcs value.
3605         (CUMULATIVE_ARGS::aapcs_nprn): New field.
3606         (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise.
3607         (CUMULATIVE_ARGS::silent_p): Likewise.
3608         (BITS_PER_SVE_PRED): New macro.
3609         * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New
3610         function.  Reject aarch64_vector_pcs attributes on SVE functions.
3611         (aarch64_attribute_table): Use the above handler.
3612         (aarch64_sve_abi): New function.
3613         (aarch64_sve_argument_p): Likewise.
3614         (aarch64_returns_value_in_sve_regs_p): Likewise.
3615         (aarch64_takes_arguments_in_sve_regs_p): Likewise.
3616         (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS
3617         descriptor for them.
3618         (aarch64_simd_decl_p): Delete.
3619         (aarch64_emit_cfi_for_reg_p): New function.
3620         (aarch64_reg_save_mode): Remove the fndecl argument and instead use
3621         crtl->abi to choose the mode for FP registers.  Handle the SVE PCS.
3622         (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers
3623         as partly clobbered for the SVE PCS.
3624         (aarch64_function_ok_for_sibcall): Check whether the two functions
3625         use the same ABI, rather than checking specifically for whether
3626         they're aarch64_vector_pcs functions.
3627         (aarch64_pass_by_reference): Raise an error for attempts to pass
3628         SVE arguments when SVE is disabled.  Pass SVE arguments by reference
3629         if there are not enough free registers left, or if the argument is
3630         variadic.
3631         (aarch64_function_value): Handle SVE predicates, vectors and tuples.
3632         (aarch64_return_in_memory): Do not return SVE predicates, vectors and
3633         tuples in memory.
3634         (aarch64_layout_arg): Take a function_arg_info rather than
3635         individual properties.  Handle SVE predicates, vectors and tuples.
3636         Raise an error if they are passed to unprototyped functions.
3637         (aarch64_function_arg): If the silent_p flag is set, suppress the
3638         usual error about using float registers without TARGET_FLOAT.
3639         (aarch64_init_cumulative_args): Take a silent_p parameter and store
3640         it in the cumulative_args structure.  Initialize aapcs_nprn and
3641         aapcs_nextnprn.  If the silent_p flag is set, suppress the usual
3642         error about using float registers without TARGET_FLOAT.
3643         If the silent_p flag is not set, also raise an error about
3644         using SVE functions when SVE is disabled.
3645         (aarch64_function_arg_advance): Update the call to aarch64_layout_arg,
3646         and call it for SVE functions too.  Update aapcs_nprn similarly
3647         to the other register counts.
3648         (aarch64_layout_frame): If a big-endian function needs to save
3649         and restore Z8-Z15, search for a spare predicate that it can use.
3650         Store SVE predicates at the bottom of the register save area,
3651         followed by SVE vectors, then followed by the normal slots.
3652         Keep pointing the hard frame pointer at the base of the normal slots,
3653         above the SVE vectors.  Update the various frame creation and
3654         tear-down strategies for the new layout, initializing the new
3655         sve_callee_adjust field.  Add an additional layout for frames
3656         whose saved registers are all SVE registers.
3657         (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets.
3658         (aarch64_return_address_signing_enabled): Likewise.
3659         (aarch64_push_regs, aarch64_pop_regs): Update calls to
3660         aarch64_reg_save_mode.
3661         (aarch64_adjust_sve_callee_save_base): New function.
3662         (aarch64_add_cfa_expression): Move earlier in file.  Take the
3663         saved register as an rtx rather than a register number and use
3664         its mode for the MEM slot.
3665         (aarch64_save_callee_saves): Remove the mode argument and instead
3666         use aarch64_reg_save_mode to get the mode of each save slot.
3667         Add a hard_fp_valid_p parameter.  Cope with poly_int64 register
3668         offsets.  Allow GP offsets to be saved at a VL-based offset from
3669         the stack, handling this case using the frame pointer if available
3670         or a temporary register otherwise.  Use ST1D to save Z8-Z15 for
3671         big-endian SVE functions; use normal moves for other SVE saves.
3672         Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p
3673         returns true.  Add explicit CFA notes when not storing via the
3674         stack pointer.  Do not try to pair SVE saves.
3675         (aarch64_restore_callee_saves): Cope with poly_int64 register
3676         offsets.  Use LD1D to restore Z8-Z15 for big-endian SVE functions;
3677         use normal moves for other SVE restores.  Only add CFA restore notes
3678         if aarch64_emit_cfi_for_reg_p returns true.  Do not try to pair
3679         SVE restores.
3680         (aarch64_get_separate_components): Always keep the first SVE save
3681         in the prologue if we need to use it as a stack probe.  Don't allow
3682         Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets.
3683         Likewise the spare predicate register that they need.  Update the
3684         offset calculation to account for the SVE save area.  Use the
3685         appropriate range check for SVE LDR and STR instructions.
3686         (aarch64_components_for_bb): Cope with poly_int64 reg_offsets.
3687         (aarch64_process_components): Likewise.  Update the offset
3688         calculation to account for the SVE save area.  Only mark the
3689         save as frame-related if aarch64_emit_cfi_for_reg_p returns true.
3690         Do not try to pair SVE saves.
3691         (aarch64_allocate_and_probe_stack_space): Cope with poly_int64
3692         reg_offsets.  When handling the final allocation, expect the
3693         first SVE register save to be part of the initial allocation
3694         and for it to act as a probe at SP.  Account for the SVE callee
3695         save area in the dump information.
3696         (aarch64_expand_prologue): Update the frame diagram.  Fold the
3697         SVE callee allocation into the initial allocation if stack clash
3698         protection is enabled.  Use new variables to track the offset
3699         of the frame chain (and hard frame pointer) from the current
3700         stack pointer, and likewise the offset of the bottom of the
3701         register save area.  Update calls to aarch64_save_callee_saves
3702         and aarch64_add_cfa_expression.  Apply sve_callee_adjust before
3703         saving the FP&SIMD registers.  Save the predicate registers.
3704         (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size
3705         into account when setting the stack pointer from the frame pointer,
3706         and when deciding whether we can inherit the initial adjustment
3707         amount from the prologue.  Restore the predicate registers after
3708         the vector registers, then apply sve_callee_adjust, then restore
3709         the general registers.
3710         (aarch64_secondary_reload): Don't use secondary SVE reloads
3711         for VNx16BImode.
3712         (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type.
3713         (aarch64_short_vector_p): Return false for SVE types.
3714         (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha
3715         at the start of the function.  Return false for SVE types.
3716         (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE
3717         functions too.
3718         (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming.
3719         * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend
3720         to big-endian targets for bytewise moves.
3721         (*aarch64_sve_mov<mode>_be): Exclude the bytewise case.
3723 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
3724             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
3725             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3727         * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers.
3728         Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and
3729         aarch64-sve-builtins-base.o to extra_objs.  Add
3730         aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles.
3731         * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule.
3732         (aarch64-sve-builtins-shapes.o): Likewise.
3733         (aarch64-sve-builtins-base.o): New rules.
3734         * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function.
3735         (aarch64_resolve_overloaded_builtin): Likewise.
3736         (aarch64_check_builtin_call): Likewise.
3737         (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin
3738         and aarch64_check_builtin_call in targetm.  Register the GCC aarch64
3739         pragma.
3740         * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro.
3741         (aarch64_svprfop): New enum.
3742         (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value.
3743         (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare.
3744         (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise.
3745         (aarch64_output_sve_cnt_pat_immediate): Likewise.
3746         (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise.
3747         (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p)
3748         (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p)
3749         (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise.
3750         (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise.
3751         (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise.
3752         (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise.
3753         (aarch64_sve::mangle_builtin_type): Likewise.
3754         (aarch64_sve::resolve_overloaded_builtin): Likewise.
3755         (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin)
3756         (aarch64_sve::expand_builtin): Likewise.
3757         * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public.
3758         (aarch64_sve_int_mode): Likewise.
3759         (aarch64_ptrue_all_mode): New function.
3760         (aarch64_convert_sve_data_to_pred): Make public.
3761         (svprfop_token): New function.
3762         (aarch64_output_sve_prefetch): Likewise.
3763         (aarch64_fold_sve_cnt_pat): Likewise.
3764         (aarch64_output_sve_cnt_pat_immediate): Likewise.
3765         (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO
3766         instead of gen_while_ult.
3767         (aarch64_replace_reg_mode): Make public.
3768         (aarch64_init_builtins): Call aarch64_sve::init_builtins.
3769         (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE.
3770         (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise.
3771         (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise.
3772         (aarch64_mangle_type): Call aarch64_sve::mangle_type.
3773         (aarch64_sve_sqadd_sqsub_immediate_p): New function.
3774         (aarch64_sve_ptrue_svpattern_p): Likewise.
3775         (aarch64_sve_pred_valid_immediate): Check
3776         aarch64_sve_ptrue_svpattern_p.
3777         (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p)
3778         (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New
3779         functions.
3780         * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE)
3781         (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS)
3782         (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR)
3783         (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR)
3784         (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH)
3785         (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE):
3786         New unspecs.
3787         * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY)
3788         (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW)
3789         (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators.
3790         (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA)
3791         (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV)
3792         (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD)
3793         (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs.
3794         (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise.
3795         (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise.
3796         (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise.
3797         (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise.
3798         (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270)
3799         (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180)
3800         (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise.
3801         (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise.
3802         (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise.
3803         (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise.
3804         (Vesize): Handle partial vector modes.
3805         (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New
3806         mode attributes.
3807         (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code
3808         iterators.
3809         (s, paired_extend, inc_dec): New code attributes.
3810         (SVE_INT_ADDV, CLAST, LAST): New int iterators.
3811         (SVE_INT_UNARY): Add UNSPEC_RBIT.
3812         (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators.
3813         (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise.
3814         (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX.
3815         (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
3816         UNSPEC_COND_FMULX.
3817         (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators.
3818         (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise.
3819         (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3820         (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX.
3821         (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA)
3822         (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE)
3823         (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY)
3824         (SVE_BRK_BINARY, SVE_PITER): New int iterators.
3825         (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE,
3826         UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT,
3827         UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS,
3828         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270,
3829         UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90,
3830         UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90,
3831         UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX,
3832         UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and
3833         UNSPEC_COND_FSCALE.
3834         (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN.
3835         (binqops_op, binqops_op_rev, last_op): New int attributes.
3836         (su): Handle UNSPEC_SADDV and UNSPEC_UADDV.
3837         (fn, ab): New int attributes.
3838         (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*.
3839         (while_optab_cmp, brk_op, sve_pred_op): New int attributes.
3840         (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART,
3841         UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and
3842         UNSPEC_RBIT.
3843         (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE,
3844         UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL,
3845         UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX,
3846         UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE.
3847         (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and
3848         UNSPEC_COND_FMULX.
3849         (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*.
3850         (brk_reg_con, brk_reg_opno): New int attributes.
3851         (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle
3852         UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX.
3853         (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and
3854         UNSPEC_COND_FMIN.
3855         (max_elem_bits): New int attribute.
3856         (min_elem_bits): Handle UNSPEC_RBIT.
3857         * config/aarch64/predicates.md (subreg_lowpart_operator): Handle
3858         TRUNCATE as well as SUBREG.
3859         (ascending_int_parallel, aarch64_simd_reg_or_minus_one)
3860         (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand)
3861         (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate)
3862         (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate)
3863         (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h)
3864         (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d)
3865         (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b)
3866         (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w)
3867         (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b)
3868         (aarch64_gather_scale_operand_h): New predicates.
3869         * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb)
3870         (vgd, vgh, vgw, vsQ, vsS): New constraints.
3871         * config/aarch64/aarch64-sve.md: Add a note on the FFR handling.
3872         (*aarch64_sve_reinterpret<mode>): Allow any source register
3873         instead of requiring an exact match.
3874         (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc)
3875         (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest)
3876         (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt)
3877         (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest)
3878         (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc)
3879         (aarch64_update_ffrt): New patterns.
3880         (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3881         (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3882         (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3883         (@aarch64_ld<fn>f1<mode>): New patterns.
3884         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>)
3885         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3886         (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3887         (@aarch64_ldnt1<mode>): New patterns.
3888         (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3889         the scalar part of the address.
3890         (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the
3891         scalar part of the addresse and add an alternative for handling
3892         nonzero offsets.
3893         (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3894         (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw)
3895         (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3896         (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3897         (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3898         (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3899         (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>)
3900         (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw)
3901         (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>)
3902         (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>)
3903         (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw)
3904         (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw)
3905         (@aarch64_sve_prefetch<mode>): New patterns.
3906         (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>)
3907         (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>)
3908         (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw)
3909         (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw)
3910         (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>)
3911         (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3912         (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3913         (@aarch64_stnt1<mode>): New patterns.
3914         (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for
3915         the scalar part of the address.
3916         (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for
3917         the scalar part of the addresse and add an alternative for handling
3918         nonzero offsets.
3919         (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d.
3920         (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw)
3921         (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>)
3922         (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>)
3923         (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw)
3924         (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw):
3925         New patterns.
3926         (vec_duplicate<mode>): Use QI as the mode of the input operand.
3927         (extract_last_<mode>): Generalize to...
3928         (@extract_<LAST:last_op>_<mode>): ...this.
3929         (*<SVE_INT_UNARY:optab><mode>2): Rename to...
3930         (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this.
3931         (@cond_<SVE_INT_UNARY:optab><mode>): New expander.
3932         (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern.
3933         (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise.
3934         (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders.
3935         (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern.
3936         (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise.
3937         (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to...
3938         (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this.
3939         (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander.
3940         (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to...
3941         (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this.
3942         (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns.
3943         (*aarch64_adr_uxtw_unspec): Likewise.
3944         (*aarch64_adr_uxtw): Rename to...
3945         (*aarch64_adr_uxtw_and): ...this.
3946         (@aarch64_adr<mode>_shift): New expander.
3947         (*aarch64_adr_shift_sxtw): New pattern.
3948         (aarch64_<su>abd<mode>_3): Rename to...
3949         (@aarch64_pred_<su>abd<mode>): ...this.
3950         (<su>abd<mode>_3): Update accordingly.
3951         (@aarch64_cond_<su>abd<mode>): New expander.
3952         (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern.
3953         (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise.
3954         (*<su>mul<mode>3_highpart): Rename to...
3955         (@aarch64_pred_<optab><mode>): ...this.
3956         (@cond_<MUL_HIGHPART:optab><mode>): New expander.
3957         (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern.
3958         (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise.
3959         (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to...
3960         (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this.
3961         (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker.
3962         (@aarch64_bic<mode>, @cond_bic<mode>): New expanders.
3963         (*v<ASHIFT:optab><mode>3): Rename to...
3964         (@aarch64_pred_<ASHIFT:optab><mode>): ...this.
3965         (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern.
3966         (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander.
3967         (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern.
3968         (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise.
3969         (@cond_asrd<mode>): New expander.
3970         (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns.
3971         (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2.
3972         (*sdiv_pow2<mode>3): Delete.
3973         (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander.
3974         (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern.
3975         (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise.
3976         (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern.
3977         (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise.
3978         (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to...
3979         (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this.
3980         (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern.
3981         (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker.
3982         (*add<SVE_F:mode>3): Rename to...
3983         (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives
3984         for SVE_STRICT_GP.
3985         (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern.
3986         (@cond_<SVE_COND_FCADD:optab><mode>): New expander.
3987         (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern.
3988         (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise.
3989         (*sub<SVE_F:mode>3): Rename to...
3990         (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives
3991         for SVE_STRICT_GP.
3992         (@aarch64_pred_abd<SVE_F:mode>): New expander.
3993         (*fabd<SVE_F:mode>3): Rename to...
3994         (*aarch64_pred_abd<SVE_F:mode>): ...this.
3995         (@aarch64_cond_abd<SVE_F:mode>): New expander.
3996         (*mul<SVE_F:mode>3): Rename to...
3997         (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives
3998         for SVE_STRICT_GP.
3999         (@aarch64_mul_lane_<SVE_F:mode>): New pattern.
4000         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize
4001         to...
4002         (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this.
4003         (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern.
4004         (*<nlogical><PRED_ALL:mode>3): Rename to...
4005         (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this.
4006         (*<nlogical><PRED_ALL:mode>3_cc): New pattern.
4007         (*<nlogical><PRED_ALL:mode>3_ptest): Likewise.
4008         (*<logical_nn><PRED_ALL:mode>3): Rename to...
4009         (aarch64_pred_<logical_nn><mode>_z): ...this.
4010         (*<logical_nn><PRED_ALL:mode>3_cc): New pattern.
4011         (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise.
4012         (*fma<SVE_I:mode>4): Rename to...
4013         (@aarch64_pred_fma<SVE_I:mode>): ...this.
4014         (*fnma<SVE_I:mode>4): Rename to...
4015         (@aarch64_pred_fnma<SVE_I:mode>): ...this.
4016         (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern.
4017         (*<SVE_FP_TERNARY:optab><mode>4): Rename to...
4018         (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this.
4019         (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker.
4020         (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern.
4021         (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise.
4022         (@cond_<SVE_COND_FCMLA:optab><mode>): New expander.
4023         (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern.
4024         (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise.
4025         (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise.
4026         (@aarch64_sve_tmad<mode>): Likewise.
4027         (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker.
4028         (*aarch64_sel_dup<mode>): Rename to...
4029         (@aarch64_sel_dup<mode>): ...this.
4030         (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern.
4031         (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise.
4032         (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise.
4033         (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to...
4034         (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this.
4035         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to.
4036         (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this.
4037         (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern.
4038         (*fcm<cmp_op><mode>): Rename to...
4039         (@aarch64_pred_fcm<cmp_op><mode>): ...this.  Make operand order
4040         match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
4041         (*fcmuo<mode>): Rename to...
4042         (@aarch64_pred_fcmuo<mode>): ...this.  Make operand order
4043         match @aarch64_pred_cmp<cmp_op><SVE_I:mode>.
4044         (@aarch64_pred_fac<cmp_op><mode>): New expander.
4045         (@vcond_mask_<PRED_ALL:mode><mode>): New pattern.
4046         (fold_extract_last_<mode>): Generalize to...
4047         (@fold_extract_<last_op>_<mode>): ...this.
4048         (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern.
4049         (*reduc_plus_scal_<SVE_I:mode>): Replace with...
4050         (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the
4051         DImode result explicit.
4052         (reduc_plus_scal_<mode>): Update accordingly.
4053         (*reduc_<optab>_scal_<SVE_I:mode>): Rename to...
4054         (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this.
4055         (*reduc_<optab>_scal_<SVE_F:mode>): Rename to...
4056         (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this.
4057         (*aarch64_sve_tbl<mode>): Rename to...
4058         (@aarch64_sve_tbl<mode>): ...this.
4059         (@aarch64_sve_compact<mode>): New pattern.
4060         (*aarch64_sve_dup_lane<mode>): Rename to...
4061         (@aarch64_sve_dup_lane<mode>): ...this.
4062         (@aarch64_sve_dupq_lane<mode>): New pattern.
4063         (@aarch64_sve_splice<mode>): Likewise.
4064         (aarch64_sve_<perm_insn><mode>): Rename to...
4065         (@aarch64_sve_<perm_insn><mode>): ...this.
4066         (*aarch64_sve_ext<mode>): Rename to...
4067         (@aarch64_sve_ext<mode>): ...this.
4068         (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker.
4069         (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename
4070         to...
4071         (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this.
4072         (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
4073         Rename to...
4074         (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
4075         ...this.
4076         (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander.
4077         (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise.
4078         (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern.
4079         (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename
4080         to...
4081         (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this.
4082         (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add
4083         a "@" marker.
4084         (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander.
4085         (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise.
4086         (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New
4087         pattern.
4088         (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to...
4089         (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this.
4090         (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander.
4091         (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern.
4092         (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a
4093         "@" marker.
4094         (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander.
4095         (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern.
4096         (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker.
4097         (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern.
4098         (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise.
4099         (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise.
4100         (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise.
4101         (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise.
4102         (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise.
4103         (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise.
4104         (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise.
4105         (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise.
4106         (aarch64_sve_cnt_pat): Likewise.
4107         (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
4108         (*aarch64_sve_incsi_pat): Likewise.
4109         (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
4110         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
4111         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
4112         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
4113         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
4114         (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise.
4115         (*aarch64_sve_decsi_pat): Likewise.
4116         (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise.
4117         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise.
4118         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise.
4119         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander.
4120         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern.
4121         (@aarch64_pred_cntp<mode>): Likewise.
4122         (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
4123         New expander.
4124         (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
4125         (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
4126         (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
4127         New expander.
4128         (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
4129         New pattern.
4130         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander.
4131         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
4132         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander.
4133         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
4134         (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander.
4135         (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
4136         (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp):
4137         New expander.
4138         (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp)
4139         (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns.
4140         (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
4141         New expander.
4142         (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp):
4143         New pattern.
4144         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New
4145         expander.
4146         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern.
4147         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New
4148         expander.
4149         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern.
4150         (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New
4151         expander.
4152         (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern.
4153         * config/aarch64/arm_sve.h: New file.
4154         * config/aarch64/aarch64-sve-builtins.h: Likewise.
4155         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
4156         * config/aarch64/aarch64-sve-builtins.def: Likewise.
4157         * config/aarch64/aarch64-sve-builtins-base.h: Likewise.
4158         * config/aarch64/aarch64-sve-builtins-base.cc: Likewise.
4159         * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
4160         * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
4161         * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise.
4162         * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
4164 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4166         * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>):
4167         New pattern.
4168         * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all
4169         SVE modes.
4171 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4173         * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants.
4174         * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to
4175         FFRT_REGNUM + 1.
4176         (FFR_REGS, PR_AND_FFR_REGS): New register classes.
4177         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them.
4178         * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function.
4179         (aarch64_hard_regno_nregs): Handle the new register classes.
4180         (aarch64_hard_regno_mode_ok): Likewise.
4181         (aarch64_regno_regclass): Likewise.
4182         (aarch64_class_max_nregs): Likewise.
4183         (aarch64_register_move_cost): Likewise.
4184         (aarch64_conditional_register_usage): Don't treat FFR and FFRT
4185         as general register_operands.
4187 2019-10-29  Martin Liska  <mliska@suse.cz>
4189         * ggc-common.c: One can't subtract unsigned types
4190         in compare function.
4192 2019-10-29  Martin Liska  <mliska@suse.cz>
4194         * cgraphunit.c (symbol_table::compile): Pass
4195         title as dump_memory_report argument.
4196         * toplev.c (dump_memory_report):  New argument.
4197         (finalize): Pass new argument.
4198         * toplev.h (dump_memory_report): Add argument.
4200 2019-10-29  Martin Liska  <mliska@suse.cz>
4202         * ggc-common.c: Move Leak to the first column.
4204 2019-10-29  Martin Liska  <mliska@suse.cz>
4206         * cgraphunit.c (symbol_table::compile): Remove argument
4207         for dump_memory_report.
4208         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
4209         (compare_final): Remove in order to make report
4210         better readable.
4211         * ggc.h (dump_ggc_loc_statistics):  Remove argument.
4212         * mem-stats.h (mem_alloc_description::get_list):
4213         Do not pass cmp.
4214         (mem_alloc_description::dump): Likewise here.
4215         * toplev.c (dump_memory_report): Remove final
4216         argument.
4217         (finalize): Likewise.
4218         * toplev.h (dump_memory_report): Remove argument.
4220 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4222         * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p)
4223         (aarch64_simd_shift_imm_p): Accept scalars as well as vectors.
4224         * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate)
4225         (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't
4226         accept "const".
4228 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4230         * coretypes.h (string_int_pair): New typedef.
4231         * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define.
4232         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it.
4233         * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook.
4235 2019-10-29  Richard Sandiford  <richard.sandiford@arm.com>
4237         * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook.
4238         (simulate_builtin_function_decl): Declare.
4239         * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define.
4240         (LANG_HOOKS_INITIALIZER): Include it.
4241         * langhooks.c (add_builtin_function_common): Rename to...
4242         (build_builtin_function): ...this.  Add a location parameter and use
4243         it instead of BUILTINS_LOCATION.  Remove the hook parameter and return
4244         the decl instead.
4245         (add_builtin_function): Update accordingly, passing the returned
4246         decl to the lang hook.
4247         (add_builtin_function_ext_scope): Likewise
4248         (simulate_builtin_function_decl): New function.
4250 2019-10-29  Jakub Jelinek  <jakub@redhat.com>
4252         * doc/install.texi (--enable-offload-targets): Fix up a typo in the
4253         example, use actual names of supported offload targets.
4255         PR target/92258
4256         * config/i386/sse.md (iptr): Revert 2019-10-27 change.
4258 2019-10-28  Martin Sebor  <msebor@redhat.com>
4260         * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it.
4261         (handle_store): Pass argument to get_addr_stridx.
4263 2019-10-28  Martin Sebor  <msebor@redhat.com>
4265         PR tree-optimization/92226
4266         * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when
4267         the offset is in the open range outlined by SI's length.
4269 2019-10-28  Martin Sebor  <msebor@redhat.com>
4271         PR c/66970
4272         * doc/cpp.texi (__has_builtin): Document.
4273         * doc/extend.texi (__builtin_frob_return_addr): Correct spelling.
4275 2019-10-28  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
4277         PR target/82981
4278         * config/mips/mips.md (<u>mulditi3): Generate patterns for high
4279         doubleword and low doubleword result of multiplication on
4280         MIPS64R6.
4282         * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a
4283         pure qualifier to the built-in.
4284         (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA
4285         built-ins.
4286         (struct mips_builtin_description): Add is_pure flag.
4287         (mips_init_builtins): Mark built-in as pure if the flag in the
4288         corresponding mips_builtin_description struct is set.
4290         * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an
4291         alternative which covers the floating-point input value. Also
4292         forbid the split of insert.d pattern for floating-point values.
4294 2019-10-28  Andrew Burgess  <andrew.burgess@embecosm.com>
4296         * config.gcc: Add riscv-sr.o to extra_objs for riscv.
4297         * config/riscv/riscv-sr.c: New file.
4298         * config/riscv/riscv.c (riscv_reorg): New function.
4299         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4300         * config/riscv/riscv.h (SIBCALL_REG_P): Define.
4301         (riscv_remove_unneeded_save_restore_calls): Declare.
4302         * config/riscv/t-riscv (riscv-sr.o): New build rule.
4304 2019-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4306         PR tree-optimization/92163
4307         * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param
4308         need_eh_cleanup with default value NULL. Gate on need_eh_cleanup
4309         before calling bitmap_set_bit.
4310         (dse_optimize_redundant_stores): Pass global need_eh_cleanup to
4311         delete_dead_or_redundant_assignment.
4312         (dse_dom_walker::dse_optimize_stmt): Likewise.
4313         * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype.
4315 2019-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4317         PR middle-end/91272
4318         * tree-vect-stmts.c (vectorizable_condition): Support
4319         EXTRACT_LAST_REDUCTION with fully-masked loops.
4321 2019-10-28  Richard Biener  <rguenther@suse.de>
4323         PR tree-optimization/92252
4324         * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust
4325         STMT_VINFO_REDUC_IDX when swapping operands.
4327 2019-10-28  Richard Biener  <rguenther@suse.de>
4329         PR tree-optimization/92241
4330         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When
4331         we failed to update the reduction index do not use the pattern
4332         stmts for the reduction chain.
4333         (vectorizable_reduction): When the reduction chain is corrupt,
4334         fail.
4335         * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we
4336         fail to update the reduction chain.
4338 2019-10-28  Richard Biener  <rguenther@suse.de>
4340         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
4341         STMT_VINFO_REDUC_IDX from the actual stmt.
4342         (vect_transform_reduction): Likewise.
4343         (vectorizable_reduction): Compute the reduction chain length,
4344         do not recompute the reduction operand index.  Remove no longer
4345         necessary restriction for condition reduction chains.
4347 2019-10-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4349         PR target/92225
4350         * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
4351         condition for V2DImode.
4353 2019-10-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4355         * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2):
4356         Remove %k operand modifier.
4357         (*vec_extractv2df_1_sse): Remove %q operand modifier.
4359 2019-10-28  Ilya Leoshkevich  <iii@linux.ibm.com>
4361         PR rtl-optimization/92007
4362         * cfgcleanup.c (thread_jump): Add an assertion that we don't
4363         call it after reload if hot/cold partitioning has been done.
4364         (class pass_postreload_jump): Rename to
4365         pass_jump_after_combine.
4366         (make_pass_postreload_jump): Rename to
4367         make_pass_jump_after_combine.
4368         * passes.def(pass_postreload_jump): Move before reload, rename
4369         to pass_jump_after_combine.
4370         * tree-pass.h (make_pass_postreload_jump): Rename to
4371         make_pass_jump_after_combine.
4373 2019-10-25  Jan Hubicka  <hubicka@ucw.cz>
4375         PR ipa/92242
4376         * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check
4377         for missing EDGE_REF
4378         * ipa-prop.c (update_jump_functions_after_inlining): Likewise.
4380 2019-10-25  Jiufu Guo  <guojiufu@linux.ibm.com>
4382         PR tree-optimization/88760
4383         * config/rs6000/rs6000-common.c (rs6000_option_optimization_table):
4384         Enable -funroll-loops for -O2 and above.
4385         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4386         PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and
4387         do not turn on web and rngreg implicitly, if the unroller is not
4388         explicitly enabled.
4390 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
4392         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove
4393         jump functions.
4395 2019-10-27  Eric Botcazou <ebotcazou@adacore.com>
4397         * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment.
4398         * cgraph.h (cgraph_node::rtl_info): Likewise.
4400 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
4402         * ipa-cp.c (propagate_constants_across_call): If args are not available
4403         just drop everything to varying.
4404         (find_aggregate_values_for_callers_subset): Watch for missing
4405         edge summary.
4406         (find_more_scalar_values_for_callers_subs): Likewise.
4407         * ipa-prop.c (ipa_compute_jump_functions_for_edge,
4408         update_jump_functions_after_inlining, propagate_controlled_uses):
4409         Watch for missing summaries.
4410         (ipa_propagate_indirect_call_infos): Remove summary after propagation
4411         is finished.
4412         (ipa_write_node_info): Watch for missing summaries.
4413         (ipa_read_edge_info): Create new ref.
4414         (ipa_edge_args_sum_t): Add remove.
4415         (IPA_EDGE_REF_GET_CREATE): New macro.
4416         * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing
4417         edge summary.
4418         (remap_edge_change_prob): Likewise.
4420 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
4422         * ipa-inline-transform.c (inline_call): update function summaries
4423         after expanidng thunk.
4425 2019-10-27  Jan Hubicka  <hubicka@ucw.cz>
4427         * ipa-icf.c (sem_function::merge): Update function summaries.
4428         * ipa-prop.h (ipa_get_param): Do not sanity check for WPA.
4430 2019-10-27  Hongtao Liu  <hongtao.liu@intel.com>
4432         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3,
4433         <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since
4434         operand already has scalar mode.
4435         (iptr): Remove SF/DF.
4437 2019-10-26  Segher Boessenkool  <segher@kernel.crashing.org>
4439         PR target/91289
4440         * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add
4441         an immediate to r0; use r11 instead.  Save and restore r11 to r0 around
4442         this.
4444 2019-10-26  Hongtao Liu  <hongtao.liu@intel.com>
4446         * config/i386/sse.md
4447         (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>,
4448         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>,
4449         <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>,
4450         <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>,
4451         <sse>_vmmaskcmp<mode>3):
4452         Change predicates from vector_operand to nonimmediate_operand,
4453         constraints xBm to xm, since scalar operations don't need
4454         memory address alignment.
4455         (avx512f_vmcmp<mode>3<round_saeonly_name>,
4456         avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace
4457         round_saeonly_nimm_predicate with
4458         round_saeonly_nimm_scalar_predicate.
4459         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
4460         fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>,
4461         *fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
4462         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>,
4463         avx512f_vmfmadd_<mode>_mask3<round_name>,
4464         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
4465         *avx512f_vmfmsub_<mode>_mask<round_name>,
4466         avx512f_vmfmsub_<mode>_mask3<round_name>,
4467         *avx512f_vmfmsub_<mode>_maskz_1<round_name>,
4468         *avx512f_vmfnmadd_<mode>_mask<round_name>,
4469         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
4470         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
4471         *avx512f_vmfnmsub_<mode>_mask<round_name>,
4472         *avx512f_vmfnmsub_<mode>_mask3<round_name>,
4473         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>,
4474         cvtusi2<ssescalarmodesuffix>32<round_name>,
4475         cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace
4476         round_nimm_predicate with round_nimm_scalr_predicate.
4477         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
4478         avx512f_sfixupimm<mode>_mask<round_saeonly_name>,
4479         avx512er_vmrcp28<mode><round_saeonly_name>,
4480         avx512er_vmrsqrt28<mode><round_saeonly_name>,
4481         ): Replace round_saeonly_nimm_predicate with
4482         round_saeonly_nimm_scalar_predicate.
4483         (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace
4484         vector_operand with nonimmediate_operand.
4485         * config/i386/subst.md (round_scalar_nimm_predicate,
4486         round_saeonly_scalar_nimm_predicate): Replace
4487         vector_operand with nonimmediate_operand.
4489 2019-10-26  Hongtao Liu  <hongtao.liu@intel.com>
4491         PR target/89071
4492         * config/i386/i386.md (*rcpsf2_sse): Add
4493         avx_partial_xmm_update, prefer m constraint for TARGET_AVX.
4494         (*rsqrtsf2_sse): Ditto.
4495         (*sqrt<mode>2_sse): Ditto.
4496         (sse4_1_round<mode>2): separate constraint vm, add
4497         avx_partail_xmm_update, prefer m constraint for TARGET_AVX.
4498         * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used
4499         by pass rpad.
4500         (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*):
4501         Ditto.
4502         (*sse_vmrsqrtv4sf2): Ditto.
4503         (*avx512f_rndscale<mode><round_saeonly_name>): Ditto.
4504         (*sse4_1_round<ssescalarmodesuffix>): Ditto.
4505         (sse4_1_round<ssescalarmodesuffix>): Add m constraint and
4506         <iptr> pointer size modifier since vround support memory operand.
4508 2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
4510         PR target/85969
4511         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused
4512         static function.
4514 2019-10-25  Cesar Philippidis <cesar@codesourcery.com>
4515             Tobias Burnus  <tobias@codesourcery.com>
4517         * gimplify.c (oacc_default_clause): Privatize fortran common blocks.
4518         (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for
4519         common block decls.
4521 2019-10-25  Richard Biener  <rguenther@suse.de>
4523         PR tree-optimization/92222
4524         * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
4525         (_slp_oprnd_info::second_pattern): Likewise.
4526         (_slp_oprnd_info::any_pattern): New.
4527         (vect_create_oprnd_info): Adjust.
4528         (vect_get_and_check_slp_defs): Compute whether any stmt is
4529         in a pattern.
4530         (vect_build_slp_tree_2): Avoid building up a node from scalars
4531         if any of the operand defs, not just the first, is in a pattern.
4533 2019-10-25  Richard Biener  <rguenther@suse.de>
4535         * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail
4536         swapping if we actually have to modify the IL on a shared stmt.
4537         (vect_build_slp_tree_2): Never fail swapping on shared stmts
4538         because we no longer modify the IL.
4540 2019-10-25  Martin Liska  <mliska@suse.cz>
4542         * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'.
4544 2019-10-25  Richard Sandiford  <richard.sandiford@arm.com>
4546         * tree-vect-loop.c (vectorizable_reduction): Restrict the
4547         LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be
4548         handled by vect_transform_reduction.  Allow fully-masked loops
4549         to be used with reduction chains.
4550         * tree-vect-stmts.c (vectorizable_operation): Handle reduction
4551         operations in fully-masked loops.
4552         (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION
4553         operations in fully-masked loops.
4555 2019-10-25  Richard Biener  <rguenther@suse.de>
4557         * tree-vect-loop.c (vectorizable_reduction): Verify
4558         STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up
4559         correctly.
4560         * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer
4561         STMT_VINFO_REDUC_IDX from the original stmts to the pattern
4562         stmts.
4564 2019-10-24  Jakub Jelinek  <jakub@redhat.com>
4566         * gimplify.h (omp_construct_selector_matches): Declare.
4567         * gimplify.c (struct gimplify_omp_ctx): Add code member.
4568         (gimplify_call_expr): Call omp_resolve_declare_variant and remap
4569         called function if needed for flag_openmp.
4570         (gimplify_scan_omp_clauses): Set ctx->code.
4571         (omp_construct_selector_matches): New function.
4572         * omp-general.h (omp_constructor_traits_to_codes,
4573         omp_context_selector_matches, omp_resolve_declare_variant): Declare.
4574         * omp-general.c (omp_constructor_traits_to_codes,
4575         omp_context_selector_matches, omp_resolve_declare_variant): New
4576         functions.
4578         * config/arc/arc.c (hwloop_optimize): Add missing space in string
4579         literal.
4580         * config/rx/rx.c (rx_print_operand): Likewise.
4581         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
4582         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
4583         * ipa-sra.c (create_parameter_descriptors, process_scan_results):
4584         Likewise.
4585         * genemit.c (emit_c_code): Likewise.
4586         * plugin.c (try_init_one_plugin): Likewise.  Formatting fix.
4588 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
4590         * symbols-summary.h (fast_function_summary<T *, V>::release,
4591         fast_call_summary<T *, V>::release): Free m_vector.
4593 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
4595         * cgraphunit.c (symbol_table::process_new_functions): Call
4596         ipa_free_size_summary.
4597         * ipa-cp.c (ipcp_cloning_candidate_p): Update.
4598         (devirtualization_time_bonus): Update.
4599         (ipcp_propagate_stage): Update.
4600         * ipa-fnsummary.c (ipa_size_summaries): New.
4601         (ipa_fn_summary_alloc): Alloc size summary.
4602         (dump_ipa_call_summary): Update.
4603         (ipa_dump_fn_summary): Update.
4604         (analyze_function_body): Update.
4605         (compute_fn_summary): Likewise.
4606         (ipa_get_stack_frame_offset): New function.
4607         (inline_update_callee_summaries): Do not update frame offsets.
4608         (ipa_merge_fn_summary_after_inlining): Update frame offsets here;
4609         remove call and function summary.
4610         (ipa_update_overall_fn_summary): Update.
4611         (inline_read_section): Update.
4612         (ipa_fn_summary_write): Update.
4613         (ipa_free_fn_summary): Do not remove summaries.
4614         (ipa_free_size_summary): New.
4615         (release summary pass): Also run at WPA.
4616         * ipa-fnsummary.h (ipa_size_summary): Declare.
4617         (ipa_fn_summary): Remove size, self_size, stack_frame_offset,
4618         estimated_self_stack_size.
4619         (ipa_size_summary_t): New type.
4620         (ipa_size_summaries): Declare.
4621         (ipa_free_size_summary): Declare.
4622         (ipa_get_stack_frame_offset): Declare.
4623         * ipa-icf.c (sem_function::merge): Update.
4624         * ipa-inline-analysis.c (estimate_size_after_inlining): Update.
4625         (estimate_growth): Update.
4626         (growth_likely_positive): Update.
4627         (clone_inlined_nodes): Update.
4628         (inline_call): Update.
4629         * ipa-inline.c (caller_growth_limits): Update.
4630         (edge_badness): Update.
4631         (recursive_inlining): Update.
4632         (inline_small_functions): Update.
4633         (inline_to_all_callers_1): Update.
4634         * ipa-prop.h (ipa_edge_args_sum_t): Update comment.
4636 2019-10-24  Segher Boessenkool  <segher@kernel.crashing.org>
4638         * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
4639         (uavg<mode>3_ceil): ... This.
4640         (altivec_vavgs<VI_char>): Rename to...
4641         (avg<mode>3_ceil): ... This.
4642         * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
4643         VAVGUW, VAVGSW): Adjust.
4645 2019-10-24  Nathan Sidwell  <nathan@acm.org>
4647         * dumpfile.c (dump_begin): Reorder decls to use RAII.
4649 2019-10-24  Martin Liska  <mliska@suse.cz>
4651         * symbol-summary.h (gt_pch_nx): Mark all functions
4652         with gcc_unreachable as we do not expect to be called.
4654 2019-10-24  Richard Biener  <rguenther@suse.de>
4656         * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction
4657         chains try harder with operand swapping and instead of
4658         putting a shifted chain into the reduction operands put
4659         a repetition of the final reduction op there as if we'd
4660         reassociate the expression.
4662 2019-10-24  Jan Hubicka  <hubicka@ucw.cz>
4664         * ipa-reference.c (ipa_reference_optimization_summary_d): Rename
4665         statics_not_read and statics_not_written to statics_read and
4666         statics_written respectively.
4667         (no_module_statics): New static var.
4668         (ipa_reference_get_not_read_global): Rename to ...
4669         (ipa_reference_get_read_global): ... this.
4670         (ipa_reference_get_not_written_global): Rename to ...
4671         (ipa_reference_get_written_global): ... this.
4672         (dump_static_vars_set_to_file): Dump no_module_statics.
4673         (copy_static_var_set): Add for propagation parameter.
4674         (ipa_init): Initialize no_module_statics.
4675         (ipa_ref_opt_summary_t::duplicate): Update.
4676         (ipa_ref_opt_summary_t::remove): Update.
4677         (propagate): Update.
4678         (write_node_summary_p): Look correctly for bitmap differences.
4679         (ipa_reference_write_optimization_summary): Update.
4680         (ipa_reference_read_optimization_summary): Update.
4681         * ipa-reference.h
4682         (ipa_reference_get_not_read_global): Rename to ...
4683         (ipa_reference_get_read_global): ... this.
4684         (ipa_reference_get_not_written_global): Rename to ...
4685         (ipa_reference_get_written_global): ... this.
4686         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update.
4687         (call_may_clobber_ref_p_1): Update.
4689 2019-10-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4691         * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove
4692         and add comment.
4693         (msp430_hard_regno_nregs_with_padding): Remove.
4695 2019-10-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4697         * config/msp430/constraints.md: Allow post_inc for "Ya" constraint.
4698         * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant
4699         shift amount is between 1 and 4.
4700         (430x_arithmetic_shift_right): Use RRAM when the constant shift amount
4701         is between 1 and 4.
4703 2019-10-24  Richard Biener  <rguenther@suse.de>
4705         PR tree-optimization/92205
4706         * tree-vect-loop.c (vectorizable_reduction): Restrict
4707         search for alternate vectype_in to lane-reducing patterns
4708         we support.
4710 2019-10-24  Richard Biener  <rguenther@suse.de>
4712         PR tree-optimization/92203
4713         * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
4714         Skip eliminating conversion stmts inserted by insertion.
4716 2019-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>
4718         * config/s390/s390.c (s390_get_thread_pointer): Use
4719         gen_get_thread_pointer.
4720         (s390_expand_split_stack_prologue): Likewise.
4721         * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC.
4722         (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP.
4723         (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP.
4724         (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use
4725         parameterized name.
4727 2019-10-24  Richard Biener  <rguenther@suse.de>
4729         * tree-vect-slp.c (vect_analyze_slp): When reduction group
4730         SLP discovery fails try to handle the reduction as part
4731         of SLP reduction discovery.
4733 2019-10-23  Michael Meissner  <meissner@linux.ibm.com>
4735         * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New
4736         declaration.
4737         * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn
4738         attribute if it exists, rather than the insn size.  If we use the
4739         insn size, adjust the size to remove the extra size that prefixed
4740         instructions take.
4741         (rs6000_adjust_insn_length): New function.
4742         * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to
4743         update the instruction sized if prefixed instructions are used.
4744         * config/rs6000/rs6000.md (prefixed_length attribute): Delete.
4745         (non_prefixed_length attribute): Delete.
4746         (num_insns attribute): New insn attribute to return the number of
4747         instructions.
4748         (max_prefixed_insns attribute): New insn attribute to return the
4749         maximum number of prefixed instructions in an insn.
4750         (length attribute): Do not adjust for prefix instructions here,
4751         punt to ADJUST_INSN_LENGTH.
4752         (mov<mode>_64bit): Set max_prefixed_insns and num_insns.
4753         (movtd_64bit_nodm): Set max_prefixed_insns and num_insns.
4754         (mov<mode>_ppc64): Set max_prefixed_insns and num_insns.
4755         * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set
4756         max_prefixed_insns and num_insns.
4758         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat.
4759         (movtd_64bit_nodm): Reformat.
4760         (mov<mode>_32bit): Reformat.
4761         (mov<mode>_softfloat): Reformat.
4762         (FMOVE128_GPR splitter): Reformat.
4763         (DIFD splitter): Reformat.
4764         (TI2 splitter): Reformat.
4765         * config/rs6000/predicates.md (lwa_operand): If the bottom two
4766         bits of the offset for the memory address are non-zero, use PLWA
4767         if prefixed instructions are available.
4769 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
4771         * lto-streamer-out.c (cmp_symbol_files): Watch for overflow.
4773 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
4775         * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix
4776         previous patch.
4778 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
4780         * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar.
4781         (cmp_symbol_files): New.
4782         (lto_output): Copy sections in file order.
4783         * lto-streamer.h (lto_file_decl_data): Add field order.
4785 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
4787         * ipa-reference.h (ipa_reference_var_uid): Move offline.
4788         * ipa-reference.c (reference_vars_map_t): new type.
4789         (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars.
4790         (ipa_reference_var_uid): Implement.
4791         (varpool_node_hooks): New static var.
4792         (varpool_removal_hook): New function.
4793         (is_improper): Do not check bitmap for id==-1
4794         (get_static_name): Update.
4795         (ipa_init): Initialize new datastructures.
4796         (analyze_function): Do not recompute ids.
4797         (propagate): Free reference_vars_to_consider.
4798         (stream_out_bitmap): Update.
4799         (ipa_reference_read_optimization_summary): Update.
4801 2019-10-23  qing zhao  <qing.zhao@oracle.com>
4803         PR gcov-profile/91971
4804         * coverage.c (coverage_init): Mangle the full path of filename when
4805         filename is a absolute path.
4807 2019-10-23  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4809         * config/msp430/msp430-protos.h (msp430_has_hwmult): New.
4810         * config/msp430/msp430.c (msp430_no_hwmult): Remove.
4811         (msp430_has_hwmult): New.
4812         (msp430_output_labelref):
4813         s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/
4814         * config/msp430/msp430.md (mulhisi3): Likewise.
4815         (umulhisi3): Likewise.
4816         (mulsidi3): Likewise.
4817         (umulsidi3): Likewise.
4819 2019-10-23  Jan Hubicka  <hubicka@ucw.cz>
4821         PR ipa/92074
4822         * params.def (inline-heuristics-hint-percent): Set to 600.
4824 2019-10-23  Richard Biener  <rguenther@suse.de>
4826         PR tree-optimization/65930
4827         * tree-vect-loop.c (check_reduction_path): Allow conversions
4828         that only change the sign.
4829         (vectorizable_reduction): Relax latch def stmts we handle further.
4831 2019-10-23  Jakub Jelinek  <jakub@redhat.com>
4833         PR debug/90231
4834         * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function.
4835         (remove_unused_ivs): Use it instead of get_computation_at.  When
4836         choosing best candidate, only consider candidates where
4837         get_debug_computation_at actually returns non-NULL.
4839 2019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
4841         PR tree-optimization/92131
4842         * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
4843         range would be symbolic, drop to varying for any explicit overflow
4844         in the constant part or if neither range is a singleton.
4846 2019-10-23  Martin Liska  <mliska@suse.cz>
4848         PR middle-end/81669
4849         * fibonacci_heap.h (fibonacci_node::fibonacci_node):
4850         Initialize m_data.
4852 2019-10-23  Richard Sandiford  <richard.sandiford@arm.com>
4854         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use
4855         int_mode_for_mode rather than mode_for_int_vector for scalars.
4857 2019-10-23  Richard Biener  <rguenther@suse.de>
4859         PR tree-optimization/92179
4860         * tree-vect-stmts.c (vectorizable_shift): For shift args
4861         that are all the same remove type restriction in the SLP case.
4862         Adjust SLP code to handle converting of the shift arg to
4863         only apply in case the modes are different.
4865 2019-10-23  Martin Liska  <mliska@suse.cz>
4867         PR ipa/91969
4868         * ipa-inline.c (recursive_inlining): Do not print
4869         when curr->count is not initialized.
4871 2019-10-23  Richard Biener  <rguenther@suse.de>
4873         * tree-vect-slp.c (vect_build_slp_tree_2): Do not build
4874         op from scalars in case there's a constant operand in its
4875         definition.
4877 2019-10-23  Iain Sandoe  <iain@sandoe.co.uk>
4879         * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
4880         against out of range max skip or log values.
4882 2019-10-22  Giuliano Belinassi  <giuliano.belinassi@usp.br>
4884         * cgraph.c (dump_graphviz): Change name to dump_name
4886 2019-10-22  Richard Earnshaw  <rearnsha@arm.com>
4888         * config/arm/arm.md (rsbsi_carryin_reg): New pattern.
4889         * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
4890         subtraction from a carry operation.
4892 2019-10-22  Richard Earnshaw  <rearnsha@arm.com>
4894         * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode.
4896 2019-10-22  Richard Biener  <rguenther@suse.de>
4898         PR tree-optimization/92173
4899         * tree-vect-loop.c (vectorizable_reduction): If
4900         vect_transform_reduction cannot handle code-generation try without
4901         the single-def-use-cycle optimization.  Pass optab_vector to
4902         optab_for_tree_code to get vector shifts as that's what we'd
4903         generate.
4905 2019-10-22  Michael Matz  <matz@suse.de>
4907         PR middle-end/90796
4908         * gimple-loop-jam.c (any_access_function_variant_p): New function.
4909         (adjust_unroll_factor): Use it to constrain safety, new parameter.
4910         (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
4912 2019-10-22  Richard Biener  <rguenther@suse.de>
4914         PR tree-optimization/92173
4915         * tree-vect-loop.c (vectorizable_reduction): If
4916         vect_transform_reduction cannot handle code-generation try without
4917         the single-def-use-cycle optimization.  Pass optab_vector to
4918         optab_for_tree_code to get vector shifts as that's what we'd
4919         generate.
4921 2019-10-22  Martin Liska  <mliska@suse.cz>
4923         * diagnostic-format-json.cc (json_from_expanded_location):
4924         Use json::integer_number.
4925         * gcov.c (output_intermediate_json_line): Use new
4926         json::integer_number.
4927         (output_json_intermediate_file): Likewise.
4928         * json.cc (number::print): Move to ...
4929         (float_number::print): ... this.
4930         (integer_number::print): New.
4931         (test_writing_numbers): Move to ...
4932         (test_writing_float_numbers): ... this.
4933         (test_writing_integer_numbers): New.
4934         (json_cc_tests): Register test_writing_integer_numbers.
4935         * json.h (class value): Add forward declaration
4936         for float_number and integer_number.
4937         (enum kind): Add JSON_INTEGER and JSON_FLOAT.
4938         (class number): Move to ...
4939         (class float_number): ... this.
4940         (class integer_number): New.
4941         * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json):
4942         Use json::integer_number.
4943         (optrecord_json_writer::location_to_json): Likewise.
4944         (optrecord_json_writer::profile_count_to_json): Likewise.
4945         (optrecord_json_writer::pass_to_json): Likewise.
4947 2019-10-22  Richard Sandiford  <richard.sandiford@arm.com>
4949         * tree-vect-slp.c (vect_slp_bb_region): Check whether
4950         autodetected_vector_size rather than vector_size is zero.
4951         * tree-vect-loop.c (vect_analyze_loop): Likewise.
4952         Set autodetected_vector_size immediately after calling
4953         vect_analyze_loop_2.  Check for a fatal error before advancing
4954         next_size.
4956 2019-10-21  Jason Merrill  <jason@redhat.com>
4958         * lock-and-run.sh: Check for process existence rather than timeout.
4960 2019-10-21  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
4962         * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding
4963         widening multiplication.
4965 2019-10-21  Richard Earnshaw  <rearnsha@arm.com>
4967         * config/arm/iterators.md (t2_binop0): Fix typo in comment.
4968         * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the
4969         type attribute.
4970         (subsi3_carryin_shift): Separate into register and constant controlled
4971         alternatives.  Use shift_amount_operand for operand 4.  Set shift
4972         attribute and simplify type attribute.
4973         (subsi3_carryin_shift_alt): Likewise.
4974         (rsbsi3_carryin_shift): Likewise.
4975         (rsbsi3_carryin_shift_alt): Likewise.
4976         (andsi_not_shiftsi_si): Enable for TARGET_32BIT.  Separate constant
4977         and register controlled shifts into distinct alternatives.
4978         (andsi_not_shiftsi_si_scc_no_reuse): Likewise.
4979         (andsi_not_shiftsi_si_scc): Likewise.
4980         (arm_cmpsi_negshiftsi_si): Likewise.
4981         (not_shiftsi): Remove redundant M constraint from alternative 1.
4982         (not_shiftsi_compare0): Likewise.
4983         (arm_cmpsi_insn): Remove redundant alternative 2.
4984         (cmpsi_shift_swp): Likewise.
4985         (sub_shiftsi): Likewise.
4986         (sub_shiftsi_compare0_scratch): Likewise.
4987         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern.
4988         (thumb2_cmpsi_neg_shiftsi): Likewise.
4990 2019-10-21  Richard Biener  <rguenther@suse.de>
4992         PR tree-optimization/92162
4993         * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup
4994         STMT_VINFO_REDUC_IDX in reduc_info.
4995         * tree-vect-stmts.c (vectorizable_condition): Likewise.
4997 2019-10-21  Richard Biener  <rguenther@suse.de>
4999         * tree-vectorizer.h (_slp_tree::ops): New member.
5000         (SLP_TREE_SCALAR_OPS): New.
5001         (vect_get_slp_defs): Adjust prototype.
5002         * tree-vect-slp.c (vect_free_slp_tree): Release
5003         SLP_TREE_SCALAR_OPS.
5004         (vect_create_new_slp_node): Initialize it.  New overload for
5005         initializing by an operands array.
5006         (_slp_oprnd_info::ops): New member.
5007         (vect_create_oprnd_info): Initialize it.
5008         (vect_free_oprnd_info): Release it.
5009         (vect_get_and_check_slp_defs): Populate the operands array.
5010         Do not swap operands in the IL when not necessary.
5011         (vect_build_slp_tree_2): Build SLP nodes for invariant operands.
5012         Record SLP_TREE_SCALAR_OPS for all invariant nodes.  Also
5013         swap operands in the operands array.  Do not swap operands in
5014         the IL.
5015         (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well.
5016         (vect_gather_slp_loads): Fix.
5017         (vect_detect_hybrid_slp_stmts): Likewise.
5018         (vect_slp_analyze_node_operations_1): Search for a internal
5019         def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS.
5020         (vect_slp_analyze_node_operations): Skip ops-only stmts for
5021         the def-type push/pop dance.
5022         (vect_get_constant_vectors): Compute number_of_vectors here.
5023         Use SLP_TREE_SCALAR_OPS and simplify greatly.
5024         (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs.
5025         (vect_get_slp_defs): Simplify greatly.
5026         * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify.
5027         (vect_transform_reduction): Likewise.
5028         * tree-vect-stmts.c (vect_get_vec_defs): Simplify.
5029         (vectorizable_call): Likewise.
5030         (vectorizable_operation): Likewise.
5031         (vectorizable_load): Likewise.
5032         (vectorizable_condition): Likewise.
5033         (vectorizable_comparison): Likewise.
5035 2019-10-21  Richard Biener  <rguenther@suse.de>
5037         PR tree-optimization/92161
5038         * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type
5039         for reductions.
5041 2019-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5043         * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define.
5044         (aarch64_rndr): New define_insn.
5045         (aarch64_rndrrs): Likewise.
5046         * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define.
5047         (TARGET_RNG): Likewise.
5048         * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE
5049         argument.
5050         * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin):
5051         Add fourth argument in prototype.
5052         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins):
5053         Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS.
5054         (aarch64_init_rng_builtins): Define.
5055         (aarch64_general_init_builtins): Call aarch64_init_rng_builtins.
5056         (aarch64_expand_rng_builtin): Define.
5057         (aarch64_general_expand_builtin): Use IGNORE argument, handle
5058         RNG builtins.
5059         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
5060         __ARM_FEATURE_RNG when TARGET_RNG.
5061         * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define.
5063 2019-10-21  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5065         * tree-vect-stmts (ensure_base_align): Only change alignment if new
5066         alignment is more restrictive.
5068 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5070         * tree-vectorizer.h (vec_info::vector_size): New member variable.
5071         (vect_update_max_nunits): Update comment.
5072         (current_vector_size): Delete.
5073         * tree-vect-stmts.c (current_vector_size): Likewise.
5074         (get_vectype_for_scalar_type): Use vec_info::vector_size instead
5075         of current_vector_size.
5076         (get_mask_type_for_scalar_type): Likewise.
5077         * tree-vectorizer.c (try_vectorize_loop_1): Likewise.
5078         * tree-vect-loop.c (vect_update_vf_for_slp): Likewise.
5079         (vect_analyze_loop, vect_halve_mask_nunits): Likewise.
5080         (vect_double_mask_nunits, vect_transform_loop): Likewise.
5081         * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
5082         (vect_make_slp_decision, vect_slp_bb_region): Likewise.
5084 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5086         * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info.
5087         * tree-vect-loop.c (vect_double_mask_nunits): Likewise.
5088         * tree-vect-stmts.c (supportable_narrowing_operation):  Update call
5089         accordingly.
5091 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5093         * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info.
5094         * tree-vect-loop.c (vect_halve_mask_nunits): Likewise.
5095         * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update
5096         call accordingly.
5097         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5099 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5101         * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take
5102         a loop_vec_info.
5103         (vect_set_loop_condition_masked): Update call accordingly.
5105 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5107         * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
5108         * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
5109         (simple_integer_narrowing): Update call accordingly.
5110         (vectorizable_conversion): Likewise.
5112 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5114         * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info.
5115         (vectorizable_call): Update call accordingly.
5117 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5119         * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info.
5120         * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
5121         (duplicate_and_interleave): Update call accordingly.
5122         * tree-vect-loop.c (vectorizable_reduction): Likewise.
5124 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5126         * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info.
5127         * tree-vect-slp.c (duplicate_and_interleave): Likewise.
5128         (vect_get_constant_vectors): Update call accordingly.
5129         * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise.
5131 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5133         * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info.
5134         * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
5135         (vect_prologue_cost_for_slp_op): Update call accordingly.
5136         (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops)
5137         (vect_get_strided_load_store_ops, vectorizable_simd_clone_call)
5138         (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison)
5139         (get_mask_type_for_scalar_type): Likewise.
5140         (vect_get_vector_types_for_stmt): Likewise.
5141         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5142         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
5143         (get_initial_def_for_reduction, build_vect_cond_expr): Likewise.
5144         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise.
5145         (vect_split_statement, vect_convert_input): Likewise.
5146         (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise.
5147         (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise.
5148         (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern)
5149         (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern)
5150         (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise.
5151         (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern)
5152         (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern)
5153         (search_type_for_mask_1, vect_recog_bool_pattern): Likewise.
5154         (vect_recog_mask_conversion_pattern): Likewise.
5155         (vect_add_conversion_to_pattern): Likewise.
5156         (vect_recog_gather_scatter_pattern): Likewise.
5157         * tree-vect-slp.c (vect_build_slp_tree_2): Likewise.
5158         (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise.
5160 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5162         * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info.
5163         * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise.
5164         (vect_check_load_store_mask): Update call accordingly.
5165         (vect_get_mask_type_for_stmt): Likewise.
5166         * tree-vect-patterns.c (check_bool_pattern): Likewise.
5167         (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise.
5168         (vect_convert_mask_for_vectype): Likewise.
5170 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5172         * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take
5173         a vec_info.
5174         (vect_recog_dot_prod_pattern): Update call accordingly.
5175         (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise.
5176         (vect_recog_widen_sum_pattern): Likewise.
5178 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5180         * tree-vectorizer.h (vect_supportable_shift): Take a vec_info.
5181         * tree-vect-stmts.c (vect_supportable_shift): Likewise.
5182         * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call
5183         accordingly.
5185 2019-10-21  Richard Sandiford  <richard.sandiford@arm.com>
5187         * tree-vectorizer.c (get_vec_alignment_for_array_type): Use
5188         get_vectype_for_scalar_type_and_size instead of
5189         get_vectype_for_scalar_type.
5191 2019-10-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5193         * common.opt (-fcommon): Fix description.
5195 2019-10-20  Jakub Jelinek  <jakub@redhat.com>
5197         * config/i386/i386-protos.h (ix86_pre_reload_split): Declare.
5198         * config/i386/i386.c (ix86_pre_reload_split): New function.
5199         * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq,
5200         *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq,
5201         *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0,
5202         *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword,
5203         *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask,
5204         *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1,
5205         *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1,
5206         *<shift_insn><dwi>3_doubleword_mask,
5207         *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask,
5208         *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1,
5209         *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1,
5210         *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>,
5211         *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword):
5212         Use ix86_pre_reload_split instead of can_create_pseudo_p in condition.
5213         * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2,
5214         *avx2_<code>v8qiv8si2<mask_name>_2,
5215         *sse4_1_<code>v4qiv4si2<mask_name>_2,
5216         *sse4_1_<code>v4hiv4si2<mask_name>_2,
5217         *avx512f_<code>v8qiv8di2<mask_name>_2,
5218         *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2,
5219         *sse4_1_<code>v2hiv2di2<mask_name>_2,
5220         *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr,
5221         sse4_2_pcmpistr): Likewise.
5223 2019-10-20  Gerald Pfeifer  <gerald@pfeifer.com>
5225         * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info
5226         now defaults to https.
5228 2019-10-20  Jan Hubicka  <hubicka@ucw.cz>
5230         * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not
5231         skip non-zero array accesses.
5233 2019-10-20  Richard Sandiford  <richard.sandiford@arm.com>
5235         * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info
5236         and return a boolean success value.  Move the allocation and
5237         initialization of the bb_vec_info to...
5238         (vect_slp_bb_region): ...here.  Update call accordingly.
5239         (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather
5240         than in vect_slp_analyze_bb_1.
5242 2019-10-20  Richard Sandiford  <richard.sandiford@arm.com>
5244         * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs
5245         when processing the given datarefs for the first time and
5246         check_datarefs subsequently.
5247         (vect_slp_bb_region): New function, split out of...
5248         (vect_slp_bb): ...here.  Don't recompute the region bounds and
5249         dataref sets when retrying with a different vector size.
5251 2019-10-19  Jakub Jelinek  <jakub@redhat.com>
5252             UroÅ¡ Bizjak  <ubizjak@gmail.com>
5254         PR target/92140
5255         * config/i386/predicates.md (int_nonimmediate_operand): New special
5256         predicate.
5257         * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne,
5258         *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne,
5259         *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New
5260         define_insn_and_split patterns.
5262 2019-10-19  Iain Sandoe  <iain@sandoe.co.uk>
5264         * config/rs6000/rs6000.md: Delete out--of-date comment about
5265         special-casing integer loads.
5267 2019-10-19  JeanHeyd Meneide  <phdofthehouse@gmail.com>
5269         * escaped_string.h (escaped_string): New header.
5270         * tree.c (escaped_string): Remove escaped_string class.
5272 2019-10-18  Martin Sebor  <msebor@redhat.com>
5274         PR tree-optimization/92157
5275         * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for
5276         compute_string_length to return a negative result.
5278 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5280         * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule.
5281         (negvsi3, negvdi3): Delete.
5282         (negdi2_compare): Delete.
5284 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5286         * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit
5287         operations.
5288         (subdi3_compare1): Delete pattern.
5289         (subvsi3_borrow): New insn pattern.
5290         (subvsi3_borrow_imm): Likewise.
5292 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5294         * config/arm/arm.md (subv<mode>4): Delete.
5295         (subvdi4): New expander pattern.
5296         (subvsi4): Likewise.  Handle some immediate values.
5297         (subvsi3_intmin): New insn pattern.
5298         (subvsi3): Likewise.
5299         (subvsi3_imm1): Likewise.
5300         * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V
5301         idioms.
5303 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5305         * config/arm/arm.md (usubvdi4): Allow registers or integers for
5306         incoming operands.  Early split the calculation into SImode
5307         operations.
5308         (usubvsi3_borrow): New insn pattern.
5309         (usubvsi3_borrow_imm): Likewise.
5311 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5313         * config/arm/arm.md (usubv<mode>4): Delete expansion.
5314         (usubvsi4): New pattern.  Allow some immediate values for inputs.
5315         (usubvdi4): New pattern.
5317 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5319         * config/arm/arm.c (arm_select_cc_mode): Allow either the first
5320         or second operand of the PLUS inside a DImode equality test to be
5321         sign-extend when selecting CC_Vmode.
5322         * config/arm/arm.md (addvdi4): Early-split the operation into SImode
5323         instructions.
5324         (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New
5325         expand patterns.
5326         (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns.
5327         (addsi3_cin_vout_0): Likewise.
5328         (adddi3_compareV): Delete.
5330 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5332         * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn.
5333         (addsi3_compareV_imm_nosum): New insn.  Also add peephole2 patterns
5334         to transform this back into the summation version when that leads
5335         to smaller code.
5337 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5339         * config/arm/arm.md (addv<mode>4): Delete.
5340         (addvsi4): New pattern.  Handle immediate values that the architecture
5341         supports.
5342         (addvdi4): New pattern.
5343         (addsi3_compareV): Rename to ...
5344         (addsi3_compareV_reg): ... this.  Add constraints for thumb2 variants
5345         and use COMPARE rather than NE.
5346         (addsi3_compareV_imm): New pattern.
5347         * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for
5348         a signed-overflow check.
5350 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5352         * config/arm/arm-modes.def (CC_ADC): New CC mode.
5353         * config/arm/arm.c (arm_select_cc_mode): Detect selection of
5354         CC_ADCmode.
5355         (maybe_get_arm_condition_code): Handle CC_ADCmode.
5356         * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition
5357         with overflow.
5358         (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New
5359         expand patterns.
5360         (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns
5361         (addsi3_cin_cout_imm_insn): Likewise.
5362         (adddi3_compareC): Delete insn.
5363         * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode.
5365 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5367         * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1.
5368         * (uaddv<mode>4): Delete expansion pattern.
5369         (uaddvsi4): New pattern.
5370         (uaddvdi4): Likewise.
5371         (addsi3_compareC): Delete pattern, change callers to use
5372         addsi3_compare_op1.
5373         (addsi3_compare_op1): No-longer anonymous.  Clean up constraints to
5374         reduce the number of alternatives and re-work type attribute handling.
5375         (addsi3_compare_op2): Clean up constraints to reduce the number of
5376         alternatives and re-work type attribute handling.
5377         (compare_addsi2_op0): Likewise.
5378         (compare_addsi2_op1): Likewise.
5380 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5382         * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes.
5383         * config/arm/arm.c (arm_select_cc_mode): Remove old selection code
5384         for DImode operands.
5385         (arm_gen_dicompare_reg): Remove unreachable expansion code.
5386         (maybe_get_arm_condition_code): Remove support for CC_CZmode and
5387         CC_NCVmode.
5388         * config/arm/arm.md (arm_cmpdi_insn): Delete.
5389         (arm_cmpdi_unsigned): Delete.
5391 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5393         * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function.
5394         (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant
5395         unchanged only if that will be cheaper.
5396         (arm_select_cc_mode): Recognize a swapped comparison that will
5397         be regenerated using RSBS or RSCS.  Relax restriction on selecting
5398         CC_RSBmode.
5399         (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against
5400         a constant.
5401         (arm_gen_compare_reg): Handle compare (CONST, X) when the mode
5402         is CC_RSBmode.
5403         (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes
5404         as CCmode.
5405         * config/arm/arm.md (rsb_imm_compare_scratch): New pattern.
5406         (rscsi3_<CC_EXTEND>out_scratch): New pattern.
5408 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5410         * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes.
5411         * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that
5412         need these modes.
5413         (arm_gen_dicompare_reg): New code to early expand the sub-operations
5414         of EQ, NE, LT, GE, LTU and GEU.
5415         * config/arm/iterators.md (CC_EXTEND): New code attribute.
5416         * config/arm/predicates.md (arm_adcimm_operand): New predicate..
5417         * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern.
5418         (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise.
5419         (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise.
5421 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5423         * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for
5424         operand 2.
5425         (cstoredi4): Similarly, but for operand 3.
5426         * config/arm/arm.c (arm_canoncialize_comparison): Allow
5427         canonicalization of unsigned compares with a constant on Arm.
5428         Prefer using const+1 and adjusting the comparison over swapping the
5429         operands whenever the original constant was not valid.
5430         (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a
5431         register here.
5432         (arm_validize_comparison): Do not force invalid DImode operands to
5433         registers here.
5435 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5437         * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests
5438         return CC_Zmode if comparing against a constant where one word is
5439         zero.
5440         (arm_gen_compare_reg): Split DImode handling to ...
5441         (arm_gen_dicompare_reg): ... here.  Handle equality comparisons
5442         against simple constants.
5443         * config/arm/arm.md (arm_cmpdi_zero): Delete pattern.
5445 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5447         * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern.
5448         (rsbsi3_carryin_shift_alt): Likewise.
5450 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5452         * config/arm/arm.md (negscc_borrow): New pattern.
5453         (mov_negscc): Don't split if the insn would match negscc_borrow.
5454         * config/arm/thumb2.md (thumb2_mov_negscc): Likewise.
5455         (thumb2_mov_negscc_strict_it): Likewise.
5457 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5459         * config/arm/arm.c (arm_insn_cost): New function.
5460         (TARGET_INSN_COST): Override default definition.
5462 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5464         * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle
5465         borrow operations.
5467 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5469         * config/arm/arm.c (strip_carry_operation): New function.
5470         (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in
5471         for SImode.
5473 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5475         * config/arm/predicates.md (arm_carry_operation): New special
5476         predicate.
5477         * config/arm/iterators.md (LTUGEU): Delete iterator.
5478         (cnb): Delete code attribute.
5479         (optab): Delete ltu and geu elements.
5480         * config/arm/arm.md (addsi3_carryin): Renamed from
5481         addsi3_carryin_<optab>.  Remove iterator and use arm_carry_operand.
5482         (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>.
5483         (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>.
5484         (addsi3_carryin_clobercc): Similarly.
5485         (addsi3_carryin_shift): Similarly.  Do not allow register shifts in
5486         Thumb2 state.
5488 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5490         * config/arm/arm.md (arm_subdi3): Delete insn.
5491         (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split.
5493 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5495         * config/arm/arm-modes.def (CC_RSB): New CC mode.
5496         * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode.
5497         * config/arm/arm.c (arm_select_cc_mode): Detect when we should
5498         return CC_RSBmode.
5499         (maybe_get_arm_condition_code): Handle CC_RSBmode.
5500         * config/arm/arm.md (subsi3_carryin): Make this pattern available to
5501         expand.
5502         (subdi3): Rewrite to early-expand the sub-operations.
5503         (rsb_im_compare): New pattern.
5504         (negdi2): Delete.
5505         (negdi2_insn): Delete.
5506         (arm_negsi2): Correct type attribute to alu_imm.
5507         (negsi2_0compare): New insn pattern.
5508         (negsi2_carryin): New insn pattern.
5510 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5512         * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for
5513         operand 2.
5515 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5517         * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands
5518         to match canonical form.
5520 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5522         * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand.
5523         (extend<mode>di2): Likewise.
5525 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5527         * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype.
5528         * config/arm/arm.c (arm_decompose_di_binop): New function.
5529         * config/arm/arm.md (adddi3): Also accept any const_int for op2.
5530         If not generating Thumb-1 code, decompose the operation into 32-bit
5531         pieces.
5532         * add0si_carryin_<optab>: New pattern.
5534 2019-10-18  Richard Earnshaw  <rearnsha@arm.com>
5536         * arm.md (adddi3): Only accept register operands.
5537         (arm_adddi3): Convert to simple insn with no split.  Do not accept
5538         constants.
5539         (adddi_sesidi_di): Delete patern.
5540         (adddi_zesidi_di): Likewise.
5541         (uaddv<mode>4): Use LTU as condition for branch.
5542         (adddi3_compareV): Convert to simple insn with no split.
5543         (addsi3_compareV_upper): Delete pattern.
5544         (adddi3_compareC): Convert to simple insn with no split.  Correct
5545         flags setting expression.
5546         (addsi3_compareC_upper): Delete pattern.
5547         (addsi3_compareC): Correct flags setting expression.
5548         (subdi3_compare1): Convert to simple insn with no split.
5549         (subsi3_carryin_compare): Delete pattern.
5550         (arm_subdi3): Convert to simple insn with no split.
5551         (subdi_zesidi): Delete pattern.
5552         (subdi_di_sesidi): Delete pattern.
5553         (subdi_zesidi_di): Delete pattern.
5554         (subdi_sesidi_di): Delete pattern.
5555         (subdi_zesidi_zesidi): Delete pattern.
5556         (negvdi3): Use s_register_operand.
5557         (negdi2_compare): Convert to simple insn with no split.
5558         (negdi2_insn): Likewise.
5559         (negsi2_carryin_compare): Delete pattern.
5560         (negdi_zero_extendsidi): Delete pattern.
5561         (arm_cmpdi_insn): Convert to simple insn with no split.
5562         (negdi2): Don't call gen_negdi2_neon.
5563         * config/arm/neon.md (adddi3_neon): Delete pattern.
5564         (subdi3_neon): Delete pattern.
5565         (negdi2_neon): Delete pattern.
5566         (splits for negdi2_neon): Delete splits.
5568 2019-10-18  Jakub Jelinek  <jakub@redhat.com>
5570         PR middle-end/92153
5571         * ggc-page.c (release_pages): Read g->alloc_size before free rather
5572         than after it.
5574 2019-10-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5576         * config/arm/t-multilib: Add rule to regenerate mutlilib header file
5577         with any change to t-multilib, t-aprofile and t-rmprofile.  Also add
5578         new multilib variants and new mappings.
5580 2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
5582         PR target/86040
5583         * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
5585 2019-10-18  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5586             Richard Sandiford  <richard.sandiford@arm.com>
5588         PR target/86753
5589         * tree-vectorizer.h (scalar_cond_masked_key): New struct,
5590         and define hashmap traits for it.
5591         (loop_vec_info::scalar_cond_masked_set): New member.
5592         (vect_record_loop_mask): Adjust prototype.
5593         * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree):
5594         Implement method.
5595         * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to
5596         vect_record_loop_mask.
5597         (vectorizable_live_operation): Likewise.
5598         (vect_record_loop_mask): New param scalar_mask. Add entry
5599         cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL.
5600         * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask.
5601         Pass it as last arg to vect_record_loop_mask.
5602         (vectorizable_call): Pass scalar_mask as last arg to
5603         vect_record_loop_mask.
5604         (vectorizable_store): Likewise.
5605         (vectorizable_load): Likewise.
5606         (vectorizable_condition): Check if another part of vectorized code
5607         applies loop_mask to condition or to it's inverse, and if yes,
5608         apply loop_mask to result of vector comparison.
5610 2019-10-17  John David Anglin  <danglin@gcc.gnu.org>
5612         * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
5614 2019-10-18  Jakub Jelinek  <jakub@redhat.com>
5616         PR tree-optimization/92056
5617         * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes
5618         before calling compute_builtin_object_size.
5620 2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
5622         PR target/65342
5623         * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
5624         (movdi_low_st): Delete.
5625         * config/rs6000/rs6000.c
5626         (darwin_rs6000_legitimate_lo_sum_const_p): New.
5627         (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
5628         * config/rs6000/rs6000.md (movsi_low): Delete.
5630 2019-10-17  Jason Merrill  <jason@redhat.com>
5632         * gimplify.h (get_initialized_tmp_var): Add default argument to
5633         post_p.
5634         * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove
5635         NULL post_p argument.
5636         * targhooks (std_gimplify_va_arg_expr): Likewise.
5638 2019-10-17  Richard Biener  <rguenther@suse.de>
5640         * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove.
5641         (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise.
5642         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not
5643         initialize STMT_VINFO_VEC_COND_REDUC_CODE.
5644         * tree-vect-loop.c (vect_is_simple_reduction): Set
5645         STMT_VINFO_REDUC_CODE.
5646         (vectorizable_reduction): Remove dead and redundant code, use
5647         STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE.
5649 2019-10-17  Georg-Johann Lay  <avr@gjlay.de>
5651         Fix breakage introduced by r276985.
5653         * config/avr/avr.c (avr_option_override): Remove set of
5654         PARAM_ALLOW_STORE_DATA_RACES.
5655         * common/config/avr/avr-common.c (avr_option_optimization_table)
5656         [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races.
5658 2019-10-17  H.J. Lu  <hongjiu.lu@intel.com>
5660         * config/i386/i386.h (processor_costs): Add clear_ratio.
5661         (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio.
5662         * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum
5663         of 6 and move_ratio in all cost models.
5665 2019-10-17  Richard Biener  <rguenther@suse.de>
5667         * tree-vect-loop.c (check_reduction_path): Compute reduction
5668         operation here.
5669         (vect_is_simple_reduction): Remove special-case of single-stmt
5670         reduction path detection.
5672 2019-10-17  Richard Earnshaw  <rearnsha@arm.com>
5674         * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture.
5676 2019-10-17  Yuliang Wang  <yuliang.wang@arm.com>
5678         * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>)
5679         (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>)
5680         (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>)
5681         (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>):
5682         New combine patterns.
5683         * config/aarch64/iterators.md (BSL_DUP): New int iterator for the
5684         above.
5685         (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above.
5687 2019-10-17  Aldy Hernandez  <aldyh@redhat.com>
5689         * tree-vrp.c (value_range_base::dump): Display +INF for both
5690         pointers and integers when appropriate.
5692 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5694         * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide
5695         when to use versioning threshold.
5697 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5699         * tree-vect-loop.c (determine_peel_for_niter): New function contained
5700         outlined code from ...
5701         (vect_analyze_loop_2): ... here.
5703 2019-10-17  Andre Vieira  <andre.simoesdiasvieira@arm.com>
5705         * tree-vect-loop.c (vect_transform_loop): Move code from here...
5706         * tree-vect-loop-manip.c (vect_loop_versioning): ... to here.
5707         * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters.
5709 2019-10-17  Richard Biener  <rguenther@suse.de>
5711         * tree-vect-loop.c (needs_fold_left_reduction_p): Export.
5712         (vect_is_simple_reduction): Move all validity checks ...
5713         (vectorizable_reduction): ... here.  Compute whether we
5714         need a fold-left reduction here.
5715         * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge
5716         both overloads, check needs_fold_left_reduction_p directly.
5717         * tree-vectorizer.h (needs_fold_left_reduction_p): Declare.
5719 2019-10-17  Richard Biener  <rguenther@suse.de>
5721         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix
5722         TARGET_MEM_REF creation.
5724 2019-10-17  Richard Biener  <rguenther@suse.de>
5726         PR tree-optimization/92129
5727         * tree-vect-loop.c (vectorizable_reduction): Also fail
5728         on GIMPLE_SINGLE_RHS.
5730 2019-10-17  Jakub Jelinek  <jakub@redhat.com>
5732         PR tree-optimization/92056
5733         * tree-object-size.c (cond_expr_object_size): Return early if then_
5734         processing resulted in unknown size.
5736         PR tree-optimization/92115
5737         * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into
5738         temporary if it could trap.
5740 2019-10-17  Richard Biener  <rguenther@suse.de>
5742         PR debug/91887
5743         * dwarf2out.c (gen_formal_parameter_die): Also try to match
5744         context_die against a DW_TAG_GNU_formal_parameter_pack parent.
5746 2019-10-16  Jakub Jelinek  <jakub@redhat.com>
5748         * tree-ssa-strlen.c (maybe_invalidate): Use
5749         HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu".
5751 2019-10-16  Andrew Burgess  <andrew.burgess@embecosm.com>
5752             Jim Wilson  <jimw@sifive.com>
5754         * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing
5755         regs to SIBCALL_REGS.
5756         * config/riscv/riscv.c (riscv_regno_to_class): Change argument
5757         passing regs to SIBCALL_REGS.
5759 2019-10-16  Martin Sebor  <msebor@redhat.com>
5761         PR tree-optimization/83821
5762         * tree-ssa-strlen.c (maybe_invalidate): Add argument.  Consider
5763         the length of a string when available.
5764         (handle_builtin_memset) Add argument.
5765         (handle_store, strlen_check_and_optimize_call): Same.
5766         (check_and_optimize_stmt): Same.  Pass it to callees.
5768 2019-10-16  Martin Sebor  <msebor@redhat.com>
5770         PR tree-optimization/91996
5771         * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location
5772         information.
5773         (compare_nonzero_chars): Add an overload.
5774         (count_nonzero_bytes): Add an argument.  Call overload above.
5775         Handle non-constant lengths in some range.
5776         (handle_store): Add an argument.
5777         (check_and_optimize_stmt): Pass an argument to handle_store.
5779 2019-10-16  Richard Earnshaw  <rearnsha@arm.com>
5781         * config/arm/arm.c (neon_valid_immediate): Clear bytes before use.
5783 2019-10-16  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
5785         * config/mips/mips.c (mips_expand_builtin_insn): Force the
5786         operands which correspond to the same input-output register to
5787         have the same pseudo assigned to them.
5789 2019-10-16  Ilya Leoshkevich  <iii@linux.ibm.com>
5791         * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition.
5793 2019-10-16  Wilco Dijkstra  <wdijkstr@arm.com>
5795         * config/aarch64/aarch64.c (aarch64_classify_symbol):
5796         Apply reasonable limit to symbol offsets.
5798 2019-10-16  Richard Biener  <rguenther@suse.de>
5800         * tree-vect-loop.c (vect_valid_reduction_input_p): Remove.
5801         (vect_is_simple_reduction): Delay checking to
5802         vectorizable_reduction and relax the checking.
5803         (vectorizable_reduction): Check we have a simple use.  Check
5804         for bogus condition reductions.
5805         * tree-vect-stmts.c (vect_transform_stmt): Make sure we
5806         are looking at the last stmt in a pattern sequence when
5807         filling in backedge PHI values.
5809 2019-10-16  Peter Bergner <bergner@linux.ibm.com>
5810             Jiufu Guo  <guojiufu@linux.ibm.com>
5812         PR target/70010
5813         * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
5814         the callee explicitly disables some isa_flags the caller is using.
5816 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5818         * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P.
5820 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5822         * genmodes.c (mode_data::order): New field.
5823         (blank_mode): Update accordingly.
5824         (VECTOR_MODES_WITH_PREFIX): Add an order parameter.
5825         (make_vector_modes): Likewise.
5826         (VECTOR_MODES): Update use accordingly.
5827         (cmp_modes): Sort by the new order field ahead of sorting by size.
5828         * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI)
5829         (VNx4QI, VNx4HI, VNx8QI): New partial vector modes.
5830         * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value.
5831         (aarch64_classify_vector_mode): Handle the new partial modes.
5832         (aarch64_vl_bytes): New function.
5833         (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR
5834         when counting the number of registers in an SVE mode.
5835         (aarch64_class_max_nregs): Likewise.
5836         (aarch64_hard_regno_mode_ok): Don't allow partial vectors
5837         in registers yet.
5838         (aarch64_classify_address): Treat partial vectors analogously
5839         to full vectors.
5840         (aarch64_print_address_internal): Consolidate the printing of
5841         MUL VL addresses, using aarch64_vl_bytes as the number of
5842         bytes represented by "VL".
5843         (aarch64_vector_mode_supported_p): Reject partial vector modes.
5845 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5847         * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant
5848         rather than known_lt when choosing frame layouts.
5850 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5852         * config/aarch64/aarch64.c (aarch64_layout_frame): Assert
5853         that all the adjustments add up to the full frame size.
5854         Use crtl->outgoing_args_size directly as the final adjustment
5855         where appropriate.
5857 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5859         * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local
5860         "frame" reference instead of always referring directly to
5861         "cfun->machine->frame".
5863 2019-10-16  Richard Biener  <rguenther@suse.de>
5865         PR tree-optimization/92119
5866         * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard
5867         against missing bswap lhs.
5869 2019-10-16  Richard Sandiford  <richard.sandiford@arm.com>
5871         PR middle-end/92033
5872         * poly-int.h (constant_lower_bound_with_limit): New function.
5873         (constant_upper_bound_with_limit): Likewise.
5874         * doc/poly-int.texi: Document them.
5875         * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds
5876         into the worst-case INTEGER_CST bounds.
5878 2019-10-16  Feng Xue  <fxue@os.amperecomputing.com>
5880         PR ipa/91088
5881         * doc/invoke.texi (ipa-max-param-expr-ops): Document new option.
5882         * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New.
5883         * ipa-predicat.h (struct expr_eval_op): New struct.
5884         (expr_eval_ops): New typedef.
5885         (struct condition): Add type and param_ops fields, remove size field.
5886         (add_condition): Replace size parameter with type parameter, add
5887         param_ops parameter.
5888         * ipa-predicat.c (expr_eval_ops_equal_p): New function.
5889         (predicate::add_clause): Add comparisons on type and param_ops.
5890         (dump_condition): Add debug dump for param_ops.
5891         (remap_after_inlining): Adjust call arguments to add_condition.
5892         (add_condition): Replace size parameter with type parameter, add
5893         param_ops parameter. Unshare constant value used in conditions.
5894         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold
5895         parameter expressions using param_ops.
5896         (decompose_param_expr):  New function.
5897         (set_cond_stmt_execution_predicate): Use call to decompose_param_expr
5898         to replace call to unmodified_parm_or_parm_agg_item.
5899         (set_switch_stmt_execution_predicate): Likewise.
5900         (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size
5901         with type.
5902         (inline_read_section): Read param_ops from summary stream.
5903         (ipa_fn_summary_write): Write param_ops to summary stream.
5905 2019-10-15  Segher Boessenkool  <segher@kernel.crashing.org>
5907         PR rtl-optimization/92107
5908         * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the
5909         expression written.
5911 2019-10-15  Iain Sandoe  <iain@sandoe.co.uk>
5913         * config/darwin.c: Update description of fix and continue.
5915 2019-10-15  Iain Sandoe  <iain@sandoe.co.uk>
5917         * config/darwin.c (darwin_binds_local_p): Update to call
5918         default_binds_local_p_3 () directly. amend comments.
5920 2019-10-15  Richard Biener  <rguenther@suse.de>
5922         * lto-streamer-out.c (lto_variably_modified_type_p): New.
5923         (tree_is_indexable): Use it.
5924         * tree-streamer-out.c (pack_ts_type_common_value_fields):
5925         Stream variably_modified_type_p as TYPE_LANG_FLAG_0.
5926         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
5928 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5930         * config/msp430/msp430.md (zero_extendqipsi2): New.
5931         (zero_extendqisi2): Optimize case where src register and base dst
5932         register are the same.
5933         (zero_extendhipsi2): Don't use 430X insn for rYs->r case.
5934         (zero_extendpsisi2): Optimize r->m case.
5935         Add unnamed insn patterns to catch insns combine searches for when
5936         optimizing pointer manipulation.
5938 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5940         * config/msp430/msp430.md: Group zero_extend* insns together.
5942 2019-10-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
5944         * config/msp430/constraints.md: Allow post_inc operand for "Ya"
5945         constraint.
5946         * config/msp430/msp430.c (msp430_legitimate_address_p): Handle
5947         POST_INC.
5948         (msp430_subreg): Likewise.
5949         (msp430_split_addsi): Likewise.
5950         (msp430_print_operand_addr): Likewise.
5951         * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define.
5952         (USE_STORE_POST_INCREMENT): Define.
5953         * config/msp430/msp430.md: Use the msp430_general_dst_operand or
5954         msp430_general_dst_nonv_operand predicates for the lvalues of insns.
5955         * config/msp430/predicates.md (msp430_nonpostinc_operand): New.
5956         (msp430_general_dst_operand): New.
5957         (msp430_general_dst_nonv_operand): New.
5958         (msp430_nonsubreg_operand): Remove.
5959         (msp430_nonsubreg_dst_operand): New.
5960         (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place
5961         of defunct msp430_nonsubreg_operand.
5962         (msp430_nonsubregnonpostinc_or_imm_operand): New.
5964 2019-10-15  Richard Biener  <rguenther@suse.de>
5966         PR tree-optimization/91929
5967         * tree-ssa-pre.c (pre_expr_d::loc): New member.
5968         (get_or_alloc_expr_for_name): Initialize it.
5969         (get_or_alloc_expr_for_constant): Likewise.
5970         (phi_translate_1): Copy it.
5971         (create_expression_by_pieces): Use the original location
5972         of the expression for the inserted stmt.
5973         (compute_avail): Record the location of the stmt for the
5974         expressions created.
5976 2019-10-15  Richard Sandiford  <richard.sandiford@arm.com>
5978         * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p
5979         before using tree_to_uhwi.
5981 2019-10-15  Ilya Leoshkevich  <iii@linux.ibm.com>
5983         * config/s390/s390.md: Run %a0:DI splitters only after reload.
5985 2019-10-15  Richard Biener  <rguenther@suse.de>
5987         PR tree-optimization/92094
5988         * tree-vect-loop.c (vectorizable_reduction): For nested cycles
5989         do not adjust the reduction definition def type.
5990         * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt
5991         defines the latch argument of the PHI.
5993 2019-10-15  Hongyu Wang  <hongtao.wang@intel.com>
5995         PR target/92035
5996         * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss,
5997         _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss,
5998         _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd,
5999         _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd,
6000         _mm_maskz_roundscale_round_sd): New intrinsics.
6001         (_mm_roundscale_ss, _mm_roundscale_round_ss): Use
6002         __builtin_ia32_rndscales?_mask_round builtins instead of
6003         __builtin_ia32_rndscales?_round.
6004         * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round,
6005         __builtin_ia32_rndscalesd_round): Remove.
6006         (__builtin_ia32_rndscaless_mask_round,
6007         __builtin_ia32_rndscalesd_mask_round): New intrinsics.
6008         * config/i386/sse.md
6009         (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ...
6010         (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>):
6011          ... this, adjust and add subst atrributes to make it maskable.
6013 2019-10-15  Richard Biener  <rguenther@suse.de>
6015         PR middle-end/92046
6016         * common.opt (fallow-store-data-races): New.
6017         * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove.
6018         * params.h (ALLOW_STORE_DATA_RACES): Likewise.
6019         * doc/invoke.texi (fallow-store-data-races): Document.
6020         (--param allow-store-data-races): Remove docs.
6021         * opts.c (default_options_table): Enable -fallow-store-data-races
6022         at -Ofast.
6023         (default_options_optimization): Do not enable --param
6024         allow-store-data-races at -Ofast.
6025         * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races
6026         instead of PARAM_ALLOW_STORE_DATA_RACES.
6027         * tree-ssa-loop-im.c (execute_sm): Likewise.
6029 2019-10-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6031         PR tree-optimization/92085
6032         * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause,
6033         instead of calling it unconditionally after
6034         delete_dead_or_redundant_assignment and fix indentation.
6036 2019-10-15  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
6038         * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when
6039         TARGET_VFP_DOUBLE.
6040         (*fmsub<SDF:mode>4): Likewise.
6041         *fnmsub<SDF:mode>4): Likewise.
6042         (*fnmadd<SDF:mode>4): Likewise.
6044 2019-10-14 Joel Hutton  <Joel.Hutton@arm.com>
6046         * doc/tree-ssa.texi: Update renamed macro name.
6048 2019-10-14  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
6050         * config/mips/mips.c (mips_cannot_force_const_mem): Reject
6051         vector constants.
6053 2019-10-14  Iain Sandoe  <iain@sandoe.co.uk>
6055         * config/darwin.c: Use unsigned ints for the picbase label
6056         counters, initialise the vars explicitly.
6057         (update_pic_label_number_if_needed): Move a variable declaration
6058         to where it's needed.
6059         (machopic_output_function_base_name): Use a more strict checking
6060         assert, and and unsigned int for the picbase label counter.
6061         (machopic_get_function_picbase): Likewise.
6063 2019-10-14  Richard Biener  <rguenther@suse.de>
6065         PR middle-end/92046
6066         * dse.c (scan_insn): Use param max_active_local_stores.
6067         (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust
6068         based on optimization level.
6069         * loop-invariant.c (move_loop_invariants): Adjust
6070         LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level.
6071         * opts.c (default_options_optimization): Do not adjust
6072         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and
6073         LOOP_INVARIANT_MAX_BBS_IN_LOOP here.
6075 2019-10-14  Wilco Dijkstra  <wdijkstr@arm.com>
6077         * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout.
6079 2019-10-14  Wilco Dijkstra  <wdijkstr@arm.com>
6081         * config/arm/arm.c (arm_option_override): Don't override sched
6082         pressure algorithm.
6084 2019-10-14  Richard Biener  <rguenther@suse.de>
6086         PR tree-optimization/92069
6087         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested
6088         cycles do not set vect_nested_cycle on the latch definition.
6090 2019-10-14  Richard Sandiford  <richard.sandiford@arm.com>
6092         * function-abi.h (expr_callee_abi): Declare.
6093         * function-abi.cc (expr_callee_abi): New function.
6095 2019-10-14  Aldy Hernandez  <aldyh@redhat.com>
6097         * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0]
6098         into [1,MAX].
6099         * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned
6100         non-zero being represented as [1,MAX].
6102 2019-10-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
6104         * tree-sra.c (dump_access): Add missing braces.
6106 2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
6108         * config/darwin.c (machopic_indirection_name): Rework the
6109         function to emit linker-visible symbols only for indirections
6110         in the data section.  Clean up the code and update comments.
6112 2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
6114         * config/darwin.c (machopic_indirect_data_reference): Remove
6115         redundant code.
6117 2019-10-13  Nathan Sidwell  <nathan@acm.org>
6119         * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'.
6121 2019-10-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6123         * doc/sourcebuild.texi (Test Directives, Add Options): Remove
6124         c99_runtime.
6126 2019-10-12  Jan Hubicka  <hubicka@ucw.cz>
6128         * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
6129         so non-virutal are before virutals.
6130         (output_function): Avoid body modifications.
6132 2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
6134         * config/pa/pa.c (pa_output_call): Load descriptor address to register
6135         %r22.  Load function address before global pointer.
6136         (pa_attr_length_indirect_call): Adjust length of inline versions of
6137         $$dyncall.
6138         (pa_output_indirect_call): Remove fast inline version of $$dyncall
6139         before normal cases.  Update inline $$dyncall sequences to preserve
6140         function descriptor address in register %r22.
6141         (TRAMPOLINE_CODE_SIZE): Adjust.
6142         (pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
6143         register %r22 contains trampoline address.
6144         (pa_trampoline_init): Adjust offsets.
6145         (pa_trampoline_adjust_address): Likewise.
6146         * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.
6148 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
6150         PR target/67183
6151         * config/darwin.c (machopic_indirection): New field to flag
6152         non-lazy-symbol-pointers in the data section.
6153         (machopic_indirection_name): Compute if an indirection should
6154         appear in the data section.
6155         (machopic_output_data_section_indirection): New callback split
6156         from machopic_output_indirection.
6157         (machopic_output_stub_indirection): Likewise.
6158         (machopic_output_indirection): Retain the code for non-lazy
6159         symbol pointers in their regular section.
6160         (machopic_finish): Use the new callbacks to order the indirection
6161         output.
6163 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
6165         * config/darwin-protos.h (machopic_finish): Delete.
6166         * config/darwin.c (machopic_finish): Make static.
6168 2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
6170         * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR
6171         sections when building kernel extension code.
6173 2019-10-12  Palmer Dabbelt  <palmer@sifive.com>
6175         * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a
6176         later standard."
6178 2019-10-12  John David Anglin  <danglin@gcc.gnu.org>
6180         * config/pa/pa.c (pa_option_override): Remove trailing comma
6181         from warning.
6183 2019-10-12  Jakub Jelinek  <jakub@redhat.com>
6185         PR middle-end/92063
6186         * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR>
6187         <case VEC_COND_EXPR>: Return false with *handled = false.
6188         (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of
6189         recursing on the first operand.
6190         * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p
6191         instead of tree_could_trap_p.
6192         * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes.
6194 2019-10-11  Jim Wilson  <jimw@sifive.com>
6196         PR rtl-optimization/91860
6197         * combine.c (subst): If new_rtx is a constant, also check for
6198         SIGN_EXTEND when deciding whether to call simplify_unary_operation.
6200 2019-10-11  Richard Sandiford  <richard.sandiford@arm.com>
6202         * expr.c (store_expr): Use rtx_to_poly_int64 rather than
6203         INTVAL when calling store_bit_field.
6205 2019-10-11  Wilco Dijkstra  <wdijkstr@arm.com>
6207         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for
6208         size.
6210 2019-10-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6212         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to
6213         vectorizable_live_operation.
6214         (vectorizable_live_operation): Adjust parameters.
6215         * tree-vect-stmts.c (vect_init_vector,
6216         vect_gen_widened_results_half): Fix typo in function comment.
6217         (can_vectorize_live_stmts): Adjust function comment.
6218         Adjust parameters.  Adjust call to vectorizable_live_operation.
6219         (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts.
6220         (vect_transform_stmt): Adjust function comment.  Adjust call to
6221         can_vectorize_live_stmts.
6222         * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters.
6224 2019-10-11  Richard Biener  <rguenther@suse.de>
6226         PR tree-optimization/90883
6227         PR tree-optimization/91091
6228         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct
6229         alias-sets both for recording VN table entries and continuing
6230         walking after translating through copies.  Handle same-sized
6231         reads from SSA names by returning the plain SSA name.
6232         (eliminate_dom_walker::eliminate_stmt): Properly handle
6233         non-size precision stores in redundant store elimination.
6235 2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
6237         * ggc-page.c (release_pages): Output statistics when !quiet_flag.
6238         (ggc_collect): Dump later to not interfere with release_page dump.
6239         (ggc_trim): New function.
6240         * ggc-none.c (ggc_trim): New.
6241         * ggc.h (ggc_trim): Declare.
6243 2019-10-11  Richard Biener  <rguenther@suse.de>
6245         PR tree-optimization/92066
6246         PR tree-optimization/92046
6247         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6248         Fix bogus cost model check.
6250 2019-10-11  Tobias Burnus  <tobias@codesourcery.com>
6252         * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
6253         (LANG_HOOKS_DECLS): Add it.
6254         * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
6255         update comment for omp_is_optional_argument.
6256         * omp-general.c (omp_is_allocatable_or_ptr): New.
6257         * omp-general.h (omp_is_allocatable_or_ptr): Declare.
6258         * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
6259         Fortran's optional arguments and allocatable/pointer scalars
6260         with use_device_addr.
6262 2019-10-11  Ilya Leoshkevich  <iii@linux.ibm.com>
6264         PR target/77918
6265         * config/s390/2827.md: Add new opcodes.
6266         * config/s390/2964.md: Likewise.
6267         * config/s390/3906.md: Likewise.
6268         * config/s390/8561.md: Likewise.
6269         * config/s390/s390-builtins.def (s390_vfchesb): Use
6270         the new vec_cmpgev4sf_quiet_nocc.
6271         (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
6272         (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
6273         (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
6274         (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
6275         (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
6276         (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
6277         (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
6278         * config/s390/s390-modes.def (CCSFPS): New mode.
6279         * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
6280         (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
6281         (s390_branch_condition_mask): Reuse CCS for CCSFPS.
6282         (s390_expand_vec_compare): Use non-signaling patterns where
6283         necessary.
6284         (s390_reverse_condition): Support CCSFPS.
6285         * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
6286         * config/s390/vector.md: (VFCMP_HW_OP): Remove.
6287         (asm_fcmp_op): Likewise.
6288         (*smaxv2df3_vx): Use pattern for quiet comparison.
6289         (*sminv2df3_vx): Likewise.
6290         (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
6291         (*vec_cmpeq<mode>_quiet_nocc): New pattern.
6292         (vec_cmpgt<mode>_quiet_nocc): Likewise.
6293         (vec_cmplt<mode>_quiet_nocc): New expander.
6294         (vec_cmpge<mode>_quiet_nocc): New pattern.
6295         (vec_cmple<mode>_quiet_nocc): New expander.
6296         (*vec_cmpeq<mode>_signaling_nocc): New pattern.
6297         (*vec_cmpgt<mode>_signaling_nocc): Likewise.
6298         (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
6299         (*vec_cmpge<mode>_signaling_nocc): Likewise.
6300         (*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
6301         (vec_cmpungt<mode>): New expander.
6302         (vec_cmpunge<mode>): Likewise.
6303         (vec_cmpuneq<mode>): Use quiet patterns.
6304         (vec_cmpltgt<mode>): Allow only on z14+.
6305         (vec_cmpordered<mode>): Use quiet patterns.
6306         (vec_cmpunordered<mode>): Likewise.
6307         (VEC_CMP_EXPAND): Add ungt and unge.
6309 2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
6311         * gimple-streamer-out.c (output_gimple_stmt): Add explicit function
6312         parameter.
6313         * lto-streamer-out.c: Include tree-dfa.h.
6314         (output_cfg): Do not use cfun.
6315         (lto_prepare_function_for_streaming): New.
6316         (output_function): Do not push cfun; do not initialize loop optimizer.
6317         * lto-streamer.h (lto_prepare_function_for_streaming): Declare.
6318         * passes.c (ipa_write_summaries): Use it.
6319         (ipa_write_optimization_summaries): Do not modify bodies.
6320         * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
6321         * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
6322         * tree-ssa-dse.c (pass_dse::execute): Update use of
6323         renumber_gimple_stmt_uids.
6324         * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
6326 2019-10-11  Kewen Lin  <linkw@gcc.gnu.org>
6328         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
6329         vec_promote_demote cost to 1 for non-Power7 VSX architectures.
6331 2019-10-10  Joseph Myers  <joseph@codesourcery.com>
6333         * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
6334         macros.
6335         [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
6336         Also define DFP macros for these conditions.
6337         [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
6338         DEC128_SUBNORMAL_MIN): Do not define.
6339         [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
6340         (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
6342 2019-10-10  Xiong Hu Luo  <luoxhu@linux.ibm.com>
6343             Sandra Loosemore  <sandra@codesourcery.com>
6345         PR middle-end/26241
6346         * doc/lto.texi (IPA): Reference to the IPA passes.
6347         * doc/passes.texi (Pass manager): Add node IPA passes and
6348           description for each IPA pass.
6350 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
6352         * ipa-reference.c: Do not include splay-tree.h
6353         (reference_vars_to_consider): Turn to hash map.
6354         (get_static_name, ipa_init, analyze_function, propagate,
6355         stream_out_bitmap, ipa_reference_write_optimization_summary,
6356         ipa_reference_write_optimization_summary): Update.
6358 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
6360         * ipa-reference.c (propagate): Fix releasing of IPA summaries.
6362 2019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
6364         * config/darwin.c: Lookup Objective C metadata and force indirection
6365         for IVAR refs.
6367 2019-10-10  Michael Meissner  <meissner@linux.ibm.com>
6369         * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
6370         addresses.
6371         (mem_operand_gpr): Add check for prefixed addresses.
6372         (mem_operand_ds_form): Add check for prefixed addresses.
6373         (rs6000_legitimate_offset_address_p): If we support prefixed
6374         addresses, check for a 34-bit offset instead of 16-bit.
6375         (rs6000_legitimate_address_p): Add check for prefixed addresses.
6376         Do not allow load/store with update if the address is prefixed.
6377         (rs6000_mode_dependent_address):  If we support prefixed
6378         addresses, check for a 34-bit offset instead of 16-bit.
6380 2019-10-10  Ilya Leoshkevich  <iii@linux.ibm.com>
6382         PR target/77918
6383         * config/s390/vector.md (vcond_comparison_operator): New
6384         predicate.
6385         (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
6387 2019-10-10  David Malcolm  <dmalcolm@redhat.com>
6389         PR 87488
6390         * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
6391         -D.
6392         * configure.ac (--with-documentation-root-url): New option.
6393         * configure: Regenerate.
6394         * diagnostic-format-json.cc (json_end_diagnostic): If there is an
6395         option URL, add it as a new string field of the diagnostic option.
6396         * diagnostic.c (diagnostic_initialize): Initialize get_option_url.
6397         (print_option_information): If get_option_url is non-NULL, call
6398         it, and if the result is non-NULL, potentially emit an escape
6399         sequence to markup the option text with the resulting URL.
6400         * diagnostic.h (diagnostic_context::get_option_url): New callback.
6401         * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
6402         example of JSON output.
6403         * opts-diagnostic.h (get_option_url): New decl.
6404         * opts.c (get_option_url): New function.
6405         * toplev.c (general_init): Initialize the get_option_url callback.
6407 2019-10-10  David Malcolm  <dmalcolm@redhat.com>
6409         PR 87488
6410         * common.opt (fdiagnostics-urls=): New option.
6411         (diagnostic-url.h): Add SourceInclude.
6412         (diagnostic_url_rule): New enum.
6413         * diagnostic-color.c: Include "diagnostic-url.h".
6414         (diagnostic_urls_enabled_p): New function.
6415         * diagnostic-url.h: New file.
6416         * diagnostic.c: Include "diagnostic-url.h".
6417         (diagnostic_urls_init): New function.
6418         * diagnostic.h (diagnostic_urls_init): New decl.
6419         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6420         -fdiagnostics-urls to the list.
6421         (-fdiagnostics-urls): New option.
6422         * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
6423         (driver::global_initializations): Call diagnostic_urls_init.
6424         * opts-global.c (init_options_once): Likewise.
6425         * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
6426         * pretty-print.c (pretty_printer::pretty_printer): Initialize
6427         show_urls.
6428         (pp_begin_url): New function.
6429         (pp_end_url): New function.
6430         (selftest::test_urls): New selftest.
6431         (selftest::pretty_print_c_tests): Call it.
6432         * pretty-print.h (pretty_printer::show_urls): New field.
6433         (pp_begin_url): New decl.
6434         (pp_end_url): New decl.
6436 2019-10-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6438         PR target/92022
6439         * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
6441 2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
6443         PR target/88630
6444         * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
6445         * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
6446         also for TARGET_FPU_SH4_300.
6447         (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
6448         TARGET_SH4_300.
6449         * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
6450         (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
6451         (*negsf2_i): Split into ...
6452         (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
6453         (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
6454         (**abssf2_i): Split into ...
6455         (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
6456         (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
6457         (*negdf2_i): Split into ...
6458         (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
6459         (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
6460         (**abssf2_i): Split into ...
6461         (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
6463 2019-10-10  Richard Biener  <rguenther@suse.de>
6465         PR middle-end/92046
6466         * opts.c (finish_options): Do not influence global --params
6467         from options that are adjustable per function.
6468         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6469         Apply --param adjustment based on active cost-model.
6470         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable
6471         further store-sinking when vectorization or if-conversion
6472         are not enabled.
6474 2019-10-10  Jan Hubicka  <hubicka@ucw.cz>
6476         PR middle-end/92037
6477         * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc
6478         rather than ggc_alloc_cleared to alloc symbol table.
6479         * toplev.c (general_init): Likewise.
6480         * cgraph.h (symbol_table): Explicitly construct every field.
6482 2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>
6484         * common/config/s390/s390-common.c (PF_ARCH13): Rename to...
6485         (PF_Z15): ... this.
6486         * config.gcc: Add z15 as option for --with-arch and --with-tune
6487         configure switches.
6488         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
6489         error reporting for unsupported builtins.
6490         * config/s390/s390-opts.h (enum processor_type): Rename
6491         PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
6492         * config/s390/8561.md: Rename arch13 to z15 throughout the file.
6493         * config/s390/driver-native.c (s390_host_detect_local_cpu):
6494         Likewise.
6495         * config/s390/s390-builtins.def: Likewise.
6496         * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
6497         (s390_expand_builtin): Add missing check for unsupported builtins.
6498         (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
6499         (s390_rtx_costs): Likewise.
6500         (s390_get_sched_attrmask): Rename arch13 to z15.
6501         (s390_get_unit_mask): Likewise.
6502         (s390_is_fpd): Likewise.
6503         (s390_is_fxd): Likewise.
6504         * config/s390/s390.h (enum processor_flags): Likewise.
6505         * config/s390/s390.md: Likewise.
6506         * config/s390/vector.md: Likewise.
6507         * config/s390/vx-builtins.md: Likewise.
6508         * config/s390/s390.opt: Add z15 to processor_type value.
6510 2019-10-10  Andreas Krebbel  <krebbel@linux.ibm.com>
6512         PR target/91035
6513         * config/s390/s390-protos.h (s390_output_split_stack_data): Add
6514         prototype.
6515         * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove.
6516         ("split_stack_data", "split_stack_call")
6517         ("split_stack_call_<mode>", "split_stack_cond_call")
6518         ("split_stack_cond_call_<mode>"): Remove.
6519         ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New
6520         insn definition.
6521         * config/s390/s390.c (s390_output_split_stack_data): New function.
6522         (s390_expand_split_stack_prologue): Use the merged expander.
6524 2019-10-09  Martin Sebor  <msebor@redhat.com>
6526         PR tree-optimization/90879
6527         * builtins.c (check_access): Avoid using maxbound when null.
6528         * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change.
6529         * doc/invoke.texi (-Wstring-compare): Document new warning option.
6530         * gimple-fold.c (get_range_strlen_tree): Make setting maxbound
6531         conditional.
6532         (get_range_strlen): Overwrite initial maxbound when non-null.
6533         * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen
6534         changes.
6535         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.
6536         (used_only_for_zero_equality): New function.
6537         (handle_builtin_memcmp): Call it.
6538         (determine_min_objsize): Return an integer instead of tree.
6539         (get_len_or_size, strxcmp_eqz_result): New functions.
6540         (maybe_warn_pointless_strcmp): New function.
6541         (handle_builtin_string_cmp): Call it.  Fold zero-equality of strcmp
6542         between a longer string and a smaller array.
6543         (get_range_strlen_dynamic): Overwrite initial maxbound when non-null.
6545 2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
6547         * config/darwin.c (darwin_override_options): Make the check for
6548         Objective-C ABI version more specific for 64bit code.
6550 2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
6552         * config/darwin.c (machopic_indirect_data_reference): Set flag to
6553         indicate that the new symbol is an indirection.
6554         (machopic_indirect_call_target): Likewise.
6555         * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
6556         (MACHO_SYMBOL_INDIRECTION_P): New.
6557         (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
6559 2019-10-08  Jason Merrill  <jason@redhat.com>
6561         * doc/invoke.texi: Document -fconcepts-ts.
6563 2019-10-09  Richard Biener  <rguenther@suse.de>
6565         * tree-vect-loop.c (vect_is_simple_reduction): Simplify and
6566         allow stmts other than GIMPLE_ASSIGN in nested cycles.
6568 2019-10-08  Richard Biener  <rguenther@suse.de>
6570         * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New.
6571         (_stmt_vec_info::force_single_cycle): Likewise.
6572         (STMT_VINFO_FORCE_SINGLE_CYCLE): New.
6573         (STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
6574         * tree-vect-loop.c (vectorizable_reduction): Set
6575         STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE.
6576         (vect_transform_reduction): Use them to remove redundant code.
6577         (vect_transform_cycle_phi): Likewise.
6579 2019-10-08  Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com>
6581         PR tree-optimization/90836
6582         * match.pd (popcount): New pattern.
6584 2019-10-08  Martin Sebor  <msebor@redhat.com>
6586         PR middle-end/92026
6587         PR middle-end/92014
6588         * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF
6589         again once nbytes has been set.  Set the access size when not yet set.
6591 2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
6593         * config/darwin.c (machopic_select_section): Remove dead code for
6594         old Objective-C section selection method, replace with unreachable.
6596 2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
6598         * config/darwin.c (machopic_indirect_data_reference): Check for
6599         required indirections before making direct access to defined
6600         values.
6601         (machopic_output_indirection): Place the indirected pointes for
6602         required indirections into the non-lazy symbol pointers section.
6603         (darwin_encode_section_info):
6604         * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
6605         (MACHO_SYMBOL_MUST_INDIRECT_P): New.
6607 2019-10-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6609         PR target/91994
6610         * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG
6611         instead of ALL_SSE_REG to check if function call preserves some
6612         256-bit SSE registers.
6614 2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
6616         * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
6617         LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
6618         MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
6620 2019-10-08  Richard Biener  <rguenther@suse.de>
6622         * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove.
6623         (_stmt_vec_info::is_reduc_info): Add.
6624         (STMT_VINFO_VEC_REDUCTION_TYPE): Remove.
6625         (vectorizable_condition): Remove.
6626         (vectorizable_shift): Likewise.
6627         (vectorizable_reduction): Adjust.
6628         (info_for_reduction): New.
6629         * tree-vect-loop.c (vect_force_simple_reduction): Fold into...
6630         (vect_analyze_scalar_cycles_1): ... here.
6631         (vect_analyze_loop_operations): Adjust.
6632         (needs_fold_left_reduction_p): Simplify for single caller.
6633         (vect_is_simple_reduction): Likewise.  Remove stmt restriction
6634         for nested cycles not part of double reductions.
6635         (vect_model_reduction_cost): Pass in the reduction type.
6636         (info_for_reduction): New function.
6637         (vect_create_epilog_for_reduction): Use it, access reduction
6638         meta off the stmt info it returns.  Use STMT_VINFO_REDUC_TYPE
6639         instead of STMT_VINFO_VEC_REDUCTION_TYPE.
6640         (vectorize_fold_left_reduction): Remove pointless assert.
6641         (vectorizable_reduction): Analyze the full reduction when
6642         visiting the outermost PHI.  Simplify.  Use STMT_VINFO_REDUC_TYPE
6643         instead of STMT_VINFO_VEC_REDUCTION_TYPE.  Direct reduction
6644         stmt code-generation to vectorizable_* in most cases.  Verify
6645         code-generation only for cases handled by
6646         vect_transform_reductuon.
6647         (vect_transform_reduction): Use info_for_reduction to get at
6648         reduction meta.  Simplify.
6649         (vect_transform_cycle_phi): Likewise.
6650         (vectorizable_live_operation): Likewise.
6651         * tree-vect-patterns.c (vect_reassociating_reduction_p): Look
6652         at the PHI node for STMT_VINFO_REDUC_TYPE.
6653         * tree-vect-slp.c (vect_schedule_slp_instance): Remove no
6654         longer necessary code.
6655         * tree-vect-stmts.c (vectorizable_shift): Make static again.
6656         (vectorizable_condition): Likewise.  Get at reduction related
6657         info via info_for_reduction.
6658         (vect_analyze_stmt): Adjust.
6659         (vect_transform_stmt): Likewise.
6660         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
6661         STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE.
6663 2019-10-08  Joseph Myers  <joseph@codesourcery.com>
6665         * doc/invoke.texi (-ffp-int-builtin-inexact): Document
6666         -fno-fp-int-builtin-inexact default for C2X.
6668 2019-10-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6669             Richard Biener  <rguenther@suse.de>
6671         PR tree-optimization/91532
6672         * tree-if-conv.c: Include tree-ssa-dse.h.
6673         (ifcvt_local_dce): Change param from bb to loop,
6674         and call dse_classify_store.
6675         (tree_if_conversion): Pass loop instead of loop->header as arg
6676         to ifcvt_local_dce.
6677         * tree-ssa-dse.c: Include tree-ssa-dse.h.
6678         (delete_dead_or_redundant_assignment): Remove static qualifier from
6679         declaration, and add prototype in tree-ssa-dse.h.
6680         (dse_store_status): Move to tree-ssa-dse.h.
6681         (dse_classify_store): Remove static qualifier and add new tree param
6682         stop_at_vuse, and add prototype in tree-ssa-dse.h.
6683         * tree-ssa-dse.h: New header.
6685 2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
6687         * config/darwin.c (machopic_output_indirection): Don't put
6688         hidden symbol indirections into the .data section, use the
6689         non-lazy symbol pointers section as normal.
6690         (darwin_encode_section_info): Record if a symbol is hidden.
6691         * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
6692         (MACHO_SYMBOL_HIDDEN_VIS_P): New.
6694 2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
6696         * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
6697         predicates instead of accessing bits directly.
6698         (machopic_indirect_call_target): Likewise.
6699         (machopic_output_indirection): Likewise.
6700         (darwin_encode_section_info): Improve description.  Use renamed
6701         symbol flags.  Use predicate macros for variables and functions.
6702         * config/darwin.h:
6703         Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
6704         Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
6705         Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
6706         (MACHO_SYMBOL_VARIABLE_P): New.
6707         (MACHO_SYMBOL_DEFINED_P):New.
6708         (MACHO_SYMBOL_STATIC_P): New.
6709         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
6710         (SYMBOL_FLAG_SUBT_DEP): New.
6711         * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
6713 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
6715         * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/
6716         (msp430_expand_epilogue): Likewise.
6717         * config/msp430/predicates.md: Likewise.
6718         * config/msp430/msp430.md: Likewise.
6719         Replace blocks of 8 spaces with tabs.
6721 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
6723         * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype.
6724         * config/msp430/msp430.c (msp430_split_addsi): New.
6725         * config/msp430/msp430.md: Call msp430_split_addsi () instead of using
6726         a block of C code for splitting addsi.
6728 2019-10-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6730         * config/i386/i386-expand.c (ix86_expand_floorceildf_32,
6731         ix86_expand_rounddf_32): Reorder functions.
6732         * config/i386/i386-protos.h: Update.
6734 2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
6736         * config.in: Regenerate.
6737         * config/msp430/constraints.md: Fix docstring for "Ys" constraint.
6738         Add new "Yx" constraint.
6739         * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec
6740         function.
6741         * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New
6742         prototype.
6743         * config/msp430/msp430.c (msp430_option_override): Allow the lower
6744         code/data region to be selected in the small memory model.
6745         (msp430_section_attr): Don't warn if the "section" and "lower"
6746         attributes are used together.
6747         (msp430_handle_generic_attribute): Likewise.
6748         (msp430_var_in_low_mem): New function.
6749         (TARGET_ENCODE_SECTION_INFO): Define.
6750         (msp430_encode_section_info): New function.
6751         (gen_prefix): Return early in the small memory model.
6752         Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the
6753         ".lower" prefix if -m{code,data}-region=lower have been passed.
6754         (msp430_output_aligned_decl_common): Emit common symbols when
6755         -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is
6756         set.
6757         (TARGET_ASM_FILE_END): Define.
6758         (msp430_file_end): New function.
6759         (msp430_do_not_relax_short_jumps): Allow relaxation when
6760         function will be in the lower region.
6761         (msp430_op_not_in_high_mem): New function.
6762         (msp430_print_operand): Check "msp430_op_not_in_high_mem" for
6763         the 'X' operand selector.
6764         Clarify comment for 'x' operand selector.
6765         * config/msp430/msp430.h (LINK_SPEC): Propagate
6766         -m{code,data}-region to the linker via spec function
6767         msp430_propagate_region_opt.
6768         (msp430_propagate_region_opt): New prototype.
6769         (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt.
6770         (SYMBOL_FLAG_LOW_MEM): Define.
6771         * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand
6772         selector.
6773         (zero_extendqihi2): Fix operand number used by "%X" selector.
6774         (zero_extendqisi2): Likewise.
6775         (zero_extendhisi2): Likewise.
6776         (movqi): Use "Yx" constraint in place of "%X" operand selector.
6777         (movhi): Likewise.
6778         (addqi3): Likewise.
6779         (addhi3): Likewise.
6780         (addsi3): Likewise.
6781         (addhi3_cy): Likewise.
6782         (addchi4_cy): Likewise.
6783         (subqi3): Likewise.
6784         (subhi3): Likewise.
6785         (subsi3): Likewise.
6786         (bic<mode>3): Likewise.
6787         (and<mode>3): Likewise.
6788         (ior<mode>3): Likewise.
6789         (xor<mode>3): Likewise.
6790         (slli_1): Add missing "%X" operand selector.
6791         (slll_1): Likewise.
6792         (slll_2): Likewise.
6793         (srai_1): Likewise.
6794         (sral_1): Likewise.
6795         (sral_2): Likewise.
6796         (srli_1): Likewise.
6797         (srll_1): Likewise.
6798         (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand
6799         selector.
6800         (cbranchhi4_real): Likewise.
6801         (cbranchqi4_reversed): Likewise.
6802         (cbranchhi4_reversed): Likewise.
6803         (*bitbranch<mode>4): Likewise.
6804         (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector.
6805         * config/msp430/msp430.opt (mcode-region=): Set default to
6806         MSP430_REGION_LOWER. Improve docstring.
6807         (mdata-region=): Likewise.
6808         (muse-lower-region-prefix): New option.
6809         * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add
6810         mdata-region=none multilib.
6811         (MULTILIB_MATCHES): Set mdata-region={upper,either} to match
6812         mdata-region=none multilib.
6813         MULTILIB_EXCEPTIONS: Remove.
6814         MULTILIB_REQUIRED: Define.
6815         * configure: Regenerate.
6816         * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and
6817         HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50.
6818         * doc/extend.texi: Clarify comment for {upper,lower,either}
6819         function attributes.
6820         Add separate description for "lower" variable attribute.
6822 2019-10-07  Ilya Leoshkevich  <iii@linux.ibm.com>
6824         PR target/77918
6825         * optabs-tree.c (vcond_icode_p): New function.
6826         (vcond_eq_icode_p): Likewise.
6827         (expand_vec_cond_expr_p): Use vcond_icode_p and
6828         vcond_eq_icode_p.
6829         * optabs.c (can_vcond_compare_p): New function.
6830         * optabs.h (can_vcond_compare_p): Likewise.
6832 2019-10-07  Ilya Leoshkevich  <iii@linux.ibm.com>
6834         PR target/77918
6835         * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the
6836         caller passes a non-trapping condition.
6837         (is_gimple_condexpr): Allow trapping conditions.
6838         (is_gimple_condexpr_1): New helper function.
6839         (is_gimple_condexpr_for_cond): New function, acts like old
6840         is_gimple_condexpr.
6841         * gimple-expr.h (is_gimple_condexpr_for_cond): New function.
6842         * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and
6843         VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.).
6844         * gimplify.c (gimplify_cond_expr): Use
6845         is_gimple_condexpr_for_cond.
6846         (gimplify_expr): Allow is_gimple_condexpr_for_cond.
6847         * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and
6848         VEC_COND_EXPR.
6849         (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR.
6850         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use
6851         is_gimple_condexpr_for_cond, remove pointless tmp check
6852         (forward_propagate_into_cond): Remove pointless tmp check.
6854 2019-10-07 Vladislav Ivanishin  <vlad@ispras.ru>
6856         * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
6857         match that of other gsi_next_* functions.  Adjust the comment.
6858         (gsi_start_nonvirtual_phis): New function.
6859         * ipa-icf.c (sem_function::compare_phi_node): Update uses of
6860         gsi_next_nonvirtual_phi accordingly.  (No functional change.)
6862 2019-10-07 Vladislav Ivanishin  <vlad@ispras.ru>
6864         * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
6865         setjmp situation here.  Fix a verb's ending: "the exact variables or
6866         elements for which there are warnings depends" -> "... depend".
6868 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
6870         * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check.
6872 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
6874         * ipa-prop.c (ipa_vr::nonzero_p): New.
6875         (ipcp_update_vr): Use nonzero_p instead of open-coding check for
6876         non-zero range.
6877         * ipa-prop.h (class ipa_vr): Add nonzero_p.
6878         * tree-vrp.c (range_has_numeric_bounds_p): New.
6879         (range_int_cst_p): Use range_has_numeric_bounds_p.
6880         (get_range_op_handler): New.
6881         (supported_types_p): New.
6882         (defined_ranges_p): New.
6883         (drop_undefines_to_varying): New.
6884         (range_fold_binary_symbolics_p): New.
6885         (range_fold_unary_symbolics_p): New.
6886         (range_fold_unary_expr): Extract out into above functions.
6887         (range_fold_binary_expr): Same.
6888         (value_range_base::normalize_addresses): New.
6889         (value_range_base::normalize_symbolics): Normalize addresses.
6890         * tree-vrp.h (class value_range_base): Add normalize_addresses.
6892 2019-10-07  Aldy Hernandez  <aldyh@redhat.com>
6894         * tree-vrp.c (value_range_base::singleton_p): Use
6895         value_range_base::num_pairs instead of vrp_val_is* to check
6896         if a range has one sub-range.
6898 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
6900         * ira-lives.c (check_and_make_def_conflict): Handle cases in which
6901         DEF is not a true earlyclobber but is tied to a specific input
6902         operand, and so is effectively earlyclobber wrt inputs that have
6903         different values.
6904         (make_early_clobber_and_input_conflicts): Pass this case to the above.
6906 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
6908         * machmode.h (opt_mode): Mark constructors with CONSTEXPR.
6909         (pod_mode): Mark operators likewise.
6910         (scalar_int_mode): Mark non-default constructors and
6911         operators with CONSTEXPR.
6912         (scalar_float_mode, scalar_mode, complex_mode): Likewise.
6913         (fixed_size_mode): Likewise.
6915 2019-10-07  Richard Sandiford  <richard.sandiford@arm.com>
6917         PR target/91994
6918         * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand
6919         and wrap the unspec_volatile in a parallel.
6920         (*avx_vzeroupper): New define_insn.  Use a match_parallel around
6921         the unspec_volatile.
6922         * config/i386/predicates.md (vzeroupper_pattern): Expect the
6923         unspec_volatile to be wrapped in a parallel.
6924         * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper)
6925         (ix86_add_reg_usage_to_vzerouppers): New functions.
6926         (rest_of_handle_insert_vzeroupper): Use them to add register
6927         usage information to the vzeroupper instructions.
6929 2019-10-07  Richard Biener  <rguenther@suse.de>
6931         PR tree-optimization/91975
6932         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently
6933         handle invariants.
6935 2019-10-06  Richard Sandiford  <richard.sandiford@arm.com>
6937         * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary
6938         function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET.
6940 2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
6942         * config/darwin.c (darwin_override_options): Adjust objective-c
6943         ABI version error messages to avoid punctuation and contracted
6944         negations.
6946 2019-10-05  Jan Hubicka  <hubicka@ucw.cz>
6948         * ipa-inline.c: Fix type; compute size rather than self_size
6949         for size of caller function.
6951 2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
6953         PR target/59888
6954         * config/darwin.c (darwin_rodata_section): Add relocation flag,
6955         choose const_data section for constants with relocations.
6956         (machopic_select_section): Pass relocation flag to
6957         darwin_rodata_section ().
6959 2019-10-05  Jakub Jelinek  <jakub@redhat.com>
6961         PR tree-optimization/91734
6962         * generic-match-head.c: Include fold-const-call.h.
6963         * match.pd (sqrt(x) cmp c): Check the boundary value and
6964         in case inexact computation of c*c affects comparison of the boundary,
6965         turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
6966         or GT_EXPR into GE_EXPR.  Punt for sqrt comparisons against NaN and
6967         for -frounding-math.  For c2, try the next smaller or larger floating
6968         point constant depending on comparison code and if it has the same
6969         sqrt as c2, use it instead of c2.
6971 2019-10-04  Martin Sebor  <msebor@redhat.com>
6973         PR middle-end/91977
6974         * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
6975         MEM_REF right operand.  Avoid failing for MEM_REF assignments from
6976         uninitialized objects.
6978 2019-10-04  Martin Sebor  <msebor@redhat.com>
6980         * builtins.c (compute_objsize): Add an argument.
6981         * tree-object-size.c (addr_object_size): Same.
6982         (compute_builtin_object_size): Same.
6983         * tree-object-size.h (compute_builtin_object): Same.
6985 2019-10-04  Jan Hubicka  <hubicka@ucw.cz>
6987         * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
6989 2019-10-04  Rafael Tsuha  <rafael.tsuha@usp.br>
6991         * match.pd (sinh (x) / cosh (x)): New simplification rule.
6993 2019-10-04  Martin Jambor  <mjambor@suse.cz>
6995         * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
6996         fntype when switching to calling memcpy instead of memset.
6998 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7000         * hash-table.h (hash_table::empty_slow): Don't assign
7001         size_t values to int variables.
7003 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7005         * expr.c (convert_mode_scalar): Remove shadowing local var.
7006         (emit_block_move): Rename local vars.
7007         (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
7008         (emit_push_insn): Rename local vars.
7009         (expand_assignment): Fix wrong mode in assign_stack_temp.  Remove
7010         shadowing local vars.
7011         (store_constructor): Remove shadowing local vars.  Rename local var.
7012         (store_field, expand_cond_expr_using_cmove,
7013         expand_expr_real_2): Remove shadowing local vars.
7014         (expand_expr_real_1,
7015         do_store_flag): Remove shadowing local vars.  Rename local vars.
7017 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7019         * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.
7021 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7023         * genmatch.c (commutate): Rename local var.
7024         (lower_cond): Reuse local var.
7025         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
7026         dt_operand::gen, dt_operand::gen_gimple_expr,
7027         dt_simplify::gen): Add a param.  Rename generated vars.
7028         (decision_tree::insert_operand,
7029         (capture_info::walk_match, capture_info::walk_result,
7030         capture_info::walk_c_expr): Rename local vars.
7031         (expr::gen_transform): Rename generated vars.
7032         Use snprintf.  Rename local vars.
7033         (capture::gen_transform, dt_operand::get_name,
7034         dt_operand::gen_opname): Rename generated vars.
7035         (write_predicate): Adjust call to gen_kids.
7036         (parser::get_internal_capture_id): Rename generated vars.
7037         (parser::parse_expr): Rename local vars.
7038         (parser::parse_if): Remove local var.
7039         (parser::parse_pattern, add_operator): Rename local vars.
7041 2019-10-04  Joseph Myers  <joseph@codesourcery.com>
7043         * builtins.def (DEF_C2X_BUILTIN): New macro.
7044         (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
7045         (nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
7046         (strndup): Use DEF_C2X_BUILTIN.
7047         * coretypes.h (enum function_class): Add function_c2x_misc.
7049 2019-10-04  Maya Rashish  <coypu@sdf.org>
7051         * ira-color.c (update_costs_from_allocno): Call
7052         ira_init_register_move_cost_if_necessary.
7054 2019-10-04  Jeff Law  <law@redhat.com>
7056         * config/h8300/h8300.md (cpymemsi): Disable.
7057         (movmd, movmd_internal_<mode>, movstr, movsd):
7058         (movstr, movsd, stpcpy_internal_<mode>: Likewise.
7059         (movmd splitter, movsd splitter): Likewise.
7061         * range-op.cc (range_tests): Avoid two tests when ints and
7062         shorts are the same size.
7064 2019-10-04  Richard Biener  <rguenther@suse.de>
7066         PR lto/91968
7067         * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
7068         BLOCK_VARS.
7070 2019-10-04  Richard Biener  <rguenther@suse.de>
7072         PR tree-optimization/91982
7073         * tree-vect-loop.c (vectorizable_live_operation): Also guard
7074         against EXTRACT_LAST_REDUCTION.
7075         * tree-vect-stmts.c (vect_transform_stmt): Likewise.
7077 2019-10-04  Aldy Hernandez  <aldyh@redhat.com>
7079         * range-op.o (value_range_from_overflowed_bounds): Rename from
7080         adjust_overflow_bound.
7081         (value_range_with_overflow): Rename from
7082         create_range_with_overflow.
7083         (create_possibly_reversed_range): Adjusted for above renames.
7084         (operator_*::wi_fold): Same.
7085         (cross_product_operator::wi_cross_productor): Same.
7087 2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7089         * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
7090         -Wshadow=compatible-local): Fix description.
7091         Add an example where -Wshadow=compatible-local does not
7092         warn.
7094 2019-10-03  John David Anglin  <danglin@gcc.gnu.org>
7096         * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
7098         * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
7099         (pa_attr_length_call): Adjust length for 64-bit plabel sequence.
7101 2019-10-03  Aaron Sawdey <acsawdey@linux.ibm.com>
7103         * expr.c (emit_block_move_hints): Slightly cleaner fix to
7104         can_move_by_pieces issue.
7106 2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
7108         PR target/87243
7109         * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
7110         (darwin_driver_init): Use the sysroot provided by SDKROOT when that
7111         is available and the user has not set one on the command line.
7113 2019-10-03  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
7115         PR target/91769
7116         * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
7117         instead of REGNO equality check on addr.reg.
7119 2019-10-03  Jan Hubicka  <hubicka@ucw.cz>
7121         * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
7122         PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
7123         * doc/invoke.texi (inline-heuristics-hint-percent,
7124         inline-heuristics-hint-percent-O2): Document.
7125         * tree-inline.c (inline_insns_single, inline_insns_auto): Add new
7126         hint attribute.
7127         (can_inline_edge_by_limits_p): Use it.
7129 2019-10-03  Richard Sandiford  <richard.sandiford@arm.com>
7131         * config/arm/arm.c (arm_print_value): Use real_to_decimal
7132         to print CONST_DOUBLEs.
7134 2019-10-03  Andrea Corallo  <andrea.corallo@arm.com>
7136         * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
7137         * ipa-prop.c (ipcp_free_transformation_sum): New function.
7138         * ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
7140 2019-10-03  Aldy Hernandez  <aldyh@redhat.com>
7142         * Makefile.in (OBJS): Add range.o and range-op.o.
7143         Remove wide-int-range.o.
7144         * function-tests.c (test_ranges): New.
7145         (function_tests_c_tests): Call test_ranges.
7146         * ipa-cp.c (ipa_vr_operation_and_type_effects): Call
7147         range_fold_unary_expr instead of extract_range_from_unary_expr.
7148         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
7149         * range-op.cc: New file.
7150         * range-op.h: New file.
7151         * range.cc: New file.
7152         * range.h: New file.
7153         * selftest.h (range_tests): New prototype.
7154         * ssa.h: Include range.h.
7155         * tree-vrp.c (value_range_base::value_range_base): New
7156         constructors.
7157         (value_range_base::singleton_p): Do not call
7158         ranges_from_anti_range until sure we will need to.
7159         (value_range_base::type): Rename gcc_assert to
7160         gcc_checking_assert.
7161         (vrp_val_is_max): New argument.
7162         (vrp_val_is_min): Same.
7163         (wide_int_range_set_zero_nonzero_bits): Move from
7164         wide-int-range.cc.
7165         (extract_range_into_wide_ints): Remove.
7166         (extract_range_from_multiplicative_op): Remove.
7167         (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
7168         from extract_range_from_binary_expr.
7169         (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
7170         from extract_range_from_binary_expr.
7171         (extract_range_from_binary_expr): Remove.
7172         (normalize_for_range_ops): New.
7173         (range_fold_binary_expr): New.
7174         (range_fold_unary_expr): New.
7175         (value_range_base::num_pairs): New.
7176         (value_range_base::lower_bound): New.
7177         (value_range_base::upper_bound): New.
7178         (value_range_base::upper_bound): New.
7179         (value_range_base::contains_p): New.
7180         (value_range_base::invert): New.
7181         (value_range_base::union_): New.
7182         (value_range_base::intersect): New.
7183         (range_compatible_p): New.
7184         (value_range_base::operator==): New.
7185         (determine_value_range_1): Call range_fold_*expr instead of
7186         extract_range_from_*expr.
7187         * tree-vrp.h (class value_range_base): Add new constructors.
7188         Add methods for union_, intersect, operator==, contains_p,
7189         num_pairs, lower_bound, upper_bound, invert.
7190         (vrp_val_is_min): Add handle_pointers argument.
7191         (vrp_val_is_max): Same.
7192         (extract_range_from_unary_expr): Remove.
7193         (extract_range_from_binary_expr): Remove.
7194         (range_fold_unary_expr): New.
7195         (range_fold_binary_expr): New.
7196         * vr-values.c (vr_values::extract_range_from_binary_expr): Call
7197         range_fold_binary_expr instead of extract_range_from_binary_expr.
7198         (vr_values::extract_range_basic): Same.
7199         (vr_values::extract_range_from_unary_expr): Call
7200         range_fold_unary_expr instead of extract_range_from_unary_expr.
7201         * wide-int-range.cc: Remove.
7202         * wide-int-range.h: Remove.
7204 2019-10-02   Michael Meissner  <meissner@linux.ibm.com>
7206         * config/rs6000/rs6000.c (mem_operand_gpr): Use
7207         SIGNED_16BIT_OFFSET_EXTRA_P macro.
7208         (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro.
7209         (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P
7210         macro.
7212 2019-10-02  Joseph Myers  <joseph@codesourcery.com>
7214         * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
7215         condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
7216         (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
7217         * glimits.h: Likewise.
7219 2019-10-03  Jakub Jelinek  <jakub@redhat.com>
7221         PR rtl-optimization/91976
7222         * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
7223         size is not CONST_INT_P, set pieces_ok to false in that case.  Simplify
7224         CONST_INT_P (size) && pieces_ok to pieces_ok.  Formatting fix.
7226 2019-10-02  Martin Sebor  <msebor@redhat.com>
7228         PR tree-optimization/80936
7229         * builtins.def (bcmp, bcopy, bzero): Declare nonnull.
7231 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
7233         * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
7234         instead of reg_class_contents[ALL_REGS].
7236 2019-09-30  Jason Merrill  <jason@redhat.com>
7238         Add some hash_map_safe_* functions like vec_safe_*.
7239         * hash-map.h (default_hash_map_size): New variable.
7240         (create_ggc): Use it as default argument.
7241         (hash_map_maybe_create, hash_map_safe_get)
7242         (hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
7244 2019-10-02  Jan Hubicka  <hubicka@ucw.cz>
7246         * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
7247         MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
7248         * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
7249         (can_inline_edge_by_limits_p): Use it.
7250         (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
7251         (want_inline_small_function_p): Use O2 bounds.
7252         (edge_badness): LIkewise.
7253         * opts.c (default_options): Add OPT_finline_functions.
7254         * params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
7255         PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
7256         New parameters.
7257         * doc/invoke.texi (-finline-functions): Update documentation.
7258         (max-inline-insns-single-O2, max-inline-insns-auto-O2,
7259         inline-min-speedup-O2): Document.
7260         (early-inlining-insns-O2): Simplify docs.
7262 2019-10-02  Alexander Monakov  <amonakov@ispras.ru>
7264         PR rtl-optimization/87047
7265         * ifcvt.c (average_cost): New static function.  Use it...
7266         (noce_process_if_block): ... here.
7268 2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
7270         * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
7271         * config/rs6000/rs6000-string.c (expand_block_move): Add
7272         might_overlap parm.
7273         * config/rs6000/rs6000.md (movmemsi): Add new pattern.
7274         (cpymemsi): Add might_overlap parm to expand_block_move() call.
7276 2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>
7278         * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
7279         (expand_builtin_memcpy): Use might_overlap parm.
7280         (expand_builtin_mempcpy_args): Use might_overlap parm.
7281         (expand_builtin_memmove): Call expand_builtin_memory_copy_args.
7282         (expand_builtin_memory_copy_args): Add might_overlap parm.
7283         * expr.c (emit_block_move_via_cpymem): Rename to
7284         emit_block_move_via_pattern, add might_overlap parm, use cpymem
7285         or movmem optab as appropriate.
7286         (emit_block_move_hints): Add might_overlap parm, do the right
7287         thing for might_overlap==true.
7288         * expr.h (emit_block_move_hints): Update prototype.
7290 2019-10-02  Eric Botcazou  <ebotcazou@adacore.com>
7292         * tree-eh.h (unsplit_eh_edges): Declare.
7293         * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
7294         (unsplit_eh_edges): New function wrapping unsplit_all_eh.
7295         * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
7296         (struct store_immediate_info): Add lp_nr field.
7297         (store_immediate_info::store_immediate_info): Add NR2 parameter and
7298         initialize lp_nr with it.
7299         (struct merged_store_group): Add lp_nr and only_constants fields.
7300         (merged_store_group::merged_store_group): Initialize them.
7301         (merged_store_group::can_be_merged_into): Deal with them.
7302         (pass_store_merging): Rename terminate_and_release_chain into
7303         terminate_and_process_chain.
7304         (pass_store_merging::terminate_and_process_all_chains): Adjust to above
7305         renaming and remove useless assertions.
7306         (pass_store_merging::terminate_all_aliasing_chains): Small tweak.
7307         (stmts_may_clobber_ref_p): Be prepared for different basic blocks.
7308         (imm_store_chain_info::coalesce_immediate_stores): Use only_constants
7309         instead of always recomputing it and compare lp_nr.
7310         (imm_store_chain_info::output_merged_store): If the group is in an
7311         active EH region, register new stores if they can throw.  Moreover,
7312         if the insertion has created new basic blocks, adjust the PHI nodes
7313         of the post landing pad.
7314         (imm_store_chain_info::output_merged_stores): If the original stores
7315         are in an active EH region, deregister them.
7316         (lhs_valid_for_store_merging_p): Prettify.
7317         (adjust_bit_pos): New function extracted from...
7318         (mem_valid_for_store_merging): ...here.  Use it for the base address
7319         and also for the offset if it is the addition of a constant.
7320         (lp_nr_for_store): New function.
7321         (pass_store_merging::process_store): Change return type to bool.
7322         Call lp_nr_for_store to initialize the store info.  Propagate the
7323         return status of various called functions to the return value.
7324         (store_valid_for_store_merging_p): New predicate.
7325         (enum basic_block_status): New enumeration.
7326         (get_status_for_store_merging): New function.
7327         (pass_store_merging::execute): If the function can throw and catch
7328         non-call exceptions, unsplit the EH edges on entry and clean up the
7329         CFG on exit if something changed.  Call get_status_for_store_merging
7330         for every basic block and keep the chains open across basic blocks
7331         when possible.  Terminate and process open chains at the end, if any.
7333 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
7335         * reginfo.c (globalize_reg): Fix shadowed variable in
7336         function_abis walk.
7338 2019-10-02  Martin Jambor  <mjambor@suse.cz>
7340         * cgraph.c (symbol_table::create_edge): New parameter cloning_p,
7341         do not compute some stuff when set.
7342         (cgraph_node::create_edge): Likewise.
7343         (cgraph_node::create_indirect_edge): Renamed last parameter to
7344         coning_p and flipped its meaning, don't even calculate
7345         inline_failed when set.
7346         * cgraph.h (cgraph_node::create_edge): Add new parameter.
7347         (symbol_table::::create_edge): Likewise.
7348         (cgraph_node::create_indirect_edge): Rename last parameter, flip
7349         the default value.
7350         * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
7351         call graph edge creating functions.
7353 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
7355         PR c++/91222
7356         * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
7357         namespace types.
7359 2019-10-02  Shahab Vahedi  <shahab@synopsys.com>
7361         * config/arc/arc.h (ASM_SPEC): Pass -mcode-density.
7363 2019-10-02  Richard Biener  <rguenther@suse.de>
7365         * tree-vectorizer.h (vect_transform_reduction): Declare.
7366         * tree-vect-stmts.c (vect_transform_stmt): Use it.
7367         * tree-vect-loop.c (vectorizable_reduction): Split out reduction
7368         stmt transform to ...
7369         (vect_transform_reduction): ... this.
7371 2019-10-02  Tobias Burnus  <tobias@codesourcery.com>
7373         * omp-low.c (lower_omp_target): Dereference optional argument
7374         to work with the right pointer.
7376 2019-10-02  Kwok Cheung Yeung  <kcy@codesourcery.com>
7378         * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
7379         false.
7380         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
7381         * langhooks.h (omp_is_optional_argument): New hook.
7382         * omp-general.c (omp_is_optional_argument): New.
7383         * omp-general.h (omp_is_optional_argument): New declaration.
7384         * omp-low.c (lower_omp_target): Create temporary for received value
7385         and take the address for new_var if the original variable was a
7386         DECL_BY_REFERENCE.  Use size of referenced object when a
7387         pass-by-reference optional argument used as argument to firstprivate.
7389 2019-10-02  Jakub Jelinek  <jakub@redhat.com>
7391         PR tree-optimization/91940
7392         * tree-vect-patterns.c: Include tree-vector-builder.h and
7393         vec-perm-indices.h.
7394         (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
7395         unpromoting the argument back to uint16_t, or by converting into a
7396         rotate, or into shifts plus ior.
7398 2019-10-02  Richard Biener  <rguenther@suse.de>
7400         * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
7401         New.
7402         (vect_transform_cycle_phi): Declare.
7403         * tree-vect-stmts.c (vect_transform_stmt): Call
7404         vect_transform_cycle_phi.
7405         * tree-vect-loop.c (vectorizable_reduction): Split out
7406         PHI transformation stage to ...
7407         (vect_transform_cycle_phi): ... here.
7409 2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>
7411         PR middle-end/91957
7412         * lra-lives.c (make_hard_regno_dead): Don't record conflicts for
7413         eliminable registers.
7414         (make_hard_regno_live): Likewise, and don't make them live.
7416 2019-10-01  David Malcolm  <dmalcolm@redhat.com>
7418         * diagnostic-show-locus.c (layout::print_gap_in_line_numbering):
7419         Call pp_emit_prefix.
7420         (layout::print_source_line): Likewise.
7421         (layout::start_annotation_line): Likewise.
7422         (diagnostic_show_locus): Remove call to temporarily clear the
7423         prefix.
7424         (selftest::test_one_liner_fixit_remove): Add test coverage for the
7425         interaction of pp_set_prefix with rulers and fix-it hints.
7426         * diagnostic.c (default_diagnostic_finalizer): Temporarily clear
7427         prefix when calling diagnostic_show_locus, rather than destroying
7428         it afterwards.
7429         (print_parseable_fixits): Temporarily clear prefix.
7430         * pretty-print.c (pp_format): Save and restore line_length, rather
7431         than assuming it is zero.
7432         (pp_output_formatted_text): Remove assertion that line_length is
7433         zero.
7435 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
7437         * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
7438         Rename to ...
7439         (nonoverlapping_refs_since_match_p): ... this; handle also
7440         ARRAY_REFs.
7441         (alias_stats): Update stats.
7442         (dump_alias_stats): Likewise.
7443         (cheap_array_ref_low_bound): New function.
7444         (aliasing_matching_component_refs_p): Add partial_overlap
7445         argument;
7446         pass it to nonoverlapping_refs_since_match_p.
7447         (aliasing_component_refs_walk): Update call of
7448         aliasing_matching_component_refs_p
7449         (nonoverlapping_array_refs_p): New function.
7450         (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
7451         indirect_refs_may_alias_p): Update calls of
7452         nonoverlapping_refs_since_match_p.
7454 2019-10-01  Maya Rashish  <coypu@sdf.org>
7456         PR target/85401
7457         * ira-color.c (allocno_copy_cost_saving): Call
7458         ira_init_register_move_cost_if_necessary.
7460 2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
7462         * Makefile.in (gnat_install_lib): New variable.
7463         * configure.ac: Substitute it.
7464         * configure: Regenerate.
7466 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
7468         PR lto/91222
7469         * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type
7470         is matched with non-C++ type
7472 2019-10-01  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7474         * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce
7475         after local CSE.
7477 2019-10-01  Jan Hubicka  <hubicka@ucw.cz>
7479         * doc/invoke.texi (early-inlining-insns-O2): Document.
7480         (early-inlining-insns): Update.
7481         * params.def (early-inlining-insns-O2): New bound.
7482         (early-inlining-insns): Update docs.
7483         * ipa-inline.c (want_early_inline_function_p): Use new bound.
7485 2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
7487         PR target/88562
7488         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
7489         sh_check_add_incdec_notes to preserve REG_INC notes when replacing
7490         a memory access insn.
7492 2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
7494         * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
7495         vpmsumd.
7497 2019-10-01  Ilya Leoshkevich  <iii@linux.ibm.com>
7499         PR target/77918
7500         * config/s390/s390.c (s390_expand_vec_compare): Use
7501         gen_vec_cmpordered and gen_vec_cmpunordered.
7502         * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered,
7503         vec_unordered): Delete.
7504         (vec_ordered<mode>): Rename to vec_cmpordered<mode>.
7505         (vec_unordered<mode>): Rename to vec_cmpunordered<mode>.
7506         (VEC_CMP_EXPAND): New iterator for the generic dispatcher.
7507         (vec_cmp<code>): Generic dispatcher.
7509 2019-10-01  Ilya Leoshkevich  <iii@linux.ibm.com>
7511         PR target/77918
7512         * config/s390/vector.md (V_HW): Add V1TI in order to make
7513         vcond$a$b generate vcondv1tiv1tf.
7515 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
7517         PR rtl-optimization/91948
7518         * ira-build.c (ira_create_allocno): Initialize
7519         ALLOCNO_CROSSED_CALLS_ABIS.
7520         * ira-color.c (allocno_reload_assign): Pass hard_regno rather
7521         than regno to ira_need_caller_save_p.
7523 2019-10-01  Alexandre Oliva <oliva@adacore.com>
7525         * config/i386/i386-options.c
7526         (ix86_recompute_optlev_based_flags): New, moved out of...
7527         (ix86_option_override_internal): ... this.  Call it.
7528         (ix86_override_options_after_change): Call it here too.
7530         PR debug/91507
7531         * dwarf2out.c (override_type_for_decl_p): New.
7532         (gen_variable_die): Use it.
7534 2019-10-01  Richard Biener  <rguenther@suse.de>
7536         * tree-vect-loop.c (vectorizable_reduction): Move variables
7537         to where they are used.
7539 2019-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
7541         * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
7542         (build_def_use): Use PC instead of CC0 in a comment.
7544 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
7546         * rtl.def (CLOBBER_HIGH): Delete.
7547         * doc/rtl.texi (clobber_high): Remove documentation.
7548         * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes.
7549         (reg_is_clobbered_by_clobber_high): Delete.
7550         (gen_hard_reg_clobber_high): Likewise.
7551         * alias.c (record_set): Remove CLOBBER_HIGH handling.
7552         * cfgexpand.c (expand_gimple_stmt): Likewise.
7553         * combine-stack-adj.c (single_set_for_csa): Likewise.
7554         * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies)
7555         (can_combine_p, is_parallel_of_n_reg_sets, try_combine)
7556         (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise.
7557         * cse.c (invalidate_reg): Remove clobber_high parameter.
7558         (invalidate): Update call accordingly.
7559         (canonicalize_insn): Remove CLOBBER_HIGH handling.
7560         (invalidate_from_clobbers, invalidate_from_sets_and_clobbers)
7561         (count_reg_usage, insn_live_p): Likewise.
7562         * cselib.h (cselib_invalidate_rtx): Remove sett argument.
7563         * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise.
7564         (cselib_invalidate_rtx_note_stores): Update call accordingly.
7565         (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling.
7566         (cselib_invalidate_regno, cselib_process_insn): Likewise.
7567         * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise.
7568         (mark_nonreg_stores_2): Likewise.
7569         * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise.
7570         (df_get_call_refs): Likewise.
7571         * dwarf2out.c (mem_loc_descriptor): Likewise.
7572         * emit-rtl.c (verify_rtx_sharing): Likewise.
7573         (copy_insn_1, copy_rtx_if_shared_1): Likewise.
7574         (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete.
7575         * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling.
7576         * genemit.c (gen_exp, gen_insn): Likewise.
7577         * genrecog.c (validate_pattern, remove_clobbers): Likewise.
7578         * haifa-sched.c (haifa_classify_rtx): Likewise.
7579         * ira-build.c (create_insn_allocnos): Likewise.
7580         * ira-costs.c (scan_one_insn): Likewise.
7581         * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise.
7582         (rtx_moveable_p, interesting_dest_for_shprep): Likewise.
7583         * jump.c (mark_jump_label_1): Likewise.
7584         * lra-int.h (lra_insn_reg::clobber_high): Delete.
7585         * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH
7586         handling.
7587         (mark_not_eliminable): Likewise.
7588         * lra-lives.c (process_bb_lives): Likewise.
7589         * lra.c (new_insn_reg): Remove clobber_high parameter.
7590         (collect_non_operand_hard_regs): Likewise.  Update call to new
7591         insn_reg.  Remove CLOBBER_HIGH handling.
7592         (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling.  Update call
7593         to collect_non_operand_hard_regs.
7594         (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling.
7595         Update call to new_insn_reg.
7596         (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling.
7597         * postreload.c (reload_cse_simplify, reload_combine_note_use)
7598         (move2add_note_store): Likewise.
7599         * print-rtl.c (print_pattern): Likewise.
7600         * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise.
7601         (if_test_bypass_p): Likewise.
7602         * regcprop.c (kill_clobbered_value, kill_set_value): Likewise.
7603         * reginfo.c (reg_scan_mark_refs): Likewise.
7604         * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise.
7605         (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs)
7606         (forget_old_reloads_1): Likewise.
7607         * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn)
7608         (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread)
7609         (dbr_schedule): Likewise.
7610         * resource.c (update_live_status, mark_referenced_resources)
7611         (mark_set_resources): Likewise.
7612         * rtl.c (copy_rtx): Likewise.
7613         * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p)
7614         (note_pattern_stores): Likewise.
7615         (reg_is_clobbered_by_clobber_high): Delete.
7616         * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove
7617         CLOBBER_HIGH handling.
7619 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
7621         PR target/91452
7622         * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs.
7623         * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare.
7624         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
7625         Handle ARM_PCS_TLSDESC.
7626         (aarch64_tlsdesc_abi_id): New function.
7627         * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call
7628         rtx instead of a list of clobbers and clobber_highs.
7629         (tlsdesc_small_<mode>): Update accordingly.
7631 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
7633         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an
7634         extra callee_abi argument.
7635         * config/aarch64/aarch64.c (aarch64_expand_call): Likewise.
7636         Insert a CALLEE_ABI unspec into the call pattern as the second
7637         element in the PARALLEL.
7638         (aarch64_simd_call_p): Delete.
7639         (aarch64_insn_callee_abi): Get the arm_pcs of the callee from
7640         the new CALLEE_ABI element of the PARALLEL.
7641         (aarch64_init_cumulative_args): Get the arm_pcs of the callee
7642         from the function type, if given.
7643         (aarch64_function_arg_advance): Handle ARM_PCS_SIMD.
7644         (aarch64_function_arg): Likewise.  Return the arm_pcs of the callee
7645         when passed the function_arg_info end marker.
7646         (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the
7647         final argument of gen_sibcall.
7648         * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec.
7649         (call): Make operand 2 a const_int_operand and pass it to expand_call.
7650         Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand
7651         pattern.
7652         (call_value): Likewise operand 3.
7653         (sibcall): Likewise operand 2.  Place the unspec before rather than
7654         after the return.
7655         (sibcall_value): Likewise operand 3.
7656         (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI.
7657         (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise.
7658         (*sibcall_insn, *sibcall_value_insn): Likewise.  Remove empty
7659         constraint strings.
7660         (untyped_call): Pass const0_rtx as the callee ABI to gen_call.
7662 2019-10-01  Richard Sandiford  <richard.sandiford@arm.com>
7664         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to
7665         choose_hard_reg_mode.
7666         * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7668 2019-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
7670         * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo.
7671         (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto.
7672         (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto.
7674 2019-09-30  David Malcolm  <dmalcolm@redhat.com>
7676         * diagnostic-show-locus.c (line_label::line_label): Initialize
7677         m_has_vbar.
7678         (line_label::comparator): Reverse the sort order by m_state_idx,
7679         so that when the list is walked backwards the labels appear in
7680         order of insertion into the rich_location.
7681         (line_label::m_has_vbar): New field.
7682         (layout::print_any_labels): When dealing with multiple labels at
7683         the same line and column, only print vertical bars for the one
7684         with the highest label_line.
7685         (selftest::test_one_liner_labels): Update test for multiple labels
7686         to expect the labels to be in the order of insertion into the
7687         rich_location.  Add a test for many such labels, where the column
7688         numbers are out-of-order relative to the insertion order.
7690 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7692         * config/i386/i386.h (ix86_frame::expensive_p): New field.
7693         (ix86_frame::expensive_count): Likewise.
7694         * config/i386/i386.c (ix86_compute_frame_layout): Make the choice
7695         of use_fast_prologue_epilogue robust against incidental changes
7696         in function size.
7698 2019-09-30  Ilya Leoshkevich  <iii@linux.ibm.com>
7700         PR target/77918
7701         * config/s390/vector.md (vec_unordered<mode>): Call
7702         gen_vec_ordered<mode>.
7704 2019-09-30  Yuliang Wang  <yuliang.wang@arm.com>
7706         * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3):
7707         New pattern for ASRD.
7708         * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec.
7709         * internal-fn.def (IFN_DIV_POW2): New internal function.
7710         * optabs.def (sdiv_pow2_optab): New optab.
7711         * tree-vect-patterns.c (vect_recog_divmod_pattern):
7712         Modify pattern to support new operation.
7713         * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above.
7714         * doc/sourcebuild.texi (vect_sdiv_pow2_si):
7715         Document new target selector.
7717 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7719         * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi
7720         to test whether we're compiling a vector PCS function and to test
7721         whether the function needs to save a particular register.
7722         Remove the vector PCS handling of df_set_regs_ever_live.
7723         (aarch64_components_for_bb): Use crtl->abi to test whether
7724         the function needs to save a particular register.
7725         (aarch64_process_components): Use crtl->abi to test whether
7726         we're compiling a vector PCS function.
7727         (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
7728         (aarch64_epilogue_uses): Remove handling of vector PCS functions.
7730 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7732         * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p):
7733         Delete.
7734         * config/aarch64/aarch64.c (aarch64_components_for_bb): Check
7735         whether the block calls a function that clobbers more registers
7736         than the current function is allowed to.
7737         (aarch64_use_simple_return_insn_p): Delete.
7738         * config/aarch64/aarch64.md (simple_return): Remove condition.
7740 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7742         * function-abi.h (function_abi_aggregator): New class.
7743         * function-abi.cc (function_abi_aggregator::caller_save_regs): New
7744         function.
7745         * ira.c (update_equiv_regs_prescan): New function.  Call
7746         set_paradoxical_subreg here rather than...
7747         (update_equiv_regs): ...here.
7748         (ira): Call update_equiv_regs_prescan.
7750 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7752         * hard-reg-set.h (regs_invalidated_by_call): Only define if
7753         IN_TARGET_CODE.
7754         (call_used_or_fixed_regs): Likewise.
7755         (call_used_or_fixed_reg_p): Likewise.
7756         * reginfo.c (regs_invalidated_by_call): New macro.
7758 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7760         * shrink-wrap.c: Include function-abi.h.
7761         (requires_stack_frame_p): Use crtl->abi to test whether the
7762         current function can use a register without saving it first.
7764 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7766         * sel-sched-ir.h (_def::crosses_call): Replace with...
7767         (_def::crossed_call_abis): ..this new field.
7768         (def_list_add): Take a mask of ABIs instead of a crosses_call
7769         boolean.
7770         * sel-sched-ir.c (def_list_add): Likewise.  Update initialization
7771         of _def accordingly.
7772         * sel-sched.c: Include function-abi.h.
7773         (hard_regs_data::regs_for_call_clobbered): Delete.
7774         (reg_rename::crosses_call): Replace with...
7775         (reg_rename::crossed_call_abis): ...this new field.
7776         (fur_static_params::crosses_call): Replace with...
7777         (fur_static_params::crossed_call_abis): ...this new field.
7778         (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered.
7779         (init_hard_regs_data): Use crtl->abi to test which registers the
7780         current function would need to save before it uses them.
7781         (mark_unavailable_hard_regs): Update handling of call-clobbered
7782         registers, using call_clobbers_in_region to find out which registers
7783         might be call-clobbered (but without taking -fipa-ra into account
7784         for now).  Remove separate handling of partially call-clobbered
7785         registers.
7786         (verify_target_availability): Use crossed_call_abis instead of
7787         crosses_call.
7788         (get_spec_check_type_for_insn, find_used_regs): Likewise.
7789         (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise.
7791 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7793         * sched-deps.c (deps_analyze_insn): Use the ABI of the target
7794         function to test whether a register is fully or partly clobbered.
7796 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7798         * rtlanal.c: Include function-abi.h.
7799         (reg_set_p): Use insn_callee_abi to get the ABI of the called
7800         function and clobbers_reg_p to test whether the register
7801         is call-clobbered.
7802         (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi
7803         to get the ABI of the called function and full_reg_clobbers to
7804         get the set of fully call-clobbered registers.  Warn about the
7805         pitfalls of using this mode.
7807 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7809         * reload.c: Include function-abi.h.
7810         (find_equiv_reg): Use clobbers_reg_p to test whether either
7811         of the equivalent registers is clobbered by a call.
7812         * reload1.c: Include function-abi.h.
7813         (reg_reloaded_call_part_clobbered): Delete.
7814         (reload): Use crtl->abi to test which registers would need
7815         saving in the prologue before use.
7816         (find_reg): Likewise.
7817         (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered.
7818         (reload_as_needed): Likewise.  Use full_and_partial_reg_clobbers
7819         instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered.
7821 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7823         * regrename.h (du_head::call_clobber_mask): New field.
7824         (du_head::need_caller_save_reg): Replace with...
7825         (du_head::call_abis): ...this new field.
7826         * regrename.c: Include function-abi.h.
7827         (call_clobbered_in_chain_p): New function.
7828         (check_new_reg_p): Use crtl->abi when deciding whether a register
7829         is free for use after RA.  Use call_clobbered_in_chain_p to test
7830         whether a candidate register would be clobbered by a call.
7831         (find_rename_reg): Don't add call-clobber conflicts here.
7832         (rename_chains): Check call_abis instead of need_caller_save_reg.
7833         (merge_chains): Update for changes to du_head.
7834         (build_def_use): Use insn_callee_abi to get the ABI of the call insn
7835         target.  Record the ABI identifier in call_abis and the set of
7836         fully or partially clobbered registers in call_clobber_mask.
7837         Add fully-clobbered registers to hard_conflicts here rather
7838         than in find_rename_reg.
7839         * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
7840         (rename_single_chain): Check call_abis instead of need_caller_save_reg.
7841         * config/aarch64/falkor-tag-collision-avoidance.c: Include
7842         function-abi.h.
7843         * config/c6x/c6x.c: Likewise.
7845 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7847         * regcprop.c (copyprop_hardreg_forward_1): Use the recorded
7848         mode of the register when deciding whether it is no longer
7849         available after a call.
7851 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7853         * recog.c: Include function-abi.h.
7854         (peep2_find_free_register): Use crtl->abi when deciding whether
7855         a register is free for use after RA.
7857 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7859         * postreload-gcse.c: Include regs.h and function-abi.h.
7860         (record_opr_changes): Use insn_callee_abi to get the ABI of the
7861         call insn target.  Conservatively assume that partially-clobbered
7862         registers are altered.
7864 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7866         * postreload.c (reload_combine_recognize_pattern): Use crtl->abi
7867         when deciding whether a register is free for use after RA.
7868         (reload_combine): Remove unnecessary use of fixed_reg_set.
7869         (reload_cse_move2add): Use insn_callee_abi to get the ABI of the
7870         call insn target.  Use reg_mode when testing whether a register
7871         is no longer available.
7873 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7875         * target.def (return_call_with_max_clobbers): Delete.
7876         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7877         * doc/tm.texi: Regenerate.
7878         * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers)
7879         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete.
7880         * lra-int.h (lra_reg::actual_call_used_reg_set): Delete.
7881         (lra_reg::call_insn): Delete.
7882         * lra.c: Include function-abi.h.
7883         (initialize_lra_reg_info_element): Don't initialize the fields above.
7884         (lra): Use crtl->abi to test whether the current function needs to
7885         save a register in the prologue.  Remove special pre-inheritance
7886         lra_create_live_ranges pass for flag_ipa_ra.
7887         * lra-assigns.c: Include function-abi.h
7888         (find_hard_regno_for_1): Use crtl->abi to test whether the current
7889         function needs to save a register in the prologue.
7890         (lra_assign): Assert that registers aren't allocated to a
7891         conflicting register, rather than checking only for overlaps
7892         with call_used_or_fixed_regs.  Do this even for flag_ipa_ra,
7893         and for registers that are not live across a call.
7894         * lra-constraints.c (last_call_for_abi): New variable.
7895         (full_and_partial_call_clobbers): Likewise.
7896         (setup_next_usage_insn): Remove the register from
7897         full_and_partial_call_clobbers.
7898         (need_for_call_save_p): Use call_clobbered_in_region_p to test
7899         whether the register needs a caller save.
7900         (need_for_split_p): Use full_and_partial_reg_clobbers instead
7901         of call_used_or_fixed_regs.
7902         (inherit_in_ebb): Initialize and maintain last_call_for_abi and
7903         full_and_partial_call_clobbers.
7904         * lra-lives.c (check_pseudos_live_through_calls): Replace
7905         last_call_used_reg_set and call_insn arguments with an abi argument.
7906         Remove handling of lra_reg::call_insn.  Use function_abi::mode_clobbers
7907         as the set of conflicting registers.
7908         (calls_have_same_clobbers_p): Delete.
7909         (process_bb_lives): Track the ABI of the last call instead of an
7910         insn/HARD_REG_SET pair.  Update calls to
7911         check_pseudos_live_through_calls.  Use eh_edge_abi to calculate
7912         the set of registers that could be clobbered by an EH edge.
7913         Include partially-clobbered as well as fully-clobbered registers.
7914         (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn.
7915         * lra-remat.c: Include function-abi.h.
7916         (call_used_regs_arr_len, call_used_regs_arr): Delete.
7917         (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered
7918         registers and bitmap_view to combine them into dead_regs.
7919         (call_used_input_regno_present_p): Take a function_abi argument
7920         and use it to test whether a register is call-clobbered.
7921         (calculate_gen_cands): Use insn_callee_abi to get the ABI of the
7922         call insn target.  Update tje call to call_used_input_regno_present_p.
7923         (do_remat): Likewise.
7924         (lra_remat): Remove the initialization of call_used_regs_arr_len
7925         and call_used_regs_arr.
7927 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7929         * loop-iv.c: Include regs.h and function-abi.h.
7930         (simplify_using_initial_values): Use insn_callee_abi to get the
7931         ABI of the call insn target.  Conservatively assume that
7932         partially-clobbered registers are altered.
7934 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7936         * function-abi.h (call_clobbers_in_region): Declare.
7937         (call_clobbered_in_region_p): New function.
7938         * function-abi.cc (call_clobbers_in_region): Likewise.
7939         * ira-int.h: Include function-abi.h.
7940         (ira_allocno::crossed_calls_abis): New field.
7941         (ALLOCNO_CROSSED_CALLS_ABIS): New macro.
7942         (ira_need_caller_save_regs): New function.
7943         (ira_need_caller_save_p): Likewise.
7944         * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead
7945         of call_used_or_fixed_regs.
7946         (do_reload): Use crtl->abi to test whether the current function
7947         needs to save a register in the prologue.  Count registers that
7948         need to be saved rather than registers that don't.
7949         * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS.
7950         Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7951         (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too.
7952         (propagate_some_info_from_allocno): Likewise.
7953         (copy_info_to_removed_store_destinations): Likewise.
7954         (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and
7955         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively.
7956         (ira_build): Use ira_need_caller_save_regs instead of
7957         call_used_or_fixed_regs.
7958         * ira-color.c (calculate_saved_nregs): Use crtl->abi to test
7959         whether the current function would need to save a register
7960         before using it.
7961         (calculate_spill_cost): Likewise.
7962         (allocno_reload_assign): Use ira_need_caller_save_regs and
7963         ira_need_caller_save_p instead of call_used_or_fixed_regs.
7964         * ira-conflicts.c (ira_build_conflicts): Use
7965         ira_need_caller_save_regs rather than call_used_or_fixed_regs
7966         as the set of call-clobbered registers.  Remove the
7967         call_used_or_fixed_regs mask from the calculation of
7968         temp_hard_reg_set and mask its use instead.  Remove special
7969         handling of partially-clobbered registers.
7970         * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p.
7971         * ira-lives.c (process_bb_node_lives): Use mode_clobbers to
7972         calculate the set of conflicting registers for calls that
7973         can throw.  Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS.
7974         Use full_and_partial_reg_clobbers rather than full_reg_clobbers
7975         for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7976         Use eh_edge_abi to calculate the set of registers that could
7977         be clobbered by an EH edge.  Include partially-clobbered as
7978         well as fully-clobbered registers.
7980 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7982         * haifa-sched.c: Include function-abi.h.
7983         (alloc_global_sched_pressure_data): Use crtl->abi to check whether
7984         the function would need to save a register before using it.
7986 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7988         * gcse.c: Include function-abi.h.
7989         (compute_hash_table_work): Use insn_callee_abi to get the ABI of
7990         the call insn target.  Invalidate partially call-clobbered
7991         registers as well as fully call-clobbered ones.
7993 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
7995         * function.c (aggregate_value_p): Work out which ABI the
7996         function is using before testing which registers are at least
7997         partly preserved by a call.
7999 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8001         * early-remat.c: Include regs.h and function-abi.h.
8002         (early_remat::maybe_add_candidate): Don't check for call-clobbered
8003         registers here.
8004         (early_remat::restrict_remat_for_unavail_regs): New function.
8005         (early_remat::restrict_remat_for_call): Likewise.
8006         (early_remat::process_block): Before calling emit_remat_insns
8007         for a previous call in the block, invalidate any candidates
8008         that would clobber call-preserved registers.
8009         (early_remat::emit_remat_insns_for_block): Likewise for the
8010         final call in a block.  Do the same thing for live-in registers
8011         when calling emit_remat_insns at the head of a block.
8013 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8015         * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test
8016         whether the current function needs to save at least part of a
8017         register before using it.
8018         (df_get_exit_block_use_set): Likewise for epilogue restores.
8020 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8022         * df-problems.c: Include regs.h and function-abi.h.
8023         (df_rd_problem_data): Rename sparse_invalidated_by_call to
8024         sparse_invalidated_by_eh and dense_invalidated_by_call to
8025         dense_invalidated_by_eh.
8026         (df_print_bb_index): Update accordingly.
8027         (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise.
8028         (df_lr_confluence_n): Use eh_edge_abi to get the set of registers
8029         that are clobbered by an EH edge.  Clobber partially-clobbered
8030         registers as well as fully-clobbered ones.
8031         (df_md_confluence_n): Likewise.
8032         (df_rd_local_compute): Likewise.  Update for changes to
8033         df_rd_problem_data.
8034         * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set
8035         of registers that are clobbered by an EH edge.  Includde partially-
8036         clobbered registers as well as fully-clobbered ones.
8038 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8040         * cselib.c (cselib_process_insn): If we know what mode a
8041         register was set in, check whether it is clobbered in that
8042         mode by a call.  Only fall back to reg_raw_mode if that fails.
8044 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8046         * cse.c: Include regs.h and function-abi.h.
8047         (invalidate_for_call): Take the call insn as an argument.
8048         Use insn_callee_abi to get the ABI of the call and invalidate
8049         partially clobbered registers as well as fully clobbered ones.
8050         (cse_insn): Update call accordingly.
8052 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8054         * combine.c: Include function-abi.h.
8055         (record_dead_and_set_regs): Use insn_callee_abi to get the ABI
8056         of the target of call insns.  Invalidate partially-clobbered
8057         registers as well as fully-clobbered ones.
8059 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8061         * cfgloopanal.c: Include regs.h and function-abi.h.
8062         (init_set_costs): Use default_function_abi to test whether
8063         a general register is call-clobbered.
8065 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8067         * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
8068         instead of the call-clobbered sets.
8070 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8072         * caller-save.c (setup_save_areas): Remove redundant |s of
8073         fixed_reg_set.
8074         (save_call_clobbered_regs): Likewise.  Use the call ABI rather
8075         than call_used_or_fixed_regs to decide whether a REG_RETURNED
8076         value is useful.
8078 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8080         * rtl.h (predefined_function_abi): Declare.
8081         (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
8082         instead of a boolean call_save flag.
8083         * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call
8084         accordingly.
8085         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
8086         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
8087         * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise.
8088         * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
8089         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
8090         * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise.
8091         * reginfo.c (init_reg_modes_target): Likewise.
8092         (choose_hard_reg_mode): Take a pointer to a predefined_function_abi
8093         instead of a boolean call_save flag.
8094         * targhooks.c: Include function-abi.h.
8095         (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode,
8096         using eh_edge_abi to choose the mode.
8098 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8100         * target.def (hard_regno_call_part_clobbered): Take an ABI
8101         identifier instead of an rtx_insn.
8102         * doc/tm.texi: Regenerate.
8103         * hooks.h (hook_bool_insn_uint_mode_false): Delete.
8104         (hook_bool_uint_uint_mode_false): New function.
8105         * hooks.c (hook_bool_insn_uint_mode_false): Delete.
8106         (hook_bool_uint_uint_mode_false): New function.
8107         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
8108         Take an ABI identifier instead of an rtx_insn.
8109         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise.
8110         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise.
8111         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
8112         * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise.
8113         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
8114         Likewise.
8115         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise.
8116         * cselib.c: Include function-abi.h.
8117         (cselib_process_insn): Update call to
8118         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
8119         to get the appropriate ABI identifier.
8120         * function-abi.cc (predefined_function_abi::initialize): Update call
8121         to targetm.hard_regno_call_part_clobbered.
8122         * ira-conflicts.c (ira_build_conflicts): Likewise.
8123         * ira-costs.c (ira_tune_allocno_costs): Likewise.
8124         * lra-constraints.c: Include function-abi.h.
8125         (need_for_call_save_p): Update call to
8126         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
8127         to get the appropriate ABI identifier.
8128         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
8129         * regcprop.c (copyprop_hardreg_forward_1): Update call
8130         to targetm.hard_regno_call_part_clobbered.
8131         * reginfo.c (choose_hard_reg_mode): Likewise.
8132         * regrename.c (check_new_reg_p): Likewise.
8133         * reload.c (find_equiv_reg): Likewise.
8134         * reload1.c (emit_reload_insns): Likewise.
8135         * sched-deps.c: Include function-abi.h.
8136         (deps_analyze_insn): Update call to
8137         targetm.hard_regno_call_part_clobbered, using insn_callee_abi
8138         to get the appropriate ABI identifier.
8139         * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update
8140         call to targetm.hard_regno_call_part_clobbered.
8141         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
8143 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8145         * config/i386/i386.c: Include function-abi.h.
8146         (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY
8147         if they preserve some 256-bit or 512-bit SSE registers.
8149 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8151         * target.def (insn_callee_abi): New hook.
8152         (remove_extra_call_preserved_regs): Delete.
8153         * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro.
8154         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
8155         * doc/tm.texi: Regenerate.
8156         * targhooks.h (default_remove_extra_call_preserved_regs): Delete.
8157         * targhooks.c (default_remove_extra_call_preserved_regs): Delete.
8158         * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the
8159         insn argument.
8160         (aarch64_remove_extra_call_preserved_regs): Delete.
8161         (aarch64_insn_callee_abi): New function.
8162         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete.
8163         (TARGET_INSN_CALLEE_ABI): New macro.
8164         * rtl.h (get_call_fndecl): Declare.
8165         (cgraph_rtl_info): Fix formatting.  Tweak comment for
8166         function_used_regs.  Remove function_used_regs_valid.
8167         * rtlanal.c (get_call_fndecl): Moved from final.c
8168         * function-abi.h (insn_callee_abi): Declare.
8169         (target_function_abi_info): Mention insn_callee_abi.
8170         * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar
8171         way to get_call_reg_set_usage did.
8172         (insn_callee_abi): New function.
8173         * regs.h (get_call_reg_set_usage): Delete.
8174         * final.c: Include function-abi.h.
8175         (collect_fn_hard_reg_usage): Add fixed and stack registers to
8176         function_used_regs before the main loop rather than afterwards.
8177         Use insn_callee_abi instead of get_call_reg_set_usage.  Exit early
8178         if function_used_regs ends up not being useful.
8179         (get_call_fndecl): Move to rtlanal.c
8180         (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete.
8181         * caller-save.c: Include function-abi.h.
8182         (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi
8183         instead of get_call_reg_set_usage.
8184         * cfgcleanup.c: Include function-abi.h.
8185         (old_insns_match_p): Use insn_callee_abi instead of
8186         get_call_reg_set_usage.
8187         * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of
8188         a tree.
8189         * cgraph.c (cgraph_node::rtl_info): Likewise.  Initialize
8190         function_used_regs.
8191         * df-scan.c: Include function-abi.h.
8192         (df_get_call_refs): Use insn_callee_abi instead of
8193         get_call_reg_set_usage.
8194         * ira-lives.c: Include function-abi.h.
8195         (process_bb_node_lives): Use insn_callee_abi instead of
8196         get_call_reg_set_usage.
8197         * lra-lives.c: Include function-abi.h.
8198         (process_bb_lives): Use insn_callee_abi instead of
8199         get_call_reg_set_usage.
8200         * postreload.c: Include function-abi.h.
8201         (reload_combine): Use insn_callee_abi instead of
8202         get_call_reg_set_usage.
8203         * regcprop.c: Include function-abi.h.
8204         (copyprop_hardreg_forward_1): Use insn_callee_abi instead of
8205         get_call_reg_set_usage.
8206         * resource.c: Include function-abi.h.
8207         (mark_set_resources, mark_target_live_regs): Use insn_callee_abi
8208         instead of get_call_reg_set_usage.
8209         * var-tracking.c: Include function-abi.h.
8210         (dataflow_set_clear_at_call): Use insn_callee_abi instead of
8211         get_call_reg_set_usage.
8213 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8215         * target.def (fntype_abi): New target hook.
8216         * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise.
8217         * doc/tm.texi: Regenerate.
8218         * target.h (predefined_function_abi): Declare.
8219         * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi,
8220         if defined.
8221         * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value.
8222         * config/aarch64/aarch64.c: Include function-abi.h.
8223         (aarch64_simd_abi, aarch64_fntype_abi): New functions.
8224         (TARGET_FNTYPE_ABI): Define.
8226 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8228         * Makefile.in (OBJS): Add function-abi.o.
8229         (GTFILES): Add function-abi.h.
8230         * function-abi.cc: New file.
8231         * function-abi.h: Likewise.
8232         * emit-rtl.h (rtl_data::abi): New field.
8233         * function.c: Include function-abi.h.
8234         (prepare_function_start): Initialize crtl->abi.
8235         * read-rtl-function.c: Include regs.h and function-abi.h.
8236         (read_rtl_function_body): Initialize crtl->abi.
8237         (read_rtl_function_body_from_file_range): Likewise.
8238         * reginfo.c: Include function-abi.h.
8239         (init_reg_sets_1): Initialize default_function_abi.
8240         (globalize_reg): Call add_full_reg_clobber for each predefined ABI
8241         when making a register global.
8242         * target-globals.h (this_target_function_abi_info): Declare.
8243         (target_globals::function_abi_info): New field.
8244         (restore_target_globals): Copy it.
8245         * target-globals.c: Include function-abi.h.
8246         (default_target_globals): Initialize the function_abi_info field.
8247         (target_globals): Allocate it.
8248         (save_target_globals): Free it.
8250 2019-09-30  Nick Clifton  <nickc@redhat.com>
8252         PR target/85978
8253         * config/frv/frv.c (frv_register_move_cost): Add break statements
8254         to avoid falling through to the wrong cases.  Tidy code.
8256 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
8258         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
8259         For multi-registers modes, test how big each register part is.
8261 2019-09-30  Nick Clifton  <nickc@redhat.com>
8263         PR target/59205
8264         * config/iq2000/iq2000.c (iq2000_select_section): Delete.
8265         (TARGET_ASM_SELECT_SECTION): Remove definition.
8266         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition.
8268 2019-09-30  Ilya Leoshkevich  <iii@linux.ibm.com>
8270         * emit-rtl.c (init_raw_REG): New function.
8271         (gen_raw_REG): Use init_raw_REG.
8272         * gengenrtl.c (gendef): Emit init_* functions and alloca_*
8273         macros.
8274         * rtl.c (rtx_alloc_stat_v): Use rtx_init.
8275         * rtl.h (rtx_init): New function.
8276         (rtx_alloca): New function.
8277         (init_raw_REG): New function.
8278         (alloca_raw_REG): New macro.
8280 2019-09-30  Michael Meissner  <meissner@linux.ibm.com>
8282         * config/rs6000/predicates.md (pcrel_address): Delete predicate.
8283         (pcrel_local_address): Replace pcrel_address predicate, use the
8284         new function address_to_insn_form.
8285         (pcrel_external_address): Replace with new implementation using
8286         address_to_insn_form..
8287         (prefixed_mem_operand): Delete predicate which is now unused.
8288         (pcrel_external_mem_operand): Delete predicate which is now
8289         unused.
8290         * config/rs6000/rs6000-protos.h (enum insn_form): New
8291         enumeration.
8292         (enum non_prefixed_form): New enumeration.
8293         (address_to_insn_form): New declaration.
8294         (prefixed_load_p): New declaration.
8295         (prefixed_store_p): New declaration.
8296         (prefixed_paddi_p): New declaration.
8297         (rs6000_asm_output_opcode): New declaration.
8298         (rs6000_final_prescan_insn): Move declaration and update calling
8299         signature.
8300         (address_is_prefixed): New helper inline function.
8301         * config/rs6000/rs6000.c(print_operand_address): Check for either
8302         PC-relative local symbols or PC-relative external symbols.
8303         (rs6000_emit_move): Support loading PC-relative addresses.
8304         (mode_supports_prefixed_address_p): Delete, no longer used.
8305         (rs6000_prefixed_address_mode_p): Delete, no longer used.
8306         (address_to_insn_form): New function to decode an address format.
8307         (reg_to_non_prefixed): New function to identify what the
8308         non-prefixed memory instruction format is for a register.
8309         (prefixed_load_p): New function to identify prefixed loads.
8310         (prefixed_store_p): New function to identify prefixed stores.
8311         (prefixed_paddi_p): New function to identify prefixed load
8312         immediates.
8313         (next_insn_prefixed_p): New static state variable.
8314         (rs6000_final_prescan_insn): New function to determine if an insn
8315         uses a prefixed instruction.
8316         (rs6000_asm_output_opcode): New function to emit 'p' in front of a
8317         prefixed instruction.
8318         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook.
8319         (ASM_OUTPUT_OPCODE): New target hook.
8320         * config/rs6000/rs6000.md (prefixed): New insn attribute for
8321         prefixed instructions.
8322         (prefixed_length): New insn attribute for the size of prefixed
8323         instructions.
8324         (non_prefixed_length): New insn attribute for the size of
8325         non-prefixed instructions.
8326         (pcrel_local_addr): New insn to load up a local PC-relative
8327         address.
8328         (pcrel_extern_addr): New insn to load up an external PC-relative
8329         address.
8330         (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a
8331         GPR and loading a 128-bit floating point type to a GPR.
8333 2019-09-30  Richard Biener  <rguenther@suse.de>
8335         * gimple.c (gimple_get_lhs): For PHIs return the result.
8336         * tree-vectorizer.h (vectorizable_live_operation): Also get the
8337         SLP instance as argument.
8338         * tree-vect-loop.c (vect_analyze_loop_operations): Also handle
8339         double-reduction PHIs with vectorizable_lc_phi.
8340         (vect_analyze_loop_operations): Adjust.
8341         (vect_create_epilog_for_reduction): Remove all code not dealing
8342         with reduction LC PHI or epilogue generation.
8343         (vectorizable_live_operation): Call vect_create_epilog_for_reduction
8344         for live stmts of reductions.
8345         * tree-vect-stmts.c (vectorizable_condition): When !for_reduction
8346         do not handle defs that are not vect_internal_def.
8347         (can_vectorize_live_stmts): Adjust.
8348         (vect_analyze_stmt): When the vectorized stmt defined a value
8349         used on backedges adjust the backedge uses of vectorized PHIs.
8351 2019-09-30  Martin Jambor  <mjambor@suse.cz>
8353         PR ipa/91853
8354         * tree-inline.c (force_value_to_type): New function.
8355         (setup_one_parameter): Use force_value_to_type to convert type.
8356         * tree-inline.c (force_value_to_type): Declare.
8357         * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal
8358         with register type mismatches.
8360 2019-09-30  Andreas Tobler  <andreast@gcc.gnu.org>
8362         * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for
8363         32-bit PowerPC.
8364         Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC.
8365         * config/rs6000/t-freebsd64: Make use of the above define and build
8366         the 32-bit libraries with secure-plt.
8368 2019-09-30  Jakub Jelinek  <jakub@redhat.com>
8370         PR target/91931
8371         * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use
8372         gen_int_mode instead of GEN_INT.
8374 2019-09-29  Iain Sandoe  <iain@sandoe.co.uk>
8376         * config/darwin.c (gen_macho_low): Amend to include the mode
8377         argument.
8378         (machopic_indirect_data_reference): Amend gen_macho_low call
8379         to include mode argument
8380         * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment.
8381         * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces
8382         the macho_high expander and two define_insn entries.
8384 2019-09-29  Jakub Jelinek  <jakub@redhat.com>
8386         PR bootstrap/90543
8387         * optc-save-gen.awk: Fix up printing string option differences.
8389 2019-09-29  Kewen Lin  <linkw@gcc.gnu.org>
8391         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
8392         vec_perm cost to 1 for non-Power7 VSX architectures.
8394 2019-09-29  Kewen Lin  <linkw@gcc.gnu.org>
8396         * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand.
8397         (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise.
8398         (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise.
8400 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
8402         * config/darwin.c (gen_macho_high): Amend to include the mode
8403         argument.
8404         (machopic_indirect_data_reference): Amend gen_macho_high call
8405         to include mode argument.
8406         (machopic_legitimize_pic_address): Likewise.
8407         * config/rs6000/rs6000.c (rs6000_legitimize_address):
8408         * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces
8409         the macho_high expander and two define_insn entries.
8411 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
8413         PR target/86805
8414         * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
8416 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
8418         PR target/80672
8419         * config/sh/sh.c (parse_validate_atomic_model_option): Use
8420         std::string::compare instead of std::string::find.
8422 2019-09-27  Maciej W. Rozycki  <macro@wdc.com>
8424         * configure: Regenerate.
8426 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
8428         PR middle-end/91920
8429         * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
8430         variables as shared.
8432 2019-09-27  Iain Sandoe  <iain@sandoe.co.uk>
8434         * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New,
8435         replaces the expander and two define_insn entries.
8436         (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic
8437         call.
8438         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise.
8440 2019-09-27  David Malcolm  <dmalcolm@redhat.com>
8442         * fibonacci_heap.h (fibonacci_heap::empty): Make const.
8443         (fibonacci_heap::nodes): Likewise.
8444         (fibonacci_heap::min_key): Likewise.
8445         (fibonacci_heap::min): Likewise.
8447 2019-09-27  David Malcolm  <dmalcolm@redhat.com>
8449         * cgraph.c (cgraph_node::get_fun): Make const.
8450         * cgraph.h (cgraph_node::get_fun): Likewise.
8452 2019-09-27  Jakub Jelinek  <jakub@redhat.com>
8454         PR target/91919
8455         * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands
8456         of SImode MULT.
8458 2019-09-27  Richard Biener  <rguenther@suse.de>
8460         * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
8461         (STMT_VINFO_REDUC_FN): Likewise.
8462         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
8463         STMT_VINFO_REDUC_FN.
8464         * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX
8465         for condition reductions.
8466         (vect_create_epilog_for_reduction): Compute all required state
8467         from the stmt to be vectorized.
8468         (vectorizable_reduction): Simplify vect_create_epilog_for_reduction
8469         invocation and remove then dead code.  For single def-use chains
8470         record only a single vector stmt.
8472 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
8474         * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum.
8475         (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants.
8476         (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type)
8477         (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin):
8478         (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete.
8479         (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins):
8480         (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin):
8481         (aarch64_general_expand_builtin, aarch64_general_builtin_decl):
8482         (aarch64_general_builtin_rsqrt): Declare.
8483         * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin):
8484         New function.
8485         (aarch64_mangle_builtin_type): Rename to...
8486         (aarch64_general_mangle_builtin_type): ...this.
8487         (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins)
8488         (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt)
8489         (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use
8490         aarch64_general_add_builtin instead of add_builtin_function.
8491         (aarch64_init_builtins): Rename to...
8492         (aarch64_general_init_builtins): ...this.  Use
8493         aarch64_general_add_builtin instead of add_builtin_function.
8494         (aarch64_builtin_decl): Rename to...
8495         (aarch64_general_builtin_decl): ...this and remove the unused
8496         arguments.
8497         (aarch64_expand_builtin): Rename to...
8498         (aarch64_general_expand_builtin): ...this and remove the unused
8499         arguments.
8500         (aarch64_builtin_rsqrt): Rename to...
8501         (aarch64_general_builtin_rsqrt): ...this.
8502         (aarch64_fold_builtin): Rename to...
8503         (aarch64_general_fold_builtin): ...this.  Take the function subcode
8504         and return type as arguments.  Remove the "ignored" argument.
8505         (aarch64_gimple_fold_builtin): Rename to...
8506         (aarch64_general_gimple_fold_builtin): ...this.  Take the function
8507         subcode and gcall as arguments, and return the new function call.
8508         * config/aarch64/aarch64.c (aarch64_init_builtins)
8509         (aarch64_fold_builtin, aarch64_gimple_fold_builtin)
8510         (aarch64_expand_builtin, aarch64_builtin_decl): New functions.
8511         (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt
8512         instead of aarch64_builtin_rsqrt.
8513         (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type
8514         instead of aarch64_mangle_builtin_type.
8516 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
8518         * target.def (check_builtin_call): New target hook.
8519         * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook.
8520         * doc/tm.texi: Regenerate.
8522 2019-09-27  Richard Sandiford  <richard.sandiford@arm.com>
8524         PR tree-optimization/91909
8525         * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a
8526         reduc_index parameter.  When handling COND_REDUCTION, make sure
8527         that the reduction phi operand is in the correct arm of the
8528         VEC_COND_EXPR.
8529         (vectorizable_reduction): Pass reduc_index to the above.
8531 2019-09-27  Yuliang Wang  <yuliang.wang@arm.com>
8533         * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
8534         New combine pattern.
8536 2019-09-26  Max Filippov  <jcmvbkbc@gmail.com>
8538         * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead
8539         loop instruction into new basic block before the loop when basic
8540         block that precedes the loop is empty.
8542 2019-09-26  Jakub Jelinek  <jakub@redhat.com>
8544         * function.c (gimplify_parameters): Use build_clobber function.
8545         * tree-ssa.c (execute_update_addresses_taken): Likewise.
8546         * tree-inline.c (expand_call_inline): Likewise.
8547         * tree-sra.c (clobber_subtree): Likewise.
8548         * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
8549         * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses,
8550         lower_omp_single, lower_depend_clauses, lower_omp_taskreg,
8551         lower_omp_target): Likewise.
8552         * omp-expand.c (expand_omp_for_generic): Likewise.
8553         * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise.
8555 2019-09-26  Will Schmidt <will_schmidt@vnet.ibm.com>
8557         * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
8558         LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
8559         LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
8560         LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
8561         LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
8562         LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
8563         LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
8564         LD_ELEMREV_V16QI): Use the PURE attribute.
8566 2019-09-26  Iain Sandoe  <iain@sandoe.co.uk>
8568         * config/rs6000/darwin.md: Replace the expanders for
8569         load_macho_picbase and reload_macho_picbase with use of '@'
8570         and <mode> in their respective define_insns.
8571         (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase.
8572         * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass
8573         Pmode to gen_load_macho_picbase.
8574         * config/rs6000/rs6000.md: Likewise.
8576 2019-09-25  Richard Biener  <rguenther@suse.de>
8578         PR tree-optimization/91896
8579         * tree-vect-loop.c (vectorizable_reduction): The single
8580         def-use cycle optimization cannot apply when there's more
8581         than one pattern stmt involved.
8583 2019-09-26  Richard Biener  <rguenther@suse.de>
8585         * tree-vect-loop.c (vect_analyze_loop_operations): Analyze
8586         loop-closed PHIs that are vect_internal_def.
8587         (vect_create_epilog_for_reduction): Exit early for nested cycles.
8588         Simplify.
8589         (vectorizable_lc_phi): New.
8590         * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi.
8591         (vect_transform_stmt): Likewise.
8592         * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type.
8593         (vectorizable_lc_phi): Declare.
8595 2019-09-26  Richard Biener  <rguenther@suse.de>
8597         * tree-vect-loop.c (vect_analyze_loop_operations): Also call
8598         vectorizable_reduction for vect_double_reduction_def.
8599         (vect_transform_loop): Likewise.
8600         (vect_create_epilog_for_reduction): Move double-reduction
8601         PHI creation and preheader argument setting of PHIs ...
8602         (vectorizable_reduction): ... here.  Also process
8603         vect_double_reduction_def PHIs, creating the vectorized
8604         PHI nodes, remembering the scalar adjustment computed for
8605         the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
8606         Remember the original reduction code in STMT_VINFO_REDUC_CODE.
8607         * tree-vectorizer.c (vec_info::new_stmt_vec_info):
8608         Initialize STMT_VINFO_REDUC_CODE.
8609         * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
8610         (_stmt_vec_info::reduc_code): Likewise.
8611         (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
8612         (STMT_VINFO_REDUC_CODE): Likewise.
8614 2019-09-26  Matt Turner  <mattst88@gmail.com>
8616         PR driver/69471
8617         * config/aarch64/aarch64.opt (march=): Add Negative(march=).
8618         (mtune=): Add Negative(mtune=).
8619         (mcpu=): Add Negative(mcpu=).
8620         * config/arm/arm.opt: Likewise.
8622 2019-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8624         * config/arm/arm.md (arm_<simd32_op>): New define_insn.
8625         * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
8626         Define.
8627         * config/arm/arm_acle.h: Define builtins for the above.
8628         * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
8629         (simd32_op): Handle the above.
8630         * config/arm/unspecs.md: Define unspecs for the above.
8632 2019-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8634         * config/arm/arm.md (arm_<simd32_op>): New define_insn.
8635         (arm_<sup>xtb16): Likewise.
8636         (arm_usada8): Likewise.
8637         * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
8638         __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
8639         __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
8640         __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
8641         __sxtb16, __uxtab16, __uxtb16): Define.
8642         * config/arm/arm_acle_builtins.def: Define builtins for the above.
8643         * config/arm/unspecs.md: Define unspecs for the above.
8644         * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
8645         (USXTB16): Likewise.
8646         (simd32_op): New int_attribute.
8647         (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
8648         * doc/sourcebuild.exp (arm_simd32_ok): Document.
8650 2019-09-26  Martin Jambor  <mjambor@suse.cz>
8652         * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
8653         internal_error.
8655 2019-09-26  Martin Jambor  <mjambor@suse.cz>
8657         * ipa-sra.c (process_scan_results): Fix continue condition.
8659 2019-09-26  Martin Liska  <mliska@suse.cz>
8661         PR tree-optimization/91885
8662         * tree-vectorizer.c (try_vectorize_loop_1): Add
8663         TODO_update_ssa_only_virtuals similarly to what slp pass does.
8665 2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
8667         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8668         aarch64_plus_immediate rather than aarch64_uimm12_shift
8669         to test for valid PLUS immediates.
8671 2019-09-25  Martin Jambor  <mjambor@suse.cz>
8673         * tree-sra.c (no_accesses_p): Remove.
8674         (no_accesses_representant): Likewise.
8676 2019-09-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8678         * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers
8679         consistenly.
8680         (vaba_s16): Likewise.
8681         (vaba_s32): Likewise.
8682         (vaba_u8): Likewise.
8683         (vaba_u16): Likewise.
8684         (vaba_u32): Likewise.
8685         (vabal_high_s8): Likewise.
8686         (vabal_high_s16): Likewise.
8687         (vabal_high_s32): Likewise.
8688         (vabal_high_u8): Likewise.
8689         (vabal_high_u16): Likewise.
8690         (vabal_high_u32): Likewise.
8691         (vabal_s8): Likewise.
8692         (vabal_s16): Likewise.
8693         (vabal_s32): Likewise.
8694         (vabal_u8): Likewise.
8695         (vabal_u16): Likewise.
8696         (vabal_u32): Likewise.
8697         (vabaq_s8): Likewise.
8698         (vabaq_s16): Likewise.
8699         (vabaq_s32): Likewise.
8700         (vabaq_u8): Likewise.
8701         (vabaq_u16): Likewise.
8702         (vabaq_u32): Likewise.
8703         (vabd_s8): Likewise.
8704         (vabd_s16): Likewise.
8705         (vabd_s32): Likewise.
8706         (vabd_u8): Likewise.
8707         (vabd_u16): Likewise.
8708         (vabd_u32): Likewise.
8709         (vabdl_high_s8): Likewise.
8710         (vabdl_high_s16): Likewise.
8711         (vabdl_high_s32): Likewise.
8712         (vabdl_high_u8): Likewise.
8713         (vabdl_high_u16): Likewise.
8714         (vabdl_high_u32): Likewise.
8715         (vabdl_s8): Likewise.
8716         (vabdl_s16): Likewise.
8717         (vabdl_s32): Likewise.
8718         (vabdl_u8): Likewise.
8719         (vabdl_u16): Likewise.
8720         (vabdl_u32): Likewise.
8721         (vabdq_s8): Likewise.
8722         (vabdq_s16): Likewise.
8723         (vabdq_s32): Likewise.
8724         (vabdq_u8): Likewise.
8725         (vabdq_u16): Likewise.
8726         (vabdq_u32): Likewise.
8727         (vaddlv_s8): Likewise.
8728         (vaddlv_s16): Likewise.
8729         (vaddlv_u8): Likewise.
8730         (vaddlv_u16): Likewise.
8731         (vaddlvq_s8): Likewise.
8732         (vaddlvq_s16): Likewise.
8733         (vaddlvq_s32): Likewise.
8734         (vaddlvq_u8): Likewise.
8735         (vaddlvq_u16): Likewise.
8736         (vaddlvq_u32): Likewise.
8737         (vcvtx_f32_f64): Likewise.
8738         (vcvtx_high_f32_f64): Likewise.
8739         (vcvtxd_f32_f64): Likewise.
8740         (vmla_n_f32): Likewise.
8741         (vmla_n_s16): Likewise.
8742         (vmla_n_s32): Likewise.
8743         (vmla_n_u16): Likewise.
8744         (vmla_n_u32): Likewise.
8745         (vmla_s8): Likewise.
8746         (vmla_s16): Likewise.
8747         (vmla_s32): Likewise.
8748         (vmla_u8): Likewise.
8749         (vmla_u16): Likewise.
8750         (vmla_u32): Likewise.
8751         (vmlal_high_n_s16): Likewise.
8752         (vmlal_high_n_s32): Likewise.
8753         (vmlal_high_n_u16): Likewise.
8754         (vmlal_high_n_u32): Likewise.
8755         (vmlal_high_s8): Likewise.
8756         (vmlal_high_s16): Likewise.
8757         (vmlal_high_s32): Likewise.
8758         (vmlal_high_u8): Likewise.
8759         (vmlal_high_u16): Likewise.
8760         (vmlal_high_u32): Likewise.
8761         (vmlal_n_s16): Likewise.
8762         (vmlal_n_s32): Likewise.
8763         (vmlal_n_u16): Likewise.
8764         (vmlal_n_u32): Likewise.
8765         (vmlal_s8): Likewise.
8766         (vmlal_s16): Likewise.
8767         (vmlal_s32): Likewise.
8768         (vmlal_u8): Likewise.
8769         (vmlal_u16): Likewise.
8770         (vmlal_u32): Likewise.
8771         (vmlaq_n_f32): Likewise.
8772         (vmlaq_n_s16): Likewise.
8773         (vmlaq_n_s32): Likewise.
8774         (vmlaq_n_u16): Likewise.
8775         (vmlaq_n_u32): Likewise.
8776         (vmlaq_s8): Likewise.
8777         (vmlaq_s16): Likewise.
8778         (vmlaq_s32): Likewise.
8779         (vmlaq_u8): Likewise.
8780         (vmlaq_u16): Likewise.
8781         (vmlaq_u32): Likewise.
8782         (vmls_n_f32): Likewise.
8783         (vmls_n_s16): Likewise.
8784         (vmls_n_s32): Likewise.
8785         (vmls_n_u16): Likewise.
8786         (vmls_n_u32): Likewise.
8787         (vmls_s8): Likewise.
8788         (vmls_s16): Likewise.
8789         (vmls_s32): Likewise.
8790         (vmls_u8): Likewise.
8791         (vmls_u16): Likewise.
8792         (vmls_u32): Likewise.
8793         (vmlsl_high_n_s16): Likewise.
8794         (vmlsl_high_n_s32): Likewise.
8795         (vmlsl_high_n_u16): Likewise.
8796         (vmlsl_high_n_u32): Likewise.
8797         (vmlsl_high_s8): Likewise.
8798         (vmlsl_high_s16): Likewise.
8799         (vmlsl_high_s32): Likewise.
8800         (vmlsl_high_u8): Likewise.
8801         (vmlsl_high_u16): Likewise.
8802         (vmlsl_high_u32): Likewise.
8803         (vmlsl_n_s16): Likewise.
8804         (vmlsl_n_s32): Likewise.
8805         (vmlsl_n_u16): Likewise.
8806         (vmlsl_n_u32): Likewise.
8807         (vmlsl_s8): Likewise.
8808         (vmlsl_s16): Likewise.
8809         (vmlsl_s32): Likewise.
8810         (vmlsl_u8): Likewise.
8811         (vmlsl_u16): Likewise.
8812         (vmlsl_u32): Likewise.
8813         (vmlsq_n_f32): Likewise.
8814         (vmlsq_n_s16): Likewise.
8815         (vmlsq_n_s32): Likewise.
8816         (vmlsq_n_u16): Likewise.
8817         (vmlsq_n_u32): Likewise.
8818         (vmlsq_s8): Likewise.
8819         (vmlsq_s16): Likewise.
8820         (vmlsq_s32): Likewise.
8821         (vmlsq_u8): Likewise.
8822         (vmlsq_u16): Likewise.
8823         (vmlsq_u32): Likewise.
8824         (vmovl_high_s8): Likewise.
8825         (vmovl_high_s16): Likewise.
8826         (vmovl_high_s32): Likewise.
8827         (vmovl_high_u8): Likewise.
8828         (vmovl_high_u16): Likewise.
8829         (vmovl_high_u32): Likewise.
8830         (vmovl_s8): Likewise.
8831         (vmovl_s16): Likewise.
8832         (vmovl_s32): Likewise.
8833         (vmovl_u8): Likewise.
8834         (vmovl_u16): Likewise.
8835         (vmovl_u32): Likewise.
8836         (vmovn_high_s16): Likewise.
8837         (vmovn_high_s32): Likewise.
8838         (vmovn_high_s64): Likewise.
8839         (vmovn_high_u16): Likewise.
8840         (vmovn_high_u32): Likewise.
8841         (vmovn_high_u64): Likewise.
8842         (vmovn_s16): Likewise.
8843         (vmovn_s32): Likewise.
8844         (vmovn_s64): Likewise.
8845         (vmovn_u16): Likewise.
8846         (vmovn_u32): Likewise.
8847         (vmovn_u64): Likewise.
8848         (vmull_high_n_s16): Likewise.
8849         (vmull_high_n_s32): Likewise.
8850         (vmull_high_n_u16): Likewise.
8851         (vmull_high_n_u32): Likewise.
8852         (vmull_high_p8): Likewise.
8853         (vmull_high_s8): Likewise.
8854         (vmull_high_s16): Likewise.
8855         (vmull_high_s32): Likewise.
8856         (vmull_high_u8): Likewise.
8857         (vmull_high_u16): Likewise.
8858         (vmull_high_u32): Likewise.
8859         (vmull_n_s16): Likewise.
8860         (vmull_n_s32): Likewise.
8861         (vmull_n_u16): Likewise.
8862         (vmull_n_u32): Likewise.
8863         (vmull_p8): Likewise.
8864         (vmull_s8): Likewise.
8865         (vmull_s16): Likewise.
8866         (vmull_s32): Likewise.
8867         (vmull_u8): Likewise.
8868         (vmull_u16): Likewise.
8869         (vmull_u32): Likewise.
8870         (vpadal_s8): Likewise.
8871         (vpadal_s16): Likewise.
8872         (vpadal_s32): Likewise.
8873         (vpadal_u8): Likewise.
8874         (vpadal_u16): Likewise.
8875         (vpadal_u32): Likewise.
8876         (vpadalq_s8): Likewise.
8877         (vpadalq_s16): Likewise.
8878         (vpadalq_s32): Likewise.
8879         (vpadalq_u8): Likewise.
8880         (vpadalq_u16): Likewise.
8881         (vpadalq_u32): Likewise.
8882         (vpaddl_s8): Likewise.
8883         (vpaddl_s16): Likewise.
8884         (vpaddl_s32): Likewise.
8885         (vpaddl_u8): Likewise.
8886         (vpaddl_u16): Likewise.
8887         (vpaddl_u32): Likewise.
8888         (vpaddlq_s8): Likewise.
8889         (vpaddlq_s16): Likewise.
8890         (vpaddlq_s32): Likewise.
8891         (vpaddlq_u8): Likewise.
8892         (vpaddlq_u16): Likewise.
8893         (vpaddlq_u32): Likewise.
8894         (vpaddq_s8): Likewise.
8895         (vpaddq_s16): Likewise.
8896         (vpaddq_s32): Likewise.
8897         (vpaddq_s64): Likewise.
8898         (vpaddq_u8): Likewise.
8899         (vpaddq_u16): Likewise.
8900         (vpaddq_u32): Likewise.
8901         (vpaddq_u64): Likewise.
8902         (vqdmulh_n_s16): Likewise.
8903         (vqdmulh_n_s32): Likewise.
8904         (vqdmulhq_n_s16): Likewise.
8905         (vqdmulhq_n_s32): Likewise.
8906         (vqmovn_high_s16): Likewise.
8907         (vqmovn_high_s32): Likewise.
8908         (vqmovn_high_s64): Likewise.
8909         (vqmovn_high_u16): Likewise.
8910         (vqmovn_high_u32): Likewise.
8911         (vqmovn_high_u64): Likewise.
8912         (vqmovun_high_s16): Likewise.
8913         (vqmovun_high_s32): Likewise.
8914         (vqmovun_high_s64): Likewise.
8915         (vqrdmulh_n_s16): Likewise.
8916         (vqrdmulh_n_s32): Likewise.
8917         (vqrdmulhq_n_s16): Likewise.
8918         (vqrdmulhq_n_s32): Likewise.
8919         (vrsqrte_u32): Likewise.
8920         (vrsqrteq_u32): Likewise.
8921         (vtst_p8): Likewise.
8922         (vtst_p16): Likewise.
8923         (vtst_p64): Likewise.
8924         (vtstq_p8): Likewise.
8925         (vtstq_p16): Likewise.
8926         (vtstq_p64): Likewise.
8927         (vaddlv_s32): Likewise.
8928         (vaddlv_u32): Likewise.
8929         (vqtbl1_p8): Likewise.
8930         (vqtbl1_s8): Likewise.
8931         (vqtbl1_u8): Likewise.
8932         (vqtbl1q_p8): Likewise.
8933         (vqtbl1q_s8): Likewise.
8934         (vqtbl1q_u8): Likewise.
8935         (vqtbx1_s8): Likewise.
8936         (vqtbx1_u8): Likewise.
8937         (vqtbx1_p8): Likewise.
8938         (vqtbx1q_s8): Likewise.
8939         (vqtbx1q_u8): Likewise.
8940         (vqtbx1q_p8): Likewise.
8941         (vtbl1_s8): Likewise.
8942         (vtbl1_u8): Likewise.
8943         (vtbl1_p8): Likewise.
8944         (vtbl2_s8): Likewise.
8945         (vtbl2_u8): Likewise.
8946         (vtbl2_p8): Likewise.
8947         (vtbl3_s8): Likewise.
8948         (vtbl3_u8): Likewise.
8949         (vtbl3_p8): Likewise.
8950         (vtbl4_s8): Likewise.
8951         (vtbl4_u8): Likewise.
8952         (vtbl4_p8): Likewise.
8953         (vtbx2_s8): Likewise.
8954         (vtbx2_u8): Likewise.
8955         (vtbx2_p8): Likewise.
8956         (vld1_f32): Likewise.
8957         (vld1_f64): Likewise.
8958         (vld1_p8): Likewise.
8959         (vld1_p16): Likewise.
8960         (vld1_p64): Likewise.
8961         (vld1_s8): Likewise.
8962         (vld1_s16): Likewise.
8963         (vld1_s32): Likewise.
8964         (vld1_s64): Likewise.
8965         (vld1_u8): Likewise.
8966         (vld1_u16): Likewise.
8967         (vld1_u32): Likewise.
8968         (vld1_u64): Likewise.
8969         (vld1q_f32): Likewise.
8970         (vld1q_f64): Likewise.
8971         (vld1q_p8): Likewise.
8972         (vld1q_p16): Likewise.
8973         (vld1q_p64): Likewise.
8974         (vld1q_s8): Likewise.
8975         (vld1q_s16): Likewise.
8976         (vld1q_s32): Likewise.
8977         (vld1q_s64): Likewise.
8978         (vld1q_u8): Likewise.
8979         (vld1q_u16): Likewise.
8980         (vld1q_u32): Likewise.
8981         (vld1q_u64): Likewise.
8982         (vpmax_s8): Likewise.
8983         (vpmax_s16): Likewise.
8984         (vpmax_s32): Likewise.
8985         (vpmax_u8): Likewise.
8986         (vpmax_u16): Likewise.
8987         (vpmax_u32): Likewise.
8988         (vpmaxq_s8): Likewise.
8989         (vpmaxq_s16): Likewise.
8990         (vpmaxq_s32): Likewise.
8991         (vpmaxq_u8): Likewise.
8992         (vpmaxq_u16): Likewise.
8993         (vpmaxq_u32): Likewise.
8994         (vpmax_f32): Likewise.
8995         (vpmaxq_f32): Likewise.
8996         (vpmaxq_f64): Likewise.
8997         (vpmaxqd_f64): Likewise.
8998         (vpmaxs_f32): Likewise.
8999         (vpmaxnm_f32): Likewise.
9000         (vpmaxnmq_f32): Likewise.
9001         (vpmaxnmq_f64): Likewise.
9002         (vpmaxnmqd_f64): Likewise.
9003         (vpmaxnms_f32): Likewise.
9004         (vpmin_s8): Likewise.
9005         (vpmin_s16): Likewise.
9006         (vpmin_s32): Likewise.
9007         (vpmin_u8): Likewise.
9008         (vpmin_u16): Likewise.
9009         (vpmin_u32): Likewise.
9010         (vpminq_s8): Likewise.
9011         (vpminq_s16): Likewise.
9012         (vpminq_s32): Likewise.
9013         (vpminq_u8): Likewise.
9014         (vpminq_u16): Likewise.
9015         (vpminq_u32): Likewise.
9016         (vpmin_f32): Likewise.
9017         (vpminq_f32): Likewise.
9018         (vpminq_f64): Likewise.
9019         (vpminqd_f64): Likewise.
9020         (vpmins_f32): Likewise.
9021         (vpminnm_f32): Likewise.
9022         (vpminnmq_f32): Likewise.
9023         (vpminnmq_f64): Likewise.
9024         (vpminnmqd_f64): Likewise.
9025         (vpminnms_f32): Likewise.
9026         (vmla_f32): Likewise.
9027         (vmlaq_f32): Likewise.
9028         (vmlaq_f64): Likewise.
9029         (vmls_f32): Likewise.
9030         (vmlsq_f32): Likewise.
9031         (vmlsq_f64): Likewise.
9032         (vqtbl2_s8): Likewise.
9033         (vqtbl2_u8): Likewise.
9034         (vqtbl2_p8): Likewise.
9035         (vqtbl2q_s8): Likewise.
9036         (vqtbl2q_u8): Likewise.
9037         (vqtbl2q_p8): Likewise.
9038         (vqtbl3_s8): Likewise.
9039         (vqtbl3_u8): Likewise.
9040         (vqtbl3_p8): Likewise.
9041         (vqtbl3q_s8): Likewise.
9042         (vqtbl3q_u8): Likewise.
9043         (vqtbl3q_p8): Likewise.
9044         (vqtbl4_s8): Likewise.
9045         (vqtbl4_u8): Likewise.
9046         (vqtbl4_p8): Likewise.
9047         (vqtbl4q_s8): Likewise.
9048         (vqtbl4q_u8): Likewise.
9049         (vqtbl4q_p8): Likewise.
9050         (vqtbx2_s8): Likewise.
9051         (vqtbx2_u8): Likewise.
9052         (vqtbx2_p8): Likewise.
9053         (vqtbx2q_s8): Likewise.
9054         (vqtbx2q_u8): Likewise.
9055         (vqtbx2q_p8): Likewise.
9056         (vqtbx3_s8): Likewise.
9057         (vqtbx3_u8): Likewise.
9058         (vqtbx3_p8): Likewise.
9059         (vqtbx3q_s8): Likewise.
9060         (vqtbx3q_u8): Likewise.
9061         (vqtbx3q_p8): Likewise.
9062         (vqtbx4_s8): Likewise.
9063         (vqtbx4_u8): Likewise.
9064         (vqtbx4_p8): Likewise.
9065         (vqtbx4q_s8): Likewise.
9066         (vqtbx4q_u8): Likewise.
9067         (vqtbx4q_p8): Likewise.
9068         (vrev16_p8): Likewise.
9069         (vrev16_s8): Likewise.
9070         (vrev16_u8): Likewise.
9071         (vrev16q_p8): Likewise.
9072         (vrev16q_s8): Likewise.
9073         (vrev16q_u8): Likewise.
9074         (vrev32_p8): Likewise.
9075         (vrev32_p16): Likewise.
9076         (vrev32_s8): Likewise.
9077         (vrev32_s16): Likewise.
9078         (vrev32_u8): Likewise.
9079         (vrev32_u16): Likewise.
9080         (vrev32q_p8): Likewise.
9081         (vrev32q_p16): Likewise.
9082         (vrev32q_s8): Likewise.
9083         (vrev32q_s16): Likewise.
9084         (vrev32q_u8): Likewise.
9085         (vrev32q_u16): Likewise.
9086         (vrev64_f32): Likewise.
9087         (vrev64_p8): Likewise.
9088         (vrev64_p16): Likewise.
9089         (vrev64_s8): Likewise.
9090         (vrev64_s16): Likewise.
9091         (vrev64_s32): Likewise.
9092         (vrev64_u8): Likewise.
9093         (vrev64_u16): Likewise.
9094         (vrev64_u32): Likewise.
9095         (vrev64q_f32): Likewise.
9096         (vrev64q_p8): Likewise.
9097         (vrev64q_p16): Likewise.
9098         (vrev64q_s8): Likewise.
9099         (vrev64q_s16): Likewise.
9100         (vrev64q_s32): Likewise.
9101         (vrev64q_u8): Likewise.
9102         (vrev64q_u16): Likewise.
9103         (vrev64q_u32): Likewise.
9104         (vsha1cq_u32): Likewise.
9105         (vsha1mq_u32): Likewise.
9106         (vsha1pq_u32): Likewise.
9107         (vsha1h_u32): Likewise.
9108         (vsha1su0q_u32): Likewise.
9109         (vsha1su1q_u32): Likewise.
9110         (vsha256hq_u32): Likewise.
9111         (vsha256h2q_u32): Likewise.
9112         (vsha256su0q_u32): Likewise.
9113         (vsha256su1q_u32): Likewise.
9114         (vmull_p64): Likewise.
9115         (vmull_high_p64): Likewise.
9116         (vsqrt_f32): Likewise.
9117         (vsqrtq_f32): Likewise.
9118         (vsqrt_f64): Likewise.
9119         (vsqrtq_f64): Likewise.
9120         (vst1_f32): Likewise.
9121         (vst1_f64): Likewise.
9122         (vst1_p8): Likewise.
9123         (vst1_p16): Likewise.
9124         (vst1_p64): Likewise.
9125         (vst1_s8): Likewise.
9126         (vst1_s16): Likewise.
9127         (vst1_s32): Likewise.
9128         (vst1_s64): Likewise.
9129         (vst1_u8): Likewise.
9130         (vst1_u16): Likewise.
9131         (vst1_u32): Likewise.
9132         (vst1_u64): Likewise.
9133         (vst1q_f32): Likewise.
9134         (vst1q_f64): Likewise.
9135         (vst1q_p8): Likewise.
9136         (vst1q_p16): Likewise.
9137         (vst1q_p64): Likewise.
9138         (vst1q_s8): Likewise.
9139         (vst1q_s16): Likewise.
9140         (vst1q_s32): Likewise.
9141         (vst1q_s64): Likewise.
9142         (vst1q_u8): Likewise.
9143         (vst1q_u16): Likewise.
9144         (vst1q_u32): Likewise.
9145         (vst1q_u64): Likewise.
9146         (vst1_s64_x2): Likewise.
9147         (vst1_u64_x2): Likewise.
9148         (vst1_f64_x2): Likewise.
9149         (vst1_s8_x2): Likewise.
9150         (vst1_p8_x2): Likewise.
9151         (vst1_s16_x2): Likewise.
9152         (vst1_p16_x2): Likewise.
9153         (vst1_s32_x2): Likewise.
9154         (vst1_u8_x2): Likewise.
9155         (vst1_u16_x2): Likewise.
9156         (vst1_u32_x2): Likewise.
9157         (vst1_f16_x2): Likewise.
9158         (vst1_f32_x2): Likewise.
9159         (vst1_p64_x2): Likewise.
9160         (vst1q_s8_x2): Likewise.
9161         (vst1q_p8_x2): Likewise.
9162         (vst1q_s16_x2): Likewise.
9163         (vst1q_p16_x2): Likewise.
9164         (vst1q_s32_x2): Likewise.
9165         (vst1q_s64_x2): Likewise.
9166         (vst1q_u8_x2): Likewise.
9167         (vst1q_u16_x2): Likewise.
9168         (vst1q_u32_x2): Likewise.
9169         (vst1q_u64_x2): Likewise.
9170         (vst1q_f16_x2): Likewise.
9171         (vst1q_f32_x2): Likewise.
9172         (vst1q_f64_x2): Likewise.
9173         (vst1q_p64_x2): Likewise.
9174         (vst1_s64_x3): Likewise.
9175         (vst1_u64_x3): Likewise.
9176         (vst1_f64_x3): Likewise.
9177         (vst1_s8_x3): Likewise.
9178         (vst1_p8_x3): Likewise.
9179         (vst1_s16_x3): Likewise.
9180         (vst1_p16_x3): Likewise.
9181         (vst1_s32_x3): Likewise.
9182         (vst1_u8_x3): Likewise.
9183         (vst1_u16_x3): Likewise.
9184         (vst1_u32_x3): Likewise.
9185         (vst1_f16_x3): Likewise.
9186         (vst1_f32_x3): Likewise.
9187         (vst1_p64_x3): Likewise.
9188         (vst1q_s8_x3): Likewise.
9189         (vst1q_p8_x3): Likewise.
9190         (vst1q_s16_x3): Likewise.
9191         (vst1q_p16_x3): Likewise.
9192         (vst1q_s32_x3): Likewise.
9193         (vst1q_s64_x3): Likewise.
9194         (vst1q_u8_x3): Likewise.
9195         (vst1q_u16_x3): Likewise.
9196         (vst1q_u32_x3): Likewise.
9197         (vst1q_u64_x3): Likewise.
9198         (vst1q_f16_x3): Likewise.
9199         (vst1q_f32_x3): Likewise.
9200         (vst1q_f64_x3): Likewise.
9201         (vst1q_p64_x3): Likewise.
9202         (vst2_s64): Likewise.
9203         (vst2_u64): Likewise.
9204         (vst2_f64): Likewise.
9205         (vst2_s8): Likewise.
9206         (vst2_p8): Likewise.
9207         (vst2_s16): Likewise.
9208         (vst2_p16): Likewise.
9209         (vst2_s32): Likewise.
9210         (vst2_u8): Likewise.
9211         (vst2_u16): Likewise.
9212         (vst2_u32): Likewise.
9213         (vst2_f16): Likewise.
9214         (vst2_f32): Likewise.
9215         (vst2_p64): Likewise.
9216         (vst2q_s8): Likewise.
9217         (vst2q_p8): Likewise.
9218         (vst2q_s16): Likewise.
9219         (vst2q_p16): Likewise.
9220         (vst2q_s32): Likewise.
9221         (vst2q_s64): Likewise.
9222         (vst2q_u8): Likewise.
9223         (vst2q_u16): Likewise.
9224         (vst2q_u32): Likewise.
9225         (vst2q_u64): Likewise.
9226         (vst2q_f16): Likewise.
9227         (vst2q_f32): Likewise.
9228         (vst2q_f64): Likewise.
9229         (vst2q_p64): Likewise.
9230         (vst3_s64): Likewise.
9231         (vst3_u64): Likewise.
9232         (vst3_f64): Likewise.
9233         (vst3_s8): Likewise.
9234         (vst3_p8): Likewise.
9235         (vst3_s16): Likewise.
9236         (vst3_p16): Likewise.
9237         (vst3_s32): Likewise.
9238         (vst3_u8): Likewise.
9239         (vst3_u16): Likewise.
9240         (vst3_u32): Likewise.
9241         (vst3_f16): Likewise.
9242         (vst3_f32): Likewise.
9243         (vst3_p64): Likewise.
9244         (vst3q_s8): Likewise.
9245         (vst3q_p8): Likewise.
9246         (vst3q_s16): Likewise.
9247         (vst3q_p16): Likewise.
9248         (vst3q_s32): Likewise.
9249         (vst3q_s64): Likewise.
9250         (vst3q_u8): Likewise.
9251         (vst3q_u16): Likewise.
9252         (vst3q_u32): Likewise.
9253         (vst3q_u64): Likewise.
9254         (vst3q_f16): Likewise.
9255         (vst3q_f32): Likewise.
9256         (vst3q_f64): Likewise.
9257         (vst3q_p64): Likewise.
9258         (vst4_s64): Likewise.
9259         (vst4_u64): Likewise.
9260         (vst4_f64): Likewise.
9261         (vst4_s8): Likewise.
9262         (vst4_p8): Likewise.
9263         (vst4_s16): Likewise.
9264         (vst4_p16): Likewise.
9265         (vst4_s32): Likewise.
9266         (vst4_u8): Likewise.
9267         (vst4_u16): Likewise.
9268         (vst4_u32): Likewise.
9269         (vst4_f16): Likewise.
9270         (vst4_f32): Likewise.
9271         (vst4_p64): Likewise.
9272         (vst4q_s8): Likewise.
9273         (vst4q_p8): Likewise.
9274         (vst4q_s16): Likewise.
9275         (vst4q_p16): Likewise.
9276         (vst4q_s32): Likewise.
9277         (vst4q_s64): Likewise.
9278         (vst4q_u8): Likewise.
9279         (vst4q_u16): Likewise.
9280         (vst4q_u32): Likewise.
9281         (vst4q_u64): Likewise.
9282         (vst4q_f16): Likewise.
9283         (vst4q_f32): Likewise.
9284         (vst4q_f64): Likewise.
9285         (vst4q_p64): Likewise.
9286         (vtbx4_s8): Likewise.
9287         (vtbx4_u8): Likewise.
9288         (vtbx4_p8): Likewise.
9289         (vtrn_f32): Likewise.
9290         (vtrn_p8): Likewise.
9291         (vtrn_p16): Likewise.
9292         (vtrn_s8): Likewise.
9293         (vtrn_s16): Likewise.
9294         (vtrn_s32): Likewise.
9295         (vtrn_u8): Likewise.
9296         (vtrn_u16): Likewise.
9297         (vtrn_u32): Likewise.
9298         (vtrnq_f32): Likewise.
9299         (vtrnq_p8): Likewise.
9300         (vtrnq_p16): Likewise.
9301         (vtrnq_s8): Likewise.
9302         (vtrnq_s16): Likewise.
9303         (vtrnq_s32): Likewise.
9304         (vtrnq_u8): Likewise.
9305         (vtrnq_u16): Likewise.
9306         (vtrnq_u32): Likewise.
9307         (vrsqrte_f16): Likewise.
9308         (vrsqrteq_f16): Likewise.
9309         (vsqrt_f16): Likewise.
9310         (vsqrtq_f16): Likewise.
9311         (vabd_f16): Likewise.
9312         (vabdq_f16): Likewise.
9313         (vpadd_f16): Likewise.
9314         (vpaddq_f16): Likewise.
9315         (vpmax_f16): Likewise.
9316         (vpmaxq_f16): Likewise.
9317         (vpmaxnm_f16): Likewise.
9318         (vpmaxnmq_f16): Likewise.
9319         (vpmin_f16): Likewise.
9320         (vpminq_f16): Likewise.
9321         (vpminnm_f16): Likewise.
9322         (vpminnmq_f16): Likewise.
9323         (vrsqrts_f16): Likewise.
9324         (vrsqrtsq_f16): Likewise.
9326 2019-09-25  Richard Biener  <rguenther@suse.de>
9328         PR tree-optimization/91896
9329         * tree-vect-loop.c (vectorizable_reduction): The single
9330         def-use cycle optimization cannot apply when there's more
9331         than one pattern stmt involved.
9333 2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
9335         * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
9336         the 'P' mode iterator, replacing the (removed) SI and DI variants.
9337         (reload_macho_picbase_<mode>): Likewise.
9339 2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
9341         * config/rs6000/rs6000.md: Move darwin.md include until
9342         after the definition of the mode iterators.
9344 2019-09-23  Martin Sebor  <msebor@redhat.com>
9346         PR tree-optimization/91570
9347         * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
9348         non-constant minlen, maxlen and maxbound.
9350 2019-09-24  Richard Biener  <rguenther@suse.de>
9352         * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
9353         Rename to...
9354         (_stmt_vec_info::cond_reduc_code): ... this.
9355         (_stmt_vec_info::induc_cond_initial_val): Add.
9356         (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
9357         (STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
9358         (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
9359         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
9360         * tree-vect-loop.c (get_initial_def_for_reduction): Pass in
9361         the reduction code.
9362         (vect_create_epilog_for_reduction): Drop special
9363         induction condition reduction params, pass in reduction code
9364         and simplify.
9365         (vectorizable_reduction): Perform condition reduction kind
9366         selection only at analysis time.  Adjust passing on state.
9368 2019-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9370         * config/aarch64/aarch64.md (mov<mode>): Don't call
9371         aarch64_split_dimode_const_store on volatile MEM.
9373 2019-09-24  Stamatis Markianos-Wright  <stam.markianos-wright@arm.com>
9375         * config/aarch64/aarch64-option-extensions.def (fp16fml):
9376         Update hwcap string for fp16fml.
9378 2019-09-24  Jakub Jelinek  <jakub@redhat.com>
9380         PR middle-end/91866
9381         * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
9382         (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
9384 2019-09-24  Martin Liska  <mliska@suse.cz>
9386         * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
9387         instead of if-elseif-elseif-...
9388         * gimple-expr.c (extract_ops_from_tree): Likewise.
9389         * gimple.c (get_gimple_rhs_num_ops): Likewise.
9390         * tree-ssa-forwprop.c (rhs_to_tree): Likewise.
9392 2019-09-24  Martin Jambor  <mjambor@suse.cz>
9394         PR ipa/91831
9395         * ipa-param-manipulation.c (carry_over_param): Make a method of
9396         ipa_param_body_adjustments, remove now unnecessary argument.  Also copy
9397         in case of a context mismatch.
9398         (ipa_param_body_adjustments::common_initialization): Adjust call to
9399         carry_over_param.
9400         * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add
9401         private method carry_over_param.
9403 2019-09-24  Martin Jambor  <mjambor@suse.cz>
9405         PR ipa/91832
9406         * ipa-sra.c (scan_expr_access): Check that offset is non-negative.
9408 2019-09-24  Richard Biener  <rguenther@suse.de>
9410         * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF
9411         base.
9413 2019-09-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9415         * config/arm/t-arm (arm-builtins.o): Add dependency on
9416         arm_acle_builtins.def.
9418 2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>
9420         PR target/91823
9421         * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate
9422         canonical CONST_INTs.  Use gen_rtvec.
9424 2019-09-23  Richard Biener  <rguenther@suse.de>
9426         * tree-vect-loop.c (get_initial_def_for_reduction): Simplify,
9427         avoid adjusting by + 0 or * 1.
9428         (vect_create_epilog_for_reduction): Get reduction code only
9429         when necessary.  Deal with adjustment_def only when necessary.
9431 2019-09-23  Richard Sandiford  <richard.sandiford@arm.com>
9433         * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix
9434         memmodel index.
9436 2019-09-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9438         PR ipa/91835
9439         * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of
9440         "ipa-sra".
9442 2019-09-22  Iain Sandoe  <iain@sandoe.co.uk>
9444         * config/rs6000/rs6000.c (machopic_output_stub): Remove dead
9445         code.  Merge code blocks with common conditionals. Use declared
9446         macro instead of a magic number for PIC level.
9448 2019-09-21  Martin Sebor  <msebor@redhat.com>
9450         PR middle-end/91830
9451         * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
9452         Simplify computation of the offset of the referenced subobject.
9454 2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
9456         * config/darwin.c (machopic_legitimize_pic_address): Check
9457         for lra not reload.
9459 2019-09-21  Richard Sandiford  <richard.sandiford@arm.com>
9461         * ira-conflicts.c (can_use_same_reg_p): New function.
9462         (process_reg_shuffles): Take an insn parameter.  Ignore cases
9463         in which input operand op_num could seemingly never be allocated
9464         to the same register as the destination.
9465         (add_insn_allocno_copies): Update call to process_reg_shuffles.
9467 2019-09-21  Richard Sandiford  <richard.sandiford@arm.com>
9469         * simplify-rtx.c (neg_const_int): Replace with...
9470         (neg_poly_int_rtx): ...this new function.
9471         (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C)
9472         to all CONST_SCALAR_INTs and to CONST_POLY_INT.
9473         (simplify_plus_minus): Likewise for constant terms here.
9475 2019-09-20  Jonas Pfeil  <jonas.pfeil@uli-ulm.de>
9477         * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use
9478         HOST_WIDE_PRINT_UNSIGNED.
9480 2019-09-20  John David Anglin  <danglin@gcc.gnu.org>
9482         * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
9483         character.
9485 2019-09-20  Maya Rashish  <coypu@sdf.org>
9487         PR target/86811
9488         * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
9489         Define to speculation_safe_value_not_needed.
9491 2019-09-20  Richard Biener  <rguenther@suse.de>
9492             Uros Bizjak  <ubizjak@gmail.com>
9494         PR target/91814
9495         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
9496         previous change.
9497         (general_scalar_chain::convert_op): Force not suitable memory
9498         operands to a register.
9500 2019-09-20  Richard Biener  <rguenther@suse.de>
9502         PR tree-optimization/91821
9503         * tree-vect-loop.c (check_reduction_path): Check we can compute
9504         reduc_idx.
9505         (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX.
9506         * tree-vect-patterns.c (vect_reassociating_reduction_p): Return
9507         operands in canonical order.
9508         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
9509         STMT_VINFO_REDUC_IDX.
9510         * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New.
9511         (STMT_VINFO_REDUC_IDX): Likewise.
9513 2019-09-20  Eric Botcazou  <ebotcazou@adacore.com>
9515         PR target/91269
9516         * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
9518 2019-09-20  Richard Biener  <rguenther@suse.de>
9520         PR tree-optimization/91822
9521         * tree-vectorizer.h (vectorizable_condition): Restore for_reduction
9522         parameter.
9523         * tree-vect-loop.c (vectorizable_reduction): Adjust asserts
9524         for reduc_index in nested cycles, adjust vectorizable_condition
9525         calls.
9526         * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction
9527         parameter.
9528         (vect_analyze_stmt): Adjust.
9529         (vect_transform_stmt): Likewise.
9531 2019-09-20  Richard Biener  <rguenther@suse.de>
9533         PR target/91767
9534         * config/i386/i386-features.c (general_scalar_chain::convert_registers):
9535         Ensure there's a sequence point between allocating the new register
9536         and passing a reference to a reg via regno_reg_rtx.
9538 2019-09-20  Martin Jambor  <mjambor@suse.cz>
9540         * coretypes.h (cgraph_edge): Declare.
9541         * ipa-param-manipulation.c: Rewrite.
9542         * ipa-param-manipulation.h: Likewise.
9543         * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c.
9544         (OBJS): Added ipa-sra.o.
9545         * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p
9546         and ref_p, added fields param_adjustments and performed_splits.
9547         (struct cgraph_clone_info): Remove ags_to_skip and
9548         combined_args_to_skip, new field param_adjustments.
9549         (cgraph_node::create_clone): Changed parameters to use
9550         ipa_param_adjustments.
9551         (cgraph_node::create_virtual_clone): Likewise.
9552         (cgraph_node::create_virtual_clone_with_body): Likewise.
9553         (tree_function_versioning): Likewise.
9554         (cgraph_build_function_type_skip_args): Removed.
9555         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to
9556         using ipa_param_adjustments.
9557         (clone_of_p): Likewise.
9558         * cgraphclones.c (cgraph_build_function_type_skip_args): Removed.
9559         (build_function_decl_skip_args): Likewise.
9560         (duplicate_thunk_for_node): Adjust parameters using
9561         ipa_param_body_adjustments, copy param_adjustments instead of
9562         args_to_skip.
9563         (cgraph_node::create_clone): Convert to using ipa_param_adjustments.
9564         (cgraph_node::create_virtual_clone): Likewise.
9565         (cgraph_node::create_version_clone_with_body): Likewise.
9566         (cgraph_materialize_clone): Likewise.
9567         (symbol_table::materialize_all_clones): Likewise.
9568         * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify
9569         ipa_replace_map check.
9570         * ipa-cp.c (get_replacement_map): Do not initialize removed fields.
9571         (initialize_node_lattices): Make aware that some parameters might have
9572         already been removed.
9573         (want_remove_some_param_p): New function.
9574         (create_specialized_node): Convert to using ipa_param_adjustments and
9575         deal with possibly pre-existing adjustments.
9576         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.
9577         (output_node_opt_summary): Do not stream removed fields.  Stream
9578         parameter adjustments instead of argumetns to skip.
9579         (input_node_opt_summary): Likewise.
9580         (input_node_opt_summary): Likewise.
9581         * lto-section-in.c (lto_section_name): Added ipa-sra section.
9582         * lto-streamer.h (lto_section_type): Likewise.
9583         * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and
9584         param_body_adjs.
9585         (copy_decl_to_var): Declare.
9586         * tree-inline.c (update_clone_info): Do not remap old_tree.
9587         (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple
9588         statements, walk all extra generated statements and remap their
9589         operands.
9590         (redirect_all_calls): Add killed SSA names to a hash set.
9591         (remap_ssa_name): Do not remap killed SSA names.
9592         (copy_arguments_for_versioning): Renames to copy_arguments_nochange,
9593         half of functionality moved to ipa_param_body_adjustments.
9594         (copy_decl_to_var): Make exported.
9595         (copy_body): Destroy killed_new_ssa_names hash set.
9596         (expand_call_inline): Remap performed splits.
9597         (update_clone_info): Likewise.
9598         (tree_function_versioning): Simplify tree_map processing.  Updated to
9599         accept ipa_param_adjustments and use ipa_param_body_adjustments.
9600         * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust
9601         for the new interface.
9602         (simd_clone_clauses_extract): Likewise, make args an auto_vec.
9603         (simd_clone_compute_base_data_type): Likewise.
9604         (simd_clone_init_simd_arrays): Adjust for the new interface.
9605         (simd_clone_adjust_argument_types): Likewise.
9606         (struct modify_stmt_info): Likewise.
9607         (ipa_simd_modify_stmt_ops): Likewise.
9608         (ipa_simd_modify_function_body): Likewise.
9609         (simd_clone_adjust): Likewise.
9610         * tree-sra.c: Removed IPA-SRA.  Include tree-sra.h.
9611         (type_internals_preclude_sra_p): Make public.
9612         * tree-sra.h: New file.
9613         * ipa-inline-transform.c (save_inline_function_body): Update to
9614         refelct new tree_function_versioning signature.
9615         * ipa-prop.c (adjust_agg_replacement_values): Use a helper from
9616         ipa_param_adjustments to get current parameter indices.
9617         (ipcp_modif_dom_walker::before_dom_children): Likewise.
9618         (ipcp_update_bits): Likewise.
9619         (ipcp_update_vr): Likewise.
9620         * ipa-split.c (split_function): Convert to using ipa_param_adjustments.
9621         * ipa-sra.c: New file.
9622         * multiple_target.c (create_target_clone): Update to reflet new type
9623         of create_version_clone_with_body.
9624         * trans-mem.c (ipa_tm_create_version): Update to reflect new type of
9625         tree_function_versioning.
9626         (modify_function): Update to reflect new type of
9627         tree_function_versioning.
9628         * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New.
9629         * passes.def: Remove old IPA-SRA and add new one.
9630         * tree-pass.h (make_pass_early_ipa_sra): Remove declaration.
9631         (make_pass_ipa_sra): Declare.
9632         * dbgcnt.def: Remove eipa_sra.  Added ipa_sra_params and
9633         ipa_sra_retvalues.
9634         * doc/invoke.texi (ipa-sra-max-replacements): New.
9636 2019-09-19  Martin Sebor  <msebor@redhat.com>
9638         PR middle-end/91631
9639         * builtins.c (component_size): Correct trailing array computation,
9640         rename to component_ref_size and move...
9641         (compute_objsize): Adjust.
9642         * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member.
9643         (builtin_access::strict): Do not consider memmove.
9644         (builtin_access::write_off): New function.
9645         (builtin_memref::builtin_memref): Initialize refsize.
9646         (builtin_memref::set_base_and_offset): Adjust refoff and compute
9647         refsize.
9648         (builtin_memref::offset_out_of_bounds): Use ooboff input values.
9649         Handle refsize.
9650         (builtin_access::builtin_access): Initialize dstoff to destination
9651         refeence offset here instead of in maybe_diag_overlap.  Adjust
9652         referencess even to unrelated objects.  Adjust sizrange of bounded
9653         string functions to reflect bound.  For strcat, adjust destination
9654         sizrange by that of source.
9655         (builtin_access::strcat_overlap):  Adjust offsets and sizes
9656         to reflect the increase in destination sizrange above.
9657         (builtin_access::overlap): Do not set dstoff here but instead
9658         in builtin_access::builtin_access.
9659         (check_bounds_or_overlap): Use builtin_access::write_off.
9660         (maybe_diag_access_bounds): Add argument.  Add informational notes.
9661         (dump_builtin_memref, dump_builtin_access): New functions.
9662         * tree.c (component_ref_size): ...to here.
9663         * tree.h (component_ref_size): Declare.
9664         * tree-ssa-strlen (handle_builtin_strcat): Include the terminating
9665         nul in the size of the source string.
9667 2019-09-19  Lewis Hyatt  <lhyatt@gmail.com>
9669         PR c/67224
9670         * doc/cpp.texi: Document support for extended characters in
9671         identifiers.
9672         * doc/cppopts.texi: Likewise.
9674 2019-09-19  Richard Biener  <rguenther@suse.de>
9676         * tree-vect-loop.c (vect_is_slp_reduction): Remove.
9677         (check_reduction_path): New overload having the path as result.
9678         (vect_is_simple_reduction): From the detected reduction
9679         path build a SLP reduction chain if possible.
9681 2019-09-19  Richard Biener  <rguenther@suse.de>
9683         PR target/91814
9684         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
9685         Force operand to a register if it isn't nonimmediate_operand.
9687 2019-09-19  Wilco Dijkstra  <wdijkstr@arm.com>
9689         * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.
9690         * config/arm/iterators.md (optab): Add and, ior, xor entries.
9691         (logical_op): Remove code attribute.
9692         (logical_OP): Likewise.
9694 2019-09-19  Martin Liska  <mliska@suse.cz>
9696         * ipa-icf.c (sort_congruence_class_groups_by_decl_uid):
9697         Use proper casting.
9699 2019-09-19  Richard Henderson  <richard.henderson@linaro.org>
9701         * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer
9702         registers with %R.
9704         * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support
9705         for NE comparison of TImode values.
9706         (aarch64_emit_load_exclusive): Add support for TImode.
9707         (aarch64_emit_store_exclusive): Likewise.
9708         (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode.
9709         * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>):
9710         Change iterator from ALLI to ALLI_TI.
9711         (@atomic_compare_and_swap<JUST_TI>): New.
9712         (@atomic_compare_and_swap<JUST_TI>_lse): New.
9713         (aarch64_load_exclusive_pair): New.
9714         (aarch64_store_exclusive_pair): New.
9715         * config/aarch64/iterators.md (JUST_TI): New.
9717         * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable
9718         strong_zero_p for aarch64_track_speculation; unify some code paths;
9719         use aarch64_gen_compare_reg instead of open-coding.
9721         * config/aarch64/aarch64.opt (-moutline-atomics): New.
9722         * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.
9723         (aarch64_ool_cas_names, aarch64_ool_swp_names): New.
9724         (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New.
9725         (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New.
9726         (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS.
9727         * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise.
9728         (atomic_<atomic_op><ALLI>): Likewise.
9729         (atomic_fetch_<atomic_op><ALLI>): Likewise.
9730         (atomic_<atomic_op>_fetch<ALLI>): Likewise.
9731         * doc/invoke.texi: Document -moutline-atomics.
9733 2019-09-19  Feng Xue  <fxue@os.amperecomputing.com>
9735         * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute
9736         trivial predicate for condition branch.
9737         (set_switch_stmt_execution_predicate): Do not compute trivial predicate
9738         for switch case.
9739         (compute_bb_predicates): Update predicate based on post-dominating
9740         relationship.
9741         (analyze_function_body): Calculate post-dominating information.
9743 2019-09-19  Richard Sandiford  <richard.sandiford@arm.com>
9745         * tree-vectorizer.h (vectorizable_condition): Take an int
9746         reduction index instead of a boolean flag.
9747         * tree-vect-stmts.c (vectorizable_condition): Likewise.
9748         Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION
9749         reductions if the reduction accumulator is the "then" rather
9750         than the "else" value.
9751         (vect_analyze_stmt): Update call accordingly.
9752         (vect_transform_stmt): Likewise.
9753         * tree-vect-loop.c (vectorizable_reduction): Likewise,
9754         asserting that the index is > 0.
9756 2019-09-19  Martin Liska  <mliska@suse.cz>
9758         * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator.
9759         (sort_congruence_classes_by_decl_uid): Likewise.
9760         (sort_congruence_class_groups_by_decl_uid): Use std::pair for
9761         easier sorting.
9762         (sem_item_optimizer::merge_classes): Likewise.
9764 2019-09-19  Richard Biener  <rguenther@suse.de>
9766         PR tree-optimization/91812
9767         * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
9768         volatile loads.
9770 2019-09-19  Richard Sandiford  <richard.sandiford@arm.com>
9772         * defaults.h (TARGET_UNIT): New macro.
9773         (target_unit): New type.
9774         * rtl.h (native_encode_rtx, native_decode_rtx)
9775         (native_decode_vector_rtx, subreg_size_lsb): Declare.
9776         (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb.
9777         * rtlanal.c (subreg_lsb_1): Delete.
9778         (subreg_size_lsb): New function.
9779         * simplify-rtx.c: Include rtx-vector-builder.h
9780         (simplify_immed_subreg): Delete.
9781         (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx)
9782         (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New
9783         functions.
9784         (simplify_subreg): Use them.
9785         (test_vector_subregs_modes, test_vector_subregs_repeating)
9786         (test_vector_subregs_fore_back, test_vector_subregs_stepped)
9787         (test_vector_subregs): New functions.
9788         (test_vector_ops): Call test_vector_subregs for integer vector
9789         modes with at least 2 elements.
9791 2019-09-19  Richard Biener  <rguenther@suse.de>
9793         * tree-parloops.c (parloops_is_slp_reduction): Do not set
9794         LOOP_VINFO_OPERANDS_SWAPPED.
9795         (parloops_is_simple_reduction): Likewise.
9796         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not
9797         initialize operands_swapped.
9798         (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts.
9799         (vect_is_slp_reduction): Do not swap operands.
9800         * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove.
9801         (LOOP_VINFO_OPERANDS_SWAPPED): Likewise.
9803 2019-09-19  Hongtao Liu <hongtao.liu@intel.com>
9805         PR target/87007
9806         * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512):
9807         Add avx_partial_xmm_update.
9809 2019-09-18  Jim Wilson  <jimw@sifive.com>
9811         PR target/91683
9812         * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
9813         (riscv_move_integer): Likewise.
9814         * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
9815         riscv_move_integer arg.
9816         (riscv_legitimize_move): Likewise.
9817         (riscv_force_temporary): New parameter in_splitter.  Don't call
9818         force_reg if true.
9819         (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
9820         arg.
9821         (riscv_add_offset): Likewise.
9822         (riscv_split_symbol): New parameter in_splitter.  Pass to
9823         riscv_force_temporary.
9824         (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
9825         arg.
9826         (riscv_move_integer): New parameter in_splitter.  New local
9827         can_create_psuedo.  Don't call riscv_split_integer or force_reg when
9828         in_splitter TRUE.
9829         (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
9830         riscv_split_symbol, and riscv_force_temporary args.
9831         * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
9832         riscv_move_integer arg.
9833         (low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
9835 2019-09-18  H.J. Lu  <hongjiu.lu@intel.com>
9837         PR target/90878
9838         * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode
9839         hard register store cost to 6.
9841 2019-09-18  H.J. Lu  <hongjiu.lu@intel.com>
9843         PR target/91446
9844         * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode
9845         pseudo register store cost from 3 to 6 to make it the same as
9846         QImode and HImode.
9848 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
9850         PR target/91738
9851         * config/arm/arm.md (<logical_op>di3): Expand explicitly.
9852         (one_cmpldi2): Likewise.
9853         * config/arm/arm.c (const_ok_for_dimode_op): Return true if one
9854         of the constant parts is simple.
9855         * config/arm/iterators.md (LOGICAL): Add new code iterator.
9856         (logical_op): Add new code attribute.
9857         (logical_OP): Likewise.
9858         * config/arm/predicates.md (arm_anddi_operand): Add predicate.
9859         (arm_iordi_operand): Add predicate.
9860         (arm_xordi_operand): Add predicate.
9862 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
9864         * config/arm/arm.md (maddsidi4): Remove expander.
9865         (mulsidi3adddi): Remove pattern.
9866         (mulsidi3adddi_v6): Likewise.
9867         (mulsidi3_nov6): Likewise.
9868         (mulsidi3_v6): Likewise.
9869         (umulsidi3): Remove expander.
9870         (umulsidi3_nov6): Remove pattern.
9871         (umulsidi3_v6): Likewise.
9872         (umulsidi3adddi): Likewise.
9873         (umulsidi3adddi_v6): Likewise.
9874         (<Us>mulsidi3): Add combined expander.
9875         (<Us>maddsidi4): Likewise.
9876         (<US>mull): Add combined umull and smull pattern.
9877         (<US>mlal): Likewise.
9878         * config/arm/iterators.md (Us): Add new iterator.
9880 2019-09-18  Richard Biener  <rguenther@suse.de>
9882         * tree-vect-loop.c (vect_is_simple_reduction): Remove operand
9883         swapping.
9884         (vectorize_fold_left_reduction): Remove assert.
9885         (vectorizable_reduction): Also expect COND_EXPR non-reduction
9886         operand in position 2.  Remove assert.
9888 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
9890         * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators.
9891         (smulsi3_highpart_nov6): Remove pattern.
9892         (smulsi3_highpart_v6): Likewise.
9893         (umulsi3_highpart): Likewise.
9894         (umulsi3_highpart_nov6): Likewise.
9895         (umulsi3_highpart_v6): Likewise.
9896         (<US>mull_high): Add new combined multiply pattern.
9898 2019-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
9900         * config/arm/arm.md (arm_mulsi3): Remove pattern.
9901         (arm_mulsi3_v6): Likewise.
9902         (mulsi3addsi_v6): Likewise.
9903         (mulsi3subsi): Likewise.
9904         (mul): Add new multiply pattern.
9905         (mla): Likewise.
9906         (mls): Likewise.
9908 2019-09-18  Richard Biener  <rguenther@suse.de>
9910         * tree-parloops.c (report_ploop_op): Copy from report_vect_op.
9911         (parloops_valid_reduction_input_p): Copy from
9912         valid_reduction_input_p.
9913         (parloops_is_slp_reduction): Copy from vect_is_slp_reduction.
9914         (parloops_needs_fold_left_reduction_p): Copy from
9915         needs_fold_left_reduction_p.
9916         (parloops_is_simple_reduction): Copy from
9917         vect_is_simple_reduction.
9918         (parloops_force_simple_reduction): Copy from
9919         vect_force_simple_reduction.
9920         (gather_scalar_reductions): Adjust.
9921         * tree-vect-loop.c (vect_force_simple_reduction): Make static.
9922         * tree-vectorizer.h (vect_force_simple_reduction): Remove.
9924 2019-09-18  Richard Biener  <rguenther@suse.de>
9926         * tree-vectorizer.h (get_initial_def_for_reduction): Remove.
9927         * tree-vect-loop.c (get_initial_def_for_reduction): Make
9928         static.
9929         (vect_create_epilog_for_reduction): Remove dead code.
9931 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
9933         * varasm.c (assemble_real): Generate canonical const_ints.
9935 2019-09-18  Richard Biener  <rguenther@suse.de>
9937         PR lto/91763
9938         * lto-streamer-in.c (input_eh_regions): Move EH init to
9939         lto_materialize_function.
9940         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
9941         Likewise.
9943 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
9945         * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs
9946         are INTEGER_CSTs.
9948 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
9950         * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
9951         of checking specifically for INTEGER_CST.
9953 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
9955         * stor-layout.c (compute_record_mode): Operate on poly_uint64
9956         sizes instead of uhwi sizes.
9958 2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>
9960         * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST.
9961         (add_const_value_attribute): Handle CONST_POLY_INT.
9963 2019-09-18  Martin Liska  <mliska@suse.cz>
9965         * dbgcnt.def (store_merging): New counter.
9966         * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores):
9967         Use it in store merging.
9969 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
9971         * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New
9972         function.
9973         (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9974         * config/arm/arm.c (arm_sched_variable_issue): New function.
9975         (TARGET_SCHED_VARIABLE_ISSUE): New macro.
9977 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
9979         * config/arm/types.md (no_reservation): New reservation.
9980         * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle
9981         no_insn here.
9982         * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise.
9983         * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise.
9984         * config/aarch64/tsv110.md (tsv110_alu): Likewise.
9985         * config/arm/arm1020e.md (1020alu_op): Likewise.
9986         * config/arm/arm1026ejs.md (alu_op): Likewise.
9987         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
9988         * config/arm/arm926ejs.md (9_alu_op): Likewise.
9989         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
9990         * config/arm/cortex-a17.md (cortex_a17_alu): Likewise.
9991         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
9992         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
9993         * config/arm/cortex-a57.md (cortex_a57_alu): Likewise.
9994         * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise.
9995         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
9996         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
9997         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
9998         * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise.
9999         * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise.
10000         * config/arm/fa526.md (526_alu_op): Likewise.
10001         * config/arm/fa606te.md (606te_alu_op): Likewise.
10002         * config/arm/fa626te.md (626te_alu_op): Likewise.
10003         * config/arm/fa726te.md (726te_alu_op): Likewise.
10004         * config/arm/xgene1.md (xgene1_nop): Likewise.
10006 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
10008         * config/arm/thumb1.md (*thumb1_tablejump): Change type from
10009         "no_insn" to "branch".
10011 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
10013         * array-traits.h (array_traits<T[N]>::size): Remove parameter name.
10015 2019-09-17  Richard Biener  <rguenther@suse.de>
10017         PR debug/91772
10018         * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
10019         was missing generate locations only once.
10021 2019-09-17  Feng Xue  <fxue@os.amperecomputing.com>
10023         PR ipa/91089
10024         * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new
10025         option.
10026         * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New.
10027         * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate
10028         for switch default case using range analysis information.
10030 2019-09-17  Christophe Lyon  <christophe.lyon@linaro.org>
10032         PR target/91749
10033         * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the
10034         mode attributed is supported by FDPIC.
10036 2019-09-17  Richard Biener  <rguenther@suse.de>
10038         PR tree-optimization/91790
10039         * tree-vect-stmts.c (vectorizable_load): For BB vectorization
10040         use the correct DR for setting up realignment.
10042 2019-09-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10044         PR target/91719
10045         * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro.
10046         * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New.
10047         * config/i386/sync.md (atomic_store<mode>): emit XCHG for
10048         TARGET_USE_XCHG_FOR_ATOMIC_STORE.
10050 2019-09-16  Jason Merrill  <jason@redhat.com>
10052         * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H).
10054 2019-09-16  Martin Liska  <mliska@suse.cz>
10056         * gimple-fold.c (or_comparisons_1): Remove rules moved
10057         to ...
10058         * match.pd: ... here.
10060 2019-09-16  Martin Liska  <mliska@suse.cz>
10062         * gimple-fold.c (or_comparisons_1): Remove rules
10063         moved to ...
10064         * match.pd: ... here.
10066 2019-09-16  Martin Liska  <mliska@suse.cz>
10068         * genmatch.c (dt_node::append_simplify): Do not print
10069         warning when we have duplicate patterns belonging
10070         to a same simplify rule.
10071         * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd.
10072         (maybe_fold_comparisons_from_match_pd): Handle
10073         tcc_comparison as a results.
10074         * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions.
10076 2019-09-16  Li Jia He  <helijia@linux.ibm.com>
10077             Qi Feng  <ffengqi@linux.ibm.com>
10079         PR middle-end/88784
10080         * match.pd (x >  y  &&  x != XXX_MIN): Optimize into 'x > y'.
10081         (x >  y  &&  x == XXX_MIN): Optimize into 'false'.
10082         (x <= y  &&  x == XXX_MIN): Optimize into 'x == XXX_MIN'.
10083         (x <  y  &&  x != XXX_MAX): Optimize into 'x < y'.
10084         (x <  y  &&  x == XXX_MAX): Optimize into 'false'.
10085         (x >= y  &&  x == XXX_MAX): Optimize into 'x == XXX_MAX'.
10086         (x >  y  ||  x != XXX_MIN): Optimize into 'x != XXX_MIN'.
10087         (x <= y  ||  x != XXX_MIN): Optimize into 'true'.
10088         (x <= y  ||  x == XXX_MIN): Optimize into 'x <= y'.
10089         (x <  y  ||  x != XXX_MAX): Optimize into 'x != XXX_MAX'.
10090         (x >= y  ||  x != XXX_MAX): Optimize into 'true'.
10091         (x >= y  ||  x == XXX_MAX): Optimize into 'x >= y'.
10093 2019-09-16  Li Jia He  <helijia@linux.ibm.com>
10094             Martin Liska  <mliska@suse.cz>
10096         * gimple-fold.c (and_comparisons_1): Add type as first
10097         argument.
10098         (and_var_with_comparison): Likewise.
10099         (and_var_with_comparison_1): Likewise.
10100         (or_comparisons_1): Likewise.
10101         (or_var_with_comparison): Likewise.
10102         (or_var_with_comparison_1): Likewise.
10103         (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd.
10104         (maybe_fold_or_comparisons): Likewise.
10105         (maybe_fold_comparisons_from_match_pd): New.
10106         * gimple-fold.h (maybe_fold_and_comparisons): Add type argument.
10107         (maybe_fold_or_comparisons): Likewise.
10108         * gimple.c (gimple_size): Make it public and add num_ops argument.
10109         (gimple_init): New function.
10110         (gimple_alloc): Call gimple_init.
10111         * gimple.h (gimple_size): New.
10112         (gimple_init): Likewise.
10113         * tree-if-conv.c (fold_or_predicates): Pass type.
10114         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
10115         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise.
10116         (optimize_vec_cond_expr): Likewise.
10117         (ovce_extract_ops): Return type of conditional expression.
10118         * tree-ssanames.c (init_ssa_name_imm_use): New.
10119         (make_ssa_name_fn): Use init_ssa_name_imm_use.
10120         * tree-ssanames.h (init_ssa_name_imm_use): New.
10122 2019-09-16  Richard Biener  <rguenther@suse.de>
10124         PR tree-optimization/91756
10125         PR tree-optimization/87132
10126         * tree-ssa-alias.h (enum translate_flags): New.
10127         (get_continuation_for_phi): Use it instead of simple bool flag.
10128         (walk_non_aliased_vuses): Likewise.
10129         * tree-ssa-alias.c (maybe_skip_until): Adjust.
10130         (get_continuation_for_phi): When looking across backedges only
10131         disallow valueization.
10132         (walk_non_aliased_vuses): Adjust.
10133         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization
10134         if requested.
10136 2019-09-14  Kewen Lin  <linkw@gcc.gnu.org>
10138         PR middle-end/80791
10139         * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro.
10140         (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
10141         (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
10142         * target.def (have_count_reg_decr_p): New hook.
10143         (doloop_cost_for_generic): Likewise.
10144         (doloop_cost_for_address): Likewise.
10145         * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise.
10146         (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise.
10147         (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise.
10148         * doc/tm.texi: Regenerate.
10149         * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost
10150         addend.
10151         (record_group): Init doloop_p.
10152         (add_candidate_1): Add optional argument doloop, change the handlings
10153         accordingly.
10154         (add_candidate): Likewise.
10155         (generic_predict_doloop_p): Update attribute.
10156         (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/
10157         LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/
10158         UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/
10159         MIN_EXPR.
10160         (get_computation_cost): Update for doloop IV cand extra cost.
10161         (determine_group_iv_cost_cond): Update for doloop IV cand.
10162         (determine_iv_cost): Likewise.
10163         (ivopts_estimate_reg_pressure): Likewise.
10164         (may_eliminate_iv): Update handlings for doloop IV cand.
10165         (add_iv_candidate_for_doloop): New function.
10166         (find_iv_candidates): Call function add_iv_candidate_for_doloop.
10167         (iv_ca_set_no_cp): Update for doloop IV cand.
10168         (iv_ca_set_cp): Likewise.
10169         (iv_ca_dump): Dump register cost.
10170         (find_doloop_use): New function.
10171         (analyze_and_mark_doloop_use): Likewise.
10172         (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use.
10174 2019-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10176         PR middle-end/91708
10177         * cse.c (cse_insn): Do not replace anything with a
10178         MEM.
10180 2019-09-13  Ian Lance Taylor  <iant@golang.org>
10182         * doc/invoke.texi (Optimize Options): Fix typo.
10184 2019-09-12  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10186         PR tree-optimization/89386
10187         * config/i386/sse.md (smulhrs<mode>3): New expander.
10188         (smulhrsv4hi3): Ditto.
10190 2019-09-12  Richard Biener  <rguenther@suse.de>
10192         PR tree-optimization/91750
10193         * tree-vect-loop.c (vectorizable_induction): Compute IV increments
10194         in the type of the evolution.
10196 2019-09-12  Yuliang Wang  <yuliang.wang@arm.com>
10198         PR tree-optimization/89386
10199         * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>)
10200         (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns.
10201         (<su>mulh<r>s<mode>3): New pattern for MULHRS.
10202         * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT)
10203         (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT)
10204         (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS)
10205         UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs.
10206         (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators.
10207         (su, r): Handle the unspecs above.
10208         (bt): New int attribute.
10209         * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions.
10210         * internal-fn.c (first_commutative_argument): Commutativity info for
10211         above.
10212         * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab)
10213         (umulhrs_optab): New optabs.
10214         * doc/md.texi (smulhs$var{m3}, umulhs$var{m3})
10215         (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above.
10216         * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern
10217         function.
10218         (vect_vect_recog_func_ptrs): Add it.
10220 2019-09-11  Michael Meissner  <meissner@linux.ibm.com>
10222         * config/rs6000/predicates.md (non_add_cint_operand): Simplify the
10223         code.
10225 2019-09-11  Nathan Sidwell  <nathan@acm.org>
10227         * tree.h (MARK_TS_TYPE_NON_COMMON): New.
10228         * tree.c (tree_node_structure_for_code): Reformat and alphabetize.
10230 2019-09-11  Richard Biener  <rguenther@suse.de>
10232         * lto-opts.c (lto_write_options): Stream -g when debug is enabled.
10233         * lto-wrapper.c (merge_and_complain): Pick up -g.
10234         (append_compiler_options): Likewise.
10235         (run_gcc): Re-instantiate handling -g0 at link-time.
10236         * doc/invoke.texi (flto): Document debug info generation.
10238 2019-09-11  Richard Biener  <rguenther@suse.de>
10240         PR tree-optimization/90387
10241         * vr-values.c (vr_values::extract_range_basic): After inlining
10242         simplify non-constant __builtin_constant_p to false.
10244 2019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
10246         PR rtl-optimization/89795
10247         * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
10248         inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
10250 2019-09-11  Jakub Jelinek  <jakub@redhat.com>
10252         PR tree-optimization/91723
10253         * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
10254         instead of pointer equality when checking if argument vectypes are
10255         the same.
10257         PR middle-end/91725
10258         * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead
10259         of get_nonzero_bits, only call it for integral types.
10261 2019-09-11  Richard Biener  <rguenther@suse.de>
10263         Revert
10264         2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
10266         * match.pd: Add flag_unsafe_math_optimizations check
10267         before deciding on the widest type in a binary math operation.
10269 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10271         * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
10272         and CALL_REALLY_USED_REGISTERS must be defined, and that
10273         CALL_REALLY_USED_REGISTERS is preferred.
10274         * doc/tm.texi: Regenerate.
10275         * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete.
10276         (call_really_used_regs): Likewise.
10277         * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and
10278         CALL_REALLY_USED_REGISTERS are defined.
10279         (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the
10280         initial value if defined.
10281         (initial_call_really_used_regs): Delete.
10282         (saved_call_really_used_regs): Likewise.
10283         (CALL_REALLY_USED_REGNO_P): Likewise.
10284         (init_reg_sets): Remove handling of call_really_used_regs.
10285         (save_register_info, restore_register_info, globalize_reg): Likewise.
10286         (init_reg_sets_1): Likewise.  Use call_used_regs instead of
10287         CALL_REALLY_USED_REGNO_P.  Don't set call_used_regs for registers
10288         outside operand_reg_set.
10289         (fix_register): Don't change call_used_regs if
10290         CALL_REALLY_USED_REGISTERS is defined.
10291         * config/csky/csky.h (CALL_USED_REGISTERS): Delete.
10292         * config/csky/csky.c (get_csky_live_regs): Use call_used_regs
10293         instead of call_really_used_regs.
10294         (csky_conditional_register_usage): Remove the old handling of
10295         call_used_regs and change the handling of call_really_used_regs
10296         to use call_used_regs instead.
10297         * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete.
10298         * config/ia64/ia64.c (fix_range): Don't set call_used_regs when
10299         making a register fixed.
10300         * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete.
10301         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs
10302         instead of call_really_used_regs.
10303         (m32r_conditional_register_usage): Don't set call_used_regs when
10304         making a register fixed.
10305         * config/mips/mips.h (CALL_USED_REGISTERS): Delete.
10306         * config/mips/mips.c (mips_global_pointer): Use call_used_regs
10307         instead of call_really_used_regs.
10308         (mips_interrupt_extra_call_saved_reg_p): Likewise.
10309         (mips_cfun_call_saved_reg_p): Likewise.
10310         (mips_swap_registers): Remove the old handling of call_used_regs
10311         and change the handling of call_really_used_regs to use call_used_regs
10312         instead.
10313         (mips_conditional_register_usage): Likewise.
10314         * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete.
10315         * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs
10316         instead of call_really_used_regs.
10317         (mn10300_get_live_callee_saved_regs): Likewise.
10318         (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise.
10319         (mn10300_conditional_register_usage): Don't set call_used_regs when
10320         making a register fixed.
10321         * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete.
10322         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
10323         Remove the old handling of call_used_regs and change the handling
10324         of call_really_used_regs to use call_used_regs instead.
10325         * config/s390/s390.h (CALL_USED_REGISTERS): Delete.
10326         * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs
10327         instead of call_really_used_regs.
10328         (s390_register_info_gprtofpr, s390_register_info): Likewise.
10329         (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise.
10330         (s390_emit_prologue, s300_set_up_by_prologue): Likewise.
10331         (s390_can_use_return_insn, s390_optimize_prologue): Likewise.
10332         (s390_conditional_register_usage): Remove the old handling of
10333         call_used_regs and change the handling of call_really_used_regs
10334         to use call_used_regs instead.
10335         * config/sh/sh.h (CALL_USED_REGISTERS): Delete.
10336         * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise.
10337         (sh_fix_range, reg_unused_after): Likewise.
10338         (sh_conditional_register_usage): Remove the old handling of
10339         call_used_regs and change the handling of call_really_used_regs
10340         to use call_used_regs instead.
10341         * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete.
10342         * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set
10343         call_used_regs when making a register fixed.
10344         * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete.
10345         * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set
10346         call_used_regs when making a register fixed.
10347         * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete.
10348         * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't
10349         set call_used_regs when making a register fixed.
10350         * config/visium/visium.h (CALL_USED_REGISTERS): Delete.
10351         * config/visium/visium.c (visium_conditional_register_usage): Remove
10352         the old handling of call_used_regs and change the handling of
10353         call_really_used_regs to use call_used_regs instead.
10355 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10357         * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE.
10358         (call_used_or_fixed_reg_p): Expand definition of call_used_regs.
10359         * reginfo.c (call_used_regs): New macro.
10361 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10363         * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant
10364         fixed_regs test.
10365         * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
10366         (bpf_expand_epilogue): Likewise.
10367         * config/c6x/c6x.c (c6x_save_reg): Likewise.
10368         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
10369         (ft32_expand_epilogue): Likewise.
10370         * config/i386/i386.c (ix86_save_reg): Likewise.
10371         * config/moxie/moxie.c (moxie_expand_prologue): Likewise.
10372         (moxie_expand_epilogue): Likewise.
10373         * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
10374         * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
10375         * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
10377 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10379         * hard-reg-set.h (call_used_or_fixed_reg_p): New macro.
10380         * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p
10381         instead of testing call_used_regs directly.
10382         * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise.
10383         (aarch64_components_for_bb): Likewise.
10384         * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise.
10385         * config/arc/arc.c (arc_must_save_register): Likewise.
10386         (arc_epilogue_uses): Likewise.
10387         * config/arm/arm.c (arm_option_override, use_return_insn): Likewise.
10388         (legitimize_pic_address, callee_saved_reg_p): Likewise.
10389         (arm_compute_save_reg0_reg12_mask): Likewise.
10390         (arm_compute_save_core_reg_mask): Likewise.
10391         (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise.
10392         (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise.
10393         (cmse_nonsecure_entry_clear_before_return): Likewise.
10394         (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise.
10395         (arm_expand_epilogue): Likewise.
10396         * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise.
10397         (avr_function_arg_advance, avr_find_unused_d_reg): Likewise.
10398         (_reg_unused_after): Likewise.
10399         * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise.
10400         (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise.
10401         (add_to_reg, hwloop_optimize): Likewise.
10402         * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue)
10403         (bpf_expand_epilogue): Likewise.
10404         * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise.
10405         * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
10406         * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise.
10407         * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise.
10408         (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise.
10409         (epiphany_output_mi_thunk, epiphany_start_function): Likewise.
10410         * config/fr30/fr30.c (fr30_num_arg_regs): Likewise.
10411         * config/frv/frv.c (frv_stack_info): Likewise.
10412         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
10413         (ft32_expand_prologue, ft32_expand_epilogue): Likewise.
10414         * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise.
10415         (move_callee_saved_registers): Likewise.
10416         * config/h8300/h8300.c (byte_reg): Likewise.
10417         * config/i386/i386-options.c (ix86_set_current_function): Likewise.
10418         * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise.
10419         (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise.
10420         * config/i386/predicates.md (sibcall_memory_operand): Likewise.
10421         * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise.
10422         (next_scratch_gr_reg, ia64_compute_frame_size): Likewise.
10423         * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise.
10424         * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
10425         * config/m32c/m32c.c (need_to_save): Likewise.
10426         * config/m68k/m68k.c (m68k_save_reg): Likewise.
10427         * config/mcore/mcore.c (calc_live_regs): Likewise.
10428         * config/microblaze/microblaze.c (microblaze_must_save_register):
10429         Likewise.
10430         * config/mmix/mmix.c (mmix_local_regno): Likewise.
10431         (mmix_initial_elimination_offset, mmix_reorg): Likewise.
10432         (mmix_use_simple_return, mmix_expand_prologue): Likewise.
10433         (mmix_expand_epilogue): Likewise.
10434         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
10435         (moxie_expand_prologue, moxie_expand_epilogue): Likewise.
10436         * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise.
10437         * config/nds32/nds32.h (nds32_16bit_address_type): Likewise.
10438         (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise.
10439         * config/nios2/nios2.c (prologue_saved_reg_p): Likewise.
10440         * config/or1k/or1k.c (callee_saved_regno_p): Likewise.
10441         * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise.
10442         * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise.
10443         * config/pru/pru.c (prologue_saved_reg_p): Likewise.
10444         * config/riscv/riscv.c (riscv_save_reg_p): Likewise.
10445         (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise.
10446         * config/rl78/rl78.c (need_to_save): Likewise.
10447         * config/rs6000/rs6000-logue.c (save_reg_p): Likewise.
10448         (rs6000_stack_info, generate_set_vrsave): Likewise.
10449         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
10450         * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise.
10451         * config/rx/rx.c (rx_get_stack_layout): Likewise.
10452         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
10453         * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise.
10454         * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise.
10455         (save_local_or_in_reg_p): Likewise.
10456         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise.
10457         (xstormy16_epilogue_uses): Likewise.
10458         * config/tilegx/tilegx.c (need_to_save_reg): Likewise.
10459         * config/tilepro/tilepro.c (need_to_save_reg): Likewise.
10460         * config/v850/v850.c (compute_register_save_size): Likewise.
10461         * config/vax/vax.c (vax_expand_prologue): Likewise.
10462         * config/visium/visium.c (visium_save_reg_p): Likewise.
10463         * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise.
10464         * cselib.c (cselib_process_insn): Likewise.
10465         * df-scan.c (df_get_entry_block_def_set): Likewise.
10466         * function.c (aggregate_value_p): Likewise.
10467         * haifa-sched.c (alloc_global_sched_pressure_data): Likewise.
10468         * ira-lives.c (process_bb_node_lives): Likewise.
10469         * ira.c (do_reload): Likewise.
10470         * lra-lives.c (process_bb_lives): Likewise.
10471         * lra-remat.c (lra_remat): Likewise.
10472         * lra.c (lra): Likewise.
10473         * postreload.c (reload_combine_recognize_pattern): Likewise.
10474         (reload_cse_move2add): Likewise.
10475         * recog.c (peep2_find_free_register): Likewise.
10476         * regrename.c (check_new_reg_p): Likewise.
10477         * reload.c (find_equiv_reg): Likewise.
10478         * reload1.c (reload, find_reg): Likewise.
10479         * sel-sched.c (init_hard_regs_data): Likewise.
10481 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10483         * config/frv/frv.c (frv_ifcvt_modify_tests): Use
10484         regs_invalidated_by_call & ~fixed_reg_set instead of
10485         call_used_or_fixed_regs & ~fixed_reg_set.
10486         * config/sh/sh.c (output_stack_adjust): Likewise.
10488 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10490         * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete.
10491         (call_used_reg_set): Delete.
10492         (call_used_or_fixed_regs): New macro.
10493         * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization
10494         of call_used_reg_set.
10495         * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs
10496         instead of call_used_regs.
10497         (save_call_clobbered_regs): Likewise.
10498         * cfgcleanup.c (old_insns_match_p): Likewise.
10499         * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise.
10500         * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
10501         Likewise.
10502         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10503         * config/sh/sh.c (output_stack_adjust): Likewise.
10504         * final.c (collect_fn_hard_reg_usage): Likewise.
10505         * ira-build.c (ira_build): Likewise.
10506         * ira-color.c (calculate_saved_nregs): Likewise.
10507         (allocno_reload_assign, calculate_spill_cost): Likewise.
10508         * ira-conflicts.c (ira_build_conflicts): Likewise.
10509         * ira-costs.c (ira_tune_allocno_costs): Likewise.
10510         * ira-lives.c (process_bb_node_lives): Likewise.
10511         * ira.c (setup_reg_renumber): Likewise.
10512         * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise.
10513         * lra-constraints.c (need_for_call_save_p): Likewise.
10514         (need_for_split_p, inherit_in_ebb): Likewise.
10515         * lra-lives.c (process_bb_lives): Likewise.
10516         * lra-remat.c (call_used_input_regno_present_p): Likewise.
10517         * postreload.c (reload_combine): Likewise.
10518         * regrename.c (find_rename_reg): Likewise.
10519         * reload1.c (reload_as_needed): Likewise.
10520         * rtlanal.c (find_all_hard_reg_sets): Likewise.
10521         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10522         * shrink-wrap.c (requires_stack_frame_p): Likewise.
10524 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10526         * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete.
10527         (no_caller_save_reg_set): Delete.
10528         * caller-save.c (init_caller_save): Don't initialize it.
10529         * ira-conflicts.c (ira_build_conflicts): Calculate
10530         no_caller_save_reg_set locally from call_used_reg_set and savable_regs.
10532 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10534         * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete.
10535         (target_hard_regs::x_savable_regs): New field.
10536         (call_fixed_reg_set): Delete.
10537         (savable_regs): New macro,
10538         * reginfo.c (globalize_reg): Don't set call_fixed_reg_set.
10539         (init_reg_sets_1): Likewise.  Initialize savable_regs.
10540         * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE
10541         for all registers.  Set savable_regs instead of call_fixed_reg_set.
10542         (setup_save_areas, save_call_clobbered_regs): Replace uses of
10543         ~call_fixed_reg_set with ~fixed_reg_set & savable_regs.
10544         * config/sh/sh.c (output_stack_adjust): Likewise.
10546 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10548         * config/c6x/c6x-protos.h (c6x_set_return_address): Declare.
10549         * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to
10550         * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function.
10552 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
10554         * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx.
10555         * rtlanal.c (get_call_rtx_from): Likewise.
10556         * dwarf2out.c (dwarf2out_var_location): Pass the insn rather
10557         than the pattern to get_call_rtx_from.
10558         * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take
10559         an rtx_insn * instead of an rtx.
10560         * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise.
10562 2019-09-10  Martin Liska  <mliska@suse.cz>
10564         * common.opt: Use newly added WarnRemoved.
10565         * config/aarch64/aarch64.opt: Likewise.
10566         * config/arm/arm.opt: Likewise.
10567         * config/i386/i386.opt: Likewise.
10568         * config/ia64/ia64.opt: Likewise.
10569         * config/rs6000/rs6000.opt: Likewise.
10570         * doc/options.texi: Document WarnRemoved properly.
10571         * dwarf2out.c (gen_producer_string): Handle renamed
10572         OPT_SPECIAL_warn_removed.
10573         * lto-opts.c (lto_write_options): Likewise.
10574         * lto-wrapper.c (merge_and_complain): Likewise.
10575         * opts-common.c (decode_cmdline_option): Likewise.
10576         (prune_options): Likewise.
10577         (read_cmdline_option): Likewise.
10578         (control_warning_option): Likewise.
10579         * opts.c (print_filtered_help): Likewise.
10580         * optc-gen.awk: Parse for WarnRemoved and make usage
10581         of Deprecated an error.
10582         * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed.
10584 2019-09-10  Arnaud Charlet  <charlet@adacore.com>
10586         * doc/install.texi: Fix syntax for html generation.
10588 2019-09-10  Jakub Jelinek  <jakub@redhat.com>
10590         PR middle-end/91680
10591         * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from
10592         the shift type to type.
10594 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10596         * config/arm/arm.md (stack_protect_combined_set_insn): Handle
10597         FDPIC mode.
10598         (stack_protect_combined_test_insn): Likewise.
10600 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10601             Mickaël Guêné <mickael.guene@st.com>
10603         * config/arm/arm.c (arm_load_tp): Add FDPIC support.
10604         * config/arm/arm.md (FDPIC_REGNUM): New constant.
10605         (load_tp_soft_fdpic): New pattern.
10606         (load_tp_soft): Disable in FDPIC mode.
10608 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10609             Mickaël Guêné <mickael.guene@st.com>
10611         * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC,
10612         TLS_LDM32_FDPIC and TLS_IE32_FDPIC.
10613         (arm_call_tls_get_addr): Add FDPIC support.
10614         (legitimize_tls_address): Likewise.
10615         (arm_emit_tls_decoration): Likewise.
10617 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10618             Mickaël Guêné <mickael.guene@st.com>
10620         * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC
10621         support.
10622         (arm_trampoline_init): Likewise.
10623         (arm_trampoline_adjust_address): Likewise.
10624         * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise.
10626 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10627             Mickaël Guêné <mickael.guene@st.com>
10629         * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function.
10630         (legitimize_pic_address): Enforce binding rules on function
10631         pointers in FDPIC mode.
10632         (arm_assemble_integer): Likewise.
10634 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10635             Mickaël Guêné <mickael.guene@st.com>
10637         * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper.
10638         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
10639         FDPIC.
10641 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10642             Mickaël Guêné <mickael.guene@st.com>
10644         * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
10645         field.
10647 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10648             Mickaël Guêné <mickael.guene@st.com>
10650         * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro
10651         in FDPIC mode.
10652         * config/arm/arm-protos.h (arm_load_function_descriptor): Declare
10653         new function.
10654         * config/arm/arm.c (arm_option_override): Define pic register to
10655         FDPIC_REGNUM.
10656         (arm_function_ok_for_sibcall): Disable sibcall optimization if we
10657         have no decl or go through PLT.
10658         (calculate_pic_address_constant): New function.
10659         (legitimize_pic_address): Call calculate_pic_address_constant.
10660         (arm_load_pic_register): Handle TARGET_FDPIC.
10661         (arm_is_segment_info_known): New function.
10662         (arm_pic_static_addr): Add support for FDPIC.
10663         (arm_load_function_descriptor): New function.
10664         (arm_emit_call_insn): Add support for FDPIC.
10665         (arm_assemble_integer): Add support for FDPIC.
10666         * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED):
10667         Define. (FDPIC_REGNUM): New define.
10668         * config/arm/arm.md (call): Add support for FDPIC.
10669         (call_value): Likewise.
10670         (restore_pic_register_after_call): New pattern.
10671         (untyped_call): Disable if FDPIC.
10672         (untyped_return): Likewise.
10673         * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New.
10675 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10676             Mickaël Guêné <mickael.guene@st.com>
10678         * config.gcc: Handle arm*-*-uclinuxfdpiceabi.
10679         * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New.
10680         (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC.
10681         * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New.
10682         (CC1_SPEC): Use FDPIC_CC1_SPEC.
10683         (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed.
10684         * config/arm/uclinuxfdpiceabi.h: New file.
10686 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10688         * config.gcc: Handle *-*-uclinuxfdpiceabi.
10690 2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
10691             Mickaël Guêné  <mickael.guene@st.com>
10693         * config/arm/arm.opt: Add -mfdpic option.
10694         * doc/invoke.texi: Add documentation for -mfdpic.
10696 2019-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10698         * expmed.c (extract_bit_field): Update function comment
10699         regarding alt_rtl.
10700         * expr.c (expand_expr_real): Update function comment
10701         regarding alt_rtl.
10702         (expand_misaligned_mem_ref): New helper function.
10703         (expand_expr_real_2): Use expand_misaligned_mem_ref.
10704         Remove duplicate assignment to "base" at case MEM_REF.
10705         Remove a shadowed variable "unsignedp" at case VCE. 
10707 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10709         * regset.h (regs_invalidated_by_call_regset): Delete.
10710         (fixed_reg_set_regset): Likewise.
10711         * reginfo.c (regs_invalidated_by_call_regset): Likewise.
10712         (fixed_reg_set_regset, persistent_obstack): Likewise.
10713         (init_reg_sets_1, globalize_reg): Update accordingly.
10714         * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap
10715         instead of a bitmap.
10716         * df-core.c (df_print_regset, df_print_word_regset): Likewise.
10717         * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call
10718         instead of regs_invalidated_by_call_regset.
10719         (df_lr_confluence_n, df_md_confluence_n): Likewise.
10720         * df-scan.c (df_scan_start_dump): Likewise.
10721         * dse.c (copy_fixed_regs): Likewise.
10722         * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise.
10724 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10726         * array-traits.h: New file.
10727         * coretypes.h (array_traits, bitmap_view): New types.
10728         * bitmap.h: Include "array-traits.h"
10729         (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
10730         (base_bitmap_view, bitmap_view): New classes.
10731         * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap.
10732         * hard-reg-set.h: Include array-traits.h.
10733         (array_traits<HARD_REG_SET>): New struct.
10734         * regset.h (IOR_REG_SET_HRS): New macro.
10735         * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS
10736         rather than iterating over each hard register.
10737         * sched-deps.c (sched_analyze_insn): Likewise.
10738         * sel-sched-ir.c (setup_id_implicit_regs): Likewise.
10740 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10742         * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set
10743         instead of a HARD_REG_SET *.
10744         * ira-build.c (ior_hard_reg_conflicts): Likewise.
10745         (ira_build): Update call accordingly.
10746         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
10748 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10750         * hard-reg-set.h (HARD_REG_SET::operator==): New function.
10751         (HARD_REG_SET::operator!=): Likewise.
10752         (hard_reg_set_equal_p): Delete.
10753         * cfgcleanup.c (old_insns_match_p): Use == instead of
10754         hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p.
10755         * ira-color.c (allocno_hard_regs_hasher::equal): Likewise.
10756         (add_allocno_hard_regs_to_forest): Likewise.
10757         (setup_allocno_available_regs_num): Likewise.
10758         * ira.c (setup_pressure_classes): Likewise.
10759         (setup_allocno_and_important_classes): Likewise.
10760         (setup_reg_class_relations): Likewise.
10761         * lra-lives.c (process_bb_lives): Likewise.
10762         * reg-stack.c (change_stack, convert_regs_1): Likewise.
10764 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10766         * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete.
10767         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
10768         Use "|~" instead of IOR_COMPL_HARD_REG_SET.
10769         * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable):
10770         Likewise.
10771         * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise.
10772         * ira.c (setup_reg_renumber): Likewise.
10773         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10774         * regrename.c (regrename_find_superclass): Likewise.
10775         * reload1.c (find_reg): Likewise.
10777 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10779         * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete.
10780         * caller-save.c (setup_save_areas): Use "&~" instead of
10781         AND_COMPL_HARD_REG_SET.
10782         (save_call_clobbered_regs): Likewise.
10783         * config/epiphany/epiphany.c (epiphany_conditional_register_usage):
10784         Likewise.
10785         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10786         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10787         * config/i386/i386.c (ix86_conditional_register_usage): Likewise.
10788         * config/mips/mips.c (mips_class_max_nregs): Likewise.
10789         (mips_conditional_register_usage): Likewise.
10790         * config/sh/sh.c (output_stack_adjust): Likewise.
10791         * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise.
10792         (setup_profitable_hard_regs): Likewise.
10793         (get_conflict_and_start_profitable_regs): Likewise.
10794         * ira-conflicts.c (print_allocno_conflicts): Likewise.
10795         (ira_build_conflicts): Likewise.
10796         * ira-costs.c (restrict_cost_classes): Likewise.
10797         (setup_regno_cost_classes_by_aclass): Likewise.
10798         * ira-lives.c (process_bb_node_lives): Likewise.
10799         * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise.
10800         (setup_class_subset_and_memory_move_costs, setup_pressure_classes)
10801         (setup_allocno_and_important_classes, setup_class_translate_array)
10802         (setup_reg_class_relations, setup_prohibited_class_mode_regs):
10803         Likewise.
10804         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10805         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
10806         (process_alt_operands, inherit_in_ebb): Likewise.
10807         * lra-eliminations.c (update_reg_eliminate): Likewise.
10808         * lra-lives.c (process_bb_lives): Likewise.
10809         * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise.
10810         * resource.c (find_dead_or_set_registers): Likewise.
10811         (mark_target_live_regs): Likewise.
10812         * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise.
10813         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10814         (implicit_clobber_conflict_p): Likewise.
10815         * shrink-wrap.c (requires_stack_frame_p): Likewise.
10816         (try_shrink_wrapping): Likewise.
10818 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10820         * hard-reg-set.h (HARD_REG_SET::operator|): New function.
10821         (HARD_REG_SET::operator|=): Likewise.
10822         (IOR_HARD_REG_SET): Delete.
10823         * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of
10824         IOR_HARD_REG_SET.
10825         * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10826         * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise.
10827         * final.c (collect_fn_hard_reg_usage): Likewise.
10828         * hw-doloop.c (scan_loop, optimize_loop): Likewise.
10829         * ira-build.c (merge_hard_reg_conflicts): Likewise.
10830         (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info)
10831         (propagate_some_info_from_allocno): Likewise.
10832         (copy_info_to_removed_store_destinations): Likewise.
10833         * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg)
10834         (allocno_reload_assign, ira_reassign_pseudos): Likewise.
10835         (fast_allocation): Likewise.
10836         * ira-conflicts.c (ira_build_conflicts): Likewise.
10837         * ira-lives.c (make_object_dead, process_single_reg_class_operands)
10838         (process_bb_node_lives): Likewise.
10839         * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise.
10840         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10841         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10842         * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise.
10843         * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise.
10844         * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls)
10845         (process_bb_lives): Likewise.
10846         * lra-spills.c (assign_spill_hard_regs): Likewise.
10847         * postreload.c (reload_combine): Likewise.
10848         * reginfo.c (init_reg_sets_1): Likewise.
10849         * regrename.c (merge_overlapping_regs, find_rename_reg)
10850         (merge_chains): Likewise.
10851         * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg)
10852         (find_reload_regs, finish_spills, choose_reload_regs_init)
10853         (emit_reload_insns): Likewise.
10854         * reorg.c (redundant_insn): Likewise.
10855         * resource.c (find_dead_or_set_registers, mark_set_resources)
10856         (mark_target_live_regs): Likewise.
10857         * rtlanal.c (find_all_hard_reg_sets): Likewise.
10858         * sched-deps.c (sched_analyze_insn): Likewise.
10859         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10860         (find_best_reg_for_expr): Likewise.
10861         * shrink-wrap.c (try_shrink_wrapping): Likewise.
10863 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10865         * hard-reg-set.h (HARD_REG_SET::operator&): New function.
10866         (HARD_REG_SET::operator&): Likewise.
10867         (AND_HARD_REG_SET): Delete.
10868         * caller-save.c (setup_save_areas): Use "&" instead of
10869         AND_HARD_REG_SET.
10870         (save_call_clobbered_regs): Likewise.
10871         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10872         * config/m32c/m32c.c (reduce_class): Likewise.
10873         * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10874         * final.c (get_call_reg_set_usage): Likewise.
10875         * ira-color.c (add_allocno_hard_regs_to_forest): Likewise.
10876         (setup_left_conflict_sizes_p): Likewise.
10877         * ira-conflicts.c (print_allocno_conflicts): Likewise.
10878         (ira_build_conflicts): Likewise.
10879         * ira-costs.c (restrict_cost_classes): Likewise.
10880         * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array)
10881         (setup_reg_class_relations): Likewise.
10882         * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise.
10883         * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise.
10884         * resource.c (find_dead_or_set_registers): Likewise.
10885         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10887 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10889         * hard-reg-set.h (HARD_REG_SET::operator~): New function.
10890         (COMPL_HARD_REG_SET): Delete.
10891         * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead
10892         of COMPL_HARD_REG_SET.
10893         (try_rename_operands): Likewise.
10894         * config/sh/sh.c (push_regs): Likewise.
10895         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10896         * lra-constraints.c (contains_reg_p): Likewise.
10897         * reload1.c (finish_spills, choose_reload_regs_init): Likewise.
10899 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10901         * hard-reg-set.h (COPY_HARD_REG_SET): Delete.
10902         * caller-save.c (save_call_clobbered_regs): Use assignment instead
10903         of COPY_HARD_REG_SET.
10904         * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise.
10905         (epiphany_conditional_register_usage): Likewise.
10906         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
10907         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10908         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10909         * config/m32c/m32c.c (m32c_register_move_cost): Likewise.
10910         * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise.
10911         * config/mips/mips.c (mips_class_max_nregs): Likewise.
10912         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise.
10913         * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise.
10914         * config/sh/sh.c (output_stack_adjust): Likewise.
10915         * final.c (collect_fn_hard_reg_usage): Likewise.
10916         (get_call_reg_set_usage): Likewise.
10917         * ira-build.c (ira_create_object, remove_low_level_allocnos)
10918         (ira_flattening): Likewise.
10919         * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest)
10920         (setup_left_conflict_sizes_p, setup_profitable_hard_regs)
10921         (get_conflict_and_start_profitable_regs, allocno_reload_assign)
10922         (ira_reassign_pseudos): Likewise.
10923         * ira-conflicts.c (print_allocno_conflicts): Likewise.
10924         (ira_build_conflicts): Likewise.
10925         * ira-costs.c (restrict_cost_classes): Likewise.
10926         (setup_regno_cost_classes_by_aclass): Likewise.
10927         * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise.
10928         (setup_reg_subclasses, setup_class_subset_and_memory_move_costs)
10929         (setup_stack_reg_pressure_class, setup_pressure_classes)
10930         (setup_allocno_and_important_classes, setup_class_translate_array)
10931         (setup_reg_class_relations, setup_prohibited_class_mode_regs)
10932         (ira_setup_eliminable_regset): Likewise.
10933         * lra-assigns.c (find_hard_regno_for_1): Likewise.
10934         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
10935         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
10936         (process_alt_operands, inherit_in_ebb): Likewise.
10937         * lra-lives.c (process_bb_lives): Likewise.
10938         * lra-spills.c (assign_spill_hard_regs): Likewise.
10939         * lra.c (lra): Likewise.
10940         * mode-switching.c (new_seginfo): Likewise.
10941         * postreload.c (reload_combine): Likewise.
10942         * reg-stack.c (straighten_stack): Likewise.
10943         * reginfo.c (save_register_info, restore_register_info): Likewise.
10944         (init_reg_sets_1, record_subregs_of_mode): Likewise
10945         * regrename.c (create_new_chain, rename_chains): Likewise.
10946         * reload1.c (order_regs_for_reload, find_reg): Likewise.
10947         (find_reload_regs): Likewise.
10948         * resource.c (find_dead_or_set_registers): Likewise.
10949         (mark_target_live_regs): Likewise.
10950         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
10952 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
10954         * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean.
10955         (note_pattern_stores): Declare.
10956         (note_stores): Take an rtx_insn *.
10957         * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores.
10958         (find_all_hard_reg_sets): Pass the insn rather than its pattern to
10959         note_stores.  Remove explicit handling of CALL_INSN_FUNCTION_USAGE.
10960         (note_stores): Take an rtx_insn * as argument and process
10961         CALL_INSN_FUNCTION_USAGE.  Rename old function to...
10962         (note_pattern_stores): ...this.
10963         (find_first_parameter_load): Pass the insn rather than
10964         its pattern to note_stores.
10965         * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise.
10966         * caller-save.c (setup_save_areas, save_call_clobbered_regs)
10967         (insert_one_insn): Likewise.
10968         * combine.c (combine_instructions): Likewise.
10969         (likely_spilled_retval_p): Likewise.
10970         (try_combine): Use note_pattern_stores instead of note_stores.
10971         (record_dead_and_set_regs): Pass the insn rather than its pattern
10972         to note_stores.
10973         (reg_dead_at_p): Likewise.
10974         * config/bfin/bfin.c (workaround_speculation): Likewise.
10975         * config/c6x/c6x.c (maybe_clobber_cond): Likewise.  Take an rtx_insn *
10976         rather than an rtx.
10977         * config/frv/frv.c (frv_registers_update): Use note_pattern_stores
10978         instead of note_stores.
10979         (frv_optimize_membar_local): Pass the insn rather than its pattern
10980         to note_stores.
10981         * config/gcn/gcn.c (gcn_md_reorg): Likewise.
10982         * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise.
10983         * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise.
10984         (r10k_needs_protection_p, mips_sim_issue_insn): Likewise.
10985         (mips_reorg_process_insns): Likewise.
10986         * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
10987         * config/sh/sh.c (flow_dependent_p): Likewise.  Take rtx_insn *s
10988         rather than rtxes.
10989         * cse.c (delete_trivially_dead_insns): Pass the insn rather than
10990         its pattern to note_stores.
10991         * cselib.c (cselib_record_sets): Use note_pattern_stores instead
10992         of note_stores.
10993         * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass
10994         the insn to note_stores.
10995         (prescan_insns_for_dce): Update call accordingly.
10996         * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern
10997         to note_stores.
10998         * df-problems.c (can_move_insns_across): Likewise.
10999         * dse.c (emit_inc_dec_insn_before, replace_read): Likewise.
11000         * function.c (assign_parm_setup_reg): Likewise.
11001         * gcse-common.c (record_last_mem_set_info_common): Likewise.
11002         * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise.
11003         (single_set_gcse): Likewise.
11004         * ira.c (validate_equiv_mem): Likewise.
11005         (update_equiv_regs): Use note_pattern_stores rather than note_stores
11006         for no_equiv.
11007         * loop-doloop.c (doloop_optimize): Pass the insn rather than its
11008         pattern to note_stores.
11009         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
11010         * loop-iv.c (simplify_using_initial_values): Likewise.
11011         * mode-switching.c (optimize_mode_switching): Likewise.
11012         * optabs.c (emit_libcall_block_1): Likewise.
11013         (expand_atomic_compare_and_swap): Likewise.
11014         * postreload-gcse.c (load_killed_in_block_p): Likewise.
11015         (record_opr_changes): Likewise.  Remove explicit handling of
11016         CALL_INSN_FUNCTION_USAGE.
11017         * postreload.c (reload_combine, reload_cse_move2add): Likewise.
11018         * regcprop.c (kill_clobbered_values): Likewise.
11019         (copyprop_hardreg_forward_1): Pass the insn rather than its pattern
11020         to note_stores.
11021         * regrename.c (build_def_use): Likewise.
11022         * reload1.c (reload):  Use note_pattern_stores instead of note_stores
11023         for mark_not_eliminable.
11024         (reload_as_needed): Pass the insn rather than its pattern
11025         to note_stores.
11026         (emit_output_reload_insns): Likewise.
11027         * resource.c (mark_target_live_regs): Likewise.
11028         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
11029         * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores
11030         instead of note_stores.
11031         * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than
11032         its pattern to note_stores.
11033         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise.
11034         * var-tracking.c (adjust_insn, add_with_sets): Likewise.
11036 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
11038         * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather
11039         than a #define.  Use a structure rather than an array as the
11040         fallback definition.  Remove special cases for low array sizes.
11041         (const_hard_reg_set): New typedef.
11042         (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET".
11043         (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise.
11044         (hard_reg_set_empty_p): Likewise.
11045         (SET_HARD_REG_BIT): Use a function rather than a macro to
11046         handle the case in which HARD_REG_SET is a structure.
11047         (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET)
11048         (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
11049         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
11050         (IOR_COMPL_HARD_REG_SET): Likewise.
11051         (hard_reg_set_iterator::pset): Constify the pointer target.
11052         (hard_reg_set_iter_init): Take a const_hard_reg_set instead
11053         of a "const HARD_REG_SET".  Update the handling of non-integer
11054         HARD_REG_SETs.
11055         * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET.
11056         * reload.h: Likewise.
11057         * rtl.h (choose_hard_reg_mode): Remove unnecessary line break.
11058         * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead
11059         of a "const HARD_REG_SET".
11060         (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise.
11061         (range_in_hard_reg_set_p): Likewise.
11062         * ira-costs.c (restrict_cost_classes): Likewise.
11063         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
11064         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
11065         Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode.
11066         * config/ia64/ia64.c (rws_insn): In the CHECKING_P version,
11067         use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE.
11068         (rws_insn_set, rws_insn_test): In the CHECKING_P version,
11069         take an unsigned int and open-code the HARD_REG_SET operations.
11071 2019-09-09  Richard Sandiford  <richard.sandiford@arm.com>
11073         * Makefile.in (OBJS): Remove bt-load.o.
11074         * doc/invoke.texi (fbranch-target-load-optimize): Delete.
11075         (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
11076         * common.opt (fbranch-target-load-optimize): Mark as Ignore and
11077         document that the option no longer does anything.
11078         (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise.
11079         * target.def (branch_target_register_class): Delete.
11080         (branch_target_register_callee_saved): Likewise.
11081         * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
11082         (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
11083         * doc/tm.texi: Regenerate.
11084         * tree-pass.h (make_pass_branch_target_load_optimize1): Delete.
11085         (make_pass_branch_target_load_optimize2): Likewise.
11086         * passes.def (pass_branch_target_load_optimize1): Likewise.
11087         (pass_branch_target_load_optimize2): Likewise.
11088         * targhooks.h (default_branch_target_register_class): Likewise.
11089         * targhooks.c (default_branch_target_register_class): Likewise.
11090         * opt-suggestions.c (test_completion_valid_options): Remove
11091         -fbtr-bb-exclusive from the list of test options.
11092         * bt-load.c: Remove.
11094 2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
11096         * match.pd: Add flag_unsafe_math_optimizations check
11097         before deciding on the widest type in a binary math operation.
11099 2019-09-09  Martin Liska  <mliska@suse.cz>
11101         * config/i386/i386.opt: Update comment of removed
11102         options that are preserved only for backward
11103         compatibility.
11105 2019-09-09  Jakub Jelinek  <jakub@redhat.com>
11107         PR target/87853
11108         * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
11109         instead of __v16qs.
11111         PR target/91704
11112         * config/i386/avxintrin.h (__v32qs): New typedef.
11113         * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
11114         instead of __v32qi.
11116 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
11118         * doc/invoke.texi (Option Summary): Cover eBPF.
11119         (eBPF Options): New section.
11120         * doc/extend.texi (BPF Built-in Functions): Likewise.
11121         (BPF Kernel Helpers): Likewise.
11123 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
11125         * config.gcc: Support for bpf-*-* targets.
11126         * common/config/bpf/bpf-common.c: New file.
11127         * config/bpf/t-bpf: Likewise.
11128         * config/bpf/predicates.md: Likewise.
11129         * config/bpf/constraints.md: Likewise.
11130         * config/bpf/bpf.opt: Likewise.
11131         * config/bpf/bpf.md: Likewise.
11132         * config/bpf/bpf.h: Likewise.
11133         * config/bpf/bpf.c: Likewise.
11134         * config/bpf/bpf-protos.h: Likewise.
11135         * config/bpf/bpf-opts.h: Likewise.
11136         * config/bpf/bpf-helpers.h: Likewise.
11137         * config/bpf/bpf-helpers.def: Likewise.
11139 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
11141         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11142         indirect_calls.
11144 2019-09-09  Jose E. Marchesi  <jose.marchesi@oracle.com>
11146         * opt-functions.awk (integer_range_info): Make sure values are in
11147         numeric context before operating with them.
11149 2019-09-08  Segher Boessenkool  <segher@kernel.crashing.org>
11151         * genemit.c (gen_split): Print the filename and line number where the
11152         splitter (or peephole2) was defined, to the dump file.
11154 2019-09-07  Jakub Jelinek  <jakub@redhat.com>
11156         PR tree-optimization/91665
11157         * tree-vect-loop.c (vectorizable_reduction): Punt if base has type
11158         incompatible with the type of PHI result.
11160 2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11162         PR target/91684
11163         * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
11164         gen_unaligned_storedi for 4-byte aligned addresses.
11166 2019-09-06  Jim Wilson  <jimw@sifive.com>
11168         * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
11169         change.
11171 2019-09-06  Segher Boessenkool  <segher@kernel.crashing.org>
11173         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.
11175 2019-09-06  Segher Boessenkool  <segher@kernel.crashing.org>
11177         * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
11178         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.
11180 2019-09-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11182         PR target/91654
11183         * config/i386/x86-tune-costs.h (skylake_cost): Raise the
11184         cost of SSE->integer and integer->SSE moves from 2 to 6.
11185         (core_cost): Ditto.
11187 2019-09-06  Jakub Jelinek  <jakub@redhat.com>
11189         * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
11190         before testing TYPE_TRANSPARENT_AGGR.
11191         * calls.c (initialize_argument_information, load_register_parameters):
11192         Likewise.
11194 2019-09-06  Richard Earnshaw  <rearnsha@arm.com>
11196         * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
11197         high regs.
11198         (cmp_ior): Likewise.
11200 2019-09-06  Martin Liska  <mliska@suse.cz>
11202         * doc/match-and-simplify.texi: Separate tuples with ;.
11204 2019-09-06  Martin Liska  <mliska@suse.cz>
11206         PR c++/91125
11207         * Makefile.in: Remove tlink.o.
11208         * collect2.c (do_link): New function isolated
11209         from do_tlink.
11210         (main): Use.
11211         * collect2.h (do_tlink): Remove declaration of do_tlink.
11212         * doc/extend.texi: Remove documentation of -frepo.
11213         * doc/invoke.texi: Likewise.
11214         * doc/sourcebuild.texi: Remove cleanup-repo-files.
11215         * tlink.c: Remove.
11217 2019-09-05  Jakub Jelinek  <jakub@redhat.com>
11218             Jim Wilson  <jimw@sifive.com>
11220         PR target/91635
11221         * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
11222         extend<SHORT:mode><SUPERQI:mode>2): Don't split if
11223         paradoxical_subreg_p (operands[0]).
11224         (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
11225         use as intermediate value.
11227 2019-09-05  Andrew Stubbs  <ams@codesourcery.com>
11229         * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
11230         (sync_compare_and_swap<mode>_insn): Likewise.
11232 2019-09-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11234         PR middle-end/91615
11235         * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
11236         without movmisalign optab.
11238 2019-09-05  Jakub Jelinek  <jakub@redhat.com>
11240         PR middle-end/91001
11241         PR middle-end/91105
11242         PR middle-end/91106
11243         * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
11244         types, use type of their first field instead of type of
11245         args[i].tree_value.
11247 2019-09-05  Richard Biener  <rguenther@suse.de>
11249         PR rtl-optimization/91656
11250         * postreload-gcse.c (record_last_mem_set_info): Revert addition
11251         of early out.
11253 2019-09-05  Richard Biener  <rguenther@suse.de>
11255         PR middle-end/90501
11256         * tree-inline.c (declare_return_variable): Mark the return
11257         slot as addressable after building an address of it.
11259 2019-09-05  Arnaud Charlet  <charlet@adacore.com>
11261         * doc/install.texi: Update and clarify requirements to build GNAT.
11263 2019-09-05  Richard Sandiford  <richard.sandiford@arm.com>
11265         PR middle-end/91577
11266         * cfgexpand.c (discover_nonconstant_array_refs): Force the source
11267         of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
11268         call to be in memory.
11269         (pass_expand::execute): Call discover_nonconstant_array_refs before
11270         setting currently_expanding_to_rtl.
11272 2019-09-04  Caroline Tice  <cmtice@google.com>
11274         * opts.c (finish_options): Disallow -fvtable-verify and -flto to be
11275         specified together.
11277 2019-09-04  Marek Polacek  <polacek@redhat.com>
11279         * doc/invoke.texi: Remove -fdeduce-init-list documentation.
11281 2019-09-04  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11283         PR target/32413
11284         * config/i386/i386.c (inline_secondary_memory_needed): Return true
11285         for QI and HImode moves between SSE and general registers.
11287 2019-09-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11289         PR c/78736
11290         * doc/invoke.texi: Document -Wenum-conversion.
11292 2019-09-04  Richard Biener  <rguenther@suse.de>
11294         PR rtl-optimization/36262
11295         * postreload-gcse.c: Include intl.h and gcse.h.
11296         (insert_expr_in_table): Insert at the head of cur_expr->avail_occr
11297         to avoid linear list walk.
11298         (record_last_mem_set_info): Gate off if not computing transparentness.
11299         (get_bb_avail_insn): If transparentness isn't computed give up
11300         early.
11301         (gcse_after_reload_main): Skip compute_transp and extended PRE
11302         if gcse_or_cprop_is_too_expensive says so.
11304 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
11306         * config/msp430/msp430.c (msp430_init_sections): Remove handling of the
11307         noinit section.
11308         (msp430_select_section): Handle decls with the "noinit" attribute with
11309         default_elf_select_section.
11310         Handle SECCAT_RODATA_MERGE_* section types with
11311         default_elf_select_section.
11312         Add comments about handling of unsupported section types.
11313         (msp430_section_type_flags): Remove handling of the noinit section.
11315 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
11317         * config/msp430/msp430.c (msp430_attr): Remove warnings about
11318         conflicting msp430-specific attributes.
11319         (msp430_section_attr): Likewise.
11320         Add warnings about conflicts with generic "noinit" and "section"
11321         attributes.
11322         Fix grammar in -mlarge error message.
11323         (msp430_data_attr): Rename to msp430_persist_attr.
11324         Add warnings about conflicts with generic "noinit" and "section"
11325         attributes.
11326         Add warning for when variable is not initialized.
11327         Chain conditionals which prevent the attribute being added.
11328         (ATTR_EXCL): New helper.
11329         (attr_reent_exclusions): New exclusion table.
11330         (attr_naked_exclusions): Likewise.
11331         (attr_crit_exclusions): Likewise.
11332         (attr_lower_exclusions): Likewise.
11333         (attr_upper_exclusions): Likewise.
11334         (attr_either_exclusions): Likewise.
11335         (attr_persist_exclusions): Likewise.
11336         (msp430_attribute_table): Update with exclusion rules.
11337         (msp430_output_aligned_decl_common): Don't output common symbol if decl
11338         has a section.
11340 2019-09-03  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
11342         * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define.
11343         (msp430_handle_generic_attribute): New function.
11344         * doc/tm.texi: Regenerate.
11345         * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE.
11346         * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
11347         * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New.
11348         * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE.
11350 2019-09-03  Kamlesh Kumar  <kamleshbhalui@gmail.com>
11352         PR tree-optimization/91504
11353         * match.pd: Add ((~a & b) ^a) --> (a | b).
11355 2019-09-03  Jakub Jelinek  <jakub@redhat.com>
11357         PR target/91604
11358         * config/i386/i386-expand.c (split_double_mode): If there is more than
11359         one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from
11360         already split matching MEM operand instead of calling adjust_address
11361         again.
11363 2019-09-03  Ulrich Weigand  <uweigand@de.ibm.com>
11365         * config.gcc: Obsolete spu target.  Remove references to spu.
11366         * configure.ac: Remove references to spu.
11367         * configure: Regenerate.
11368         * config/spu/: Remove directory.
11369         * common/config/spu/: Remove directory.
11371         * doc/extend.texi: Remove references to spu.
11372         * doc/invoke.texi: Likewise.
11373         * doc/md.texi: Likewise.
11374         * doc/sourcebuild.texi: Likewise.
11376 2019-09-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11378         PR middle-end/91603
11379         PR middle-end/91612
11380         PR middle-end/91613
11381         * expr.c (expand_expr_real_1): Handle unaligned decl_rtl
11382         and SSA_NAME referring to CONSTANT_P correctly.
11384 2019-09-03  Richard Biener  <rguenther@suse.de>
11386         * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove.
11387         (vn_nary_op_insert): Likewise.
11388         * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove.
11389         (vn_nary_op_lookup): Likewise.
11390         (vn_nary_op_insert): Likewise.
11392 2019-09-03  Ilya Leoshkevich  <iii@linux.ibm.com>
11394         * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
11395         (*op0, 1) instead of XEXP (*op1, 0).
11397 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11399         * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define.
11400         (aarch64_fjcvtzs): New define_insn.
11401         * config/aarch64/aarch64.h (TARGET_JSCVT): Define.
11402         * config/aarch64/aarch64-builtins.c (aarch64_builtins):
11403         Add AARCH64_JSCVT.
11404         (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs.
11405         (aarch64_expand_builtin): Handle AARCH64_JSCVT.
11406         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
11407         __ARM_FEATURE_JCVT where appropriate.
11408         * config/aarch64/arm_acle.h (__jcvt): Define.
11410 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11412         * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z,
11413         UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X.
11414         (aarch64_<frintnzs_op><mode>): New define_insn.
11415         * config/aarch64/aarch64.h (TARGET_FRINT): Define.
11416         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
11417         __ARM_FEATURE_FRINT when appropriate.
11418         * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z,
11419         frint32x, frint64z, frint64x.
11420         * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf,
11421         __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define.
11422         * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64,
11423         vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64,
11424         vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32,
11425         vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define.
11426         * config/aarch64/iterators.md (VSFDF): Define.
11427         (FRINTNZX): Likewise.
11428         (frintnzs_op): Likewise.
11430 2019-09-03  Dennis Zhang  <dennis.zhang@arm.com>
11432         * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries
11433         for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and
11434         Cortex-A34.
11435         * config/aarch64/aarch64-tune.md: Regenerated.
11436         * doc/invoke.texi: Document the new processors.
11438 2019-09-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11440         * config/aarch64/aarch64-option-extensions.def (sb): Add feature
11441         string.
11442         (ssbs): Likewise.
11443         (sve2): Likewise.
11444         (sve2-sm4): Likewise.
11445         (sveaes): Likewise.
11446         (svesha3): Likewise.
11447         (svebitperm): Likewise.
11449 2019-09-03  Jakub Jelinek  <jakub@redhat.com>
11450             Richard Biener  <rguenther@suse.de>
11452         PR tree-optimization/91597
11453         * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
11454         BIT_AND_EXPR optimization for pointers, even if both operand
11455         ranges don't include NULL, the result can be NULL.
11457 2019-09-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11459         PR middle-end/91605
11460         * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
11461         (non_mem_decl_p): ...this.
11462         (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF.
11463         (expand_assignment): Call mem_ref_referes_to_non_mem_p
11464         unconditionally as before.
11466 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
11468         PR target/91323
11469         * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
11470         * rtl.def (LTGT): Likewise.  Add note about floating-point exceptions.
11471         * tree.def (LTGT_EXPR): Likewise.
11472         * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.
11474 2019-09-02  Jakub Jelinek  <jakub@redhat.com>
11476         PR go/91617
11477         * fold-const.c (range_check_type): For enumeral and boolean
11478         type, pass 1 to type_for_size langhook instead of
11479         TYPE_UNSIGNED (etype).  Return unsigned_type_for result whenever
11480         etype isn't TYPE_UNSIGNED INTEGER_TYPE.
11481         (build_range_check): Don't call unsigned_type_for for pointer types.
11482         * match.pd (X / C1 op C2): Don't call unsigned_type_for on
11483         range_check_type result.
11485 2019-09-02  Eric Botcazou  <ebotcazou@adacore.com>
11487         * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function.
11488         (replace_ref): Do not replace a chain of only two candidates which are
11489         valid memory references.
11491 2019-09-02  Martin Liska  <mliska@suse.cz>
11493         * tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
11494         Bail out when we'll end up with the same number of clusters as
11495         at the beginning.
11496         (bit_test_cluster::find_bit_tests): Likewise for bit tests.
11497         (jump_table_cluster::can_be_handled): Remove the guard
11498         as it's already handled in ::is_enabled.  Allocate output
11499         after early bail out.
11501 2019-09-02  Martin Liska  <mliska@suse.cz>
11503         PR gcov-profile/91601
11504         * gcov.c (path_contains_zero_cycle_arc): Rename to ...
11505         (path_contains_zero_or_negative_cycle_arc): ... this and handle
11506         also negative edges.
11507         (circuit): Handle also negative edges as they can happen
11508         in some situations.
11510 2019-09-01  Eric Botcazou  <ebotcazou@adacore.com>
11512         PR target/91472
11513         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
11514         during LRA/reload in PIC mode if the PIC register hasn't been used yet.
11515         (sparc_pic_register_p): Test reload_in_progress for consistency's sake.
11517 2019-09-01  Jakub Jelinek  <jakub@redhat.com>
11519         PR middle-end/91623
11520         * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
11521         EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
11522         zeros or negative elements and use NE_EXPR instead of LT_EXPR against
11523         zero vector.
11525         PR lto/91572
11526         * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
11527         GIMPLE_ASM TREE_LIST operands.
11529 2019-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
11531         * doc/generic.texi (Unary and Binary Expressions): Mark up
11532         an instance of TYPE_MIN.
11534 2019-08-31  Stafford Horne  <shorne@gmail.com>
11536         * config/or1k/constraints.md (t): New constraint.
11537         * config/or1k/or1k.h (GOT_REGS): New register class.
11538         * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint.
11540 2019-08-30  Jim Wilson  <jimw@sifive.com>
11542         * config/riscv/riscv.c (riscv_option_override): If -msave-restore
11543         and -fpic and -mplt then disable -msave-restore and warn.
11545 2019-08-30  Martin Sebor  <msebor@redhat.com>
11547         PR middle-end/91599
11548         * tree-ssa-strlen.c (handle_store): Use a fallback location if
11549         the statement doesn't have one.
11550         * gimple-pretty-print.c (percent_G_format): Same.
11552         PR middle-end/91584
11553         * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds
11554         before using them to validate MEM_REF offset.
11556 2019-08-30  Marek Polacek  <polacek@redhat.com>
11558         * doc/invoke.texi (-Wvolatile): Use @code for volatile.
11560 2019-08-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11562         * config/arm/arm.md (unaligned_loaddi,
11563         unaligned_storedi): New unspec insn patterns.
11564         * config/arm/neon.md (unaligned_storev8qi): Likewise.
11565         * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi
11566         and unaligned_storedi for 4-byte aligned memory.
11567         (arm_block_set_aligned_vect): Use unaligned_storev8qi for
11568         4-byte aligned memory.
11570 2019-08-30  Martin Jambor  <mjambor@suse.cz>
11572         tree-optimization/91579
11573         * tree-tailcall.c (tailr_arg_needs_copy): New variable.
11574         (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as
11575         appropriate.
11576         (arg_needs_copy_p): Removed.
11577         (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling
11578         arg_needs_copy_p.
11579         (tree_optimize_tail_calls_1): Likewise.  Free tailr_arg_needs_copy.
11581 2019-08-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11583         * config/i386/i386-features.c
11584         (general_scalar_chain::compute_convert_gain):
11585         Correct cost for double-word shifts.
11586         (general_scalar_to_vector_candidate_p): Reject count operands
11587         greater or equal to mode bitsize.
11589 2019-08-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11591         * config/i386/i386.c (inline_secondary_memory_needed): Return true
11592         for moves between SSE and non-general registers and between
11593         mask and non-general registers.
11594         (ix86_register_move_cost): Remove stalled comment.
11596 2019-08-29  Richard Biener  <rguenther@suse.de>
11598         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
11599         Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS.
11601 2019-08-29  Richard Biener  <rguenther@suse.de>
11603         PR bootstrap/91580
11604         * config/i386/i386-features.c (general_scalar_chain::convert_insn):
11605         Do not emit scalar copies for debug-insns, instead replace
11606         their uses with the reg copy used in the chain or reset them
11607         if there is a reaching definition outside of the chain as well.
11609 2019-08-29  Jakub Jelinek  <jakub@redhat.com>
11611         PR target/91560
11612         * config/i386/i386-expand.c (expand_vec_perm_movs,
11613         expand_vec_perm_blend, expand_vec_perm_vpermil,
11614         expand_vec_perm_pshufb, expand_vec_perm_1,
11615         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
11616         expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1,
11617         expand_vec_perm_vperm2f128, expand_vec_perm_interleave3,
11618         expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf,
11619         expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function
11620         comments - replace ix86_expand_vec_perm_builtin_1 with
11621         ix86_expand_vec_perm_const_1.
11622         (expand_vec_perm2_vperm2f128_vblend): New function.
11623         (ix86_expand_vec_perm_const_1): New forward declaration.  Call
11624         expand_vec_perm2_vperm2f128_vblend as last resort.
11625         (canonicalize_perm): Formatting fix.
11627         PR tree-optimization/91351
11628         * tree-cfg.c (generate_range_test): Use range_check_type instead of
11629         unsigned_type_for.
11630         * tree-cfgcleanup.c (convert_single_case_switch): Punt if
11631         range_check_type returns NULL.
11632         * tree-switch-conversion.c (switch_conversion::build_one_array):
11633         Use range_check_type instead of unsigned_type_for, don't perform
11634         linear opt if it returns NULL.
11635         (bit_test_cluster::find_bit_tests): Formatting fix.
11636         (bit_test_cluster::emit): Use range_check_type instead of
11637         unsigned_type_for.
11638         (switch_decision_tree::try_switch_expansion): Punt if range_check_type
11639         returns NULL.
11641 2019-08-29  Richard Biener  <rguenther@suse.de>
11643         PR tree-optimization/91568
11644         * tree-vectorizer.h (_slp_tree::max_nunits): Add.
11645         (vect_update_max_nunits): Add overload for poly_uint64.
11646         * tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
11647         (vect_build_slp_tree): Record max_nunits into the subtree
11648         and merge it upwards.
11649         (vect_print_slp_tree): Print max_nunits.
11651 2019-08-28  Marek Polacek  <polacek@redhat.com>
11653         Implement P1152R4: Deprecating some uses of volatile.
11654         PR c++/91361
11655         * doc/invoke.texi: Document -Wvolatile.
11657 2019-08-28  Marek Polacek  <polacek@redhat.com>
11659         PR c++/91360 - Implement C++20 P1143R2: constinit.
11660         * doc/invoke.texi: Document -Wc++20-compat.
11662 2019-08-28  Martin Sebor  <msebor@redhat.com>
11664         PR tree-optimization/91457
11665         * builtins.c (component_size): New function.
11666         (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
11667         * builtins.h (compute_objsize): Add argument.
11668         * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
11669         * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
11670         (vrp_prop::check_mem_ref): Same.
11671         (vrp_prop::search_for_addr_array): Set no-warning bit.
11672         (check_array_bounds): Same.
11674 2019-08-28  Martin Sebor  <msebor@redhat.com>
11676         PR driver/80545
11677         * opts-common.c (option_enabled): Correct checking for language
11678         options.
11680 2019-08-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11682         * config/i386/i386.c (ix86_register_move_cost): Do not
11683         limit the cost of moves to/from XMM register to minimum 8.
11685 2019-08-28  Martin Jambor  <mjambor@suse.cz>
11687         PR ipa/91468
11688         * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a
11689         checking assert a normal assert to test it really is redundant.
11690         * ipa-prop.c (compute_complex_assign_jump_func): Removed
11691         redundant test.
11692         (update_jump_functions_after_inlining): Removed combining unary
11693         arithmetic operations with an ancestor jump function.
11694         (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs
11695         instead of t.
11697 2019-08-28  Richard Biener  <rguenther@suse.de>
11699         * config/i386/i386-features.c (convert_scalars_to_vector): Do not
11700         add the MD problem.
11702 2019-08-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11703             Richard Biener  <rguenther@suse.de>
11705         * expr.c (expand_assignment): Handle misaligned DECLs.
11706         (expand_expr_real_1): Handle FUNCTION_DECL as unaligned.
11707         * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab
11708         too.
11709         (assign_parm_setup_stack): Allocate properly aligned stack slots.
11710         * varasm.c (build_constant_desc): Align constants of misaligned types.
11711         * config/arm/predicates.md (aligned_operand): New predicate.
11712         * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use
11713         aligned_operand to check restrictions on memory addresses.
11714         * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise.
11715         * config/arm/vec-common.md (mov<VALL>): Likewise.
11717 2019-08-28  Jakub Jelinek  <jakub@redhat.com>
11719         PR libgomp/91530
11720         * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use
11721         V_128 iterator instead of VI_128.
11723 2019-08-28  Martin Liska  <mliska@suse.cz>
11725         PR tree-optimization/90970
11726         * builtins.c (check_access): Remove assignment to maxread
11727         as it hasn't been used since when it was introduced in r255755.
11729 2019-08-27  Martin Sebor  <msebor@redhat.com>
11731         PR tree-optimization/91567
11732         * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths
11733         of unknown strings.
11734         * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound
11735         to PTRDIFF_MAX - 2.
11737 2019-08-27  Jeff Law  <law@redhat.com>
11739         * tree-ssa-strlen.c (printf_strlen_execute): Initialize
11740         the loop optimizer and SCEV before sizing ssa_ver_to_stridx.
11742 2019-08-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11744         PR target/91528
11745         * config/i386/i386-features.c (convert_scalars_to_vector):
11746         Update crtl->stack_realign_needed, crtl->stack_realign_tried and
11747         crtl->stack_realign_processed.  Update crtl->drap_reg by calling
11748         targetm.calls.get_drap_rtx.  If drap_rtx is non-null then
11749         Update crtl->args.internal_arg_pointer and call fixup_tail_calls.
11751 2019-08-27  Richard Biener  <rguenther@suse.de>
11753         * config/i386/i386-features.h
11754         (general_scalar_chain::~general_scalar_chain): Add.
11755         (general_scalar_chain::insns_conv): New bitmap.
11756         (general_scalar_chain::n_sse_to_integer): New.
11757         (general_scalar_chain::n_integer_to_sse): Likewise.
11758         (general_scalar_chain::make_vector_copies): Adjust signature.
11759         * config/i386/i386-features.c
11760         (general_scalar_chain::general_scalar_chain): Outline,
11761         initialize new members.
11762         (general_scalar_chain::~general_scalar_chain): New.
11763         (general_scalar_chain::mark_dual_mode_def): Record insns
11764         we need to insert conversions at and count them.
11765         (general_scalar_chain::compute_convert_gain): Account
11766         for conversion instructions at chain boundary.
11767         (general_scalar_chain::make_vector_copies): Generate a single
11768         copy for a def by a specific insn.
11769         (general_scalar_chain::convert_registers): First populate
11770         defs_map, then make copies at out-of chain insns.
11772 2019-08-27  Richard Earnshaw  <rearnsha@arm.com>
11774         * config/arm/arm.md (stack_protect_set_insn): Add security-related
11775         comment.
11776         * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise.
11778 2019-08-27  Martin Liska  <mliska@suse.cz>
11780         * cgraph.c (cgraph_node::remove): Remove dead assignment before
11781         loop.
11782         * config/i386/i386-features.c (scalar_chain::emit_conversion_insns):
11783         Enclose in anonymous namespace.
11784         * config/i386/x86-tune-costs.h (struct processor_costs): Wrap
11785         hard_register initialization in braces.
11786         * tree-vrp.h (value_range_base::supports_type_p): Return false
11787         for function with boolean return type.
11789 2019-08-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11791         * config/i386/i386.c (emit_i387_cw_initialization)
11792         <case I387_CW_ROUNDEVEN>: Fix masking operand value.
11794 2019-08-26  Martin Sebor  <msebor@redhat.com>
11796         PR c++/83431
11797         * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object.
11798         (sprintf_dom_walker): Remove class.
11799         (get_int_range): Make argument const.
11800         (directive::fmtfunc, directive::set_precision): Same.
11801         (format_none): Same.
11802         (build_intmax_type_nodes): Same.
11803         (adjust_range_for_overflow): Same.
11804         (format_floating): Same.
11805         (format_character): Same.
11806         (format_string): Same.
11807         (format_plain): Same.
11808         (get_int_range): Cast away constness.
11809         (format_integer): Same.
11810         (get_string_length): Call get_range_strlen_dynamic.  Handle
11811         null lendata.maxbound.
11812         (should_warn_p): Adjust argument scope qualifier.
11813         (maybe_warn): Same.
11814         (format_directive): Same.
11815         (parse_directive): Same.
11816         (is_call_safe): Same.
11817         (try_substitute_return_value): Same.
11818         (sprintf_dom_walker::handle_printf_call): Rename...
11819         (handle_printf_call): ...to this.  Initialize target to host charmap
11820         here instead of in pass_sprintf_length::execute.
11821         (struct call_info): Make global.
11822         (sprintf_dom_walker::compute_format_length): Make global.
11823         (sprintf_dom_walker::handle_gimple_call): Same.
11824         * passes.def (pass_sprintf_length): Replace with pass_strlen.
11825         * print-rtl.c (print_pattern): Reduce the number of spaces to
11826         avoid -Wformat-truncation.
11827         * tree-pass.h (make_pass_warn_printf): New function.
11828         * tree-ssa-strlen.c (strlen_optimize): New variable.
11829         (get_string_length): Add comments.
11830         (get_range_strlen_dynamic): New function.
11831         (check_and_optimize_call): New function.
11832         (handle_integral_assign): New function.
11833         (strlen_check_and_optimize_stmt): Factor code out into
11834         strlen_check_and_optimize_call and handle_integral_assign.
11835         (strlen_dom_walker::evrp): New member.
11836         (strlen_dom_walker::before_dom_children): Use evrp member.
11837         (strlen_dom_walker::after_dom_children): Use evrp member.
11838         (printf_strlen_execute): New function.
11839         (pass_strlen::gate): Update to handle printf calls.
11840         (dump_strlen_info): New function.
11841         (pass_data_warn_printf): New variable.
11842         (pass_warn_printf): New class.
11843         * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare.
11844         (handle_printf_call): Same.
11845         * tree-vrp.c (value_range_base::type): Adjust assertion.
11846         * vr-values.c (vr_values::update_value_range): Use type of the first
11847         argument rather than the second.
11849 2019-08-26  Richard Biener  <rguenther@suse.de>
11851         * config/i386/i386-features.c (general_remove_non_convertible_regs):
11852         Remove.
11853         (convert_scalars_to_vector): Do not call it.
11855 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
11856             Uros Bizjak  <ubizjak@gmail.com>
11858         * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to
11859         CASE_MATHFN_FLOATN for roundeven.
11860         * config/i386/i386.c (ix86_i387_mode_needed): Add case
11861         I387_ROUNDEVEN.
11862         (ix86_mode_needed): Likewise.
11863         (ix86_mode_after): Likewise.
11864         (ix86_mode_entry): Likewise.
11865         (ix86_mode_exit): Likewise.
11866         (ix86_emit_mode_set): Likewise.
11867         (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN.
11868         * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN.
11869         (ix86_entity): Add I387_ROUNDEVEN.
11870         (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY.
11871         * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN.
11872         (define_int_iterator): Likewise.
11873         (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING.
11874         (define_constant): Define ROUND_ROUNDEVEN mode.
11875         (define_attr): Add roundeven mode for i387_cw.
11876         (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN.
11877         * internal-fn.def (ROUNDEVEN): New builtin function.
11878         * optabs.def (roundeven_optab): New optab.
11880 2019-08-26  Tejas Joshi  <tejasjoshi9673@gmail.com>
11882         * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN
11883         for ROUNDEVEN.
11884         * builtins.def: Added function definitions for roundeven function
11885         variants.
11886         * fold-const-call.c (fold_const_call_ss): Added case for roundeven
11887         function call.  Adjust condition for floor, ceil, trunc and round.
11888         * fold-const.c (negate_mathfn_p): Added case for roundeven function.
11889         (tree_call_nonnegative_warnv_p): Added case for roundeven function.
11890         (integer_valued_real_call_p): Added case for roundeven function.
11891         * real.c (is_even): New function. Returns true if real number is even,
11892         otherwise returns false.
11893         (is_halfway_below): New function. Returns true if real number is
11894         halfway between two integers, else return false.
11895         (real_roundeven): New function. Round real number to nearest integer,
11896         rounding halfway cases towards even.
11897         * real.h (real_value): Added descriptive comments.  Added function
11898         declaration for roundeven function.
11899         * doc/extend.texi (Other Builtins): List roundeven variants among
11900         functions which can be handled as builtins.
11902 2019-08-26  Richard Biener  <rguenther@suse.de>
11904         PR target/91522
11905         PR target/91527
11906         * config/i386/i386-features.h (general_scalar_chain::defs_map):
11907         New member.
11908         (general_scalar_chain::replace_with_subreg): Remove.
11909         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11910         (general_scalar_chain::convert_reg): Adjust signature.
11911         * config/i386/i386-features.c (scalar_chain::add_insn): Do not
11912         iterate over all defs of a reg.
11913         (general_scalar_chain::replace_with_subreg): Remove.
11914         (general_scalar_chain::replace_with_subreg_in_insn): Likewise.
11915         (general_scalar_chain::make_vector_copies): Populate defs_map,
11916         place copy only after defs that are used as vectors in the chain.
11917         (general_scalar_chain::convert_reg): Emit a copy for a specific
11918         def in a specific instruction.
11919         (general_scalar_chain::convert_op): All reg uses are converted here.
11920         (general_scalar_chain::convert_insn): Emit copies for scalar
11921         uses of defs here.  Replace uses with the copies we created.
11922         Replace and convert the def.  Adjust REG_DEAD notes, remove
11923         REG_EQUIV/EQUAL notes.
11924         (general_scalar_chain::convert_registers): Only handle copies
11925         into the chain here.
11927 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
11929         * match.pd: Add (T)(A) + CST -> (T)(A + CST).
11931 2019-08-26  Robin Dapp  <rdapp@linux.ibm.com>
11933         * gimple-loop-versioning.cc (loop_versioning::record_address_fragment):
11934         Add nop_convert case.
11935         * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children):
11936         Fold all statements if requested.
11937         * tree-ssa-propagate.h (class substitute_and_fold_engine):
11938         Allow to fold all statements.
11939         * tree-vrp.c (class vrp_folder):
11940         Let substitute_and_fold_engine fold all statements.
11942 2019-08-26  Richard Biener  <rguenther@suse.de>
11944         PR tree-optimization/91526
11945         * passes.def: Note that after late FRE we do TODO_update_address_taken.
11946         * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule
11947         TODO_update_address_taken.
11949 2019-08-26  Gerald Pfeifer  <gerald@pfeifer.com>
11951         * config/i386/gmm_malloc.h: Only use <errno.h> and errno if
11952         __STDC_HOSTED__.
11954 2019-08-23  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
11956         * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
11957         machine mode for unspec_volatile operand.
11959 2019-08-23  Wilco Dijkstra  <wdijkstr@arm.com>
11961         * doc/invoke.texi (mneon-for-64bits): Deprecate option.
11962         * config/arm/arm.opt (mneon-for-64bits): Deprecate option.
11963         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
11964         (prefer_neon_for_64bits): Remove.
11965         * config/arm/arm.c (prefer_neon_for_64bits): Remove.
11966         (tune_params): Remove PREF_NEON_64_FALSE uses.
11967         (arm_option_override): Remove prefer_neon selection code.
11968         (arm_print_tune_info): Remove prefer_neon_for_64bits.
11969         * config/arm/arm-protos.h (tune_params): Remove
11970         prefer_neon_for_64bits.
11971         (prefer_neon_for_64bits): Remove.
11973 2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
11975         PR pch/61250
11976         * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
11977         and issue any diagnostics needed before collecting the pre-PCH
11978         state.
11980 2019-08-23  Jakub Jelinek  <jakub@redhat.com>
11982         PR middle-end/91283
11983         * common.opt (fexcess-precision=): Add Optimization flag.  Use
11984         flag_excess_precision variable instead of
11985         flag_excess_precision_cmdline.
11986         * flags.h (class target_flag_state): Remove x_flag_excess_precision
11987         member.
11988         (flag_excess_precision): Don't define.
11989         * langhooks.c (lhd_post_options): Set flag_excess_precision instead of
11990         flag_excess_precision_cmdline.  Remove comment.
11991         * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision
11992         and x_flag_excess_precision instead of
11993         frontend_set_flag_excess_precision_cmdline and
11994         x_flag_excess_precision_cmdline.
11995         (fast_math_flags_set_p): Use x_flag_excess_precision instead of
11996         x_flag_excess_precision_cmdline.
11997         * toplev.c (init_excess_precision): Remove.
11998         (lang_dependent_init_target): Don't call it.
12000 2019-08-23  Martin Liska  <mliska@suse.cz>
12002         * lto-wrapper.c (run_gcc): When setting jobserver
12003         set also parallel to 1.  This was done so before r273908.
12005 2019-08-23  Dennis Zhang  <dennis.zhang@arm.com>
12007         * config/arm/arm-cpus.in (cortex-m35p): New entry.
12008         (cortex-a76ae): Likewise.
12009         (cortex-a77): Likewise
12010         * config/arm/arm-tables.opt: Regenerate.
12011         * config/arm/arm-tune.md: Likewise.
12012         * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae,
12013         cortex-a77 CPU options.
12015 2019-08-23  Martin Liska  <mliska@suse.cz>
12017         * profile.c (instrument_values): Do not set
12018         0 as last argument.
12019         * tree-profile.c (gimple_gen_interval_profiler): Remove
12020         last argument.
12021         (gimple_gen_pow2_profiler): Likewise.
12022         (gimple_gen_topn_values_profiler): Likewise.
12023         (gimple_gen_ic_profiler): Likewise.
12024         (gimple_gen_time_profiler): Likewise.
12025         (gimple_gen_average_profiler): Likewise.
12026         (gimple_gen_ior_profiler): Likewise.
12027         * value-prof.c (dump_histogram_value): Use default
12028         in switch statement instead of HIST_TYPE_MAX.
12029         (stream_in_histogram_value): Likewise.
12030         (gimple_duplicate_stmt_histograms): Do not
12031         use NULL for implicitly set arguments.
12032         (gimple_divmod_values_to_profile): Do not use
12033         reserve+quick_push.
12034         (gimple_indirect_call_to_profile): Likewise.
12035         (gimple_find_values_to_profile): Use implicit
12036         function call arguments.
12037         * value-prof.h (gimple_alloc_histogram_value):
12038         Set default values.
12039         (gimple_gen_interval_profiler): Remove last argument.
12040         (gimple_gen_pow2_profiler): Likewise.
12041         (gimple_gen_topn_values_profiler): Likewise.
12042         (gimple_gen_ic_profiler): Likewise.
12043         (gimple_gen_time_profiler): Likewise.
12044         (gimple_gen_average_profiler): Likewise.
12045         (gimple_gen_ior_profiler): Likewise.
12047 2019-08-22  Martin Sebor  <msebor@redhat.com>
12049         PR middle-end/91490
12050         * builtins.c (c_strlen): Rename argument and introduce new local.
12051         Set no-warning bit on original argument.
12052         * expr.c (string_constant): Pass argument type to fold_ctor_reference.
12053         Fold empty and zero constructors into empty strings.
12054         * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST
12055         for missing initializers.
12056         * tree.c (build_string_literal): Handle optional argument.
12057         * tree.h (build_string_literal): Add defaulted argument.
12058         * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check
12059         no-warning bit on original expression.
12061 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
12063         PR target/91481
12064         * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
12065         and UNSPEC_DARN_RAW.
12066         (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
12067         UNSPECV_DARN_RAW.
12068         (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
12069         (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
12070         (darn): Use an unspec_volatile, and UNSPECV_DARN.
12072 2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
12074         * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
12075         UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
12076         * config/rs6000/rs6000.md (unspec): ... here.
12077         * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
12078         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
12079         cmpeqb, *cmpeqb_internal): Delete, move to...
12080         * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
12081         *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
12082         cmpeqb, *cmpeqb_internal): ... here.
12084 2019-08-22  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12086         * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
12087         intrinsics if __ARM_FP.
12088         Use __ARM_FEATURE_CRC32 ifdef guard.
12090 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
12092         * config/arm/arm.md (neon_for_64bits): Remove.
12093         (avoid_neon_for_64bits): Remove.
12094         (arm_adddi3): Always split early.
12095         (arm_subdi3): Always split early.
12096         (negdi2): Remove Neon expansion.
12097         (split zero_extend): Split before reload.
12098         (split sign_extend): Split before reload.
12100 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
12102         * config/arm/iterators.md (qhs_extenddi_cstr): Update.
12103         (qhs_extenddi_cstr): Likewise.
12104         * config/arm/arm.md (ashldi3): Always expand early.
12105         (ashlsi3): Likewise.
12106         (ashrsi3): Likewise.
12107         (zero_extend<mode>di2): Remove Neon variants.
12108         (extend<mode>di2): Likewise.
12109         * config/arm/neon.md (ashldi3_neon_noclobber): Remove.
12110         (signed_shift_di3_neon): Likewise.
12111         (unsigned_shift_di3_neon): Likewise.
12112         (ashrdi3_neon_imm_noclobber): Likewise.
12113         (lshrdi3_neon_imm_noclobber): Likewise.
12114         (<shift>di3_neon): Likewise.
12115         (split extend): Remove DI extend split patterns.
12117 2019-08-22  Wilco Dijkstra  <wdijkstr@arm.com>
12119         * config/arm/arm.md (split and/eor/ior): Remove Neon check.
12120         (split not): Add DImode not splitter.
12121         (anddi3): Remove pattern.
12122         (anddi3_insn): Likewise.
12123         (anddi_zesidi_di): Likewise.
12124         (anddi_sesdi_di): Likewise.
12125         (anddi_notdi_di): Likewise.
12126         (anddi_notzesidi_di): Likewise.
12127         (anddi_notsesidi_di): Likewise.
12128         (iordi3): Likewise.
12129         (iordi3_insn): Likewise.
12130         (iordi_zesidi_di): Likewise.
12131         (iordi_sesidi_di): Likewise.
12132         (xordi3): Likewise.
12133         (xordi3_insn): Likewise.
12134         (xordi_sesidi_di): Likewise.
12135         (xordi_zesidi_di): Likewise.
12136         (one_cmpldi2): Likewise.
12137         (one_cmpldi2_insn): Likewise.
12138         * config/arm/constraints.md: Remove De, Df, Dg constraints.
12139         * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register
12140         alternative.
12141         (iwmmxt_xordi3): Likewise.
12142         (iwmmxt_anddi3): Likewise.
12143         * config/arm/neon.md (orndi3_neon): Remove pattern.
12144         (anddi_notdi_di): Likewise.
12145         * config/arm/predicates.md (arm_anddi_operand_neon): Remove.
12146         (arm_iordi_operand_neon): Likewise.
12147         (arm_xordi_operand_neon): Likewise.
12148         * config/arm/thumb2.md(iordi_notdi_di): Remove pattern.
12149         (iordi_notzesidi_di): Likewise.
12150         (iordi_notdi_zesidi): Likewise.
12151         (iordi_notsesidi_di): Likewise.
12153 2019-08-22  Richard Earnshaw  <rearnsha@arm.com>
12155         * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb
12156         insn.
12157         (iorsi3_compare0_scratch): Likewise.
12159 2019-08-22  Sylvia Taylor  <sylvia.taylor@arm.com>
12161         * config/aarch64/aarch64-simd-builtins.def:
12162         (ld1x4): New.
12163         (st1x4): Likewise.
12164         * config/aarch64/aarch64-simd.md:
12165         (aarch64_ld1x4<VALLDIF:mode>): New pattern.
12166         (aarch64_st1x4<VALLDIF:mode>): Likewise.
12167         (aarch64_ld1_x4_<mode>): Likewise.
12168         (aarch64_st1_x4_<mode>): Likewise.
12169         * config/aarch64/arm_neon.h:
12170         (vld1_s8_x4): New function.
12171         (vld1q_s8_x4): Likewise.
12172         (vld1_s16_x4): Likewise.
12173         (vld1q_s16_x4): Likewise.
12174         (vld1_s32_x4): Likewise.
12175         (vld1q_s32_x4): Likewise.
12176         (vld1_u8_x4): Likewise.
12177         (vld1q_u8_x4): Likewise.
12178         (vld1_u16_x4): Likewise.
12179         (vld1q_u16_x4): Likewise.
12180         (vld1_u32_x4): Likewise.
12181         (vld1q_u32_x4): Likewise.
12182         (vld1_f16_x4): Likewise.
12183         (vld1q_f16_x4): Likewise.
12184         (vld1_f32_x4): Likewise.
12185         (vld1q_f32_x4): Likewise.
12186         (vld1_p8_x4): Likewise.
12187         (vld1q_p8_x4): Likewise.
12188         (vld1_p16_x4): Likewise.
12189         (vld1q_p16_x4): Likewise.
12190         (vld1_s64_x4): Likewise.
12191         (vld1_u64_x4): Likewise.
12192         (vld1_p64_x4): Likewise.
12193         (vld1q_s64_x4): Likewise.
12194         (vld1q_u64_x4): Likewise.
12195         (vld1q_p64_x4): Likewise.
12196         (vld1_f64_x4): Likewise.
12197         (vld1q_f64_x4): Likewise.
12198         (vst1_s8_x4): Likewise.
12199         (vst1q_s8_x4): Likewise.
12200         (vst1_s16_x4): Likewise.
12201         (vst1q_s16_x4): Likewise.
12202         (vst1_s32_x4): Likewise.
12203         (vst1q_s32_x4): Likewise.
12204         (vst1_u8_x4): Likewise.
12205         (vst1q_u8_x4): Likewise.
12206         (vst1_u16_x4): Likewise.
12207         (vst1q_u16_x4): Likewise.
12208         (vst1_u32_x4): Likewise.
12209         (vst1q_u32_x4): Likewise.
12210         (vst1_f16_x4): Likewise.
12211         (vst1q_f16_x4): Likewise.
12212         (vst1_f32_x4): Likewise.
12213         (vst1q_f32_x4): Likewise.
12214         (vst1_p8_x4): Likewise.
12215         (vst1q_p8_x4): Likewise.
12216         (vst1_p16_x4): Likewise.
12217         (vst1q_p16_x4): Likewise.
12218         (vst1_s64_x4): Likewise.
12219         (vst1_u64_x4): Likewise.
12220         (vst1_p64_x4): Likewise.
12221         (vst1q_s64_x4): Likewise.
12222         (vst1q_u64_x4): Likewise.
12223         (vst1q_p64_x4): Likewise.
12224         (vst1_f64_x4): Likewise.
12225         (vst1q_f64_x4): Likewise.
12227 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12229         * config/aarch64/aarch64-sve.md (vcond_mask): Add "@".
12231 2019-08-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12232             Richard Sandiford  <richard.sandiford@arm.com>
12234         PR target/88839
12235         * config/aarch64/aarch64.c (aarch64_evpc_sel): New function.
12236         (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel.
12238 2019-08-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12240         PR target/90724
12241         * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
12242         in reg if it fails aarch64_plus_operand predicate.
12244 2019-08-21  Richard Biener  <rguenther@suse.de>
12246         PR tree-optimization/91482
12247         * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless
12248         BUILT_IN_ASSUME_ALIGNED calls.
12250 2019-08-21  Richard Biener  <rguenther@suse.de>
12252         PR target/91498
12253         PR target/91503
12254         * config/i386/i386-features.c
12255         (general_scalar_chain::make_vector_copies): Copy stack temporary
12256         rtx when using it multiple times.
12257         (general_scalar_chain::convert_reg): Likewise.
12259 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12261         * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==.
12263 2019-08-20  Matthew Beliveau  <mbelivea@redhat.com>
12265         * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to
12266         catch more redundant zero initialization cases.
12267         (dse_dom_walker::dse_optimize_stmt): Likewise.
12269 2019-08-20  Richard Biener  <rguenther@suse.de>
12271         PR lto/91307
12272         * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable
12273         by collect2 when targetm.have_ctors_dtors which avoids dragging
12274         in temporary filenames from LTO input objects.
12276 2019-08-20  Richard Biener  <rguenther@suse.de>
12278         PR tree-optimization/37242
12279         * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b)
12280         to (T)a + (T)b if we know that a + b does not overflow.
12282 2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
12284         PR rtl-optimization/91347
12285         * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
12286         before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
12288 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12290         * calls.h (function_arg_info): Add a pass_by_reference field,
12291         defaulting to false.
12292         * calls.c (apply_pass_by_reference_rules): Set pass_by_reference
12293         when applying pass-by-reference semantics.
12294         (initialize_argument_information): Likewise.
12295         (emit_library_call_value_1): Likewise.
12296         * function.c (assign_parm_data_one): Remove passed_pointer field.
12297         (assign_parm_find_data_types): Don't set it.
12298         (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl)
12299         (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use
12300         arg.pass_by_reference instead of passed_pointer.
12302 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12304         * calls.c (emit_library_call_value_1): Merge arg and orig_arg
12305         into a single function_arg_info, updating its fields when we
12306         apply pass-by-reference and promotion semantics.  Use the
12307         function_arg_info to track the mode rather than keeping it in
12308         a separate local variable.
12309         (initialize_argument_information): Likewise.  Base the final
12310         arg_to_skip on this new function_arg_info rather than creating
12311         a new one from scratch.
12313 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12315         * function.c (assign_parm_data_one): Replace passed_type,
12316         promoted_mode and named_arg with a function_arg_info field.
12317         (assign_parm_find_data_types): Remove local variables and
12318         assign directly to "data".  Make data->passed_mode shadow
12319         data->arg.mode until promotion, then assign the promoted
12320         mode to data->arg.mode.
12321         (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
12322         (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
12323         (assign_parm_remove_parallels, assign_parm_setup_block_p)
12324         (assign_parm_setup_block, assign_parm_setup_reg)
12325         (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
12326         arg.mode instead of promoted_mode, arg.type instead of passed_type
12327         and arg.named instead of named_arg.  Use data->arg for
12328         function_arg_info structures that had the field values passed_type,
12329         promoted_mode and named_arg.  Base other function_arg_infos on
12330         data->arg, changing the necessary properties.
12332 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12334         * calls.h (apply_pass_by_reference_rules): Declare.
12335         * calls.c (apply_pass_by_reference_rules): New function.
12336         * config/c6x/c6x.c (c6x_call_saved_register_used): Use it.
12337         * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise.
12338         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12339         * function.c (assign_parm_find_data_types): Likewise.
12340         * var-tracking.c (prepare_call_arguments): Likewise.
12342 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12344         * target.def (must_pass_in_stack): Take a function_arg_info instead
12345         of a mode and a type.
12346         * doc/tm.texi: Regenerate.
12347         * calls.h (must_pass_in_stack_var_size): Take a function_arg_info
12348         instead of a mode and a type.
12349         (must_pass_in_stack_var_size_or_pad): Likewise.
12350         * calls.c (must_pass_in_stack_var_size): Likewise.
12351         (must_pass_in_stack_var_size_or_pad): Likewise.
12352         (initialize_argument_information): Update call to
12353         targetm.calls.must_pass_in_stack.
12354         (must_pass_va_arg_on_stack): Likewise.
12355         * function.c (assign_parm_find_entry_rtl): Likewise.
12356         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise.
12357         * config/alpha/alpha.c (alpha_function_arg): Likewise.
12358         (alpha_function_arg_advance): Likewise.
12359         * config/cr16/cr16.c (cr16_function_arg): Likewise.
12360         (cr16_function_arg_advance): Likewise.
12361         * config/cris/cris.c (cris_pass_by_reference): Likewise.
12362         (cris_arg_partial_bytes): Likewise.
12363         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
12364         * config/lm32/lm32.c (lm32_function_arg): Likewise.
12365         * config/mcore/mcore.c (mcore_num_arg_regs): Likewise.
12366         (mcore_function_arg, mcore_arg_partial_bytes): Likewise.
12367         * config/mips/mips.c (mips_pass_by_reference): Likewise.
12368         * config/mmix/mmix.c (mmix_function_arg_advance): Likewise.
12369         (mmix_function_arg_1, mmix_pass_by_reference): Likewise.
12370         * config/sh/sh.c (sh_pass_by_reference): Likewise.
12371         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
12372         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
12373         * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info
12374         instead of a mode and a type.
12375         * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise.
12376         (fr30_num_arg_regs): Likewise.
12377         (fr30_setup_incoming_varargs): Update calls accordingly.
12378         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
12379         (fr30_function_arg_advance): Likewise.
12380         * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info
12381         instead of a mode and a type.
12382         * config/gcn/gcn.c (num_arg_regs): Likewise.
12383         (gcn_function_arg, gcn_function_arg_advance): Update calls to
12384         num_arg_regs and targetm.calls.must_pass_in_stack.
12385         (gcn_arg_partial_bytes): Likewise.
12386         * config/i386/i386.c (ix86_must_pass_in_stack): Take a
12387         function_arg_info instead of a mode and a type.
12388         (classify_argument): Update call accordingly.
12389         * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a
12390         function_arg_info instead of a mode and a type.
12391         * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack):
12392         Likewise.
12393         * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise.
12394         (rs6000_parm_needs_stack): Update call accordingly.
12395         (setup_incoming_varargs): Likewise.
12397 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12399         * target.def (callee_copies): Take a function_arg_info instead
12400         of a mode, type and named flag.
12401         * doc/tm.texi: Regenerate.
12402         * targhooks.h (hook_callee_copies_named): Take a function_arg_info
12403         instead of a mode, type and named flag.
12404         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
12405         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12406         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
12407         * targhooks.c (hook_callee_copies_named): Take a function_arg_info
12408         instead of a mode, type and named flag.
12409         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete.
12410         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
12411         (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function.
12412         * calls.h (reference_callee_copied): Take a function_arg_info
12413         instead of a mode, type and named flag.
12414         * calls.c (reference_callee_copied): Likewise.
12415         (initialize_argument_information): Update call accordingly.
12416         (emit_library_call_value_1): Likewise.
12417         * function.c (gimplify_parameters): Likewise.
12418         * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to
12419         hook_bool_CUMULATIVE_ARGS_arg_info_false instead of
12420         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false.
12421         * config/c6x/c6x.c (c6x_callee_copies): Delete.
12422         (TARGET_CALLEE_COPIES): Define to
12423         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
12424         * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to
12425         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12426         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12427         * config/mips/mips.c (mips_callee_copies): Take a function_arg_info
12428         instead of a mode, type and named flag.
12429         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to
12430         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12431         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12432         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise.
12433         * config/msp430/msp430.c (msp430_callee_copies): Delete.
12434         (TARGET_CALLEE_COPIES): Define to
12435         hook_bool_CUMULATIVE_ARGS_arg_info_true instead.
12436         * config/pa/pa.c (pa_callee_copies): Take a function_arg_info
12437         instead of a mode, type and named flag.
12438         * config/sh/sh.c (sh_callee_copies): Likewise.
12439         * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to
12440         hook_bool_CUMULATIVE_ARGS_arg_info_true instead of
12441         hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true.
12443 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12445         * target.def (function_arg_advance): Take a function_arg_info instead
12446         of a mode, type and named flag.
12447         * doc/tm.texi: Regenerate.
12448         * targhooks.h (default_function_arg_advance): Take a function_arg_info
12449         instead of a mode, type and named flag.
12450         * targhooks.c (default_function_arg_advance): Likewise.
12451         * calls.c (initialize_argument_information): Update call to
12452         targetm.calls.function_arg_advance.
12453         (emit_library_call_value_1): Likewise.
12454         * dse.c (get_call_args): Likewise.
12455         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12456         * function.c (assign_parms, gimplify_parameters): Likewise.
12457         * var-tracking.c (prepare_call_arguments): Likewise.
12458         * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a
12459         function_arg_info instead of a mode, type and named flag.
12460         (aarch64_setup_incoming_varargs): Update call accordingly.
12461         * config/alpha/alpha.c (alpha_function_arg_advance): Take a
12462         function_arg_info instead of a mode, type and named flag.
12463         (alpha_setup_incoming_varargs): Update call accordingly.
12464         * config/arc/arc.c (arc_function_arg_advance): Take a
12465         function_arg_info instead of a mode, type and named flag.
12466         (arc_setup_incoming_varargs): Update call accordingly.
12467         * config/arm/arm.c (arm_function_arg_advance): Take a
12468         function_arg_info instead of a mode, type and named flag.
12469         (cmse_func_args_or_return_in_stack): Update call accordingly.
12470         (arm_function_ok_for_sibcall): Likewise.
12471         (cmse_nonsecure_call_clear_caller_saved): Likewise.
12472         * config/avr/avr.c (avr_function_arg_advance): Take a
12473         function_arg_info instead of a mode, type and named flag.
12474         * config/bfin/bfin.c (bfin_function_arg_advance): Likewise.
12475         * config/c6x/c6x.c (c6x_function_arg_advance): Likewise.
12476         (c6x_call_saved_register_used): Update call accordingly.
12477         * config/cr16/cr16.c (cr16_function_arg_advance): Take a
12478         function_arg_info instead of a mode, type and named flag.
12479         * config/cris/cris.c (cris_function_arg_advance): Likewise.
12480         * config/csky/csky.c (csky_function_arg_advance): Likewise.
12481         (csky_setup_incoming_varargs): Update call accordingly.
12482         * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a
12483         function_arg_info instead of a mode, type and named flag.
12484         * config/fr30/fr30.c (fr30_function_arg_advance): Likewise.
12485         * config/frv/frv.c (frv_function_arg_advance): Likewise.
12486         * config/ft32/ft32.c (ft32_function_arg_advance): Likewise.
12487         * config/gcn/gcn.c (gcn_function_arg_advance): Likewise.
12488         * config/h8300/h8300.c (h8300_function_arg_advance): Likewise.
12489         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
12490         (ix86_setup_incoming_varargs): Update call accordingly.
12491         * config/ia64/ia64.c (ia64_function_arg_advance): Take a
12492         function_arg_info instead of a mode, type and named flag.
12493         (ia64_setup_incoming_varargs): Update call accordingly.
12494         * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a
12495         function_arg_info instead of a mode, type and named flag.
12496         (iq2000_expand_prologue): Update call accordingly.
12497         * config/lm32/lm32.c (lm32_function_arg_advance): Take a
12498         function_arg_info instead of a mode, type and named flag.
12499         * config/m32c/m32c.c (m32c_function_arg_advance): Likewise.
12500         * config/m32r/m32r.c (m32r_function_arg_advance): Likewise.
12501         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
12502         * config/mcore/mcore.c (mcore_function_arg_advance): Likewise.
12503         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
12504         Likewise.
12505         (microblaze_expand_prologue): Update call accordingly.
12506         * config/mips/mips.c (mips_function_arg_advance): Take a
12507         function_arg_info instead of a mode, type and named flag.
12508         (mips_setup_incoming_varargs): Update call accordingly.
12509         (mips_output_args_xfer): Likewise.
12510         * config/mmix/mmix.c (mmix_function_arg_advance): Take a
12511         function_arg_info instead of a mode, type and named flag.
12512         * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise.
12513         * config/moxie/moxie.c (moxie_function_arg_advance): Likewise.
12514         * config/msp430/msp430.c (msp430_function_arg_advance): Likewise.
12515         * config/nds32/nds32.c (nds32_function_arg_advance): Likewise.
12516         * config/nios2/nios2.c (nios2_function_arg_advance): Likewise.
12517         (nios2_setup_incoming_varargs): Update call accordingly.
12518         * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a
12519         function_arg_info instead of a mode, type and named flag.
12520         * config/or1k/or1k.c (or1k_function_arg_advance): Likewise.
12521         * config/pa/pa.c (pa_function_arg_advance): Likewise.
12522         * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise.
12523         * config/pru/pru.c (pru_function_arg_advance): Likewise.
12524         * config/riscv/riscv.c (riscv_function_arg_advance): Likewise.
12525         (riscv_setup_incoming_varargs): Update call accordingly.
12526         * config/rl78/rl78.c (rl78_function_arg_advance): Take a
12527         function_arg_info instead of a mode, type and named flag.
12528         * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance):
12529         Likewise.
12530         * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise.
12531         (rs6000_parm_needs_stack): Update call accordingly.
12532         * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info
12533         instead of a mode, type and named flag.
12534         * config/s390/s390.c (s390_function_arg_advance): Likewise.
12535         (s390_call_saved_register_used): Update call accordingly.
12536         * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info
12537         instead of a mode, type and named flag.
12538         (sh_output_mi_thunk): Update call accordingly.
12539         * config/sparc/sparc.c (sparc_function_arg_advance): Take a
12540         function_arg_info instead of a mode, type and named flag.
12541         * config/spu/spu.c (spu_function_arg_advance): Likewise.
12542         (spu_setup_incoming_varargs): Update call accordingly.
12543         * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a
12544         function_arg_info instead of a mode, type and named flag.
12545         * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise.
12546         (tilegx_setup_incoming_varargs): Update call accordingly.
12547         * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a
12548         function_arg_info instead of a mode, type and named flag.
12549         (tilegx_setup_incoming_varargs): Update call accordingly.
12550         * config/v850/v850.c (v850_function_arg_advance): Take a
12551         function_arg_info instead of a mode, type and named flag.
12552         * config/vax/vax.c (vax_function_arg_advance): Likewise.
12553         * config/visium/visium.c (visium_function_arg_advance): Likewise.
12554         (visium_setup_incoming_varargs): Update call accordingly.
12555         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a
12556         function_arg_info instead of a mode, type and named flag.
12558 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12560         * target.def (function_arg, function_incoming_arg): Take a
12561         function_arg_info instead of a mode, tree and named flag.
12562         * doc/tm.texi: Regenerate.
12563         * targhooks.h (default_function_arg): Take a function_arg_info
12564         instead of a mode, tree and named flag.
12565         (default_function_incoming_arg): Likewise.
12566         * targhooks.c (default_function_arg): Likewise.
12567         (default_function_incoming_arg): Likewise.
12568         * calls.h (function_arg_info::end_marker_p): New function.
12569         (function_arg_info::end_marker): Likewise.
12570         * calls.c (prepare_call_address, initialize_argument_information)
12571         (expand_call, emit_library_call_value_1): Update calls to
12572         targetm.calls.function_arg and targetm.calls.function_incoming_arg.
12573         * dse.c: Include calls.h.
12574         (get_call_args): Update call to targetm.calls.function_arg.
12575         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12576         * var-tracking.c (prepare_call_arguments): Likewise.
12577         * function.c (assign_parm_find_entry_rtl): Update call to
12578         targetm.calls.function_incoming_arg.
12579         * config/aarch64/aarch64.c (aarch64_function_arg): Take a
12580         function_arg_info instead of a mode, tree and named flag.
12581         * config/alpha/alpha.c (alpha_function_arg): Likewise.
12582         * config/arc/arc.c (arc_function_arg): Likewise.
12583         * config/arm/arm.c (arm_function_arg): Likewise.
12584         (cmse_func_args_or_return_in_stack): Update call accordingly.
12585         (arm_function_ok_for_sibcall): Likewise.
12586         (cmse_nonsecure_call_clear_caller_saved): Likewise.
12587         * config/avr/avr.c (avr_function_arg): Take a function_arg_info
12588         instead of a mode, tree and named flag.
12589         * config/bfin/bfin.c (bfin_function_arg): Likewise.
12590         * config/c6x/c6x.c (c6x_function_arg): Likewise.
12591         (c6x_call_saved_register_used): Update call accordingly.
12592         * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info
12593         instead of a mode, tree and named flag.
12594         * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg)
12595         (cris_function_arg_1): Likewise.
12596         * config/csky/csky.c (csky_function_arg): Likewise.
12597         * config/epiphany/epiphany.c (epiphany_function_arg): Likewise.
12598         * config/fr30/fr30.c (fr30_function_arg): Likewise.
12599         * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg)
12600         (frv_function_arg_1): Likewise.
12601         * config/ft32/ft32.c (ft32_function_arg): Likewise.
12602         * config/gcn/gcn.c (gcn_function_arg): Likewise.
12603         * config/h8300/h8300.c (h8300_function_arg): Likewise.
12604         * config/i386/i386.c (ix86_function_arg): Likewise.
12605         * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg)
12606         (ia64_function_arg_1): Likewise.
12607         * config/iq2000/iq2000.c (iq2000_function_arg): Likewise.
12608         (iq2000_expand_prologue, iq2000_pass_by_reference): Update call
12609         accordingly.
12610         * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info
12611         instead of a mode, tree and named flag.
12612         * config/m32c/m32c.c (m32c_function_arg): Likewise.
12613         * config/m32r/m32r.c (m32r_function_arg): Likewise.
12614         * config/m68k/m68k.c (m68k_function_arg): Likewise.
12615         * config/mcore/mcore.c (mcore_function_arg): Likewise.
12616         * config/microblaze/microblaze.c (microblaze_function_arg): Likewise.
12617         (microblaze_expand_prologue): Update call accordingly.
12618         * config/mips/mips.c (mips_function_arg): Take a function_arg_info
12619         instead of a mode, tree and named flag.
12620         * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg)
12621         (mmix_function_arg_1): Likewise.
12622         * config/mn10300/mn10300.c (mn10300_function_arg): Likewise.
12623         * config/moxie/moxie.c (moxie_function_arg): Likewise.
12624         * config/msp430/msp430.c (msp430_function_arg): Likewise.
12625         * config/nds32/nds32.c (nds32_function_arg): Likewise.
12626         * config/nios2/nios2.c (nios2_function_arg): Likewise.
12627         * config/nvptx/nvptx.c (nvptx_function_arg): Likewise.
12628         (nvptx_function_incoming_arg): Likewise.
12629         * config/or1k/or1k.c (or1k_function_arg): Likewise.
12630         * config/pa/pa.c (pa_function_arg): Likewise.
12631         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
12632         * config/pru/pru.c (pru_function_arg): Likewise.
12633         * config/riscv/riscv.c (riscv_function_arg): Likewise.
12634         * config/rl78/rl78.c (rl78_function_arg): Likewise.
12635         * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise.
12636         * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise.
12637         (rs6000_parm_needs_stack): Update call accordingly.
12638         * config/rx/rx.c (rx_function_arg): Take a function_arg_info
12639         instead of a mode, tree and named flag.
12640         * config/s390/s390.c (s390_function_arg): Likewise.
12641         (s390_call_saved_register_used): Update call accordingly.
12642         * config/sh/sh.c (sh_function_arg): Take a function_arg_info
12643         instead of a mode, tree and named flag.
12644         (sh_output_mi_thunk): Update call accordingly.
12645         * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg)
12646         (sparc_function_incoming_arg): Take a function_arg_info instead of
12647         a mode, tree and named flag.
12648         * config/spu/spu.c (spu_function_arg): Likewise.
12649         * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise.
12650         * config/tilegx/tilegx.c (tilegx_function_arg): Likewise.
12651         * config/tilepro/tilepro.c (tilepro_function_arg): Likewise.
12652         * config/v850/v850.c (v850_function_arg): Likewise.
12653         * config/vax/vax.c (vax_function_arg): Likewise.
12654         * config/visium/visium.c (visium_function_arg): Likewise.
12655         * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg)
12656         (xtensa_function_incoming_arg): Likewise.
12658 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12660         * target.def (setup_incoming_varargs): Take a function_arg_info
12661         instead of a mode and tree.
12662         * doc/tm.texi: Regenerate.
12663         * targhooks.h (default_setup_incoming_varargs): Take a
12664         function_arg_info instead of a mode and tree.
12665         * targhooks.c (default_setup_incoming_varargs): Likewise.
12666         * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise.
12667         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise.
12668         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
12669         * config/arm/arm.c (arm_setup_incoming_varargs): Likewise.
12670         * config/bfin/bfin.c (setup_incoming_varargs): Likewise.
12671         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
12672         * config/csky/csky.c (csky_setup_incoming_varargs): Likewise.
12673         * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs):
12674         Likewise.
12675         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
12676         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
12677         * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise.
12678         * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise.
12679         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
12680         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
12681         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12682         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
12683         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
12684         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
12685         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
12686         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
12687         * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise.
12688         * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise.
12689         * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise.
12690         * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise.
12691         * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise.
12692         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
12693         * config/spu/spu.c (spu_setup_incoming_varargs): Likewise.
12694         * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise.
12695         * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise.
12696         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
12697         * function.c (assign_parms_setup_varargs): Update call to
12698         targetm.calls.setup_incoming_varargs.
12700 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12702         * target.def (pass_by_reference): Take a function_arg_info instead
12703         of a mode, type and named flag.
12704         * doc/tm.texi: Regenerate.
12705         * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update
12706         accordingly.
12707         (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare.
12708         * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a
12709         function_arg_info instead of a mode, type and named flag.
12710         (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function.
12711         * calls.h (pass_by_reference): Take a function_arg_info instead of a
12712         mode, type and named flag.
12713         * calls.c (pass_by_reference): Likewise.
12714         (pass_va_arg_by_reference): Update call accordingly.
12715         (initialize_argument_information): Likewise.
12716         (emit_library_call_value_1): Likewise.
12717         * function.c (assign_parm_find_data_types): Likewise.
12718         * var-tracking.c (prepare_call_arguments): Likewise.
12719         * stor-layout.c: Include calls.h.
12720         (compute_record_mode): Update call to targetm.calls.pass_by_reference.
12721         * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a
12722         function_arg_info instead of a mode, type and named flag.
12723         * config/alpha/alpha.c (alpha_pass_by_reference): Likewise.
12724         * config/arc/arc.c (arc_pass_by_reference): Likewise.
12725         * config/arm/arm.c (arm_pass_by_reference): Likewise.
12726         * config/bfin/bfin.c (bfin_pass_by_reference): Likewise.
12727         * config/c6x/c6x.c (c6x_pass_by_reference): Likewise.
12728         (c6x_call_saved_register_used): Update call to pass_by_reference.
12729         * config/cris/cris.c (cris_pass_by_reference): Take a
12730         function_arg_info instead of a mode, type and named flag.
12731         * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a
12732         function_arg_info instead of a mode, type and named flag.
12733         (epiphany_arg_partial_bytes): Update call accordingly.
12734         * config/ft32/ft32.c (ft32_pass_by_reference): Take a
12735         function_arg_info instead of a mode, type and named flag.
12736         (ft32_arg_partial_bytes): Update call accordingly.
12737         * config/i386/i386.c (ix86_pass_by_reference): Take a
12738         function_arg_info instead of a mode, type and named flag.
12739         * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise.
12740         * config/m32c/m32c.c (m32c_pass_by_reference): Likewise.
12741         * config/m32r/m32r.c (m32r_pass_by_reference): Likewise.
12742         (m32r_return_in_memory): Update call accordingly.
12743         * config/mips/mips.c (mips_pass_by_reference): Take a
12744         function_arg_info instead of a mode, type and named flag.
12745         * config/mmix/mmix.c (mmix_pass_by_reference): Likewise.
12746         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
12747         * config/moxie/moxie.c (moxie_pass_by_reference): Likewise.
12748         (moxie_arg_partial_bytes): Update call accordingly.
12749         * config/msp430/msp430.c (msp430_pass_by_reference): Take a
12750         function_arg_info instead of a mode, type and named flag.
12751         * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise.
12752         * config/or1k/or1k.c (or1k_pass_by_reference): Likewise.
12753         * config/pa/pa.c (pa_pass_by_reference): Likewise.
12754         * config/riscv/riscv.c (riscv_pass_by_reference): Likewise.
12755         (riscv_return_in_memory): Update call accordingly.
12756         * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a
12757         function_arg_info instead of a mode, type and named flag.
12758         * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise.
12759         (rs6000_parm_needs_stack): Update call to pass_by_reference.
12760         * config/s390/s390.c (s390_pass_by_reference): Take a
12761         function_arg_info instead of a mode, type and named flag.
12762         (s390_call_saved_register_used): Update call accordingly.
12763         * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info
12764         instead of a mode, type and named flag.
12765         * config/sparc/sparc.c (sparc_pass_by_reference): Likewise.
12766         * config/spu/spu.c (spu_pass_by_reference): Likewise.
12767         * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise.
12768         * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise.
12769         * config/v850/v850.c (v850_pass_by_reference): Likewise.
12770         * config/visium/visium.c (visium_pass_by_reference): Likewise.
12772 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12774         * target.def (arg_partial_bytes): Take a function_arg_info instead
12775         of a mode, type and named flag.
12776         * doc/tm.texi: Regenerate.
12777         * target.h (function_arg_info): Declare.
12778         * calls.h (function_arg_info): New class.
12779         * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
12780         (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare.
12781         * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete.
12782         (hook_int_CUMULATIVE_ARGS_arg_info_0): New function.
12783         * calls.c (initialize_argument_information): Update call to
12784         targetm.calls.partial_bytes.
12785         (emit_library_call_value_1): Likewise.
12786         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12787         * function.c (assign_parm_find_entry_rtl): Likewise.
12788         * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a
12789         function_arg_info instead of a mode, type and named flag.
12790         * config/arc/arc.c (arc_arg_partial_bytes): Likewise.
12791         * config/arm/arm.c (arm_arg_partial_bytes): Likewise.
12792         (cmse_func_args_or_return_in_stack): Update accordingly.
12793         * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a
12794         function_arg_info instead of a mode, type and named flag.
12795         * config/cris/cris.c (cris_arg_partial_bytes): Likewise.
12796         * config/csky/csky.c (csky_arg_partial_bytes): Likewise.
12797         * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise.
12798         * config/fr30/fr30.c: Include calls.h.
12799         (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode,
12800         type and named flag.
12801         * config/frv/frv.c: Include calls.h.
12802         (frv_arg_partial_bytes): Take a function_arg_info instead of a mode,
12803         type and named flag.
12804         * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise.
12805         * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise.
12806         * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise.
12807         * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise.
12808         * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise.
12809         * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise.
12810         * config/microblaze/microblaze.c (function_arg_partial_bytes):
12811         Likewise.
12812         * config/mips/mips.c (mips_arg_partial_bytes): Likewise.
12813         * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise.
12814         * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise.
12815         * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise.
12816         * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise.
12817         * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise.
12818         * config/pa/pa.c (pa_arg_partial_bytes): Likewise.
12819         * config/pru/pru.c (pru_arg_partial_bytes): Likewise.
12820         * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise.
12821         * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise.
12822         * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise.
12823         (rs6000_parm_needs_stack): Update call accordingly.
12824         * config/sh/sh.c (sh_arg_partial_bytes): Take a
12825         function_arg_info instead of a mode, type and named flag.
12826         * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise.
12827         * config/v850/v850.c (v850_arg_partial_bytes): Likewise.
12829 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12831         * calls.h (must_pass_va_arg_in_stack): Declare.
12832         * calls.c (must_pass_va_arg_in_stack): New function.
12833         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it.
12834         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
12835         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
12836         Likewise.
12837         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12839 2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
12841         * calls.h (pass_va_arg_by_reference): Declare.
12842         * calls.c (pass_va_arg_by_reference): New function.
12843         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it.
12844         * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise.
12845         * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise.
12846         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
12847         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
12848         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise.
12849         (mips_gimplify_va_arg_expr): Likewise.
12850         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise.
12851         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
12852         * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise.
12853         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
12854         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12855         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
12856         * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise.
12857         * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise.
12858         * config/visium/visium.c (visium_gimplify_va_arg): Likewise.
12859         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
12860         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
12862 2019-08-20  Richard Biener  <rguenther@suse.de>
12864         PR target/91498
12865         * config/i386/i386-features.c (general_scalar_chain::convert_op):
12866         Use (vec_merge (vec_duplicate..)) style vector from scalar move.
12867         (convert_scalars_to_vector): Add timode_p parameter and use it
12868         to guard TImode-only operation.
12869         (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT.
12870         (pass_stv::execute): Pass down timode_p.
12872 2019-08-20  Lili Cui  <lili.cui@intel.com>
12874         * common/config/i386/i386-common.c
12875         (processor_names): Add tigerlake and cooperlake.
12876         (processor_alias_table): Add tigerlake and cooperlake.
12877         * config.gcc: Add -march=tigerlake and cooperlake.
12878         * config/i386/driver-i386.c
12879         (host_detect_local_cpu): Detect tigerlake and cooperlake.
12880         Add "has_avx" to classify processor.
12881         * config/i386/i386-builtins.c (processor_model) :
12882         Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE.
12883         (arch_names_table): Add tigerlake and cooperlake.
12884         (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE
12885         and PROCESSOR_COOPERLAKE.
12886         * config/i386/i386-c.c
12887         (ix86_target_macros_internal): Handle tigerlake and cooperlake.
12888         * config/i386/i386-options.c
12889         (m_TIGERLAKE): Define.
12890         (m_COOPERLAKE): Ditto.
12891         (m_CORE_AVX512): Ditto.
12892         (processor_cost_table): Add cascadelake.
12893         (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B.
12894         * config/i386/i386.h
12895         (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE.
12896         (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12897         (PTA_MOVDIRI): Ditto.
12898         (PTA_MOVDIR64B): Ditto.
12899         (PTA_COOPERLAKE): Ditto.
12900         (PTA_TIGERLAKE): Ditto.
12901         (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE.
12902         * doc/extend.texi: Add tigerlake and cooperlake.
12903         * doc/invoke.texi: Add tigerlake and cooperlake.
12905 2019-08-20  Gerald Pfeifer  <gerald@pfeifer.com>
12907         * doc/install.texi (Specific, alpha): Remove note to use
12908         binutils 2.11.2 or later.
12910 2019-08-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12912         PR middle-end/89544
12913         * function.c (assign_parm_find_stack_rtl): Use larger alignment
12914         when possible.
12916 2019-08-19  Joel Hutton  <Joel.Hutton@arm.com>
12918         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype
12919         * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function
12920         * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern
12921         (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern
12922         * config/aarch64/constraints.md (Dt): New constraint
12923         * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate
12925 2019-08-19  Richard Biener  <rguenther@suse.de>
12927         PR tree-optimization/91403
12928         * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline
12929         cases we can handle with tail-recursion...
12930         (follow_ssa_edge_expr): ... here.  Do so.
12932 2019-08-19  Kito Cheng  <kito.cheng@sifive.com>
12934         PR target/91441
12935         * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is
12936         implemented for -fsanitize=kernel-address, and merge check logic
12937         with -fsanitize=address.
12939 2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
12941         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
12942         for cpu and machine.  Factor 64/32b builtins.
12944 2019-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
12946         * doc/install.texi (Specific, bfin): blackfin.uclinux.org is
12947         gone, point to sourceforge.net.
12949 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
12950         
12951         * doc/ux.texi (User Experience Guidelines): Update reference.
12953 2019-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
12954         
12955         * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why
12956         not LGPL".
12958 2019-08-16  Eric Botcazou  <ebotcazou@adacore.com>
12960         * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead
12961         of NULL.  Add guard for broken VIEW_CONVERT_EXPRs.
12963 2019-08-16  Martin Sebor  <msebor@redhat.com>
12965         * tree.def (TYPE_SIZE): Clarify.
12966         * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
12968 2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12970         PR tree-optimization/91109
12971         * lra-int.h (lra_need_for_scratch_reg_p): Declare.
12972         * lra.c (lra): Use lra_need_for_scratch_reg_p.
12973         * lra-spills.c (lra_need_for_scratch_reg_p): New function.
12975 2019-08-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12977         * config/i386/mmx.md (mmxdoublemode): New mode attribute.
12978         (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and
12979         mmx_uavgv4hi3 using MMXMODE12 mode iterator.
12980         (uavg<mode>3_ceil): New expander.
12981         * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode
12982         mode iterator when creating CONST1_RTX.
12983         (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto.
12984         (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode
12985         mode iterator for const1_operand predicate.
12987 2019-08-16  Richard Biener  <rguenther@suse.de>
12989         * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare.
12990         (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of
12991         follow_ssa_edge.
12992         (follow_ssa_edge_in_condition_phi_branch): Likewise.
12993         (analyze_evolution_in_loop): Likewise.
12994         (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ...
12995         (follow_ssa_edge_expr): ... here.  Refactor code.
12997 2019-08-16  Richard Biener  <rguenther@suse.de>
12999         PR target/91469
13000         * config/i386/i386-features.c
13001         (general_scalar_chain::replace_with_subreg): Stop at memory operands.
13003 2019-08-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13005         PR other/91255
13006         * gensupport.c (has_subst_attribute): Error out on set_attr_alternative
13007         only if subst_name matches curr_attr string.
13009 2019-08-16  Richard Biener  <rguenther@suse.de>
13011         * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove
13012         stmt at gsi_p, instead replace it with a NOP removed later.
13013         (pass_forwprop::execute): Fully propagate lattice, DCE stmts
13014         that became dead because of that.
13016 2019-08-16  Aldy Hernandez  <aldyh@redhat.com>
13018         * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs
13019         for which we can't represent a range.
13020         * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to
13021         set_varying.
13022         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
13023         Set VR_UNDEFINED if type is not supported.
13024         * tree-ssanames.c (get_range_info): Pass type to set_varying.
13025         * tree-vrp.c (value_range_base::check): Assert that a varying has
13026         min/max set.
13027         (value_range_base::equal_p): Early bail for undefines.
13028         (value_range_base::set_varying): Accept a type.
13029         (value_range::set_varying): Same.
13030         (value_range_base::type): VARYING can have a type, while UNDEFINE
13031         is typeless.
13032         (value_range_base::dump): Print type for VARYING nodes.
13033         (value_range_base::set): Add type to VARYING.
13034         (extract_range_from_multiplicative_op): Pass type to set_varying.
13035         (extract_range_from_binary_expr): Same.
13036         (value_range_base::intersect_helper): Same.
13037         (value_range_base::union_helper): Same.
13038         (value_range_base::normalize_symbolics): Same.
13039         (determine_value_range_1): Same.
13040         * tree-vrp.h (class value_range_base): Add type to set_varying.
13041         Add prototype for dump(void).
13042         Add prototype for supports_type_p.
13043         (class value_range): Add type to set_varying.
13044         Add prototype for dump(void).
13045         * vr-values.c (set_value_range_to_truthvalue): Pass type to
13046         set_varying.
13047         (vr_values::get_lattice_entry): Set varying even if propagation
13048         finished.
13049         Pass type to set_varying.
13050         (vr_values::get_value_range): Remove vr_const_varying.
13051         Reallocate the lattice if needed.
13052         (vr_values::update_value_range): Pass type to set_varying.
13053         (vr_values::extract_range_for_var_from_comparison_expr): Same.
13054         (vr_values::extract_range_from_binary_expr): Same.
13055         (vr_values::extract_range_from_unary_expr): Same.
13056         (vr_values::extract_range_from_cond_expr): Same.
13057         (vr_values::check_for_binary_op_overflow): Same.
13058         (vr_values::extract_range_basic): Same.
13059         (vr_values::extract_range_from_assignment): Same.
13060         (vr_values::vr_values): Increase size of num_vr_values.
13061         (vr_values::extract_range_from_phi_node): Pass type to
13062         set_varying.
13064 2019-08-15  H.J. Lu  <hongjiu.lu@intel.com>
13066         PR target/90878
13067         * config/i386/i386.c (inline_memory_move_cost): Use hard_register
13068         for costs of hard register moves.
13069         (ix86_register_move_cost): Likewise.
13070         * config/i386/i386.h (processor_costs): Move costs of hard
13071         register moves to hard_register.  Add int_load, int_store,
13072         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
13073         sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
13074         for costs of RTL expressions.
13075         * config/i386/x86-tune-costs.h: Move costs of hard register
13076         moves to hard_register.  Duplicate int_load, int_store,
13077         xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
13078         sse_load, sse_store for costs of RTL expressions.
13080 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13082         * target.def (setup_incoming_vararg_bounds): Remove.
13083         * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
13084         * doc/tm.texi: Regenerate.
13085         * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
13086         * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
13087         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
13088         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
13090 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
13092         MSP430: Fix lines over 80 characters long in
13093         config/msp430/*.{c,h} files
13095         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
13096         specifier in string.
13097         (msp430_select_hwmult_lib): Split line more than 80 characters long.
13098         * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
13099         redundant old comment.
13100         * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
13101         Split line more than 80 characters long.
13102         * config/msp430/msp430.c (msp430_option_override): Likewise.
13103         (msp430_return_in_memory): Likewise.
13104         (msp430_gimplify_va_arg_expr): Likewise.
13105         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
13106         (msp430_legitimate_constant): Likewise.
13107         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
13108         (msp430_attr): Likewise.
13109         (msp430_data_attr): Likewise.
13110         (msp430_start_function): Likewise.
13111         (gen_prefix): Likewise.
13112         (msp430_init_sections): Likewise.
13113         (msp430_select_section): Likewise.
13114         (msp430_function_section): Likewise.
13115         (msp430_unique_section): Likewise.
13116         (msp430_output_aligned_decl_common): Likewise.
13117         (msp430_do_not_relax_short_jumps): Likewise.
13118         (msp430_init_builtins): Likewise.
13119         (msp430_expand_delay_cycles): Likewise.
13120         (msp430_expand_prologue): Likewise.
13121         (msp430_expand_epilogue): Likewise.
13122         (msp430_expand_helper): Likewise.
13123         (msp430_split_movsi): Likewise.
13124         (msp430_print_operand): Likewise.
13125         (msp430_return_addr_rtx): Likewise.
13126         (msp430x_extendhisi): Likewise.
13127         * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
13128         (ASM_SPEC): Likewise.
13129         Remove very obvious comments.
13130         (LIB_SPEC): Split line more than 80 characters long.
13131         (EH_RETURN_HANDLER_RTX): Likewise.
13132         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
13134 2019-08-15  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
13136         MSP430: Fix whitespace errors and incorrect indentation in
13137         config/msp430/*.{c,h} files
13139         * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
13140         (msp430_select_hwmult_lib): Likewise.
13141         * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
13142         (msp430_extract_mcu_data): Likewise.
13143         (struct t_msp430_mcu_data): Likewise.
13144         * config/msp430/msp430.c (struct machine_function): Remove whitespace
13145         before left square bracket.
13146         (msp430_option_override): Fix indentation.
13147         (msp430_hard_regno_nregs_with_padding): Likewise.
13148         (msp430_initial_elimination_offset): Likewise.
13149         (msp430_special_register_convention_p): Remove whitespace before left
13150         square bracket and after exclamation mark.
13151         (msp430_evaluate_arg): Likewise.
13152         (msp430_callee_copies): Fix indentation.
13153         (msp430_gimplify_va_arg_expr): Likewise.
13154         (msp430_function_arg_advance): Remove whitespace before left square
13155         bracket.
13156         (reg_ok_for_addr): Likewise.
13157         (msp430_preserve_reg_p): Likewise.
13158         (msp430_compute_frame_info): Likewise.
13159         (msp430_asm_output_addr_const_extra): Add space between function name
13160         and open parenthesis.
13161         (has_section_name): Fix indentation.
13162         (msp430_attr): Remove trailing whitespace.
13163         (msp430_section_attr): Likewise.
13164         (msp430_data_attr): Likewise.
13165         (struct msp430_attribute_table): Fix comment and whitespace.
13166         (msp430_start_function): Remove whitespace before left square bracket.
13167         Add space between function name and open parenthesis.
13168         (msp430_select_section): Remove trailing whitespace.
13169         (msp430_section_type_flags): Remove trailing whitespace.
13170         (msp430_unique_section): Remove space before closing parenthesis.
13171         (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
13172         (msp430_builtins): Remove whitespace before left square bracket.
13173         (msp430_init_builtins): Fix indentation.
13174         (msp430_expand_prologue): Remove whitespace before left square bracket.
13175         Remove space before closing parenthesis.
13176         (msp430_expand_epilogue): Remove whitespace before left square bracket.
13177         (msp430_split_movsi): Remove space before closing parenthesis.
13178         (helper_function_name_mappings): Fix indentation.
13179         (msp430_use_f5_series_hwmult): Fix whitespace.
13180         (use_32bit_hwmult): Likewise.
13181         (msp430_no_hwmult): Likewise.
13182         (msp430_output_labelref): Remove whitespace before left square bracket.
13183         (msp430_print_operand_raw): Likewise.
13184         (msp430_print_operand_addr): Likewise.
13185         (msp430_print_operand): Add two spaces after '.' in comment.
13186         Fix trailing whitespace.
13187         (msp430x_extendhisi): Fix indentation.
13188         * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
13189         tab.
13190         (PC_REGNUM): Likewise.
13191         (STACK_POINTER_REGNUM): Likewise.
13192         (CC_REGNUM): Likewise.
13194 2019-08-15  Richard Biener  <rguenther@suse.de>
13196         PR target/91454
13197         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
13198         helper.
13199         (general_scalar_chain::make_vector_copies): Use it.
13201 2019-08-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13203         * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
13205 2019-08-15  Martin Liska  <mliska@suse.cz>
13207         * tree-ssa-dce.c (propagate_necessity): We can't reach now
13208         operators with no arguments.
13209         (eliminate_unnecessary_stmts): Likewise here.
13211 2019-08-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13213         * config/i386/i386-features.c (general_scalar_chain::convert_insn)
13214         <case COMPARE>: Revert 2019-08-14 change.
13215         (convertible_comparison_p): Revert 2019-08-14 change.  Return false
13216         for (TARGET_64BIT || mode != DImode).
13218 2019-08-15  Aldy Hernandez  <aldyh@redhat.com>
13220         * tree-vrp.c (value_range_base::set): Merge in code from
13221         value_range_base::set_and_canonicalize.
13222         Enforce canonicalization at set time.
13223         Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
13224         (value_range_base::set_undefined): Inline call to set().
13225         (value_range_base::set_varying): Same.
13226         (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
13227         (vrp_val_max): New argument handle_pointers.
13228         (vrp_val_min): Same.
13229         (ranges_from_anti_range): Same.
13230         (extract_range_into_wide_ints): Use tree argument instead of sign
13231         and precision.
13232         (extract_range_from_multiplicative_op): Take in tree type instead
13233         of precision and sign.  Adapt function for canonicalized ranges.
13234         (extract_range_from_binary_expr): Pass type to
13235         extract_range_from_multiplicative_op.
13236         Adapt for canonicalized ranges.
13237         (extract_range_from_unary_expr): Same.
13238         (value_range_base::intersect_helper): Adjust for canonicalized
13239         ranges.
13240         (value_range_base::union_helper): Same.
13241         (value_range_base::normalize_symbolics): New.
13242         * tree-vrp.h (class value_range_base): Remove
13243         set_and_canonicalize.
13244         New prototype for normalize_symbolics.
13245         (class value_range): Remove set_and_canonicalize.
13246         (vrp_val_min): Adjust prototype.
13247         (vrp_val_max): Same.
13248         * vr-values.c
13249         (vr_values::extract_range_for_var_from_comparison_expr):  Call set
13250         instead of set_and_canonicalize.
13252 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13254         PR middle-end/91444
13255         * tree-vect-stmts.c (vectorizable_call): Check that the function
13256         is a BUILT_IN_MD function before passing it to
13257         targetm.vectorize.builtin_md_vectorized_function.
13259 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13261         * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
13262         * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
13263         (aarch64_select_early_remat_modes): Use it.
13265 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13267         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
13268         16 for SVE predicates even if they are fixed-length.
13270 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13272         * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
13273         operand order match the MOV /Z alias.
13275 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13277         * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
13278         the vector pattern as an aarch64_svpattern argument.  Update the
13279         overloaded caller accordingly.
13280         (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
13281         (aarch64_output_sve_vector_inc_dec): Likewise.
13283 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13285         * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
13286         multiplication case, try to compute VG * (lowest set bit) directly
13287         rather than always basing the multiplication on VG.  Use
13288         expand_mult for the multiplication if we can.
13290 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13292         * config/aarch64/aarch64-protos.h
13293         (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
13294         (aarch64_sve_inc_dec_immediate_p): Rename to...
13295         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
13296         (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
13297         (aarch64_output_sve_scalar_inc_dec): Declare.
13298         (aarch64_output_sve_inc_dec_immediate): Rename to...
13299         (aarch64_output_sve_vector_inc_dec): ...this.
13300         * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
13301         (aarch64_output_sve_scalar_inc_dec): New functions.
13302         (aarch64_output_sve_addvl_addpl): Remove the base and offset
13303         arguments.  Only handle true ADDVL and ADDPL instructions;
13304         don't emit an INC or DEC.
13305         (aarch64_sve_inc_dec_immediate_p): Rename to...
13306         (aarch64_sve_vector_inc_dec_immediate_p): ...this.
13307         (aarch64_output_sve_inc_dec_immediate): Rename to...
13308         (aarch64_output_sve_vector_inc_dec): ...this.  Update call to
13309         aarch64_sve_vector_inc_dec_immediate_p.
13310         * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
13311         (aarch64_sve_plus_immediate): New predicates.
13312         (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
13313         rather than aarch64_sve_addvl_addpl_immediate.
13314         (aarch64_sve_inc_dec_immediate): Rename to...
13315         (aarch64_sve_vector_inc_dec_immediate): ...this.  Update call to
13316         aarch64_sve_vector_inc_dec_immediate_p.
13317         (aarch64_sve_add_operand): Update accordingly.
13318         * config/aarch64/constraints.md (Uai): New constraint.
13319         (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
13320         * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
13321         operand into a register if it satisfies aarch64_sve_plus_immediate.
13322         (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
13323         for Uai.  Update calls to aarch64_output_sve_addvl_addpl.
13324         * config/aarch64/aarch64-sve.md (add<mode>3): Call
13325         aarch64_output_sve_vector_inc_dec instead of
13326         aarch64_output_sve_inc_dec_immediate.
13328 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13330         * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
13331         (UNSPEC_REVW): New constants.
13332         (elem_bits): New mode attribute.
13333         (SVE_INT_UNARY): New int iterator.
13334         (optab): Handle UNSPEC_REV[BHW].
13335         (sve_int_op): New int attribute.
13336         (min_elem_bits): Handle VNx16QI and the predicate modes.
13337         * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
13338         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
13339         (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
13340         * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
13341         (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
13342         (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
13343         unspecs based on the total width of the reversed data.
13344         (aarch64_evpc_rev_local): Likewise (for SVE only).  Use a
13345         reinterpret followed by a subreg on big-endian targets.
13347 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13348             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13350         * config/aarch64/aarch64-sve.md
13351         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
13352         alternatives in which one of the inputs is in the same register
13353         as the output.
13355 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13357         * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
13358         (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
13360 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13362         * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
13363         FADD and FSUB alternatives.  Add a MOVPRFX alternative for FSUBR.
13365 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13366             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13368         * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
13369         (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
13370         (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
13372 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13373             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13375         * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
13376         Add an alternative that uses reversed shifts.
13378 2019-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13380         * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
13381         struct.
13383 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13385         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
13386         a commutativity marker.
13388 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13389             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13391         * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
13392         (aarch64_prepare_sve_cond_int_fma): Declare.
13393         * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
13394         (aarch64_prepare_sve_int_fma): New functions.
13395         (aarch64_prepare_sve_cond_int_fma): Likewise.
13396         * config/aarch64/aarch64-sve.md
13397         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
13398         (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
13399         (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
13400         (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
13401         (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
13402         (*madd<mode>): Rename to...
13403         (*fma<mode>4): ...this.
13404         (*msub<mode>): Rename to...
13405         (*fnma<mode>4): ...this.
13407 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13408             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13410         * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
13411         Print 2.0 naturally.
13412         (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
13413         * config/aarch64/predicates.md
13414         (aarch64_sve_float_negated_arith_immediate): New predicate,
13415         renamed from aarch64_sve_float_arith_with_sub_immediate.
13416         (aarch64_sve_float_arith_with_sub_immediate): Test for both
13417         positive and negative constants.
13418         (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
13419         or an aarch64_sve_float_arith_with_sub_immediate.
13420         * config/aarch64/constraints.md (vsN): Use
13421         aarch64_sve_float_negated_arith_immediate.
13422         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
13423         iterator.
13424         (sve_pred_fp_rhs2_immediate): New int attribute.
13425         * config/aarch64/aarch64-sve.md
13426         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
13427         sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
13428         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
13429         (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
13430         (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
13431         (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
13433 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13434             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13436         * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
13437         (*aarch64_cond_abd<SVE_F:mode>_3)
13438         (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
13440 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13441             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13443         * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
13444         (*aarch64_cond_<su>abd<mode>_any): New patterns.
13446 2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
13447             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13449         * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
13450         * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
13451         * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
13452         * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
13453         optabs.
13454         * optabs.h (create_convert_operand_from): Expand comment.
13455         * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
13456         when mapping scalar rtxes to vector operands.
13457         * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
13458         ashiftrt and lshiftrt.
13459         (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
13460         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
13461         (*cond_<optab><mode>_any_const): New patterns.
13463 2019-08-15  Martin Liska  <mliska@suse.cz>
13465         PR ipa/91438
13466         * cgraph.c (cgraph_node::remove): When setting
13467         n->origin = NULL for all nested functions, reset
13468         also next_nested.
13470 2019-08-15  Martin Liska  <mliska@suse.cz>
13472         * cgraph.c (cgraph_node::verify_node): Verify origin, nested
13473         and next_nested.
13475 2019-08-15  Martin Liska  <mliska@suse.cz>
13477         PR ipa/91404
13478         * passes.c (order): Remove.
13479         (uid_hash_t): Likewise).
13480         (remove_cgraph_node_from_order): Remove from set
13481         of pointers (cgraph_node *).
13482         (insert_cgraph_node_to_order): New.
13483         (duplicate_cgraph_node_to_order): New.
13484         (do_per_function_toporder): Register all 3 cgraph hooks.
13485         Skip removed_nodes now as we know about all of them.
13487 2019-08-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
13489         * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
13490         <case E_V8QImode>: Use vector_set path for
13491         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13492         (ix86_expand_vector_init_one_var) <case E_V8QImode>:
13493         Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
13495 2019-08-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13497         * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
13499 2019-08-14  Martin Sebor  <msebor@redhat.com>
13501         PR tree-optimization/91294
13502         * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
13503         source length as exact.
13505 2019-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
13507         * doc/extend.texi: Add "noinit" attribute documentation.
13508         * doc/sourcebuild.texi: Add noinit effective target documentation.
13509         * varasm.c (default_section_type_flags): Add support for "noinit"
13510         section.
13511         (default_elf_select_section): Add support for "noinit" attribute.
13512         * config/msp430/msp430.c (msp430_attribute_table): Remove
13513         "noinit" entry.
13515 2019-08-14  Richard Biener  <rguenther@suse.de>
13516             UroÅ¡ Bizjak  <ubizjak@gmail.com>
13518         PR target/91154
13519         * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
13520         mode arguments.
13521         (scalar_chain::smode): New member.
13522         (scalar_chain::vmode): Likewise.
13523         (dimode_scalar_chain): Rename to...
13524         (general_scalar_chain): ... this.
13525         (general_scalar_chain::general_scalar_chain): Take mode arguments.
13526         (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
13527         base with TImode and V1TImode.
13528         * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
13529         (general_scalar_chain::vector_const_cost): Adjust for SImode
13530         chains.
13531         (general_scalar_chain::compute_convert_gain): Likewise.  Add
13532         {S,U}{MIN,MAX} support.
13533         (general_scalar_chain::replace_with_subreg): Use vmode/smode.
13534         (general_scalar_chain::make_vector_copies): Likewise.  Handle
13535         non-DImode chains appropriately.
13536         (general_scalar_chain::convert_reg): Likewise.
13537         (general_scalar_chain::convert_op): Likewise.
13538         (general_scalar_chain::convert_insn): Likewise.  Add
13539         fatal_insn_not_found if the result is not recognized.
13540         (convertible_comparison_p): Pass in the scalar mode and use that.
13541         (general_scalar_to_vector_candidate_p): Likewise.  Rename from
13542         dimode_scalar_to_vector_candidate_p.  Add {S,U}{MIN,MAX} support.
13543         (scalar_to_vector_candidate_p): Remove by inlining into single
13544         caller.
13545         (general_remove_non_convertible_regs): Rename from
13546         dimode_remove_non_convertible_regs.
13547         (remove_non_convertible_regs): Remove by inlining into single caller.
13548         (convert_scalars_to_vector): Handle SImode and DImode chains
13549         in addition to TImode chains.
13550         * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
13551         (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
13552         (*<maxmin>di3_doubleword): Likewise.
13554 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13555             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13557         * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
13558         (*cond_bic<mode>_any): New patterns.
13560 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13562         * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
13563         take the equivalent mask, as well as a bit count.
13564         * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
13565         (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
13566         (aarch64_sve_pred_and_operand): New predicates.
13567         * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
13568         code attribute.
13569         * config/aarch64/aarch64-sve.md
13570         (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
13571         (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
13573 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13575         * config/aarch64/aarch64-sve.md
13576         (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
13577         (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
13578         New patterns.
13580 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13581             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13583         * config/aarch64/aarch64-sve.md
13584         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
13585         (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
13587 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13588             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13590         * config/aarch64/aarch64-sve.md
13591         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
13592         (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
13594 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13596         * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
13597         * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
13598         New pattern.
13600 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13601             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13603         * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
13605 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13606             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13608         * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
13609         (aarch64_print_vector_float_operand): Also handle 8-bit floats.
13610         (aarch64_print_operand): Add support for %I.
13611         (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
13612         Bitcast floating-point constants to the corresponding integer constant.
13613         (aarch64_float_const_representable_p): Handle vectors as well
13614         as scalars.
13615         (aarch64_expand_sve_vcond): Make sure that the operands are valid
13616         for the new vcond_mask_<mode><vpred> expander.
13617         * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
13618         test aarch64_float_const_representable_p.
13619         (aarch64_sve_reg_or_dup_imm): New predicate.
13620         * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
13621         gen_vcond_mask_<mode><vpred> instead of
13622         gen_aarch64_sve_dup<mode>_const.
13623         (vcond_mask_<mode><vpred>): Turn into a define_expand that
13624         accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
13625         for operands 1 and 2 respectively.  Force operand 2 into a
13626         register if operand 1 is a register.  Fold old define_insn...
13627         (aarch64_sve_dup<mode>_const): ...and this define_insn...
13628         (*vcond_mask_<mode><vpred>): ...into this new pattern.  Handle
13629         floating-point constants that can be moved as integers.  Add
13630         alternatives for MOV /M and FMOV /M.
13631         (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
13632         (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
13633         1 and 2 respectively.
13634         * config/aarch64/constraints.md (Ufc): Handle vectors as well
13635         as scalars.
13636         (vss): New constraint.
13638 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13640         * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
13641         (aarch64_sve_float_maxmin_operand): New predicates.
13642         * config/aarch64/constraints.md (vsB): New constraint.
13643         (vsM): Fix typo.
13644         * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
13645         aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
13646         UNSPEC_COND_FMINNM.
13647         * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
13648         Use aarch64_sve_float_maxmin_operand for operand 2.
13649         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
13650         Add alternatives for the constant forms.
13652 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13654         * config/aarch64/constraints.md (vsb): New constraint.
13655         (vsm): Generalize description.
13656         * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
13657         iterator.
13658         (sve_imm_con): Handle smax, smin, umax and umin.
13659         (sve_imm_prefix): New code attribute.
13660         * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
13661         (aarch64_sve_vsb_operand): New predicates.
13662         (aarch64_sve_mul_immediate): Rename to...
13663         (aarch64_sve_vsm_immediate): ...this.
13664         (aarch64_sve_mul_operand): Rename to...
13665         (aarch64_sve_vsm_operand): ...this.
13666         * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
13667         (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
13668         (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
13669         (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
13670         (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
13671         add movprfx support for the immediate alternatives.
13672         (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
13673         of the above.
13674         (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
13675         for operand 3.
13677 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13679         * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
13680         * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
13681         (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
13683 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13685         * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
13686         (optab, sve_int_op): Handle them.
13687         * config/aarch64/aarch64-sve.md: Expand comment.
13689 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13691         * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
13692         * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
13693         (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
13695 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13697         * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
13698         (aarch64_expand_sve_const_pred_trn): New functions.
13699         (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
13700         use the above functions when the parameter is true.
13701         (aarch64_expand_sve_const_pred): Update call accordingly.
13702         * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
13703         Rename to...
13704         (@aarch64_sve_<perm_insn><mode>): ...this.
13706 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13708         * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
13709         Declare.
13710         * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
13711         (aarch64_sve_emit_int_cmp): New functions.
13712         (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
13713         (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
13714         (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
13715         * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
13716         (UNSPEC_PRED_Z): New unspec.
13717         (set_clobber_cc_nzc): Delete.
13718         * config/aarch64/aarch64-sve.md: Add a block comment about
13719         UNSPEC_PRED_Z.
13720         (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
13721         (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
13722         the old pattern with that name.  Use UNSPEC_PRED_Z instead of
13723         UNSPEC_MERGE_PTRUE.
13724         (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
13725         UNSPEC_MERGE_PTRUE.  Use aarch64_sve_same_pred_for_ptest_p to
13726         check for compatible predicates.
13727         (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
13728         (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
13729         of UNSPEC_MERGE_PTRUE.  Split into the new form of predicated
13730         comparisons above.
13732 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13734         * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
13735         * config/aarch64/aarch64-sve.md: Add a section describing it.
13736         (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
13737         (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
13738         (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
13739         (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
13740         (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
13741         (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
13742         (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
13743         (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
13744         (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
13745         UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
13746         * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
13747         (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
13748         * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
13749         (aarch64_evpc_rev_local): Update accordingly.
13751 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13753         * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
13754         iterators.
13755         (SVE_BHSI, SVE_SDI): Tweak comment.
13756         (SVE_HSDI): Likewise.  Fix definition.
13757         (SVE_SDF): New mode iterator.
13758         (elem_bits): New mode attribute.
13759         (SVE_COND_FCVT): New int iterator.
13760         * config/aarch64/aarch64-sve.md
13761         (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
13762         (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
13763         (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
13764         (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
13765         (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
13766         ...these new patterns.
13767         (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
13768         (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
13769         (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
13770         Merge into...
13771         (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
13772         (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
13773         ...these new patterns.
13774         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
13775         (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
13776         (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
13777         ...this new pattern.
13778         (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
13779         (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
13780         ...this new pattern.
13781         (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
13783 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13785         * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
13786         * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
13787         (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
13788         unspecs.
13789         (optab, su): Handle them.
13790         (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
13791         * config/aarch64/aarch64-sve.md
13792         (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
13793         (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
13794         (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
13795         (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
13796         (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
13797         (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
13798         (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
13799         (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
13800         (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
13801         FIXUORS.
13802         (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
13803         (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
13804         (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
13805         (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
13806         (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
13807         (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
13808         (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
13809         (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
13810         (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
13811         operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
13812         (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
13813         (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
13814         of UNSPEC_FLOAT_CONVERT.
13815         (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
13816         aarch64_sve_extend<mode><Vwide>2.
13818 2019-08-14  Richard Biener  <rguenther@suse.de>
13820         PR target/91154
13821         * config/i386/i386-features.c
13822         (dimode_scalar_chain::compute_convert_gain): Compute and dump
13823         individual instruction gain.  Fix reg-reg copy GRP cost.  Use
13824         ix86_cost->sse_op for vector instruction costs.
13826 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13828         * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
13829         (cmp_op): Handle it.
13830         (SVE_COND_FP_CMP): Rename to...
13831         (SVE_COND_FP_CMP_I0): ...this.
13832         (SVE_FP_CMP): Remove.
13833         * config/aarch64/aarch64-sve.md
13834         (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
13835         (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
13836         using unspecs to represent the comparison.
13837         (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
13838         (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
13839         accordingly.
13840         * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
13841         (aarch64_unspec_cond_code): Move after integer code.  Handle
13842         UNORDERED.
13843         (aarch64_emit_sve_predicated_cond): Replace with...
13844         (aarch64_emit_sve_fp_cond): ...this new function.
13845         (aarch64_emit_sve_or_conds): Replace with...
13846         (aarch64_emit_sve_or_fp_conds): ...this new function.
13847         (aarch64_emit_sve_inverted_cond): Replace with...
13848         (aarch64_emit_sve_invert_fp_cond): ...this new function.
13849         (aarch64_expand_sve_vec_cmp_float): Update accordingly.
13851 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13853         * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
13854         (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
13855         * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
13856         SVE_HSD instead of SVE_SD.
13858 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13859             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13861         * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
13862         iterator.
13863         (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
13864         attributes.
13865         * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
13866         (mul<SVE_F:mode>3, div<SVE_F:mode>3)
13867         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
13868         (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
13869         (*div<SVE_F:mode>3): Generalize to...
13870         (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
13872 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13873             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13875         * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
13876         constants.
13877         * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
13878         predicate.
13879         * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
13880         Declare.
13881         * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
13882         function.
13883         * config/aarch64/aarch64-sve.md: Add a block comment about the
13884         handling of predicated FP operations.
13885         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
13886         (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
13887         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13888         (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
13889         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
13890         operand.
13891         (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
13892         (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
13893         operand.
13894         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
13895         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
13896         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
13897         (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
13898         (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
13899         (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
13900         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
13901         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
13902         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
13903         (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
13904         strictness operands.  Use aarch64_sve_pred_dominates_p to check
13905         whether the predicate on the conditional operation is suitable
13906         for merging.  Split patterns into the canonical equal-predicate form.
13907         (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
13908         Restrict the unpredicated alternatives to SVE_RELAXED_GP.
13910 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13911             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13913         * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
13914         (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
13915         (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
13916         rtx codes.
13917         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
13918         (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
13919         unspecs.
13921 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13922             Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
13924         * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
13925         (*bic<SVE_I:mode>3): ...this.  Match the form that an SVE inverse
13926         actually has, rather than relying on REG_EQUAL notes.
13927         Make the insn operand order match the SVE operand order.
13928         (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
13929         the SVE operand order.
13931 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13933         * config/aarch64/aarch64.c (aarch64_target_reg): New function.
13934         (aarch64_emit_set_immediate): Likewise.
13935         (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
13936         (aarch64_pfalse_reg): Likewise.
13937         (aarch64_convert_sve_data_to_pred): New function.
13938         (aarch64_sve_move_pred_via_while): Take an optional target register
13939         and the required register mode.
13940         (aarch64_expand_sve_const_pred_1): New function.
13941         (aarch64_expand_sve_const_pred): Likewise.
13942         (aarch64_expand_mov_immediate): Build an all-true predicate
13943         if the significant bits of the immediate are all true.  Use
13944         aarch64_expand_sve_const_pred for all compile-time predicate constants.
13945         (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
13946         before register allocation.
13947         * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
13948         a VNx16BI PTRUE when splitting the memory alternative.
13949         (vec_duplicate<mode>): Update accordingly.
13950         (*pred_cmp<cmp_op><mode>): Rename to...
13951         (@aarch64_pred_cmp<cmp_op><mode>): ...this.
13953 2019-08-14  Richard Sandiford  <richard.sandiford@arm.com>
13955         * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
13956         * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
13957         * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
13958         (UNSPEC_PTEST): New unspec.
13959         (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
13960         * config/aarch64/iterators.md (data_bytes): New mode attribute.
13961         * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
13962         * config/aarch64/aarch64-sve.md: Add a new section describing the
13963         handling of UNSPEC_PTEST.
13964         (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
13965         (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
13966         (ptest_ptrue<mode>): Replace with...
13967         (aarch64_ptest<mode>): ...this new pattern.
13968         (cbranch<mode>4): Update after above changes.
13969         (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
13970         UNSPEC_PTEST_PTRUE.
13971         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
13972         (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
13973         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
13975 2019-08-14  Xiong Hu Luo  <luoxhu@linux.ibm.com>
13977         PR lto/91287
13978         * builtins.c (builtin_with_linkage_p): New function.
13979         * builtins.h (builtin_with_linkage_p): New function.
13980         * symtab.c (write_symbol): Remove redundant assert.
13981         * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
13982         Remove FIXME and use builtin_with_linkage_p.
13984 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
13986         PR middle-end/91421
13987         * tree-core.h (function_decl::function_code): Change type to
13988         unsigned int.
13989         * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
13990         (DECL_UNCHECKED_FUNCTION_CODE): ...this.
13991         (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
13992         (DECL_FUNCTION_CODE): New function.  Assert that the built-in class
13993         is BUILT_IN_NORMAL.
13994         (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
13995         (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
13996         (fndecl_built_in_p): Change the type of the "name" argument to
13997         unsigned int.
13998         * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
13999         after check for DECL_BUILT_IN_CLASS.
14000         * cgraphclones.c (build_function_decl_skip_args): Use
14001         set_decl_built_in_function.
14002         * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
14003         * ipa-split.c (split_function): Likewise.
14004         * langhooks.c (add_builtin_function_common): Likewise.
14005         * omp-simd-clone.c (simd_clone_create): Likewise.
14006         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
14007         * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
14008         (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
14009         DECL_FUNCTION_CODE.
14010         * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
14011         instead of DECL_FUNCTION_CODE.
14012         * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
14013         instead of DECL_FUNCTION_CODE.
14014         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
14015         * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
14016         printing DECL_BUILT_IN_MD.  Handle DECL_BUILT_IN_FRONTEND.
14017         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
14018         (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
14019         DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
14020         * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
14021         * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
14022         (alpha_gimple_fold_builtin): Likewise.
14023         * config/arc/arc.c (arc_expand_builtin): Likewise.
14024         * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
14025         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
14026         * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
14027         * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
14028         * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
14029         * config/frv/frv.c (frv_expand_builtin): Likewise.
14030         * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
14031         (gcn_expand_builtin): Likewise.
14032         * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
14033         (fold_builtin_cpu): Likewise.
14034         * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
14035         * config/i386/i386.c (ix86_fold_builtin): Likewise.
14036         (ix86_gimple_fold_builtin): Likewise.
14037         * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
14038         (ia64_expand_builtin): Likewise.
14039         * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
14040         * config/mips/mips.c (mips_expand_builtin): Likewise.
14041         * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
14042         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
14043         * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
14044         * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
14045         * config/pa/pa.c (pa_expand_builtin): Likewise.
14046         * config/pru/pru.c (pru_expand_builtin): Likewise.
14047         * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
14048         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14049         Likewise.
14050         * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
14051         (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
14052         (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
14053         * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
14054         (rs6000_builtin_reciprocal): Likewise.
14055         * config/rx/rx.c (rx_expand_builtin): Likewise.
14056         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
14057         * config/s390/s390.c (s390_expand_builtin): Likewise.
14058         * config/sh/sh.c (sh_expand_builtin): Likewise.
14059         * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
14060         (sparc_fold_builtin): Likewise.
14061         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
14062         * config/spu/spu.c (spu_expand_builtin): Likewise.
14063         * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
14064         * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
14065         * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
14066         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
14067         (xtensa_expand_builtin): Likewise.
14069 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14071         PR middle-end/91421
14072         * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
14073         before the DECL_FUNCTION_CODE.
14074         * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
14075         to check for a BUILT_IN_ALLOCA call.
14076         * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
14077         BUILT_IN_UNREACHABLE.  Don't check for a FUNCTION_TYPE.
14078         * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
14079         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14080         * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
14081         for BUILT_IN_NORMAL functions.
14082         * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
14083         test for BUILT_IN_TM_ABORT.
14084         * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
14085         to check for a BUILT_IN_STACK_RESTORE call.
14086         (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
14087         * tree-ssa-threadedge.c
14088         (record_temporary_equivalences_from_stmts_at_dest): Check for a
14089         BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
14090         * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
14091         test for a BUILT_IN_NORMAL call instead of a negative test for
14092         an internal function call.
14094 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14096         * tree.h (build_vector_a_then_b): Declare.
14097         * tree.c (build_vector_a_then_b): New function.
14098         * fold-const-call.c (fold_while_ult): Likewise.
14099         (fold_const_call): Use it to handle IFN_WHILE_ULT.
14100         * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
14101         (aarch64_svpattern): New enum.
14102         * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
14103         constants through aarch64_expand_mov_immediate.
14104         (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
14105         than general_operand as the predicate for operand 1.
14106         (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
14107         * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
14108         insn_type.
14109         (simd_immediate_info::simd_immediate_info): New overload that
14110         takes a scalar_int_mode and an svpattern.
14111         (simd_immediate_info::u): Add a "pattern" field.
14112         (svpattern_token): New function.
14113         (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
14114         (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
14115         (aarch64_sve_move_pred_via_while): New functions.
14116         (aarch64_expand_mov_immediate): Try using
14117         aarch64_sve_move_pred_via_while for predicates that contain N ones
14118         followed by M zeros but that do not correspond to a VLnnn pattern.
14119         (aarch64_sve_pred_valid_immediate): New function.
14120         (aarch64_simd_valid_immediate): Use it instead of dealing directly
14121         with PTRUE and PFALSE.
14122         (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
14123         forms.
14125 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
14127         * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
14128         flag.
14129         (darwin_override_options): Likewise.
14130         * config/darwin.h: Likewise.
14131         * config/darwin.opt: Likewise.
14132         * config/i386/i386.c (output_pic_addr_const): Likewise.
14133         * config/rs6000/darwin.h: Likewise.
14134         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
14135         * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
14136         ... this TARGET_MACHO_SYMBOL_STUBS.
14137         (FUNCTION_PROFILER):Likewise.
14138         * config/i386/i386.h: Likewise.
14140 2019-08-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14142         * config/i386/i386-expand.c (ix86_expand_vector_extract)
14143         <case E_V2SImode>: Use vec_extr path for
14144         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
14145         <case E_V8QImode>: Ditto.
14146         * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
14147         Use SWI48 mode iterator.  Use %k to output operand 0.
14148         (*mmx_pextrw): New insn pattern.
14149         (*mmx_pextrb): Ditto.
14150         (*mmx_pextrb_zext): Ditto.
14152 2019-08-13  Jonathan Wakely  <jwakely@redhat.com>
14154         * target.def (libc_has_function, libc_has_fast_function): Improve
14155         documentation strings.
14156         * doc/tm.texi: Regenerate.
14158 2019-08-13  Caroline Tice  <cmtice@google.com>
14160         PR other/91396
14161         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
14162         vtv_end.o or vtv_end_preinit.o files if !static.
14164 2019-08-13  Olivier Hainque  <hainque@adacore.com>
14166         * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
14168 2019-08-13  Olivier Hainque  <hainque@adacore.com>
14170         * rtlanal.c (tablejump_casesi_pattern): New function, to
14171         determine if a tablejump insn is a casesi dispatcher. Extracted
14172         from patch_jump_insn.
14173         * rtl.h (tablejump_casesi_pattern): Declare.
14174         * cfgrtl.c (patch_jump_insn): Use it.
14175         * dwarf2cfi.c (create_trace_edges): Use it.
14177 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
14179         PR target/81800
14180         * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
14181         operand is larger than a long int.
14183 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14185         * machmode.h (opt_mode::else_mode): New function.
14186         (opt_mode::else_blk): Use it.
14187         * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
14188         (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
14189         (aarch64_gen_stepped_int_parallel): Likewise.
14190         (aarch64_stepped_int_parallel_p): Likewise.
14191         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
14192         argument.
14193         * config/aarch64/aarch64.c
14194         (aarch64_expand_sve_widened_duplicate): Delete.
14195         (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
14196         (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
14197         (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
14198         argument.  Use early returns in the !CONST_INT_P handling.
14199         Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
14200         than handling some inline.
14201         (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
14202         from...
14203         (aarch64_simd_container_mode): ...here.
14204         (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
14205         (aarch64_sve_ld1rq_operand_p): New functions.
14206         * config/aarch64/predicates.md (descending_int_parallel)
14207         (aarch64_sve_ld1rq_operand): New predicates.
14208         * config/aarch64/constraints.md (UtQ): New constraint.
14209         * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
14210         * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
14211         gen_vec_duplicate from call to aarch64_expand_mov_immediate.
14212         (@aarch64_sve_reinterpret<mode>): New expander.
14213         (*aarch64_sve_reinterpret<mode>): New pattern.
14214         (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
14215         (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
14216         (*sve_ld1rq<Vesize>): Replace with...
14217         (@aarch64_sve_ld1rq<mode>): ...this new pattern.
14219 2019-08-13  Wilco Dijkstra  <wdijkstr@arm.com>
14221         * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
14222         16:12.
14224 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14226         * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
14227         * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
14228         (msp430_check_path_for_devices): New.
14229         (parse_devices_csv_1): New.
14230         (parse_devices_csv): New.
14231         (msp430_extract_mcu_data): Try to find devices.csv and search for the
14232         MCU data in devices.csv before using the hard-coded data.
14233         Warn if devices.csv isn't found and the MCU wasn't found in the
14234         hard-coded data either.
14235         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
14236         msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
14237         Search for devices.csv on -I and -L paths.
14238         (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
14239         msp430_set_driver_var.
14240         * config/msp430/msp430.opt: Add -mwarn-devices-csv and
14241         -mdevices-csv-loc=.
14242         * doc/invoke.texi (-mmcu): Document that -I and -L paths are
14243         searched for devices.csv.
14244         (mwarn-devices-csv): Document option.
14246 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14248         * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
14249         * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
14250         Use a single Dn alternative instead of separate Dz and Dm
14251         alternatives.  Use aarch64_output_sve_move_immediate.
14252         * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
14253         function.
14254         (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
14255         for predicates too.
14256         (aarch64_output_sve_mov_immediate): Handle predicate modes.
14257         (aarch64_output_ptrue): Delete.
14259 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14261         * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
14262         INDEX.
14263         (simd_immediate_info::value, simd_immediate_info::step)
14264         (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
14265         with...
14266         (simd_immediate_info::u): ...this new union.
14267         (simd_immediate_info::simd_immediate_info): Update accordingly.
14268         (aarch64_output_simd_mov_immediate): Likewise.
14269         (aarch64_output_sve_mov_immediate): Likewise.
14271 2019-08-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
14273         * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
14274         extra_gcc_objs.
14275         * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
14276         (msp430_select_cpu): New spec function.
14277         (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
14278         MCU data.
14279         * config/msp430/msp430-devices.c: New file.
14280         * config/msp430/msp430-devices.h: New file.
14281         * config/msp430/msp430.c: Remove msp430_mcu_data.
14282         (msp430_option_override): Use msp430_extract_mcu_data to extract
14283         MCU data.
14284         (msp430_use_f5_series_hwmult): Likewise.
14285         (use_32bit_hwmult): Likewise.
14286         (msp430_no_hwmult): Likewise.
14287         * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
14288         assembler.
14289         (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
14290         and -mcpu option.
14291         (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
14292         * config/msp430/t-msp430: Add rule to build msp430-devices.o.
14293         Remove hard-coded MCU multilib data.
14295 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14297         * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
14298         based on the mode instead of testing properties of it.
14300 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14302         * doc/md.texi: Document the x and y constraints for AArch64.
14303         * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
14304         (FP_LO8_REGS): New reg_class.
14305         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
14306         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
14307         (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
14308         * config/aarch64/predicates.md (aarch64_simd_register): Use
14309         FP_REGNUM_P instead of checking the classes manually.
14310         * config/aarch64/constraints.md (y): New constraint.
14312 2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
14314         * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
14315         (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
14316         * config/aarch64/aarch64-simd.md
14317         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
14318         (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
14319         from the asm template.
14320         * config/aarch64/aarch64-sve.md
14321         (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
14322         (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
14323         from the asm template.
14324         (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
14325         (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
14326         from the asm template.
14327         * config/aarch64/aarch64-simd-builtins.def: Update comment.
14329 2019-08-13  Martin Liska  <mliska@suse.cz>
14331         * value-prof.c (gimple_ic_transform): Add new line.
14332         Print details with MSG_NOTE.
14334 2019-08-13  Martin Liska  <mliska@suse.cz>
14336         * doc/invoke.texi: Document automatic detection of jobserver.
14337         * lto-wrapper.c (run_gcc): Detect jobserver always.
14339 2019-08-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14341         * config/i386/i386-expand.c (ix86_expand_vector_set)
14342         <case E_V2SImode>: Use vec_merge path for
14343         TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
14344         <case E_V8QImode>: Ditto.
14345         * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
14346         (*mmx_pinsrb): Ditto.
14348 2019-08-12  Jakub Jelinek  <jakub@redhat.com>
14350         PR target/83250
14351         PR target/91340
14352         * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
14353         _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
14354         * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
14355         _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
14356         _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
14358 2019-08-12  Richard Biener  <rguenther@suse.de>
14360         PR lto/91375
14361         * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
14362         flag_devirtualize.
14364 2019-08-12  Richard Biener  <rguenther@suse.de>
14366         PR driver/91130
14367         * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
14368         lang_mask option, always use CL_DRIVER.
14369         (get_options_from_collect_gcc_options): Adjust.
14370         (find_and_merge_options): Likewise.
14371         (run_gcc): Likewise.
14373 2019-08-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14375         * ipa-predicate.c (add_condition): Restore inverted test.
14377 2019-08-10  Jakub Jelinek  <jakub@redhat.com>
14379         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
14380         (enum omp_clause_device_type_kind): New enum.
14381         (struct tree_omp_clause): Add subcode.device_type_kind.
14382         * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
14383         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
14384         for device_type clause.
14385         (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
14386         * tree-pretty-print.c (dump_omp_clause): Likewise.
14388         PR target/91408
14389         * config/i386/mmx.md (usadv8qi): Use register_operand instead of
14390         vector_operand.
14392 2019-08-09  Vladimir Makarov  <vmakarov@redhat.com>
14394         * reload1.c (finish_spills): Do not check ira_conflicts_p when
14395         handling spilled pseudos.
14397 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
14399         PR target/91386
14400         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
14401         to preserve the contents of the original insns.
14403 2019-08-09  Richard Earnshaw  <rearnsha@arm.com>
14405         * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
14406         (addsi3_compare_op2): Likewise.
14408 2019-08-09  Martin Liska  <mliska@suse.cz>
14410         * alias.c (alias_ptr_types_compatible_p): Strengten
14411         type comparison in LTO mode.
14413 2019-08-09  Richard Sandiford  <richard.sandiford@arm.com>
14415         PR middle-end/90313
14416         * tree-tailcall.c (find_tail_calls): Reject calls that might
14417         read from an escaped RESULT_DECL.
14419 2019-08-09  Martin Liska  <mliska@suse.cz>
14421         * doc/invoke.texi: Document the option value.
14422         * lto-wrapper.c (run_gcc): Set auto_parallel
14423         only with -flto=auto.
14425 2019-08-09  Martin Liska  <mliska@suse.cz>
14427         * opts.c (common_handle_option): Error for an invalid argument
14428         to -flto=.
14430 2019-08-09  Martin Liska  <mliska@suse.cz>
14432         * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
14433         use dump_printf to report optimization.
14434         (sem_variable::merge): Likwise.
14435         (sem_item_optimizer::merge_classes): Use dump_printf to report
14436         ICF hits.
14438 2019-08-09  Martin Liska  <mliska@suse.cz>
14440         * value-prof.c (gimple_divmod_fixed_value_transform):
14441         Use dump_printf_loc.
14442         (gimple_mod_pow2_value_transform): Likewise.
14443         (gimple_mod_subtract_transform): Likewise.
14444         (init_node_map): Likewise.
14445         (gimple_ic_transform): Likewise.
14446         (gimple_stringops_transform): Likewise.
14448 2019-08-08  Mihailo Stojanovic  <mistojanovic@wavecomp.com>
14450         * doc/extend.texi: Add const qualifier to ld intrinsics.
14452 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
14454         * config/rs6000/dfp.md (D64_D128): Rename to ...
14455         (DDTD): ... this, throughout.
14456         (dfp_suffix): Rename to ...
14457         (q): ... this, throughout.
14459 2019-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
14461         * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
14462         (dfp_suffix): Ditto.
14463         (adddd3, addtd3): Merge to ...
14464         (add<mode>3 for D64_D128): ... this.
14465         (subdd3, subtd3): Merge to ...
14466         (sub<mode>3 for D64_D128): ... this.
14467         (muldd3, multd3): Merge to ...
14468         (mul<mode>3 for D64_D128): ... this.
14469         (divdd3, divtd3): Merge to ...
14470         (div<mode>3 for D64_D128): ... this.
14471         (*cmpdd_internal1, *cmptd_internal1): Merge to ...
14472         (*cmp<mode>_internal1 for D64_D128): ... this.
14473         (ftruncdd2, ftrunctd2): Merge to ...
14474         (ftrunc<mode>2 for D64_D128): ... this.
14475         (fixdddi2, fixtddi2): Merge to ...
14476         (fix<mode>di2 for D64_D128): ... this.
14478 2019-08-08  Jim Wilson  <jimw@sifive.com>
14480         PR target/91229
14481         * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
14482         ignore_zero_width_bit_field_p.  Skip zero size bitfields when true.
14483         Pass into recursive call.
14484         (riscv_flatten_aggregate_argument): New arg.  Pass to
14485         riscv_flatten_aggregate_field.
14486         (riscv_pass_aggregate_in_fpr_pair_p): New local warned.  Call
14487         riscv_flatten_aggregate_argument twice, with false and true as last
14488         arg.  Process result twice.  Compare results and warn if different.
14489         (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
14491 2019-08-08  Martin Liska  <mliska@suse.cz>
14493         PR bootstrap/91352
14494         * gcc.c (driver::detect_jobserver): Use is_valid_fd.
14495         * lto-wrapper.c (jobserver_active_p): Likewise.
14497 2019-08-08  Martin Liska  <mliska@suse.cz>
14499         * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
14500         IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
14501         (create_version_clone_with_body): Likewise.
14503 2019-08-08  Jakub Jelinek  <jakub@redhat.com>
14505         * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
14506         for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
14507         (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
14508         GOVD_EXPLICIT flags.
14509         (gimplify_omp_workshare): For OMP_TARGET_DATA move all
14510         OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
14511         * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
14512         call install_var_field with mask 11 instead of 3.
14513         (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
14514         (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
14516 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14518         * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
14519         * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
14521 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14523         * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
14524         MOVPRFX alternatives.  Make the GPR alternatives more expensive
14525         than the FPR ones.
14527 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14529         * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
14530         Disparage the GPR alternative relative to the FPR one.
14531         Fix handling of 8-bit and 16-bit FPR values.
14533 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14535         * config/aarch64/iterators.md (BITWISEV): Delete.
14536         (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
14537         (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
14538         UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
14539         UNSPEC_FMINNMV, UNSPEC_FMINV.
14540         (bit_reduc_op): Delete.
14541         (sve_int_op): New int attribute.
14542         (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
14543         UNSPEC_FMINNMV, UNSPEC_FMINV.
14544         * config/aarch64/aarch64-sve.md
14545         (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
14546         (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
14547         (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
14548         (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
14549         (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
14550         (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
14551         new patterns.
14552         (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
14553         (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
14554         (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
14555         (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
14556         (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
14557         new patterns.
14559 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14561         * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
14562         (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
14563         (fms<mode>4, *fms<mode>4): Replace with...
14564         (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
14565         (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
14566         Use unspecs instead of rtx codes.
14567         (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
14568         (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
14570 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14572         * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
14573         int iterator.
14574         (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
14575         * config/aarch64/aarch64-sve.md
14576         (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
14577         (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
14578         use a single unspec for the rhs.
14579         (*<su><maxmin><mode>3): Delete.
14580         (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
14582 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14584         * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
14585         (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
14586         (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
14587         (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
14588         (optab, sve_fp_op): Handle them.
14589         (SVE_FP_UNARY): Delete.
14590         (optab): Remove sqrt entry.
14591         (sve_fp_op): Remove neg, abs and sqrt entries.
14592         (SVE_COND_FP_UNARY): New int iterator.
14593         * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
14594         (*<frint_pattern><mode>2): Delete.
14595         (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
14596         (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
14597         (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
14598         (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
14600 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14602         * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
14604 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14606         * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
14607         (UNSPEC_COND_FADD): ...this.
14608         (UNSPEC_COND_SUB): Rename to...
14609         (UNSPEC_COND_FSUB): ...this.
14610         (UNSPEC_COND_MUL): Rename to...
14611         (UNSPEC_COND_FMUL): ...this.
14612         (UNSPEC_COND_DIV): Rename to...
14613         (UNSPEC_COND_FDIV): ...this.
14614         (UNSPEC_COND_MAX): Rename to...
14615         (UNSPEC_COND_FMAXNM): ...this.
14616         (UNSPEC_COND_MIN): Rename to...
14617         (UNSPEC_COND_FMINNM): ...this.
14618         (UNSPEC_COND_LT): Rename to...
14619         (UNSPEC_COND_FCMLT): ...this.
14620         (UNSPEC_COND_LE): Rename to...
14621         (UNSPEC_COND_FCMLE): ...this.
14622         (UNSPEC_COND_EQ): Rename to...
14623         (UNSPEC_COND_FCMEQ): ...this.
14624         (UNSPEC_COND_NE): Rename to...
14625         (UNSPEC_COND_FCMNE): ...this.
14626         (UNSPEC_COND_GE): Rename to...
14627         (UNSPEC_COND_FCMGE): ...this.
14628         (UNSPEC_COND_GT): Rename to...
14629         (UNSPEC_COND_FCMGT): ...this.
14630         (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
14631         (sve_fp_op_rev): Update accordingly.
14632         * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
14634 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14636         * config/aarch64/aarch64-sve.md: Reorganize contents and add
14637         banner comments.
14638         * config/aarch64/check-sve-md.awk: New file.
14639         * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
14640         (insn-conditions.md): Depend on it.
14642 2019-08-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14644         PR target/91385
14645         * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
14646         (*negsi2_cmpz_zext): Ditto.
14648 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14650         * config/aarch64/iterators.md (commutative): Remove.
14652 2019-08-07  Richard Earnshaw  <rearnsha@arm.com>
14654         PR driver/91130
14655         * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
14656         processing COLLECT_GCC_OPTIONS.
14657         (run_gcc): Likewise.
14659 2019-08-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14661         PR tree-optimization/91109
14662         * lra-remat.c (update_scratch_ops): Remove assignment of the
14663         hard register.
14665 2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>
14667         * data-streamer.h (streamer_write_poly_uint64): Declare.
14668         (streamer_read_poly_uint64): Likewise.
14669         * data-streamer-in.c (streamer_read_poly_uint64): New function.
14670         * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
14671         * ipa-predicate.h (condition::size): Turn into a poly_int64.
14672         (add_condition): Take a poly_int64 size.
14673         * ipa-predicate.c (add_condition): Likewise.
14674         * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
14675         * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
14676         (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
14677         * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
14678         condition::size as a poly_int64.
14679         (unmodified_parm_1): Take a poly_int64 size pointer.
14680         (unmodified_parm): Likewise.
14681         (unmodified_parm_or_parm_agg_item): Likewise.
14682         (set_cond_stmt_execution_predicate): Update accordingly.
14683         (set_switch_stmt_execution_predicate): Likewise.
14684         (will_be_nonconstant_expr_predicate): Likewise.
14685         (will_be_nonconstant_predicate): Likewise.
14686         (inline_read_section): Stream condition::size as a poly_int.
14687         (ipa_fn_summary_write): Likewise.
14689 2019-08-07  Martin Liska  <mliska@suse.cz>
14691         * fold-const.c (twoval_comparison_p): Replace int
14692         with bool as a return type.
14693         (simple_operand_p): Likewise.
14694         (operand_equal_p): Replace int with bool as a return type.
14695         * fold-const.h (operand_equal_p): Likewise.
14697 2019-08-07  Jakub Jelinek  <jakub@redhat.com>
14699         * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
14700         OpenMP description.  Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
14701         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
14702         for OMP_CLAUSE_USE_DEVICE_ADDR clause.
14703         (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
14704         * tree-pretty-print.c (dump_omp_clause): Likewise.
14705         * tree-nested.c (convert_nonlocal_omp_clauses,
14706         convert_local_omp_clauses): Likewise.
14707         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
14708         Likewise.
14709         * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
14710         Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
14711         clause with array or reference to array types, no matter what type
14712         except for reference it has.
14714 2019-08-07  Kewen Lin  <linkw@gcc.gnu.org>
14716         * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
14718 2019-08-07  Kito Cheng  <kito.cheng@sifive.com>
14720         * config/riscv/multilib-generator: (canonical_order): Add 'g'.
14721         (arch_canonicalize): Support rv32g and rv64g and fix error
14722         handling.
14724 2019-08-06  Martin Liska  <mliska@suse.cz>
14726         * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
14727         and DECL_IS_OPERATOR_DELETE_P.
14729 2019-08-06  Jakub Jelinek  <jakub@redhat.com>
14731         * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
14732         (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this.  Adjust comment.
14733         * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
14734         new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
14735         (gimplify_omp_for): Don't do C++ random access iterator clause
14736         adjustments on combined constructs from OMP_LOOP.  For OMP_LOOP,
14737         don't predetermine the artificial iterator in case of C++ random
14738         access iterators as lastprivate, but private.  For OMP_LOOP, force
14739         bind expr around simd body and force for_pre_body before the
14740         construct.  Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
14741         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
14742         (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
14743         diff var of C++ random access iterators.  Handle
14744         OMP_CLAUSE_FIRSTPRIVATE.  For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
14745         not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
14746         clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
14747         on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
14748         * omp-low.c (lower_rec_input_clauses): For
14749         OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
14750         variables instead of default constructing them.
14751         (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
14752         instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
14753         is_taskloop_ctx check from the assert to the guarding condition.
14755 2019-08-06  Kito Cheng  <kito.cheng@sifive.com>
14757         * config/riscv/multilib-generator: (canonical_order): New.
14758         (arch_canonicalize): Dito.
14759         Apply arch_canonicalize for alts.
14761 2019-08-05  Martin Sebor  <msebor@redhat.com>
14763         * doc/extend.texi (Common Variable Attributes): Document alias
14764         attribute.
14766 2019-08-05  Marek Polacek  <polacek@redhat.com>
14768         PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
14769         * doc/invoke.texi: Document -Wcomma-subscript.
14771 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14773         * tree-core.h (tree_function_decl): Make function_code an
14774         independent field.  Group the remaining bitfields into bytes
14775         and move decl_type so that it contines to be at a byte boundary.
14776         Leave 12 bits for future expansion.
14778 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14780         * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
14781         (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
14782         (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
14783         IFN_MASK_STORE.
14785 2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
14787         * gimple.h (gimple_move_vops): Declare.
14788         * gimple.c (gimple_move_vops): New function
14789         * gimple-fold.c (replace_call_with_call_and_fold)
14790         (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
14791         (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
14792         (gimple_fold_call): Use it.
14793         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
14794         * tree-call-cdce.c (use_internal_fn): Likewise.
14795         * tree-if-conv.c (predicate_load_or_store): Likewise.
14796         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
14797         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
14798         * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
14799         (update_call_from_tree): Likewise.
14800         * tree-vect-stmts.c (vectorizable_load): Likewise.
14801         * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
14803 2019-08-05  Martin Liska  <mliska@suse.cz>
14805         PR c++/91334
14806         * tree-ssa-dce.c (propagate_necessity): Handle new operators
14807         with not arguments.
14808         (eliminate_unnecessary_stmts): Likewise.
14810 2019-08-05  Richard Biener  <rguenther@suse.de>
14812         PR middle-end/91169
14813         * fold-const.c (get_array_ctor_element_at_index): Create
14814         offset_ints according to the sign of the index type and treat
14815         that as signed if it is obviously so.
14817 2019-08-05  Jakub Jelinek  <jakub@redhat.com>
14819         PR target/91341
14820         * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
14821         _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
14822         _mm256_storeu2_m128i): New function.
14824 2019-08-05  Kito Cheng  <kito.cheng@sifive.com>
14826         * config/riscv/riscv.c (riscv_promote_function_mode): New.
14827         (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
14829 2019-08-05  Alan Modra  <amodra@gmail.com>
14831         PR target/91349
14832         * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
14833         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
14835 2019-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
14837         * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
14838         bug that was fixed in Tcl 8.6.1.
14840 2019-08-02  Michael Meissner  <meissner@linux.ibm.com>
14842         * config/rs6000/future.md: New file.
14843         * config/rs6000/rs6000.md: Include future.md.
14844         * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
14846 2019-08-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14848         * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
14849         check to use targetm.slow_unaligned_access instead.
14851         * function.c (assign_param_data_one): Remove unused data members.
14853 2019-08-02  Steve Ellcey  <sellcey@marvell.com>
14855         * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
14856         build_distinct_type_copy.
14857         (simd_clone_adjust_argument_types): Ditto.
14858         (simd_clone_adjust): Call build_distinct_type_copy here.
14859         (expand_simd_clones): Ditto.
14861 2019-08-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14863         PR target/91201
14864         * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
14866 2019-08-02  Alexander Monakov  <amonakov@ispras.ru>
14868         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
14869         from 'const void *'.
14870         (sort_locs_in_loop_postorder_cmp): Likewise.
14872 2019-08-02  Eric Botcazou  <ebotcazou@adacore.com>
14874         * doc/invoke.texi (hot-bb-count-fraction): Rework description.
14875         (hot-bb-count-ws-permille): Likewise.
14876         (hot-bb-frequency-fraction): Likewise.
14877         (unlikely-bb-count-fraction): Likewise.
14878         * params.def (hot-bb-count-fraction): Rework description.
14879         (hot-bb-count-ws-permille): Likewise.
14880         (hot-bb-frequency-fraction): Likewise.
14881         (unlikely-bb-count-fraction): Likewise.  Remove min and max values.
14882         * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
14884 2019-08-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14886         PR target/91323
14887         * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
14888         Return false.
14890 2019-08-02  Richard Biener  <rguenther@suse.de>
14892         * vec.h (vec::sort): Add gcc_qsort_r support.
14893         (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
14894         * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
14895         to gcc_qsort_r style callback.
14896         (sort_locs_in_loop_postorder_cmp): Likewise.
14897         (analyze_memory_references): Use gcc_sort_r interfaces.
14898         (find_ref_loc_in_loop_cmp): Use new bsearch overload.
14900 2019-08-02  Martin Liska  <mliska@suse.cz>
14902         PR lto/91313
14903         * gcc.c (driver::maybe_run_linker): Call detect_jobserver
14904         to detect working job server.
14905         (driver::detect_jobserver): Test whether jobserver
14906         is active from GCC driver. That will prevent situation where
14907         GCC is invoked from a LD plugin and the linker already uses
14908         file descriptors suggested by make.  That leads to a wrong
14909         detection.
14910         * gcc.h (driver): Add detect_jobserver.
14911         * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
14912         not scanning for --jobserver-auth prefix.
14914 2019-08-02  Jakub Jelinek  <jakub@redhat.com>
14916         PR tree-optimization/91201
14917         * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
14918         V16QImode extraction without sse4.1 try to use V4SImode lowpart
14919         extraction.
14921 2019-08-01  Martin Sebor  <msebor@redhat.com>
14923         PR c++/90947
14924         * tree.c (type_initializer_zero_p): Define.
14925         * tree.h (type_initializer_zero_p): New function.
14927 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
14929         * cfgrtl.c (relink_block_chain): Add line returns in dump file.
14931 2019-08-01  Eric Botcazou  <ebotcazou@adacore.com>
14933         * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
14934         * cgraph.c (cgraph_edge::maybe_hot_p): Likewise.  Remove useless test.
14935         * predict.c (maybe_hot_count_p): Likewise.
14936         (maybe_hot_bb_p): Tweak comment.
14937         (maybe_hot_edge_p): Likewise.
14938         (probably_never_executed): Likewise.  Minor tweak.
14939         (probably_never_executed_bb_p): Likewise.
14940         (unlikely_executed_edge_p): Likewise.
14941         (probably_never_executed_edge_p): Likewise.
14942         (optimize_function_for_size_p): Likewise.
14943         (optimize_function_for_speed_p): Likewise.
14944         (function_optimization_type): Likewise.
14945         (optimize_bb_for_size_p): Likewise.
14946         (optimize_bb_for_speed_p): Likewise.
14947         (bb_optimization_type): Likewise.
14948         (optimize_edge_for_size_p): Likewise.
14949         (optimize_edge_for_speed_p): Likewise.
14950         (optimize_insn_for_size_p): Likewise.
14951         (optimize_insn_for_speed_p): Likewise.
14952         (optimize_loop_for_size_p): Likewise.
14953         (optimize_loop_for_speed_p): Likewise.
14954         (optimize_loop_nest_for_speed_p): Likewise.
14955         (optimize_loop_nest_for_size_p): Likewise.
14956         (predictable_edge_p): Likewise.
14957         (handle_missing_profiles): Minor tweak.
14959 2019-08-01  Michael Meissner  <meissner@linux.ibm.com>
14961         * config/rs6000/predicates.md (pcrel_external_address): Update
14962         comment.
14964 2019-08-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14966         PR target/85693
14967         * config/i386/mmx.md (usadv8qi): New expander.
14969 2019-08-01  Matthew Beliveau  <mbelivea@redhat.com>
14971         PR c++/90590
14972         * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
14973         with reserved names that are in a system header.
14975 2019-08-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
14977         * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
14978         (*vec_extractv2si_0_zext_sse4): New insn pattern.
14979         (*vec_extractv2si_0_zext): Ditto.
14980         (*vec_extractv2si_1): Add (rm,x) alternative.
14981         (*vec_extractv2si_1_zext): New insn pattern.
14982         (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
14983         insn constraint.
14985 2019-08-01  Richard Biener  <rguenther@suse.de>
14987         * domwalk.c (bb_postorder): Remove static variable.
14988         (cmp_bb_postorder): Adjust.
14989         (sort_bbs_postorder): Adjust and use gcc_sort_r.
14990         (dom_walker::walk): Adjust.
14992 2019-08-01  Alexander Monakov  <amonakov@ispras.ru>
14994         * sort.cc (sort_r_ctx): New struct.
14995         (reorder23): Make templated on context type.
14996         (reorder45): Ditto.
14997         (cmp1): Ditto.  Adjust signature.
14998         (netsort): Ditto.
14999         (mergesort): Ditto.
15000         [CHECKING_P] (cmp2to3): New static function.  Use it...
15001         (gcc_qsort) [CHECKING_P]: ...here.
15002         (gcc_sort_r): New function.
15003         * system.h (sort_r_cmp_fn): New function typedef.
15004         (qsort_chk): Adjust signature.
15005         (gcc_sort_r): Declare.
15006         * vec.c (qsort_chk_error): Adjust.
15007         (qsort_chk): Adjust.
15009 2019-08-01  Richard Biener  <rguenther@suse.de>
15011         * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
15012         (compute_antic): Localize it here.
15014 2019-07-31  Maxim Blinov  <maxim.blinov@embecosm.com>
15016         * common/config/riscv/riscv-common.c: Check -march string ends
15017         with null.
15019 2019-07-31  Alexander Monakov  <amonakov@ispras.ru>
15021         * ipa-devirt.c (type_warning_cmp): Make static.
15022         (decl_warning_cmp): Ditto.
15024 2019-07-31  Peter Bergner  <bergner@linux.ibm.com>
15026         PR target/91050
15027         * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
15028         * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
15029         use of deleted rs6000_dejagnu_cpu_index variable.
15030         * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
15031         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
15032         * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
15033         (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
15034         * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
15035         (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
15037 2019-07-31  Richard Biener  <rguenther@suse.de>
15039         PR tree-optimization/91280
15040         * tree-ssa-structalias.c (get_constraint_for_component_ref):
15041         Decompose MEM_REF manually for offset handling.
15043 2019-07-31  Richard Biener  <rguenther@suse.de>
15045         PR tree-optimization/91293
15046         * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
15047         of reduction stmts.
15049 2019-07-31  Matt Thomas  <matt@3am-software.com>
15050             Nick Hudson  <nick@nthcliff.demon.co.uk>
15051             Matthew Green  <mrg@eterna.com.au>
15052             Maya Rashish  <coypu@sdf.org>
15054         * config.gcc (hppa*-*-netbsd*): New target.
15055         * config/pa/pa-netbsd.h: New file.
15056         * config/pa/pa32-netbsd.h: New file.
15058 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
15060         PR tree-optimization/91201
15061         * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
15063 2019-07-31  Andrew Stubbs  <ams@codesourcery.com>
15065         * config/gcn/gcn-valu.md
15066         (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
15067         (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
15068         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
15069         * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
15070         struct ilist. Add nops for delayeduse insns.
15071         * config/gcn/gcn.md (delayeduse): New attribute.
15072         (*movbi): Remove s_waitcnt from stores.
15073         (*mov<mode>_insn): Likewise.
15074         (*movti_insn): Likewise. Add delayeduse attribute.
15075         (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
15076         (atomic_store<mode>): Remove or adjust s_waitcnt.
15078 2019-07-31  Richard Biener  <rguenther@suse.de>
15080         * vr-values.h (vr_values::swap_vr_value): New.
15081         (vr_values::free_value_range): likewise.
15082         * vr-values.c (vr_values::swap_vr_value): Implement.
15083         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
15084         Do not return a range or take a var.
15085         (evrp_range_analyzer::stack): Change back to recording a non-const
15086         value_range *.
15087         * gimple-ssa-evrp-analyze.c
15088         (evrp_range_analyzer::record_ranges_from_stmt): Free unused
15089         value-range.
15090         (evrp_range_analyzer::pop_to_marker): Adjust.
15091         (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
15092         (evrp_range_analyzer::pop_value_range): Likewise.  Free the
15093         no longer needed value-range.
15095 2019-07-31  Martin Liska  <mliska@suse.cz>
15097         * tree-ssa-dce.c (propagate_necessity): Delete operator can
15098         have size and (or) alignment as 2nd and later arguments.
15099         Mark all of them as necessary.
15101 2019-07-31  Richard Biener  <rguenther@suse.de>
15103         PR tree-optimization/91178
15104         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
15105         Use tail-recursion.
15107 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
15109         PR tree-optimization/91201
15110         * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
15111         (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
15112         TARGET_AVX512F.
15113         (reduc_plus_scal_<mode>): Improve formatting by introducing
15114         a temporary.
15116 2019-07-31  Sudakshina Das  <sudi.das@arm.com>
15118         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
15119         AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
15120         AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
15121         (aarch64_init_tme_builtins): New.
15122         (aarch64_init_builtins): Call aarch64_init_tme_builtins.
15123         (aarch64_expand_builtin_tme): New.
15124         (aarch64_expand_builtin): Handle TME builtins.
15125         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
15126         __ARM_FEATURE_TME when enabled.
15127         * config/aarch64/aarch64-option-extensions.def: Add "tme".
15128         * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
15129         (TARGET_TME): New.
15130         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
15131         (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
15132         UNSPECV_TCANCEL.
15133         (tstart, ttest, tcommit, tcancel): New instructions.
15134         * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
15135         (__tcancel, __ttest): New.
15136         (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
15137         (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
15138         (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
15139         (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
15140         * config/arm/types.md: Add new tme type attr.
15141         * doc/invoke.texi: Document "tme".
15143 2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
15145         * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
15146         warn_unused_result attribute.
15147         (cmse_check_address_range): Add warn_unused_result attribute.
15149 2019-07-31  Richard Biener  <rguenther@suse.de>
15151         PR tree-optimization/91257
15152         * tree-vrp.c (union_ranges): Unify equality and less tests
15153         by using compare_values.  Re-order cheap tests first.
15155 2019-07-31  Jakub Jelinek  <jakub@redhat.com>
15157         PR middle-end/91301
15158         * gimplify.c (gimplify_omp_for): If for class iterator on
15159         distribute parallel for there is no data sharing clause
15160         on inner_for_stmt, look for private clause on combined
15161         parallel too and if found, move it to inner_for_stmt.
15163 2019-07-31  Richard Sandiford  <richard.sandiford@arm.com>
15165         * lra-int.h (lra_operand_data): Remove early_clobber field.
15166         (lra_insn_reg): Likewise.
15167         * lra.c (debug_operand_data): Update accordingly.
15168         (setup_operand_alternative): Likewise.
15169         (new_insn_reg): Likewise.  Remove early_clobber parameter.
15170         (collect_non_operand_hard_regs): Update call accordingly.
15171         Don't assign to lra_insn_reg::early_clobber.
15172         (add_regs_to_insn_regno_info): Remove early_clobber parameter
15173         and update calls to new_insn_reg.
15174         (lra_update_insn_regno_info): Update calls accordingly.
15175         * lra-constraints.c (update_and_check_small_class_inputs): Take the
15176         alternative number as a parameter and test whether the operand
15177         is earlyclobbered in that particular alternative.
15178         (process_alt_operands): Update call accordingly.  Use per-alternative
15179         checks for earyclobber here too.
15180         * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
15181         against zero for IRA_UNKNOWN_ALT.
15183 2019-07-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15185         * config/alpha/alpha.c (alpha_option_override): Quote a C type.
15187 2019-07-30  Wilco Dijkstra  <wdijkstr@arm.com>
15189         * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
15190         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
15192 2019-07-30  Martin Liska  <mliska@suse.cz>
15194         PR ipa/89330
15195         * cgraph.c (cgraph_edge::make_direct): Use
15196         edge->indirect_unknown_callee as edge->resolve_speculation can
15197         deallocate edge which is this pointer.
15199 2019-07-30  Richard Biener  <rguenther@suse.de>
15201         PR tree-optimization/91257
15202         * bitmap.c (bitmap_ior_and_compl_into): Open-code.
15204 2019-07-30  Martin Liska  <mliska@suse.cz>
15206         * doc/invoke.texi: Document new behavior.
15207         * lto-wrapper.c (cpuset_popcount): New function
15208         is a copy of libgomp/config/linux/proc.c.
15209         (init_num_threads): Likewise.
15210         (run_gcc): Automatically detect core count for -flto.
15211         (jobserver_active_p): New function.
15213 2019-07-30  Richard Biener  <rguenther@suse.de>
15215         PR tree-optimization/91257
15216         * bitmap.h (bitmap_ior_into_and_free): Declare.
15217         * bitmap.c (bitmap_list_unlink_element): Add defaulted param
15218         whether to add the unliked element to the freelist.
15219         (bitmap_list_insert_element_after): Add defaulted param for
15220         an already allocated element.
15221         (bitmap_ior_into_and_free): New function.
15222         * tree-ssa-structalias.c (condense_visit): Reduce the
15223         ponts-to and edge bitmaps of the SCC members in a
15224         logarithmic fashion rather than all to one.
15226 2019-07-30  Richard Sandiford  <richard.sandiford@arm.com>
15228         * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
15229         parameter.  When nonnull, make sure that the addition or subtraction
15230         has the same condition.
15231         (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
15232         for CFN_COND_MUL too.
15234 2019-07-30  Richard Biener  <rguenther@suse.de>
15236         PR tree-optimization/91291
15237         * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
15238         constant values.
15240 2019-07-30  Jakub Jelinek  <jakub@redhat.com>
15242         PR middle-end/91216
15243         * omp-low.c (global_nonaddressable_vars): New variable.
15244         (use_pointer_for_field): For global decls, if they are non-addressable,
15245         remember it in the global_nonaddressable_vars bitmap, if they are
15246         addressable and in the global_nonaddressable_vars bitmap, ignore their
15247         TREE_ADDRESSABLE bit.
15248         (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
15249         vars in global_nonaddressable_vars bitmap.
15250         (execute_lower_omp): Free global_nonaddressable_vars bitmap.
15252         PR target/91150
15253         * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
15254         from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
15255         comparison to unsigned HOST_WIDE_INT before shifting it left.
15257 2019-07-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
15259         * config/i386/i386.md (movstrict<mode>): Use register_operand
15260         predicate for operand 0.  Add expander condition.  Assert that
15261         operand 0 is a SUBREG RTX.
15262         (*movstrict<mode>_1): Use register_operand predicate for operand 0.
15263         Update operand constraints and insn condition.
15264         (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
15265         (zero_extendqihi2_and): Do not call gen_movstrictqi.
15266         (*setcc_qi_slp): Use register_operand predicate for operand 0.
15267         Update operand 0 constraints.
15268         (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
15270 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15272         * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
15273         when -m{code,data}-region are used without -mlarge.
15274         * config/msp430/msp430.c (msp430_option_override): Error when a
15275         non-default code or data region is used without -mlarge.
15276         (msp430_section_attr): Emit a warning and do not add upper/lower/either
15277         attributes when they are used without -mlarge.
15279 2019-07-29  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15281         PR target/70320
15282         * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
15284 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15286         PR middle-end/91242
15287         * wide-int.h (generic_wide_int::sext_elt): New function.
15288         * inchash.h (hash::add_wide_int): Use it instead of elt.
15290 2019-07-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15292         * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
15293         CODE_FOR_arm_##.
15294         * config/arm/arm.md (<crc_variant>): Rename to...
15295         (arm_<crc_variant>): ... This.
15296         (<cdp>): Rename to...
15297         (arm_<cdp>): ... This.
15298         (<ldc>): Rename to...
15299         (arm_<ldc>): ... This.
15300         (<stc>): Rename to...
15301         (arm_<stc>): ... This.
15302         (<mcr>): Rename to...
15303         (arm_<mcr>): ... This.
15304         (<mrc>): Rename to...
15305         (arm_<mrc>): ... This.
15306         (<mcrr>): Rename to...
15307         (arm_<mcrr>): ... This.
15308         (<mrrc>): Rename to...
15309         (arm_<mrrc>): ... This.
15311 2019-07-29  Richard Biener  <rguenther@suse.de>
15313         PR tree-optimization/91257
15314         * tree-ssa-sccvn.h (struct vn_avail): New.
15315         (struct vn_ssa_aux): Add avail member.
15316         * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
15317         member, add m_avail_freelist one.
15318         (rpo_elim::~rpo_elim): Remove.
15319         (rpo_elim::eliminate_avail): Adjust to new avail tracking
15320         data structure.
15321         (rpo_elim::eliminate_push_avail): Likewise.
15322         (do_unwind): Likewise.
15323         (do_rpo_vn): Likewise.
15325 2019-07-29  Richard Biener  <rguenther@suse.de>
15327         PR tree-optimization/91257
15328         * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
15329         most cases, instead call compare_values which handles the
15330         symbolic ranges we handle specially.
15331         (compare_values_warnv): Do not call operand_less_p but open-code
15332         the effective fold calls.  Avoid converting so much.
15334 2019-07-29  Martin Liska  <mliska@suse.cz>
15336         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
15337         remove LHS of operator new call.  It's handled latter.
15339 2019-07-29  Richard Biener  <rguenther@suse.de>
15341         PR tree-optimization/91267
15342         * vr-values.c (vr_values::update_value_range): Add early return
15343         for effectively VARYING lattice entry.
15345 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15347         PR debug/86638
15348         * tree-ssa-dce.c (keep_all_vdefs_p): New function.
15349         (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
15350         necessary if keep_all_vdefs_p is true.
15351         (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
15352         that keep_all_vdefs_p is false.
15353         (mark_all_reaching_defs_necessary): Likewise.
15354         (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
15356 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15358         * common.opt (Og): Change the initial value of flag_dse to 0.
15359         * opts.c (default_options_table): Move OPT_ftree_dse from
15360         OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Also add
15361         OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG.  Put the OPT_ftree_pta
15362         entry before the OPT_ftree_sra entry.
15363         * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
15364         of flags disabled by Og.
15366 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15368         * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
15369         variables for -Og.
15371 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15373         * doc/sourcebuild.texi (check-function-bodies): Document.
15375 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15377         * simplify-rtx.c (simplify_const_unary_operation): Fold a
15378         VEC_DUPLICATE of a fixed-length vector even if the result
15379         is variable-length.  Likewise fold a duplicate of a
15380         variable-length vector if the variable-length vector is
15381         itself a duplicate of a fixed-length sequence.
15382         (test_vector_ops_duplicate): Test more cases.
15384 2019-07-29  Richard Sandiford  <richard.sandiford@arm.com>
15386         * vector-builder.h (vector_builder): Add a shape template parameter.
15387         (vector_builder::new_unary_operation): New function, generalizing
15388         the old tree_vector_builder function.
15389         (vector_builder::new_binary_operation): Likewise.
15390         (vector_builder::binary_encoded_nelts): Likewise.
15391         * int-vector-builder.h (int_vector_builder): Update template
15392         parameters to vector_builder.
15393         (int_vector_builder::shape_nelts): New function.
15394         * rtx-vector-builder.h (rtx_vector_builder): Update template
15395         parameters to vector_builder.
15396         (rtx_vector_builder::shape_nelts): New function.
15397         (rtx_vector_builder::nelts_of): Likewise.
15398         (rtx_vector_builder::npatterns_of): Likewise.
15399         (rtx_vector_builder::nelts_per_pattern_of): Likewise.
15400         * tree-vector-builder.h (tree_vector_builder): Update template
15401         parameters to vector_builder.
15402         (tree_vector_builder::shape_nelts): New function.
15403         (tree_vector_builder::nelts_of): Likewise.
15404         (tree_vector_builder::npatterns_of): Likewise.
15405         (tree_vector_builder::nelts_per_pattern_of): Likewise.
15406         * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
15407         (tree_vector_builder::new_binary_operation): Delete.
15408         (tree_vector_builder::binary_encoded_nelts): Likewise.
15409         * simplify-rtx.c: Include rtx-vector-builder.h.
15410         (distributes_over_addition_p): New function.
15411         (simplify_const_unary_operation)
15412         (simplify_const_binary_operation): Generalize handling of vector
15413         constants to include variable-length vectors.
15414         (test_vector_ops_series): Add more tests.
15416 2019-07-28  Jan Hubicka  <hubicka@ucw.cz>
15418         PR lto/91222
15419         * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
15420         than INDENTIFIER_POINTER.
15422 2019-07-28  Martin Liska  <mliska@suse.cz>
15424         PR ipa/89330
15425         * cgraph.c (symbol_table::create_edge): Always allocate
15426         a cgraph_edge.
15427         (symbol_table::free_edge): Store summary_id to
15428         edge_released_summary_ids if != -1;
15429         * cgraph.h (NEXT_FREE_NODE): Remove.
15430         (SET_NEXT_FREE_NODE): Likewise.
15431         (NEXT_FREE_EDGE): Likewise.
15432         (symbol_table::release_symbol): Store summary_id to
15433         cgraph_released_summary_ids if != -1;
15434         (symbol_table::allocate_cgraph_symbol): Always allocate
15435         a cgraph_node.
15437 2019-07-28  Alan Modra  <amodra@gmail.com>
15439         * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
15440         gen_sibcall.
15442 2019-07-28  Alan Modra  <amodra@gmail.com>
15444         PR target/91135
15445         * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
15446         define.
15447         * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
15448         GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
15449         (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
15451 2019-07-28  Alan Modra  <amodra@gmail.com>
15453         PR target/91050
15454         * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
15455         * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
15456         * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
15457         * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
15458         * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
15459         * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
15460         in asm_default spec.
15461         * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
15462         * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
15464 2019-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
15466         * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
15468 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
15470         PR target/89517
15471         * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
15472         * config/aarch64/aarch64-option-extensions.def: Add new comments
15473         and restore easier to read options.
15475 2019-07-26  Tamar Christina  <tamar.christina@arm.com>
15477         * convert.c (convert_to_real_1): Move part of conversion code...
15478         * match.pd: ...To here.
15480 2019-07-26  Martin Jambor  <mjambor@suse.cz>
15482         PR ipa/89330
15483         * ipa-inline-transform.c (check_speculations_1): New function.
15484         (push_all_edges_in_set_to_vec): Likewise.
15485         (check_speculations): Use check_speculations_1, new parameter
15486         new_edges.
15487         (inline_call): Pass new_edges to check_speculations.
15488         * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
15489         NULL.
15490         (speculation_useful_p): Early return true if edge is inlined, remove
15491         later checks for inline_failed.
15493 2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>
15495         PR rtl-optimization/91223
15496         * lra-constraints.c (process_alt_operands): Fail for unsuccessful
15497         matching with INOUT operand.
15499 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15501         * stmt.c (expand_case): Try to narrow the index type if it's larger
15502         than a word.  Tidy up.
15504 2019-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15506         * cif-code.def (NEVER_CALL): New code.
15507         * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
15508         Set the failure to CIF_NEVER_CALL if the IPA count is zero.
15510 2019-07-25  Wilco Dijkstra  <wdijkstr@arm.com>
15512         * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
15513         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
15515 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
15517         * ipa-devirt.c (add_type_duplicate): Fix return value.
15519 2019-07-25  Richard Biener  <rguenther@suse.de>
15521         * tree-vrp.c (extract_range_from_multiplicative_op): Add
15522         type parameter and use it instead of guessing expression
15523         type from the first operand.
15524         (extract_range_from_binary_expr): Pass expr_type down.
15526 2019-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15528         * config/arm/arm.md (SATrev): Change to code attribute.
15529         (*satsi_<SAT:code>): Adjust for the above.
15530         (*satsi_<SAT:code>_shift): Likewise.
15532 2019-07-25  Richard Biener  <rguenther@suse.de>
15534         * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
15535         Make value_range * temporary const.
15536         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
15537         Likewise.
15538         (evrp_range_analyzer::record_ranges_from_): Likewise.
15539         (evrp_range_analyzer::pop_value_range): Return a const value_range *,
15540         deal with having recorded a const one.
15541         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
15542         Return a const value_range *.
15543         (evrp_range_analyzer::pop_value_range): Likewise.
15544         (evrp_range_analyzer::stack): Record const value_range *s.
15545         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
15546         Adjust.
15547         * gimple-ssa-sprintf.c (get_int_range): Likewise.
15548         (format_integer): Likewise.
15549         (sprintf_dom_walker::handle_gimple_call): Likewise.
15550         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
15551         * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
15552         (vrp_prop::get_value_range): Adjust.
15553         (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
15554         modifying the lattice in-place.
15555         (vrp_prop::visit_stmt): Likewise.
15556         * vr-values.c (vr_values::get_lattice_entry): New private method.
15557         (vr_values::get_value_range): Wrap it and return a const
15558         value_range *.
15559         (vr_values::set_def_to_varying): New.
15560         (vr_values::set_defs_to_varying): Use it.
15561         (vr_values::update_value_range): Likewise.
15562         (vr_values::vrp_stmt_computes_nonzero): Adjust.
15563         (values::op_with_constant_singleton_va): Likewise.
15564         (vr_values::extract_range_for_var_from_co): Likewise.
15565         (vr_values::extract_range_from_ssa_name): Likewise.
15566         (vr_values::extract_range_from_cond_expr): Likewise.
15567         (vr_values::extract_range_basic): Likewise.
15568         (compare_ranges): Take const value_range *, adjust.
15569         (compare_range_with_value): Likewise.
15570         (vrp_valueize): Adjust.
15571         (vrp_valueize_1): Likewise.
15572         (vr_values::get_vr_for_comparison): Return a const value_range *.
15573         (vr_values::compare_name_with_value): Adjust.
15574         (vr_values::compare_names): Likewise.
15575         (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
15576         Likewise.
15577         (vr_values::vrp_evaluate_conditional): Likewise.
15578         (find_case_label_ranges): Take a const value_range *.
15579         (vr_values::vrp_visit_switch_stmt): Adjust.
15580         (vr_values::extract_range_from_phi_node): Likewise.
15581         (vr_values::simplify_div_or_mod_using_ran): Likewise.
15582         (vr_values::simplify_abs_using_ranges): Likewise.
15583         (test_for_singularity): Take a const value_range *.
15584         (range_fits_type_p): Likewise.
15585         (vr_values::simplify_cond_using_ranges_1): Adjust.
15586         (vr_values::simplify_cond_using_ranges_2): Likewise.
15587         (vr_values::simplify_switch_using_ranges): Likewise.
15588         (vr_values::simplify_float_conversion_usi): Likewise.
15589         (vr_values::two_valued_val_range_p): Likewise.
15590         * vr-values.h (vr_values::get_value_range): Return a const
15591         value_range *.
15592         (vr_values::set_def_to_varying): New.
15593         (vr_values::get_lattice_entry): New private method.
15594         (vr_values::get_vr_for_comparison): Return a const value_range *.
15596 2019-07-25  Martin Liska  <mliska@suse.cz>
15597             Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>
15599         PR c++/23383
15600         * common.opt: Add -fallocation-dce
15601         * gimple.c (gimple_call_operator_delete_p): New.
15602         * gimple.h (gimple_call_operator_delete_p): Likewise.
15603         * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
15604         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
15605         DECL_IS_OPERATOR_DELETE_P.
15606         (mark_all_reaching_defs_necessary_1): Likewise.
15607         (propagate_necessity): Likewise.
15608         (eliminate_unnecessary_stmts): Handle
15609         gimple_call_operator_delete_p.
15610         * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
15611         Add packing of OPERATOR_DELETE.
15612         * tree-streamer-out.c (pack_ts_function_decl_value_fields):
15613         Similarly here.
15614         * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
15615         (DECL_SET_IS_OPERATOR_DELETE): New.
15616         (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
15618 2019-07-25  Martin Liska  <mliska@suse.cz>
15620         * calls.c (maybe_warn_alloc_args_overflow): Use new macros
15621         (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
15622         * coverage.c (coverage_begin_function): Likewise.
15623         * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
15624         * gimple.c (gimple_call_nonnull_result_p): Likewise.
15625         * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
15626         (sem_item::hash_referenced_symbol_properties): Likewise.
15627         * lto-streamer-out.c (hash_tree): Likewise.
15628         * predict.c (expr_expected_value_1): Likewise.
15629         * tree-inline.c (expand_call_inline): Likewise.
15630         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
15631         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
15632         * tree-core.h (enum function_decl_type): New enum.
15633         (struct tree_function_decl): Remove operator_new_flag and lambda_function.
15634         * tree.h (FUNCTION_DECL_DECL_TYPE): New.
15635         (set_function_decl_type): Likewise.
15636         (DECL_IS_OPERATOR_NEW_P): New.
15637         (DECL_SET_IS_OPERATOR_NEW): Likewise.
15638         (DECL_LAMBDA_FUNCTION): Likewise.
15639         (DECL_LAMBDA_FUNCTION_P): Likewise.
15640         (DECL_IS_OPERATOR_NEW): Remove.
15641         (DECL_SET_LAMBDA_FUNCTION): Likewise.
15643 2019-07-25  Xiong Hu Luo  <luoxhu@linux.ibm.com>
15645         * ipa-profile.c (get_most_common_single_value): Use
15646         get_nth_most_common_value.
15647         * profile.c (sort_hist_value): New function.
15648         (compute_value_histograms): Call sort_hist_value to sort the
15649         values after loading from disk.
15650         * value-prof.c (get_most_common_single_value): Rename to ...
15651         get_nth_most_common_value.  Add input params n, return
15652         the n_th value and count.
15653         (gimple_divmod_fixed_value_transform): Use
15654         get_nth_most_common_value.
15655         (gimple_ic_transform): Likewise.
15656         (gimple_stringops_transform): Likewise.
15657         * value-prof.h (get_most_common_single_value): Add input params
15658         n, default to 0.
15660 2019-07-25  Richard Biener  <rguenther@suse.de>
15662         PR tree-optimization/91236
15663         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
15664         size of CONSTRUCTOR write.  Fix buffer size we pass to
15665         native_encode_expr.
15667 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15669         * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
15670         * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
15671         r273773.
15673 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15675         * config.gcc (msp430*-*-*): Enable initfini_array by default unless
15676         explicitly disabled with --disable-initfini-array.
15678 2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15680         * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
15681         if-exists.
15683 2019-07-24  Martin Sebor  <msebor@redhat.com>
15685         PR tree-optimization/91183
15686         PR tree-optimization/86688
15687         * builtins.c (compute_objsize): Handle MEM_REF.
15688         * tree-ssa-strlen.c (class ssa_name_limit_t): New.
15689         (get_min_string_length): Remove.
15690         (count_nonzero_bytes): New function.
15691         (handle_char_store): Rename...
15692         (handle_store): to this.  Handle multibyte stores via integer types.
15693         (strlen_check_and_optimize_stmt): Adjust conditional and the called
15694         function name.
15696 2019-07-24  Martin Sebor  <msebor@redhat.com>
15698         PR driver/80545
15699         * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
15700         (diagnostic_report_diagnostic): Same.
15701         * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
15702         (diagnostic_context::lang_mask): New data member.
15703         * ipa-pure-const.c (suggest_attribute): Use
15704         lang_hooks.option_lang_mask ().
15705         * opts-common.c (option_enabled): Handle new argument.
15706         (get_option_state): Pass an additional argument.
15707         * opts.c (print_filtered_help): Print supported languages for
15708         unsupported options.  Adjust printing of current state.
15709         * opts.h (option_enabled): Add argument.
15710         * toplev.c (print_switch_values): Use lang_mask.
15711         (general_init): Set global_dc->lang_mask.
15713 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
15715         PR bootstrap/87030
15716         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
15718 2019-07-24  Giuliano Belinassi  <giuliano.belinassi@usp.br>
15720         * cgraphunit.c (symbol_table::compile): Start and stop
15721         TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
15722         * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
15724 2019-07-24  Oliver Browne  <oliverbrowne62@gmail.com>
15726         * gimplify.c (flag_instrument_functions_exclude_p): Include
15727         namespace/class information in the printable name.
15728         * opts.c (add_comma_separated_to_vector): Add NUL terminator
15729         to tokens entered into the vector.
15731 2019-07-24  Eric Botcazou  <ebotcazou@adacore.com>
15733         * tree-nested.c (build_simple_mem_ref_notrap): New function.
15734         (get_static_chain): Call it instead of build_simple_mem_ref.
15735         (get_frame_field): Likewise.
15736         (get_nonlocal_debug_decl): Likewise.
15737         (convert_nonlocal_reference_op): Likewise.
15739 2019-07-24  Claudiu Zissulescu  <claziss@synopsys.com>
15741         * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
15742         declaration.
15743         (arc_compute_frame_size): Millicode is disabled when compiling
15744         ISR.
15745         (arc_return_address_register): Likewise.
15746         (arc_compute_function_type): Likewise.
15747         (arc_compute_frame_size): Likewise.
15748         (secondary_reload_info): Likewise.
15749         (arc_get_unalign): Likewise.
15750         (arc_can_use_return_insn): Declare.
15751         * config/arc/arc.c (AUX_LP_START): Define
15752         (AUX_LP_END): Likewise.
15753         (arc_frame_info): Update gmask member to 64-bit datum.
15754         (GMASK_LEN): Update.
15755         (arc_compute_function_type): Make it static, move it forward.
15756         (arc_must_save_register): Update, consider the extra regs.
15757         (arc_compute_millicode_save_restore_regs): Update to use the 64
15758         bit gmask.
15759         (arc_compute_frame_size): Likewise.
15760         (arc_enter_leave_p): Likewise.
15761         (arc_save_callee_saves): Likewise.
15762         (arc_restore_callee_saves): Likewise.
15763         (arc_save_callee_enter): Likewise.
15764         (arc_restore_callee_leave): Likewise.
15765         (arc_save_callee_milli): Likewise.
15766         (arc_restore_callee_milli): Likewise.
15767         (arc_expand_prologue): Add new interrupt handling.
15768         (arc_return_address_register): Make it static, move it forward.
15769         (arc_expand_epilogue): Add new interrupt handling.
15770         (arc_get_unalign): Delete.
15771         (arc_epilogue_uses): Make sure we do not remove the extra
15772         saved/restored registers when interrupt.
15773         (arc_can_use_return_insn): New function.
15774         (push_reg): Likewise.
15775         (pop_reg): Likewise.
15776         (arc_save_callee_saves): Add ZOL and FPX aux registers saving
15777         procedures.
15778         (arc_restore_callee_saves): Likewise, but restoring.
15779         * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
15780         (R33_REG): Likewise.
15781         (R34_REG): Likewise.
15782         (R35_REG): Likewise.
15783         (R36_REG): Likewise.
15784         (R37_REG): Likewise.
15785         (R38_REG): Likewise.
15786         (R39_REG): Likewise.
15787         (R45_REG): Likewise.
15788         (R46_REG): Likewise.
15789         (R47_REG): Likewise.
15790         (R48_REG): Likewise.
15791         (R49_REG): Likewise.
15792         (R50_REG): Likewise.
15793         (R51_REG): Likewise.
15794         (R52_REG): Likewise.
15795         (R53_REG): Likewise.
15796         (R54_REG): Likewise.
15797         (R55_REG): Likewise.
15798         (R56_REG): Likewise.
15799         (R58_REG): Likewise.
15800         (type): Add rtie attribute.
15801         (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
15802         (movsi_insn): Accept moves to lp_count.
15803         (rtie): Update pattern.
15804         (simple_return): Simplify it, don't use this pattern as a return
15805         from an interrupt.
15806         (arc600_rtie): New pattern.
15807         (p_return_i): Clean up.
15808         (return): Likewise.
15809         * config/arc/builtins.def (rtie): Only available for non ARC6xx
15810         family CPUs.
15811         * config/arc/predicates.md (move_src_operand): Consider lp_count
15812         as a register.
15814 2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>
15816         * config/s390/predicates.md (addv_const_operand): New predicate.
15817         * config/s390/s390-modes.def (CCO): New condition code mode.
15818         * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
15819         (s390_branch_condition_mask): Likewise.
15820         * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
15821         ("mulv<mode>4"): New expanders.
15822         ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
15823         ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
15824         pattern definitions.
15826 2019-07-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15828         PR middle-end/91166
15829         * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
15830         (define_predicates): Add entry for uniform_vector_p.
15831         (vec_same_elem_p): New match pattern.
15833 2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
15835         PR bootstrap/87030
15836         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
15837         * config/i386/darwin32-biarch.h .. to here.
15838         * config/i386/darwin64-biarch.h: Adjust comments.
15839         * config/rs6000/darwin32-biarch.h: Likewise.
15840         * config/rs6000/darwin64-biarch.h: Likewise.
15841         * config.gcc: Missed commit from r273746
15842         (*-*-darwin*): Don't include CPU t-darwin here.
15843         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15844         an error message if i686-darwin configuration is attempted for
15845         Darwin >= 18.
15847 2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
15849         PR bootstrap/87030
15850         * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
15851         (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
15852         an error message if i686-darwin configuration is attempted for
15853         Darwin >= 18.
15854         (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
15855         (powerpc-*-darwin*): Use biarch files where needed.
15856         (powerpc64-*-darwin*): Likewise.
15857         * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
15858         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15859         arch case.
15860         * config/i386/darwin32-biarch.h: New.
15861         * config/i386/darwin64.h: Rename.
15862         * config/i386/darwin64-biarch.h: To this.
15863         * config/i386/t-darwin: Rename.
15864         * config/i386/t-darwin32-biarch: To this.
15865         * config/i386/t-darwin64: Rename.
15866         * config/i386/t-darwin64-biarch: To this.
15867         * config/rs6000/darwin32-biarch.h: New.
15868         * config/rs6000/darwin64.h: Rename.
15869         * config/rs6000/darwin64-biarch.h: To this.
15870         (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
15871         arch case.
15872         * config/rs6000/t-darwin8: Rename.
15873         * config/rs6000/t-darwin32-biarch: To this.
15874         * config/rs6000/t-darwin64 Rename.
15875         * config/rs6000/t-darwin64-biarch: To this.
15877 2019-07-23  Martin Sebor  <msebor@redhat.com>
15879         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
15881 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
15883         * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
15884         (rh): New alias for it.
15886 2019-07-23  Vladislav Ivanishin  <vlad@ispras.ru>
15888         * gdbhooks.py: Pass replace=True to
15889         gdb.printing.register_pretty_printer.
15891 2019-07-23  Richard Biener  <rguenther@suse.de>
15893         PR debug/91231
15894         * lto-streamer-in.c (input_function): Drop inline-entry markers
15895         that ended up with an unknown location block.
15897 2019-07-23  Richard Biener  <rguenther@suse.de>
15899         PR tree-optimization/83518
15900         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
15901         init from a constant even when partial defs are already recorded.
15903 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
15905         * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
15906         * config/i386/znver1.md: Enable patterns for znver2 and add store
15907         variants which use extra AGU unit.
15909 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
15911         * config/i386/i386-options.c (ix86_option_override_internal): Default
15912         PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
15913         * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
15914         for ZNVER2.
15916 2019-07-23  Jan Hubicka  <hubicka@ucw.cz>
15918         * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
15919         (znver2_costs): Update 256 bit SSE costs and multiplication.
15921 2019-07-23  Jan Beulich  <jbeulich@suse.com>
15923         * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
15924         Require only AVX512F.
15925         (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise.  Add
15926         alternative expanding to vpternlog.
15928 2019-07-23  Martin Liska  <mliska@suse.cz>
15930         * dwarf2out.c (gen_producer_string): Canonize -flto=N
15931         to -flto in dwarf producer string.
15933 2019-07-23  Richard Biener  <rguenther@suse.de>
15935         * tree-cfg.c (label_for_bb): Remove global var.
15936         (main_block_label): Take label_for_bb as argument.
15937         (cleanup_dead_labels_eh): Likewise, adjust.
15938         (cleanup_dead_labels): Adjust.
15940 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
15942         * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
15943         Configurations): Add documentation for __builtin_mtfsf.
15945 2019-07-22  Ilia Diachkov  <ilia.diachkov@optimitech.com>
15947         * config/riscv/riscv-opts.h (struct riscv_align_data): New.
15948         * config/riscv/riscv.c (riscv_constant_alignment): Use
15949         riscv_align_data_type.
15950         * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
15951         (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15952         (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
15953         * config/riscv/riscv.opt (malign-data): New.
15954         * doc/invoke.texi (RISC-V Options): Document -malign-data=.
15956 2019-07-02  Giuliano Belinassi  <giuliano.belinassi@usp.br>
15958         * cgraph.c (dump_graphviz): New function.
15959         * cgraph.h (dump_graphviz): New function.
15960         * symtab.c (dump_graphviz): New function.
15962 2019-07-22  Sylvia Taylor  <sylvia.taylor@arm.com>
15964         * config/aarch64/aarch64-simd.md
15965         (*aarch64_simd_sra<mode>): New.
15966         * config/aarch64/iterators.md
15967         (SHIFTRT): New iterator.
15968         (sra_op): New attribute.
15970 2019-07-22  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
15972         * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
15973         callee-saved regs R4->R10 in an interrupt function that calls another
15974         function.
15976 2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
15978         * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
15979         (_mm_blendv_epi8): New.
15981 2019-07-22  Richard Biener  <rguenther@suse.de>
15983         PR tree-optimization/91221
15984         * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
15985         restrict partial-def handling of empty constructors and
15986         memset to refs with known offset.
15988 2019-07-22  Jan Beulich  <jbeulich@suse.com>
15990         * config/i386/sse.md (ternlogsuffix): New.
15991         (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
15992         AVX512F is in use.
15993         (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
15995 2019-07-22  Martin Liska  <mliska@suse.cz>
15997         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
15998         comment.
15999         * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
16001 2019-07-22  Martin Liska  <mliska@suse.cz>
16003         * lto-section-in.c (lto_get_section_data):
16004         Use new function get_compression.
16005         * lto-streamer-out.c (produce_lto_section): Use
16006         set_compression to encode compression algorithm.
16007         * lto-streamer.h (struct lto_section): Do not
16008         use bitfields in the format.
16010 2019-07-22  Martin Liska  <mliska@suse.cz>
16012         PR driver/91172
16013         * opts-common.c (decode_cmdline_option): Decode
16014         argument of -Werror and check it for a wrong language.
16015         * opts-global.c (complain_wrong_lang): Remove such case.
16017 2019-07-22  Claudiu Zissulescu  <claziss@synopsys.com>
16019         * config/arc/arc.c (prepare_move_operands): Always use an
16020         intermediate register when storing a TLS symbols.
16022 2019-07-22  Stafford Horne  <shorne@gmail.com>
16024         * config/or1k/or1k.c (or1k_expand_compare): Check for int before
16025         force_reg.
16027 2019-07-22  Stafford Horne  <shorne@gmail.com>
16029         * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
16030         and munordered-float validations.
16031         * config/or1k/constraints.md (d): New register constraint.
16032         * config/or1k/predicates.md (fp_comparison_operator): New.
16033         * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
16034         operands.
16035         (or1k_expand_compare): Normalize unordered comparisons.
16036         * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
16037         (REG_CLASS_NAMES): Add "DOUBLE_REGS".
16038         (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
16039         * config/or1k/or1k.md (type): Add fpu.
16040         (fpu): New instruction reservation.
16041         (F, f, fr, fi, FI, FOP, fop): New.
16042         (<fop><F:mode>3): New ALU instruction definition.
16043         (float<fi><F:mode>2): New conversion instruction definition.
16044         (fix_trunc<F:mode><fi>2): New conversion instruction definition.
16045         (fpcmpcc): New code iterator.
16046         (*sf_fp_insn): New instruction definition.
16047         (cstore<F:mode>4): New expand definition.
16048         (cbranch<F:mode>4): New expand definition.
16049         * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
16050         munordered-float): New options.
16051         * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
16052         munordered-float.
16054 2019-07-22  Stafford Horne  <shorne@gmail.com>
16056         * config.gcc (or1k*-*-*): Add mrori and mror to validation.
16057         * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
16058         documenation to be more clear.
16059         * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
16060         more clear.
16061         * config/or1k/or1k.opt (mrori): New option.
16062         (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
16063         msfimm, mshftimm): Rewrite documentation to be more clear.
16064         * config/or1k/or1k.md (insn_support): Add ror and rori.
16065         (enabled): Add conditions for ror and rori.
16066         (rotrsi3): Replace condition for shftimm with ror and rori.
16068 2019-07-22  Stafford Horne  <shorne@gmail.com>
16070         PR target/90363
16071         * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
16072         (extend<mode>si2): Update predicate.
16073         * config/or1k/predicates.md (volatile_mem_operand): New.
16074         (reg_or_mem_operand): New.
16076 2019-07-21  Iain Sandoe  <iain@sandoe.co.uk>
16078         * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
16079         * config/rs6000/rs6000-call.c: ... to here.
16081 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
16083         * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
16084         memory.
16086 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
16088         * config/rs6000/predicates.md (input_operand): Allow volatile memory.
16090 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
16092         * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
16094 2019-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
16096         * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
16097         (any_memory_operand): New predicate.
16098         (reg_or_mem_operand): Use it.
16100 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
16102         PR target/91204
16103         * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
16105 2019-07-20  John David Anglin  <danglin@gcc.gnu.org>
16107         * config/pa/pa.h (hppa_profile_hook): Delete declaration.
16108         * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
16110 2019-07-20  Jakub Jelinek  <jakub@redhat.com>
16112         * tree.def (OMP_LOOP): New tree code.
16113         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
16114         (enum omp_clause_bind_kind): New enum.
16115         (struct tree_omp_clause): Add subcode.bind_kind.
16116         * tree.h (OMP_LOOP_CHECK): Rename to ...
16117         (OMP_LOOPING_CHECK): ... this.
16118         (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
16119         OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
16120         OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
16121         (OMP_CLAUSE_BIND_KIND): Define.
16122         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
16123         bind clause entries.
16124         (walk_tree_1): Handle OMP_CLAUSE_BIND.
16125         * tree-pretty-print.c (dump_omp_clause): Likewise.
16126         (dump_generic_node): Handle OMP_LOOP.
16127         * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
16128         (in_omp_construct): New variable.
16129         (is_gimple_stmt): Handle OMP_LOOP.
16130         (gimplify_scan_omp_clauses): For lastprivate don't set
16131         check_non_private if code == OMP_LOOP.  For reduction clause
16132         on OMP_LOOP combined with parallel or teams propagate as shared
16133         on the combined construct.  Handle OMP_CLAUSE_BIND.
16134         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
16135         (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
16136         for constructs from a loop construct to gimplify_scan_omp_clauses.
16137         Don't predetermine iterator linear on OMP_SIMD from loop construct.
16138         (replace_reduction_placeholders, gimplify_omp_loop): New functions.
16139         (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
16140         to match the implicit ORT_TARGET construct around whole body.
16141         Temporarily clear in_omp_construct when processing body.
16142         (gimplify_expr): Handle OMP_LOOP.  For OMP_MASTER, OMP_TASKGROUP
16143         etc. temporarily set in_omp_construct when processing body.
16144         (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
16145         * omp-low.c (struct omp_context): Add loop_p.
16146         (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
16147         in that the original var might be private.
16148         (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
16149         (check_omp_nesting_restrictions): Adjust nesting restrictions for
16150         addition of loop construct.
16151         (scan_omp_1_stmt): Allow setjmp inside of loop construct.
16153         * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
16154         lastprivate non-addressable iterator of a collapse(1) simd.
16156 2019-07-17  Bill Seurer  <seurer@linux.vnet.ibm.com>
16158         * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
16159         as in rs6000.c.
16161 2019-07-19  Iain Sandoe  <iain@sandoe.co.uk>
16163         * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
16164         refer to default conditions.  Warn for the 'y' spec which is ignored
16165         by current linkers.
16167 2019-07-19  Bill Seurer  <seurer@linux.vnet.ibm.com>
16169         * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
16170         cpu_supports_info, builtin_hash_struct, builtin_hasher,
16171         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
16172         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
16173         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
16174         init_cumulative_args, rs6000_promote_function_mode,
16175         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
16176         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
16177         rs6000_function_arg_boundary, rs6000_parm_offset,
16178         rs6000_parm_start, rs6000_arg_size,
16179         rs6000_darwin64_record_arg_advance_flush,
16180         rs6000_darwin64_record_arg_advance_recurse,
16181         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
16182         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
16183         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
16184         rs6000_mixed_function_arg, rs6000_psave_function_arg,
16185         rs6000_finish_function_arg, rs6000_function_arg,
16186         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
16187         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
16188         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
16189         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
16190         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
16191         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
16192         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
16193         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
16194         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
16195         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
16196         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
16197         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
16198         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
16199         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
16200         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
16201         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
16202         get_element_number, altivec_expand_vec_set_builtin,
16203         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
16204         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
16205         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
16206         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
16207         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
16208         rs6000_expand_builtin, rs6000_vector_type,
16209         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
16210         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
16211         rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
16212         to rs6000-call.c.
16213         * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
16214         cpu_supports_info, builtin_hash_struct, builtin_hasher,
16215         builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
16216         rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
16217         rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
16218         init_cumulative_args, rs6000_promote_function_mode,
16219         rs6000_must_pass_in_stack, is_complex_IBM_long_double,
16220         abi_v4_pass_in_fpr, rs6000_function_arg_padding,
16221         rs6000_function_arg_boundary, rs6000_parm_offset,
16222         rs6000_parm_start, rs6000_arg_size,
16223         rs6000_darwin64_record_arg_advance_flush,
16224         rs6000_darwin64_record_arg_advance_recurse,
16225         rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
16226         rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
16227         rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
16228         rs6000_mixed_function_arg, rs6000_psave_function_arg,
16229         rs6000_finish_function_arg, rs6000_function_arg,
16230         rs6000_arg_partial_bytes, rs6000_pass_by_reference,
16231         rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
16232         rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
16233         setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
16234         rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
16235         bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
16236         bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
16237         rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
16238         rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
16239         rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
16240         altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
16241         altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
16242         altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
16243         altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
16244         htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
16245         altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
16246         get_element_number, altivec_expand_vec_set_builtin,
16247         altivec_expand_vec_ext_builtin, altivec_expand_builtin,
16248         rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
16249         rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
16250         fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
16251         fold_mergeeo_helper, rs6000_gimple_fold_builtin,
16252         rs6000_expand_builtin, rs6000_vector_type,
16253         rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
16254         htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
16255         rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
16256         to here from rs6000.c.
16257         * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
16258         rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
16259         rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
16260         rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
16261         rs6000_gimplify_va_arg, rs6000_promote_function_mode,
16262         rs6000_return_in_memory, rs6000_return_in_msb,
16263         rs6000_pass_by_reference, setup_incoming_varargs,
16264         rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
16265         rs6000_arg_partial_bytes, rs6000_function_arg_advance,
16266         rs6000_function_arg_padding, rs6000_function_arg,
16267         rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
16268         rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
16269         rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
16270         rs6000_passes_long_double, rs6000_passes_vector,
16271         rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
16272         altivec_builtin_mask_for_load) Add declarations.
16273         * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
16274         * config/config.gcc: Add new source file rs6000-call.c to garbage
16275         collector and extra_objs.
16277 2019-07-19  Jeff Law  <law@redhat.com>
16279         PR tree-optimization/86061
16280         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
16281         strncpy.  Drop some trivial dead code.
16282         (maybe_trim_memstar_call): Handle strncpy.
16284 2019-07-19  Richard Biener  <rguenther@suse.de>
16286         PR tree-optimization/91211
16287         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
16288         memset encoding size.
16290 2019-07-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16292         PR target/91204
16293         * config/i386/mmx.md (one_cmpl<mode>2): New expander.
16295 2019-07-19  Jan Hubicka  <hubicka@ucw.cz>
16297         PR ipa/91194
16298         * ipa-inline.c (recursive_inlining): Fix limits check.
16300 2019-07-19  Richard Biener  <rguenther@suse.de>
16302         PR tree-optimization/91200
16303         * tree-ssa-phiopt.c (cond_store_replacement): Check we have
16304         no PHI nodes in middle-bb.
16306 2019-07-19  Richard Sandiford  <richard.sandiford@arm.com>
16308         * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
16309         to +sve-bitperm.
16310         * config/aarch64/aarch64-option-extensions.def: Likewise.
16312 2019-07-19  Jakub Jelinek  <jakub@redhat.com>
16314         PR middle-end/91190
16315         * function.c (insert_temp_slot_address): Store into the hash table
16316         a copy of address to avoid RTL sharing issues.
16318 2019-07-19  Richard Biener  <rguenther@suse.de>
16320         PR tree-optimization/91207
16321         Revert
16322         2019-07-17  Richard Biener  <rguenther@suse.de>
16324         PR tree-optimization/91178
16325         * tree-vect-stmts.c (get_group_load_store_type): For SLP
16326         loads with a gap larger than the vector size always use
16327         VMAT_STRIDED_SLP.
16328         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
16329         avoid loading vectors that are only contained in the gap
16330         and thus are not needed.
16332 2019-07-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16334         * config/i386/i386.md (*addqi_2_slp): Remove.
16335         (*<code>qi_2_slp): Ditto.
16337 2019-07-18  Michael Meissner  <meissner@linux.ibm.com>
16339         * config/rs6000/predicates.md (prefixed_mem_operand): Call
16340         rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
16341         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
16342         Rename function from rs6000_prefixed_address.
16343         * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
16344         TARGET_HAS_TOC.
16345         (TARGET_TOC): Likewise.
16346         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
16347         rs6000.h.
16348         * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
16349         TARGET_HAS_TOC.
16350         (TARGET_TOC): Likewise.
16351         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
16352         rs6000.h.
16353         * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
16354         TARGET_HAS_TOC.
16355         (TARGET_TOC): Likewise.
16356         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16357         check to require -mcmodel=medium for pc-relative addressing.
16358         (create_TOC_reference): Add assertion for TARGET_TOC.
16359         (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
16360         TARGET_NO_TOC.
16361         (rs6000_emit_move): Likewise.
16362         (TOC_alias_set): Rename TOC alias set static variable from 'set'
16363         to 'TOC_alias_set'.
16364         (get_TOC_alias_set): Likewise.
16365         (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
16366         TARGET_NO_TOC.
16367         (rs6000_can_eliminate): Likewise.
16368         (rs6000_prefixed_address_mode_p): Rename function from
16369         rs6000_prefixed_address.
16370         * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
16371         TARGET_HAS_TOC and not pc-relative.
16372         (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
16373         * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
16374         TARGET_HAS_TOC.
16375         (TARGET_TOC): Likewise.
16376         (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
16377         rs6000.h.
16379 2019-07-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16381         PR target/91188
16382         * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
16383         for operand 0.  Do not use (match_dup) to match operand 1 with
16384         operand 0.  Add check in insn constraint that either input operand
16385         matches operand 0.  Use SWI12 mode iterator to also handle
16386         HImode operands.
16387         (*and<mode>_1_slp): Ditto.
16388         (*<code>qi_1_slp): Ditto.
16389         (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
16390         Do not use (match_dup) to match operand 1 with operand 0.  Add
16391         check in insn constraint that operand 1 matches operand 0.
16392         Use SWI12 mode iterator to also handle HImode operands.
16393         (*ashl<mode>3_1_slp): Ditto.
16394         (*<shift_insn><mode>3_1_slp): Ditto.
16395         (*<rotate_insn><mode>3_1_slp): Ditto.
16397 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
16399         * config/arm/arm-builtins.c
16400         (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
16401         (arm_expand_unop_builtin): Likewise.
16402         * config/arm/crypto.md
16403         (crypto_sha1h): Convert from define_insn to define_expand.
16404         (crypto_<crypto_pattern>): Likewise.
16405         (crypto_sha1h_lb): New define_insn.
16406         (crypto_<crypto_pattern>_lb): Likewise.
16408 2019-07-18  Sylvia Taylor  <sylvia.taylor@arm.com>
16410         PR target/90317
16411         * config/arm/arm_neon.h (vsha1h_u32): Refactor.
16412         (vsha1cq_u32): Likewise.
16413         (vsha1pq_u32): Likewise.
16414         (vsha1mq_u32): Likewise.
16415         * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
16416         vec select.
16417         (crypto_sha1c): Correct vec select.
16418         (crypto_sha1m): Likewise.
16419         (crypto_sha1p): Likewise.
16421 2019-07-18  Richard Earnshaw  <rearnsha@arm.com>
16423         * config/arm/predicates.md (arm_borrow_operation): New predicate.
16424         * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
16425         (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
16426         (subdi_zesidi_zesidi): Likewise.
16427         (negdi2_compare, negdi2_insn): Likewise.
16428         (negdi_extensidi): Likewise.
16429         (negdi_zero_extendsidi): Likewise.
16430         (arm_cmpdi_insn): Likewise.
16431         (subsi3_carryin): Use arm_borrow_operation.
16432         (subsi3_carryin_const): Likewise.
16433         (subsi3_carryin_const0): Likewise.
16434         (subsi3_carryin_compare): Likewise.
16435         (subsi3_carryin_compare_const): Likewise.
16436         (subsi3_carryin_compare_const0): Likewise.
16437         (subsi3_carryin_shift): Likewise.
16438         (rsbsi3_carryin_shift): Likewise.
16439         (negsi2_carryin_compare): Likewise.
16441 2019-07-18  Bin Cheng  <bin.cheng@linux.alibaba.com>
16443         PR tree-optimization/91137
16444         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
16445         (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
16446         Init, use and fini the above new field.
16447         (determine_base_object_1): New function.
16448         (determine_base_object): Reimplement using walk_tree.
16450 2019-07-18  Richard Sandiford  <richard.sandiford@arm.com>
16452         * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
16453         * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
16454         CLEANUP_FORCE_FAST_DCE is set.
16455         * ifcvt.c (rest_of_handle_if_conversion): Pass
16456         CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
16457         if-conversion succeeded.
16459 2019-07-18  Richard Biener  <rguenther@suse.de>
16461         * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
16462         branches to make code less indented.
16464 2019-07-17  Alexandre Oliva  <oliva@adacore.com>
16466         PR middle-end/81824
16467         * attribs.c (decls_mismatched_attributes): Simplify the logic
16468         that avoids duplicates and false positives.
16470 2019-07-17  John David Anglin  <danglin@gcc.gnu.org>
16472         * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
16473         data into data section when generating PIC code.
16474         (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
16475         (pa_reloc_rw_mask): Return 3 when generating PIC code and when
16476         generating code for SOM targets earlier than HP-UX 11.  Otherwise,
16477         return 2 for SOM and 0 for other targets.
16479 2019-07-17  Jeff Law  <law@redhat.com>
16481         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
16482         (dse_walker::dse_optimize_stmt): Likewise.  Add missing return to
16483         avoid unexpected switch statement fallthru.
16485 2019-07-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16487         * config/i386/i386.md (*add<dwi>3_doubleword):
16488         Remove redundant constraints.
16489         (*add<mode>_1): Ditto.
16490         (*addhi_1): Ditto.
16491         (*addqi_1): Ditto.
16492         (*addqi_1_slp): Ditto.
16493         (*add<mode>_2): Ditto.
16494         (*addv<mode>4): Ditto.
16495         (*sub<dwi>3_doubleword): Ditto.
16496         (*sub<mode>_1): Ditto.
16497         (*subqi_1_slp): Ditto.
16498         (*sub<mode>_2): Ditto.
16499         (*subv<mode>4): Ditto.
16500         (*sub<mode>_3): Ditto.
16501         (@add<mode>3_carry): Ditto.
16502         (@sub<mode>3_carry): Ditto.
16503         (*add<mode>3_cc_overflow_1): Ditto.
16504         (*add<mode>3_zext_cc_overflow_2): Ditto.
16505         (*anddi_1): Ditto.
16506         (*and<mode>_1): Ditto.
16507         (*andqi_1): Ditto.
16508         (*andqi_1_slp): Ditto.
16509         (*anddi_2): Ditto.
16510         (*andqi_2_maybe_si): Ditto.
16511         (*and<mode>_2): Ditto.
16512         (*andqi_2_slp): Ditto.
16513         (*<code><mode>_1): Ditto.
16514         (*<code>qi_1): Ditto.
16515         (*<code>qi_1_slp): Ditto.
16516         (*<code><mode>_2): Ditto.
16517         (*<code>qi_2_slp): Ditto.
16519 2019-07-17  Jan Hubicka  <hubicka@ucw.cz>
16521         * alias.c (record_component_aliases): Do not simplify pointed-to
16522         types of ODR types.
16524 2019-07-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16526         * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
16527         partial reg stall on alternative 2.
16529 2019-07-17  Richard Biener  <rguenther@suse.de>
16531         PR tree-optimization/91178
16532         * tree-ssa.c (release_defs_bitset): Iterate from higher to
16533         lower SSA names to avoid quadratic behavior in the common case.
16534         * tree-data-ref.c (split_constant_offset): Add limit argument
16535         and pass it down.  Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
16536         (split_constant_offset_1): Add limit argument and use it to
16537         limit SSA def walking.  Optimize the common plus/minus case.
16539 2019-07-17  Richard Biener  <rguenther@suse.de>
16541         PR tree-optimization/91178
16542         * tree-vect-stmts.c (get_group_load_store_type): For SLP
16543         loads with a gap larger than the vector size always use
16544         VMAT_STRIDED_SLP.
16545         (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
16546         avoid loading vectors that are only contained in the gap
16547         and thus are not needed.
16549 2019-07-17  Richard Biener  <rguenther@suse.de>
16551         PR tree-optimization/91180
16552         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
16553         computation for memset partial defs.
16555 2019-07-17  Jakub Jelinek  <jakub@redhat.com>
16557         * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
16558         GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
16559         divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
16560         GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
16561         GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
16562         * omp-grid.c (grid_process_grid_body,
16563         grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
16564         of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
16565         == GF_OMP_FOR_KIND_SIMD.
16566         * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
16567         check_omp_nesting_restrictions, scan_omp_1_stmt,
16568         lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
16569         lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
16570         omp_find_scan): Likewise.
16571         * omp-expand.c (expand_omp_for): Likewise.
16572         * omp-general.c (omp_extract_for_data): Likewise.
16574         PR tree-optimization/91157
16575         * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
16576         a vector boolean with scalar mode.
16577         (expand_vector_condition): Handle first operand being a vector boolean
16578         with scalar mode.
16579         (expand_vector_operations_1): For comparisons, don't bail out early
16580         if the return type is vector boolean with scalar mode, but comparison
16581         operand type is not.
16583 2019-07-17  Richard Biener  <rguenther@suse.de>
16585         PR tree-optimization/91181
16586         * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
16587         IFN_LOADs as calls.
16589 2019-07-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16591         * config/i386/i386.md (*testdi_1): Match CCZmode for
16592         constants that might have the SImode sign bit set.
16593         (*testqi_1_maybe_si): Remove "!" constraint modifier.
16594         Use correct constraints for pentium pairing.
16595         (*test<mode>_1): Ditto.
16597 2019-07-16  Jeff Law  <law@redhat.com>
16599         PR rtl-optimization/91173
16600         * tree-ssa-address.c (addr_for_mem_ref): If the base is an
16601         SSA_NAME with a constant value, fold its value into the offset
16602         and clear the base before calling gen_addr_rtx.
16604 2019-07-16  Jakub Jelinek  <jakub@redhat.com>
16606         PR rtl-optimization/91164
16607         * dse.c (rest_of_handle_dse): If dead edges have been purged,
16608         invalidate dominance info.
16610 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
16612         * read-md.h (md_reader::record_potential_iterator_use): Add a
16613         file_location parameter.
16614         * read-rtl.c (attribute_use::loc): New field.
16615         (map_attr_string): Take a file_location parameter.  Report cases
16616         in which attributes map to multiple distinct values.
16617         (apply_attribute_uses): Update call accordingly.
16618         (md_reader::handle_overloaded_name): Likewise.
16619         (md_reader::apply_iterator_to_string): Likewise.  Skip empty
16620         nonnull strings.
16621         (record_attribute_use): Take a file_location parameter.
16622         Initialize attribute_use::loc.
16623         (md_reader::record_potential_iterator_use): Take a file_location
16624         parameter.  Update call to record_attribute_use.
16625         (rtx_reader::rtx_alloc_for_name): Update call accordingly.
16626         (rtx_reader::read_rtx_code): Likewise.
16627         (rtx_reader::read_rtx_operand): Likewise.  Record a location
16628         for implicitly-expanded empty strings.
16630 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
16632         * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
16633         Use file_location instead of separate fields.
16634         (md_reader::set_md_ptr_loc): Take a file_location instead of a
16635         separate filename and line number.
16636         * read-md.c (ptr_loc): As above.
16637         (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
16638         (md_reader::fprint_md_ptr_loc): Likewise.
16639         (md_reader::set_md_ptr_loc): Likewise.  Take a file_location
16640         instead of a separate filename and line number.
16641         (md_reader::read_string): Update call accordingly.
16643 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
16645         * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
16646         use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
16647         leaving the choice between SFDF and P implicit.
16648         (*mov<mode>_update2): Likewise.
16649         (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
16650         rather than leaving the choice betweem IBM128 and GPR implicit.
16651         (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
16652         <IEEE128:MODE> rather than leaving the choice between IEEE128 and
16653         QHSI implicit.
16654         (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
16655         rather than leaving the choice between ALTIVEC_DFORM and P implicit.
16656         * config/rs6000/vsx.md
16657         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
16658         (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
16659         use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
16660         and VSX_EXTRACT_I implicit.
16662 2019-07-16  Richard Sandiford  <richard.sandiford@arm.com>
16664         * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
16665         Explicitly use <MOVEP1:MODE> for the mode attribute.
16667 2019-07-16  Jan Hubicka  <hubicka@ucw.cz>
16669         PR bootstrap/91176
16670         * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
16672 2019-07-15  Segher Boessenkool  <segher@kernel.crashing.org>
16674         PR target/91050
16675         * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
16676         .machine directive.
16678 2019-07-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16680         * config/i386/i386.md (@test<mode>_ccno_1):
16681         Rename from test<mode>_ccno_1.
16682         (*testdi_1): Remove redundant alternatives.  Remove modrm attribute.
16683         (*testqi_1_maybe_si): Remove modrm attribute.
16684         (*test<mode>_1): Ditto.
16685         * config/i386/i386-expand.c (ix86_split_idivmod): Use
16686         gen_test_ccno_1 and gen_extend_insn.
16688 2019-07-15  Jan Hubicka  <hubicka@ucw.cz>
16690         * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
16691         to 0.
16693 2019-07-15  Richard Biener  <rguenther@suse.de>
16695         PR middle-end/91162
16696         * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
16697         node make sure to replace all uses with something valid.
16699 2019-07-15  Kewen Lin  <linkw@gcc.gnu.org>
16701         PR tree-optimization/88497
16702         * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
16703         GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
16704         function undistribute_bitref_for_vector.
16705         (undistribute_bitref_for_vector): New function.
16706         (cleanup_vinfo_map): Likewise.
16707         (sort_by_mach_mode): Likewise.
16709 2019-07-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
16711         * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
16712         (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
16713         and testdi_ccno_1 using SWI48 mode attribute.
16714         (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
16715         x86_64_szext_general_operand.
16716         (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
16717         (*test<mode>_1): Use nonmemory_szext_operand mode attribute
16718         instead of genera_operand mode attribute.
16720 2019-07-14  Vladislav Ivanishin  <vlad@ispras.ru>
16722         * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
16723         fopen and fclose to their respective types.
16724         (DotFn.invoke): Ditto.
16726 2019-07-14  Jan Hubicka  <hubicka@ucw.cz>
16728         * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
16729         (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
16730         (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
16731         (array_index_predicate): Remove.
16732         (analyze_function_body): Account cost for variable ofsetted array
16733         indexing.
16734         (estimate_node_size_and_time): Do not compute array index hint.
16735         (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
16736         (inline_read_section): Do not read array index hint.
16737         (ipa_fn_summary_write): Do not write array index hint.
16738         * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
16739         * ipa-cp.c (hint_time_bonus): Remove.
16740         * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
16741         (ipa_fnsummary): Remove array_index.
16742         * ipa-inline.c (want_inline_small_function_p): Do not use
16743         array_index.
16744         (edge_badness): Likewise.
16745         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
16747 2019-07-14  Segher Boessenkool  <segher@kernel.crashing.org>
16749         PR target/91148
16750         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
16751         superfluous "builtin function" phrasing.
16753 2019-07-13  Jan Hubicka  <hubicka@ucw.cz>
16755         * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
16756         Break out from ...
16757         (aliasing_component_refs_walk): Break out from ...
16758         (aliasing_component_refs_p): ... here.
16760 2019-07-13  Segher Boessenkool  <segher@kernel.crashing.org>
16762         PR target/91148
16763         * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
16764         "builtin function" phrasing.
16766 2019-07-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16768         PR target/90723
16769         * recog.h (temporary_volatile_ok): New class.
16770         * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
16771         volatile_ok temporarily to true using temporary_volatile_ok.
16772         * expr.c (emit_block_move_via_cpymem): Likewise.
16773         * optabs.c (maybe_legitimize_operand): Likewise.
16775 2019-07-13  Jakub Jelinek  <jakub@redhat.com>
16777         * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
16778         (omp_notice_threadprivate_variable): Diagnose threadprivate variable
16779         uses inside of order(concurrent) constructs.
16780         (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
16781         OMP_CLAUSE_ORDER is seen.
16782         * omp-low.c (struct omp_context): Add order_concurrent member.
16783         (scan_sharing_clauses): Set ctx->order_concurrent if
16784         OMP_CLAUSE_ORDER is seen.
16785         (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
16786         of simd order(concurrent).  Diagnose constructs not allowed inside of
16787         for order(concurrent).
16788         (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
16789         complaining about static double setjmp (double); or class static
16790         methods or non-global namespace setjmps.
16791         (omp_runtime_api_call): New function.
16792         (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
16793         order(concurrent) loops.
16795 2019-07-12  Martin Sebor  <msebor@redhat.com>
16797         * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
16798         * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
16799         * tree-vrp.c (vrp_prop::check_mem_ref): Use
16800         PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
16802 2019-07-12  Jan Hubicka  <jh@suse.cz>
16804         * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
16805         (indirect_refs_may_alias_p): ... here.
16806         (nonoverlapping_component_refs_since_match_p): Support also non-trivial
16807         mem refs in the access paths.
16809 2019-07-12  Jiangning Liu  <jiangning.liu@amperecomputing.com>
16811         PR tree-optimization/89430
16812         * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
16813         store elimination for local variable without address escape.
16815 2019-07-12  Jeff Law  <law@redhat.com>
16817         * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
16818         for the ".far" section.
16820 2019-07-12  Richard Biener  <rguenther@suse.de>
16822         PR tree-optimization/91145
16823         * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
16824         chain check.
16826 2019-07-12  Alexandre Oliva  <oliva@adacore.com>
16828         * tree-eh.c (honor_protect_cleanup_actions): Use outer_
16829         rather than this_state as the lowering context for the ELSE
16830         seq in a GIMPLE_EH_ELSE.
16832 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
16834         * vector-builder.h (vector_builder::elt): Allow already-supplied
16835         elements to be read back before building is complete.
16837 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
16839         PR rtl-optimization/91136
16840         * df-core.c (ACCESSING REFS): Fix typos in comment.
16841         * resource.c (mark_target_live_reg): Add artificial defs that occur at
16842         the beginning of the block to the initial set of live registers.
16844 2019-07-12  Richard Biener  <rguenther@suse.de>
16846         * fold-const.h (get_array_ctor_element_at_index): Adjust.
16847         * fold-const.c (get_array_ctor_element_at_index): Add
16848         ctor_idx output parameter informing the caller where in
16849         the constructor the element was (not) found.  Add early exit
16850         for when the ctor is sorted.
16851         * gimple-fold.c (fold_array_ctor_reference): Support constant
16852         folding across multiple array elements.
16854 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
16856         * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
16857         doesn't have location, set the current location to the function's end.
16859 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
16861         * config/aarch64/aarch64.md (*compare_condjump<mode>)
16862         (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
16863         (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
16864         (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
16865         * config/aarch64/aarch64-simd.md
16866         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
16867         (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
16868         * config/aarch64/aarch64-sve.md
16869         (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
16870         (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
16872 2019-07-12  Richard Sandiford  <richard.sandiford@arm.com>
16874         * doc/md.texi: Document that @ patterns can have different
16875         numbers of operands.
16876         * genemit.c (handle_overloaded_gen): Handle this case.
16877         * genopinit.c (handle_overloaded_gen): Likewise.
16878         * gensupport.c (replace_operands_with_dups): Iterate over
16879         the new rtx's format rather than the old one's.
16881 2019-07-12  Jakub Jelinek  <jakub@redhat.com>
16883         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
16884         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
16885         order clause entries.
16886         (walk_tree_1): Handle OMP_CLAUSE_ORDER.
16887         * tree-pretty-print.c (dump_omp_clause): Likewise.
16888         * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
16889         Likewise.
16890         * omp-low.c (scan_sharing_clauses): Likewise.
16891         * tree-nested.c (convert_nonlocal_omp_clauses,
16892         convert_local_omp_clauses): Likewise.
16894 2019-07-12  Kewen Lin  <linkw@gcc.gnu.org>
16896         * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
16897         fallthrough target of current basic block isn't the placed
16898         right next.
16900 2019-07-11  Sunil K Pandey  <sunil.k.pandey@intel.com>
16902         PR target/90980
16903         * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
16904         (_mm512_storeu_epi64): Likewise.
16905         (_mm512_loadu_epi32): Likewise.
16906         (_mm512_storeu_epi32): Likewise.
16907         * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
16908         (_mm_storeu_epi64): Likewise.
16909         (_mm256_storeu_epi32): Likewise.
16910         (_mm_storeu_epi32): Likewise.
16912 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
16914         * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
16916 2019-07-11  Segher Boessenkool  <segher@kernel.crashing.org>
16918         * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
16919         Handle Modula-2.
16921 2019-07-11  Jakub Jelinek  <jakub@redhat.com>
16923         PR target/91124
16924         * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
16925         (sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
16926         (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
16927         (ufix_notruncv2dfv2si2<mask_name>): Change into ...
16928         (ufix_notruncv2dfv2si2): ... this.  Remove mask substitution macros.
16929         (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
16930         define_insns.
16931         (ufix_truncv2dfv2si2<mask_name>): Change into ...
16932         (ufix_truncv2dfv2si2): ... this.  Remove mask substitution macros.
16933         (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
16934         define_insns.
16935         (sse2_cvttpd2dq<mask_name>): Change into ...
16936         (sse2_cvttpd2dq): ... this.  Remove mask substitution macros.
16937         (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
16938         (*sse2_cvtpd2dq<mask_name>): Change into ...
16939         (*sse2_cvtpd2dq): ... this.  Remove mask substitution macros.
16940         Add "C" constraint to const0_operand.
16941         (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
16942         (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
16943         changes.
16945         PR target/91124
16946         * config/i386/i386-builtin-types.def
16947         (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
16948         V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
16949         V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
16950         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
16951         V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
16952         * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
16953         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
16954         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
16955         __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
16956         __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
16957         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
16958         __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
16959         __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
16960         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
16961         __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
16962         __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
16963         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
16964         __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
16965         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
16966         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
16967         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
16968         __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
16969         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
16970         __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
16971         __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
16972         __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
16973         __builtin_ia32_vpdpbusd_v4si_maskz,
16974         __builtin_ia32_vpdpbusds_v16si_mask,
16975         __builtin_ia32_vpdpbusds_v16si_maskz,
16976         __builtin_ia32_vpdpbusds_v8si_mask,
16977         __builtin_ia32_vpdpbusds_v8si_maskz,
16978         __builtin_ia32_vpdpbusds_v4si_mask,
16979         __builtin_ia32_vpdpbusds_v4si_maskz,
16980         __builtin_ia32_vpdpwssd_v16si_mask,
16981         __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
16982         __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
16983         __builtin_ia32_vpdpwssd_v4si_maskz,
16984         __builtin_ia32_vpdpwssds_v16si_mask,
16985         __builtin_ia32_vpdpwssds_v16si_maskz,
16986         __builtin_ia32_vpdpwssds_v8si_mask,
16987         __builtin_ia32_vpdpwssds_v8si_maskz,
16988         __builtin_ia32_vpdpwssds_v4si_mask,
16989         __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
16990         suffixed types rather than *_INT.
16991         * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
16992         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
16993         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
16994         V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
16995         V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
16996         and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
16998 2019-07-11  Aldy Hernandez  <aldyh@redhat.com>
17000         * tree-vrp.c (intersect_ranges): If we know the intersection is
17001         empty, there is no need to conservatively add anything else to
17002         the set.
17004 2019-07-11  Richard Biener  <rguenther@suse.de>
17006         PR middle-end/91131
17007         * gimplify.c (gimplify_compound_literal_expr): Force a temporary
17008         when the object is volatile and we have not cleared it even though
17009         there are no nonzero elements.
17011 2019-07-10  Michael Meissner  <meissner@linux.ibm.com>
17013         * config/rs6000/predicates.md (cint34_operand): Update
17014         SIGNED_34BIT_OFFSET_P call.
17015         (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
17016         (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
17017         * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
17018         SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
17019         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
17020         argument.
17021         (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
17022         (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
17023         SIGNED_16BIT_OFFSET_P with an EXTRA argument.
17024         (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
17025         SIGNED_34BIT_OFFSET_P with an EXTRA argument.
17027 2019-07-10  Iain Sandoe  <iain@sandoe.co.uk>
17029         * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
17030         * config/rs6000/darwin7.h (LIB_SPEC): Remove.
17031         * config/rs6000/darwin8.h (LIB_SPEC): Remove.
17032         (DEF_MIN_OSX_VERSION): New.
17034 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
17036         * fold-const.c (fold_relational_const): Fix folding of
17037         vector-to-scalar NE_EXPRs.
17038         (test_vector_folding): Add more tests.
17040 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
17042         PR target/91060
17043         * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
17044         * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
17045         (vec_setv2di_internal): Reexpress as...
17046         (@vec_set<V2DI_ONLY:mode>_internal): ...this.
17047         * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
17048         rather than gen_neon_vset_lane<mode>.
17050 2019-07-10  Vladimir Makarov  <vmakarov@redhat.com>
17052         PR target/91102
17053         * lra-constraints.c (process_alt_operands): Don't match user
17054         defined regs only if they are early clobbers.
17056 2019-07-10  Marc Glisse  <marc.glisse@inria.fr>
17058         * wide-int.h (wi::lshift): Reject negative values for the fast path.
17060 2019-07-10  Richard Biener  <rguenther@suse.de>
17062         PR tree-optimization/91126
17063         * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
17064         native encoding offset for BYTES_BIG_ENDIAN.
17065         (vn_reference_lookup_3): Likewise.
17067 2019-07-10  Richard Biener  <rguenther@suse.de>
17069         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
17070         LHS whenever possible.
17072 2019-07-09  Jan Hubicka  <hubicka@ucw.cz>
17074         * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
17075         from ...; work also on duplicated types.
17076         (nonoverlapping_component_refs_since_match): ... here
17077         (ncr_type_uid): Break out from ...
17078         (ncr_compar): ... here; look for TYPE_UID of canonical type if
17079         available.
17080         (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
17081         the types and nonoverlapping_component_refs_p_1 to disambiguate.
17083 2019-07-09  Martin Sebor  <msebor@redhat.com>
17085         PR tree-optimization/90989
17086         * tree-ssa-strlen.c (handle_char_store): Constrain a single character
17087         optimization to just single character stores.
17089 2019-07-09  Joern Rennecke  <joern.rennecke@riscy-ip.com>
17091         * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
17092         Swap operands only once.
17094 2019-07-09  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
17096         * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
17097         for both call instructions.
17099 2019-07-09  John Darrington  <john@darrington.wattle.id.au>
17101         * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
17102         rather than GET_MODE_BITSIZE to better handle partial integer modes.
17104 2019-07-09  Michael Meissner  <meissner@linux.ibm.com>
17106         * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
17107         * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
17108         function from rs6000-logue.c back to rs6000.c.
17109         * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
17111 2019-07-09  Martin Sebor  <msebor@redhat.com>
17113         PR c++/61339
17114         * auto-profile.c: Change class-key of PODs to struct and others
17115         to class.
17116         * basic-block.h: Same.
17117         * bitmap.c (bitmap_alloc): Same.
17118         * bitmap.h: Same.
17119         * builtins.c (expand_builtin_prefetch): Same.
17120         (expand_builtin_interclass_mathfn): Same.
17121         (expand_builtin_strlen): Same.
17122         (expand_builtin_mempcpy_args): Same.
17123         (expand_cmpstr): Same.
17124         (expand_builtin___clear_cache): Same.
17125         (expand_ifn_atomic_bit_test_and): Same.
17126         (expand_builtin_thread_pointer): Same.
17127         (expand_builtin_set_thread_pointer): Same.
17128         * caller-save.c (setup_save_areas): Same.
17129         (replace_reg_with_saved_mem): Same.
17130         (insert_restore): Same.
17131         (insert_save): Same.
17132         (add_used_regs): Same.
17133         * cfg.c (get_bb_copy): Same.
17134         (set_loop_copy): Same.
17135         * cfg.h: Same.
17136         * cfganal.h: Same.
17137         * cfgexpand.c (alloc_stack_frame_space): Same.
17138         (add_stack_var): Same.
17139         (add_stack_var_conflict): Same.
17140         (add_scope_conflicts_1): Same.
17141         (update_alias_info_with_stack_vars): Same.
17142         (expand_used_vars): Same.
17143         * cfghooks.c (redirect_edge_and_branch_force): Same.
17144         (delete_basic_block): Same.
17145         (split_edge): Same.
17146         (make_forwarder_block): Same.
17147         (force_nonfallthru): Same.
17148         (duplicate_block): Same.
17149         (lv_flush_pending_stmts): Same.
17150         * cfghooks.h: Same.
17151         * cfgloop.c (flow_loops_cfg_dump): Same.
17152         (flow_loop_nested_p): Same.
17153         (superloop_at_depth): Same.
17154         (get_loop_latch_edges): Same.
17155         (flow_loop_dump): Same.
17156         (flow_loops_dump): Same.
17157         (flow_loops_free): Same.
17158         (flow_loop_nodes_find): Same.
17159         (establish_preds): Same.
17160         (flow_loop_tree_node_add): Same.
17161         (flow_loop_tree_node_remove): Same.
17162         (flow_loops_find): Same.
17163         (find_subloop_latch_edge_by_profile): Same.
17164         (find_subloop_latch_edge_by_ivs): Same.
17165         (mfb_redirect_edges_in_set): Same.
17166         (form_subloop): Same.
17167         (merge_latch_edges): Same.
17168         (disambiguate_multiple_latches): Same.
17169         (disambiguate_loops_with_multiple_latches): Same.
17170         (flow_bb_inside_loop_p): Same.
17171         (glb_enum_p): Same.
17172         (get_loop_body_with_size): Same.
17173         (get_loop_body): Same.
17174         (fill_sons_in_loop): Same.
17175         (get_loop_body_in_dom_order): Same.
17176         (get_loop_body_in_custom_order): Same.
17177         (release_recorded_exits): Same.
17178         (get_loop_exit_edges): Same.
17179         (num_loop_branches): Same.
17180         (remove_bb_from_loops): Same.
17181         (find_common_loop): Same.
17182         (delete_loop): Same.
17183         (cancel_loop): Same.
17184         (verify_loop_structure): Same.
17185         (loop_preheader_edge): Same.
17186         (loop_exit_edge_p): Same.
17187         (single_exit): Same.
17188         (loop_exits_to_bb_p): Same.
17189         (loop_exits_from_bb_p): Same.
17190         (get_loop_location): Same.
17191         (record_niter_bound): Same.
17192         (get_estimated_loop_iterations_int): Same.
17193         (max_stmt_executions_int): Same.
17194         (likely_max_stmt_executions_int): Same.
17195         (get_estimated_loop_iterations): Same.
17196         (get_max_loop_iterations): Same.
17197         (get_max_loop_iterations_int): Same.
17198         (get_likely_max_loop_iterations): Same.
17199         * cfgloop.h (simple_loop_desc): Same.
17200         (get_loop): Same.
17201         (loop_depth): Same.
17202         (loop_outer): Same.
17203         (loop_iterator::next): Same.
17204         (loop_outermost): Same.
17205         * cfgloopanal.c (mark_irreducible_loops): Same.
17206         (num_loop_insns): Same.
17207         (average_num_loop_insns): Same.
17208         (expected_loop_iterations_unbounded): Same.
17209         (expected_loop_iterations): Same.
17210         (mark_loop_exit_edges): Same.
17211         (single_likely_exit): Same.
17212         * cfgloopmanip.c (fix_bb_placement): Same.
17213         (fix_bb_placements): Same.
17214         (remove_path): Same.
17215         (place_new_loop): Same.
17216         (add_loop): Same.
17217         (scale_loop_frequencies): Same.
17218         (scale_loop_profile): Same.
17219         (create_empty_if_region_on_edge): Same.
17220         (create_empty_loop_on_edge): Same.
17221         (loopify): Same.
17222         (unloop): Same.
17223         (fix_loop_placements): Same.
17224         (copy_loop_info): Same.
17225         (duplicate_loop): Same.
17226         (duplicate_subloops): Same.
17227         (loop_redirect_edge): Same.
17228         (can_duplicate_loop_p): Same.
17229         (duplicate_loop_to_header_edge): Same.
17230         (mfb_keep_just): Same.
17231         (has_preds_from_loop): Same.
17232         (create_preheader): Same.
17233         (create_preheaders): Same.
17234         (lv_adjust_loop_entry_edge): Same.
17235         (loop_version): Same.
17236         * cfgloopmanip.h: Same.
17237         * cgraph.h: Same.
17238         * cgraphbuild.c: Same.
17239         * combine.c (make_extraction): Same.
17240         * config/i386/i386-features.c: Same.
17241         * config/i386/i386-features.h: Same.
17242         * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
17243         (ix86_emit_outlined_ms2sysv_restore): Same.
17244         (ix86_noce_conversion_profitable_p): Same.
17245         (ix86_init_cost): Same.
17246         (ix86_simd_clone_usable): Same.
17247         * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
17248         Wstruct-not-pod.
17249         * coretypes.h: Same.
17250         * data-streamer-in.c (string_for_index): Change class-key of PODs
17251         to struct and others to class.
17252         (streamer_read_indexed_string): Same.
17253         (streamer_read_string): Same.
17254         (bp_unpack_indexed_string): Same.
17255         (bp_unpack_string): Same.
17256         (streamer_read_uhwi): Same.
17257         (streamer_read_hwi): Same.
17258         (streamer_read_gcov_count): Same.
17259         (streamer_read_wide_int): Same.
17260         * data-streamer.h (streamer_write_bitpack): Same.
17261         (bp_unpack_value): Same.
17262         (streamer_write_char_stream): Same.
17263         (streamer_write_hwi_in_range): Same.
17264         (streamer_write_record_start): Same.
17265         * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
17266         (add_cross_iteration_register_deps): Same.
17267         (build_intra_loop_deps): Same.
17268         * df-core.c (df_analyze): Same.
17269         (loop_post_order_compute): Same.
17270         (loop_inverted_post_order_compute): Same.
17271         * df-problems.c (df_rd_alloc): Same.
17272         (df_rd_simulate_one_insn): Same.
17273         (df_rd_local_compute): Same.
17274         (df_rd_init_solution): Same.
17275         (df_rd_confluence_n): Same.
17276         (df_rd_transfer_function): Same.
17277         (df_rd_free): Same.
17278         (df_rd_dump_defs_set): Same.
17279         (df_rd_top_dump): Same.
17280         (df_lr_alloc): Same.
17281         (df_lr_reset): Same.
17282         (df_lr_local_compute): Same.
17283         (df_lr_init): Same.
17284         (df_lr_confluence_n): Same.
17285         (df_lr_free): Same.
17286         (df_lr_top_dump): Same.
17287         (df_lr_verify_transfer_functions): Same.
17288         (df_live_alloc): Same.
17289         (df_live_reset): Same.
17290         (df_live_init): Same.
17291         (df_live_confluence_n): Same.
17292         (df_live_finalize): Same.
17293         (df_live_free): Same.
17294         (df_live_top_dump): Same.
17295         (df_live_verify_transfer_functions): Same.
17296         (df_mir_alloc): Same.
17297         (df_mir_reset): Same.
17298         (df_mir_init): Same.
17299         (df_mir_confluence_n): Same.
17300         (df_mir_free): Same.
17301         (df_mir_top_dump): Same.
17302         (df_word_lr_alloc): Same.
17303         (df_word_lr_reset): Same.
17304         (df_word_lr_init): Same.
17305         (df_word_lr_confluence_n): Same.
17306         (df_word_lr_free): Same.
17307         (df_word_lr_top_dump): Same.
17308         (df_md_alloc): Same.
17309         (df_md_simulate_one_insn): Same.
17310         (df_md_reset): Same.
17311         (df_md_init): Same.
17312         (df_md_free): Same.
17313         (df_md_top_dump): Same.
17314         * df-scan.c (df_insn_delete): Same.
17315         (df_insn_rescan): Same.
17316         (df_notes_rescan): Same.
17317         (df_sort_and_compress_mws): Same.
17318         (df_install_mws): Same.
17319         (df_refs_add_to_chains): Same.
17320         (df_ref_create_structure): Same.
17321         (df_ref_record): Same.
17322         (df_def_record_1): Same.
17323         (df_find_hard_reg_defs): Same.
17324         (df_uses_record): Same.
17325         (df_get_conditional_uses): Same.
17326         (df_get_call_refs): Same.
17327         (df_recompute_luids): Same.
17328         (df_get_entry_block_def_set): Same.
17329         (df_entry_block_defs_collect): Same.
17330         (df_get_exit_block_use_set): Same.
17331         (df_exit_block_uses_collect): Same.
17332         (df_mws_verify): Same.
17333         (df_bb_verify): Same.
17334         * df.h (df_scan_get_bb_info): Same.
17335         * doc/tm.texi: Same.
17336         * dse.c (record_store): Same.
17337         * dumpfile.h: Same.
17338         * emit-rtl.c (const_fixed_hasher::equal): Same.
17339         (set_mem_attributes_minus_bitpos): Same.
17340         (change_address): Same.
17341         (adjust_address_1): Same.
17342         (offset_address): Same.
17343         * emit-rtl.h: Same.
17344         * except.c (dw2_build_landing_pads): Same.
17345         (sjlj_emit_dispatch_table): Same.
17346         * explow.c (allocate_dynamic_stack_space): Same.
17347         (emit_stack_probe): Same.
17348         (probe_stack_range): Same.
17349         * expmed.c (store_bit_field_using_insv): Same.
17350         (store_bit_field_1): Same.
17351         (store_integral_bit_field): Same.
17352         (extract_bit_field_using_extv): Same.
17353         (extract_bit_field_1): Same.
17354         (emit_cstore): Same.
17355         * expr.c (emit_block_move_via_cpymem): Same.
17356         (expand_cmpstrn_or_cmpmem): Same.
17357         (set_storage_via_setmem): Same.
17358         (emit_single_push_insn_1): Same.
17359         (expand_assignment): Same.
17360         (store_constructor): Same.
17361         (expand_expr_real_2): Same.
17362         (expand_expr_real_1): Same.
17363         (try_casesi): Same.
17364         * flags.h: Same.
17365         * function.c (try_fit_stack_local): Same.
17366         (assign_stack_local_1): Same.
17367         (assign_stack_local): Same.
17368         (cut_slot_from_list): Same.
17369         (insert_slot_to_list): Same.
17370         (max_slot_level): Same.
17371         (move_slot_to_level): Same.
17372         (temp_address_hasher::equal): Same.
17373         (remove_unused_temp_slot_addresses): Same.
17374         (assign_temp): Same.
17375         (combine_temp_slots): Same.
17376         (update_temp_slot_address): Same.
17377         (preserve_temp_slots): Same.
17378         * function.h: Same.
17379         * fwprop.c: Same.
17380         * gcc-rich-location.h: Same.
17381         * gcov.c: Same.
17382         * genattrtab.c (check_attr_test): Same.
17383         (check_attr_value): Same.
17384         (convert_set_attr_alternative): Same.
17385         (convert_set_attr): Same.
17386         (check_defs): Same.
17387         (copy_boolean): Same.
17388         (get_attr_value): Same.
17389         (expand_delays): Same.
17390         (make_length_attrs): Same.
17391         (min_fn): Same.
17392         (make_alternative_compare): Same.
17393         (simplify_test_exp): Same.
17394         (tests_attr_p): Same.
17395         (get_attr_order): Same.
17396         (clear_struct_flag): Same.
17397         (gen_attr): Same.
17398         (compares_alternatives_p): Same.
17399         (gen_insn): Same.
17400         (gen_delay): Same.
17401         (find_attrs_to_cache): Same.
17402         (write_test_expr): Same.
17403         (walk_attr_value): Same.
17404         (write_attr_get): Same.
17405         (eliminate_known_true): Same.
17406         (write_insn_cases): Same.
17407         (write_attr_case): Same.
17408         (write_attr_valueq): Same.
17409         (write_attr_value): Same.
17410         (write_dummy_eligible_delay): Same.
17411         (next_comma_elt): Same.
17412         (find_attr): Same.
17413         (make_internal_attr): Same.
17414         (copy_rtx_unchanging): Same.
17415         (gen_insn_reserv): Same.
17416         (check_tune_attr): Same.
17417         (make_automaton_attrs): Same.
17418         (handle_arg): Same.
17419         * genextract.c (gen_insn): Same.
17420         (VEC_char_to_string): Same.
17421         * genmatch.c (print_operand): Same.
17422         (lower): Same.
17423         (parser::parse_operation): Same.
17424         (parser::parse_capture): Same.
17425         (parser::parse_c_expr): Same.
17426         (parser::parse_simplify): Same.
17427         (main): Same.
17428         * genoutput.c (output_operand_data): Same.
17429         (output_get_insn_name): Same.
17430         (compare_operands): Same.
17431         (place_operands): Same.
17432         (process_template): Same.
17433         (validate_insn_alternatives): Same.
17434         (validate_insn_operands): Same.
17435         (gen_expand): Same.
17436         (note_constraint): Same.
17437         * genpreds.c (write_one_predicate_function): Same.
17438         (add_constraint): Same.
17439         (process_define_register_constraint): Same.
17440         (write_lookup_constraint_1): Same.
17441         (write_lookup_constraint_array): Same.
17442         (write_insn_constraint_len): Same.
17443         (write_reg_class_for_constraint_1): Same.
17444         (write_constraint_satisfied_p_array): Same.
17445         * genrecog.c (optimize_subroutine_group): Same.
17446         * gensupport.c (process_define_predicate): Same.
17447         (queue_pattern): Same.
17448         (remove_from_queue): Same.
17449         (process_rtx): Same.
17450         (is_predicable): Same.
17451         (change_subst_attribute): Same.
17452         (subst_pattern_match): Same.
17453         (alter_constraints): Same.
17454         (alter_attrs_for_insn): Same.
17455         (shift_output_template): Same.
17456         (alter_output_for_subst_insn): Same.
17457         (process_one_cond_exec): Same.
17458         (subst_dup): Same.
17459         (process_define_cond_exec): Same.
17460         (mnemonic_htab_callback): Same.
17461         (gen_mnemonic_attr): Same.
17462         (read_md_rtx): Same.
17463         * ggc-page.c: Same.
17464         * gimple-loop-interchange.cc (dump_reduction): Same.
17465         (dump_induction): Same.
17466         (loop_cand::~loop_cand): Same.
17467         (free_data_refs_with_aux): Same.
17468         (tree_loop_interchange::interchange_loops): Same.
17469         (tree_loop_interchange::map_inductions_to_loop): Same.
17470         (tree_loop_interchange::move_code_to_inner_loop): Same.
17471         (compute_access_stride): Same.
17472         (compute_access_strides): Same.
17473         (proper_loop_form_for_interchange): Same.
17474         (tree_loop_interchange_compute_ddrs): Same.
17475         (prune_datarefs_not_in_loop): Same.
17476         (prepare_data_references): Same.
17477         (pass_linterchange::execute): Same.
17478         * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
17479         (unroll_jam_possible_p): Same.
17480         (fuse_loops): Same.
17481         (adjust_unroll_factor): Same.
17482         (tree_loop_unroll_and_jam): Same.
17483         * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
17484         (loop_versioning::expensive_stmt_p): Same.
17485         (loop_versioning::version_for_unity): Same.
17486         (loop_versioning::dump_inner_likelihood): Same.
17487         (loop_versioning::find_per_loop_multiplication): Same.
17488         (loop_versioning::analyze_term_using_scevs): Same.
17489         (loop_versioning::record_address_fragment): Same.
17490         (loop_versioning::analyze_expr): Same.
17491         (loop_versioning::analyze_blocks): Same.
17492         (loop_versioning::prune_conditions): Same.
17493         (loop_versioning::merge_loop_info): Same.
17494         (loop_versioning::add_loop_to_queue): Same.
17495         (loop_versioning::decide_whether_loop_is_versionable): Same.
17496         (loop_versioning::make_versioning_decisions): Same.
17497         (loop_versioning::implement_versioning_decisions): Same.
17498         * gimple-ssa-evrp-analyze.c
17499         (evrp_range_analyzer::record_ranges_from_phis): Same.
17500         * gimple-ssa-store-merging.c (split_store::split_store): Same.
17501         (count_multiple_uses): Same.
17502         (split_group): Same.
17503         (imm_store_chain_info::output_merged_store): Same.
17504         (pass_store_merging::process_store): Same.
17505         * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
17506         * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
17507         (is_max): Same.
17508         (alloca_call_type): Same.
17509         (pass_walloca::execute): Same.
17510         * gimple-streamer-in.c (input_phi): Same.
17511         (input_gimple_stmt): Same.
17512         * gimple-streamer.h: Same.
17513         * godump.c (go_force_record_alignment): Same.
17514         (go_format_type): Same.
17515         (go_output_type): Same.
17516         (go_output_fndecl): Same.
17517         (go_output_typedef): Same.
17518         (keyword_hash_init): Same.
17519         (find_dummy_types): Same.
17520         * graph.c (draw_cfg_nodes_no_loops): Same.
17521         (draw_cfg_nodes_for_loop): Same.
17522         * hard-reg-set.h (hard_reg_set_iter_next): Same.
17523         * hsa-brig.c: Same.
17524         * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
17525         * hsa-dump.c (dump_hsa_cfun): Same.
17526         * hsa-gen.c (gen_function_def_parameters): Same.
17527         * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
17528         * input.c (dump_line_table_statistics): Same.
17529         (test_lexer): Same.
17530         * input.h: Same.
17531         * internal-fn.c (get_multi_vector_move): Same.
17532         (expand_load_lanes_optab_fn): Same.
17533         (expand_GOMP_SIMT_ENTER_ALLOC): Same.
17534         (expand_GOMP_SIMT_EXIT): Same.
17535         (expand_GOMP_SIMT_LAST_LANE): Same.
17536         (expand_GOMP_SIMT_ORDERED_PRED): Same.
17537         (expand_GOMP_SIMT_VOTE_ANY): Same.
17538         (expand_GOMP_SIMT_XCHG_BFLY): Same.
17539         (expand_GOMP_SIMT_XCHG_IDX): Same.
17540         (expand_addsub_overflow): Same.
17541         (expand_neg_overflow): Same.
17542         (expand_mul_overflow): Same.
17543         (expand_call_mem_ref): Same.
17544         (expand_mask_load_optab_fn): Same.
17545         (expand_scatter_store_optab_fn): Same.
17546         (expand_gather_load_optab_fn): Same.
17547         * ipa-cp.c (ipa_get_parm_lattices): Same.
17548         (print_all_lattices): Same.
17549         (ignore_edge_p): Same.
17550         (build_toporder_info): Same.
17551         (free_toporder_info): Same.
17552         (push_node_to_stack): Same.
17553         (ipcp_lattice<valtype>::set_contains_variable): Same.
17554         (set_agg_lats_to_bottom): Same.
17555         (ipcp_bits_lattice::meet_with): Same.
17556         (set_single_call_flag): Same.
17557         (initialize_node_lattices): Same.
17558         (ipa_get_jf_ancestor_result): Same.
17559         (ipcp_verify_propagated_values): Same.
17560         (propagate_scalar_across_jump_function): Same.
17561         (propagate_context_across_jump_function): Same.
17562         (propagate_bits_across_jump_function): Same.
17563         (ipa_vr_operation_and_type_effects): Same.
17564         (propagate_vr_across_jump_function): Same.
17565         (set_check_aggs_by_ref): Same.
17566         (set_chain_of_aglats_contains_variable): Same.
17567         (merge_aggregate_lattices): Same.
17568         (agg_pass_through_permissible_p): Same.
17569         (propagate_aggs_across_jump_function): Same.
17570         (call_passes_through_thunk_p): Same.
17571         (propagate_constants_across_call): Same.
17572         (devirtualization_time_bonus): Same.
17573         (good_cloning_opportunity_p): Same.
17574         (context_independent_aggregate_values): Same.
17575         (gather_context_independent_values): Same.
17576         (perform_estimation_of_a_value): Same.
17577         (estimate_local_effects): Same.
17578         (value_topo_info<valtype>::add_val): Same.
17579         (add_all_node_vals_to_toposort): Same.
17580         (value_topo_info<valtype>::propagate_effects): Same.
17581         (ipcp_propagate_stage): Same.
17582         (ipcp_discover_new_direct_edges): Same.
17583         (same_node_or_its_all_contexts_clone_p): Same.
17584         (cgraph_edge_brings_value_p): Same.
17585         (gather_edges_for_value): Same.
17586         (create_specialized_node): Same.
17587         (find_more_scalar_values_for_callers_subset): Same.
17588         (find_more_contexts_for_caller_subset): Same.
17589         (copy_plats_to_inter): Same.
17590         (intersect_aggregates_with_edge): Same.
17591         (find_aggregate_values_for_callers_subset): Same.
17592         (cgraph_edge_brings_all_agg_vals_for_node): Same.
17593         (decide_about_value): Same.
17594         (decide_whether_version_node): Same.
17595         (spread_undeadness): Same.
17596         (identify_dead_nodes): Same.
17597         (ipcp_store_vr_results): Same.
17598         * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
17599         * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
17600         (redirect_to_unreachable): Same.
17601         (edge_set_predicate): Same.
17602         (evaluate_conditions_for_known_args): Same.
17603         (evaluate_properties_for_edge): Same.
17604         (ipa_fn_summary_t::duplicate): Same.
17605         (ipa_call_summary_t::duplicate): Same.
17606         (dump_ipa_call_summary): Same.
17607         (ipa_dump_fn_summary): Same.
17608         (eliminated_by_inlining_prob): Same.
17609         (set_cond_stmt_execution_predicate): Same.
17610         (set_switch_stmt_execution_predicate): Same.
17611         (compute_bb_predicates): Same.
17612         (will_be_nonconstant_expr_predicate): Same.
17613         (phi_result_unknown_predicate): Same.
17614         (analyze_function_body): Same.
17615         (compute_fn_summary): Same.
17616         (estimate_edge_devirt_benefit): Same.
17617         (estimate_edge_size_and_time): Same.
17618         (estimate_calls_size_and_time): Same.
17619         (estimate_node_size_and_time): Same.
17620         (remap_edge_change_prob): Same.
17621         (remap_edge_summaries): Same.
17622         (ipa_merge_fn_summary_after_inlining): Same.
17623         (ipa_fn_summary_generate): Same.
17624         (inline_read_section): Same.
17625         (ipa_fn_summary_read): Same.
17626         (ipa_fn_summary_write): Same.
17627         * ipa-fnsummary.h: Same.
17628         * ipa-hsa.c (ipa_hsa_read_section): Same.
17629         * ipa-icf-gimple.c (func_checker::compare_loops): Same.
17630         * ipa-icf.c (sem_function::param_used_p): Same.
17631         * ipa-inline-analysis.c (do_estimate_edge_time): Same.
17632         * ipa-inline.c (edge_badness): Same.
17633         (inline_small_functions): Same.
17634         * ipa-polymorphic-call.c
17635         (ipa_polymorphic_call_context::stream_out): Same.
17636         * ipa-predicate.c (predicate::remap_after_duplication): Same.
17637         (predicate::remap_after_inlining): Same.
17638         (predicate::stream_out): Same.
17639         * ipa-predicate.h: Same.
17640         * ipa-profile.c (ipa_profile_read_summary): Same.
17641         * ipa-prop.c (ipa_get_param_decl_index_1): Same.
17642         (count_formal_params): Same.
17643         (ipa_dump_param): Same.
17644         (ipa_alloc_node_params): Same.
17645         (ipa_print_node_jump_functions_for_edge): Same.
17646         (ipa_print_node_jump_functions): Same.
17647         (ipa_load_from_parm_agg): Same.
17648         (get_ancestor_addr_info): Same.
17649         (ipa_compute_jump_functions_for_edge): Same.
17650         (ipa_analyze_virtual_call_uses): Same.
17651         (ipa_analyze_stmt_uses): Same.
17652         (ipa_analyze_params_uses_in_bb): Same.
17653         (update_jump_functions_after_inlining): Same.
17654         (try_decrement_rdesc_refcount): Same.
17655         (ipa_impossible_devirt_target): Same.
17656         (update_indirect_edges_after_inlining): Same.
17657         (combine_controlled_uses_counters): Same.
17658         (ipa_edge_args_sum_t::duplicate): Same.
17659         (ipa_write_jump_function): Same.
17660         (ipa_write_indirect_edge_info): Same.
17661         (ipa_write_node_info): Same.
17662         (ipa_read_edge_info): Same.
17663         (ipa_prop_read_section): Same.
17664         (read_replacements_section): Same.
17665         * ipa-prop.h (ipa_get_param_count): Same.
17666         (ipa_get_param): Same.
17667         (ipa_get_type): Same.
17668         (ipa_get_param_move_cost): Same.
17669         (ipa_set_param_used): Same.
17670         (ipa_get_controlled_uses): Same.
17671         (ipa_set_controlled_uses): Same.
17672         (ipa_get_cs_argument_count): Same.
17673         * ipa-pure-const.c (analyze_function): Same.
17674         (pure_const_read_summary): Same.
17675         * ipa-ref.h: Same.
17676         * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
17677         * ipa-split.c (test_nonssa_use): Same.
17678         (dump_split_point): Same.
17679         (dominated_by_forbidden): Same.
17680         (split_part_set_ssa_name_p): Same.
17681         (find_split_points): Same.
17682         * ira-build.c (finish_loop_tree_nodes): Same.
17683         (low_pressure_loop_node_p): Same.
17684         * ira-color.c (ira_reuse_stack_slot): Same.
17685         * ira-int.h: Same.
17686         * ira.c (setup_reg_equiv): Same.
17687         (print_insn_chain): Same.
17688         (ira): Same.
17689         * loop-doloop.c (doloop_condition_get): Same.
17690         (add_test): Same.
17691         (record_reg_sets): Same.
17692         (doloop_optimize): Same.
17693         * loop-init.c (loop_optimizer_init): Same.
17694         (fix_loop_structure): Same.
17695         * loop-invariant.c (merge_identical_invariants): Same.
17696         (compute_always_reached): Same.
17697         (find_exits): Same.
17698         (may_assign_reg_p): Same.
17699         (find_invariants_bb): Same.
17700         (find_invariants_body): Same.
17701         (replace_uses): Same.
17702         (can_move_invariant_reg): Same.
17703         (free_inv_motion_data): Same.
17704         (move_single_loop_invariants): Same.
17705         (change_pressure): Same.
17706         (mark_ref_regs): Same.
17707         (calculate_loop_reg_pressure): Same.
17708         * loop-iv.c (biv_entry_hasher::equal): Same.
17709         (iv_extend_to_rtx_code): Same.
17710         (check_iv_ref_table_size): Same.
17711         (clear_iv_info): Same.
17712         (latch_dominating_def): Same.
17713         (iv_get_reaching_def): Same.
17714         (iv_constant): Same.
17715         (iv_subreg): Same.
17716         (iv_extend): Same.
17717         (iv_neg): Same.
17718         (iv_add): Same.
17719         (iv_mult): Same.
17720         (get_biv_step): Same.
17721         (record_iv): Same.
17722         (analyzed_for_bivness_p): Same.
17723         (record_biv): Same.
17724         (iv_analyze_biv): Same.
17725         (iv_analyze_expr): Same.
17726         (iv_analyze_def): Same.
17727         (iv_analyze_op): Same.
17728         (iv_analyze): Same.
17729         (iv_analyze_result): Same.
17730         (biv_p): Same.
17731         (eliminate_implied_conditions): Same.
17732         (simplify_using_initial_values): Same.
17733         (shorten_into_mode): Same.
17734         (canonicalize_iv_subregs): Same.
17735         (determine_max_iter): Same.
17736         (check_simple_exit): Same.
17737         (find_simple_exit): Same.
17738         (get_simple_loop_desc): Same.
17739         * loop-unroll.c (report_unroll): Same.
17740         (decide_unrolling): Same.
17741         (unroll_loops): Same.
17742         (loop_exit_at_end_p): Same.
17743         (decide_unroll_constant_iterations): Same.
17744         (unroll_loop_constant_iterations): Same.
17745         (compare_and_jump_seq): Same.
17746         (unroll_loop_runtime_iterations): Same.
17747         (decide_unroll_stupid): Same.
17748         (unroll_loop_stupid): Same.
17749         (referenced_in_one_insn_in_loop_p): Same.
17750         (reset_debug_uses_in_loop): Same.
17751         (analyze_iv_to_split_insn): Same.
17752         * lra-eliminations.c (lra_debug_elim_table): Same.
17753         (setup_can_eliminate): Same.
17754         (form_sum): Same.
17755         (lra_get_elimination_hard_regno): Same.
17756         (lra_eliminate_regs_1): Same.
17757         (eliminate_regs_in_insn): Same.
17758         (update_reg_eliminate): Same.
17759         (init_elimination): Same.
17760         (lra_eliminate): Same.
17761         * lra-int.h: Same.
17762         * lra-lives.c (initiate_live_solver): Same.
17763         * lra-remat.c (create_remat_bb_data): Same.
17764         * lra-spills.c (lra_spill): Same.
17765         * lra.c (lra_set_insn_recog_data): Same.
17766         (lra_set_used_insn_alternative_by_uid): Same.
17767         (init_reg_info): Same.
17768         (expand_reg_info): Same.
17769         * lto-cgraph.c (output_symtab): Same.
17770         (read_identifier): Same.
17771         (get_alias_symbol): Same.
17772         (input_node): Same.
17773         (input_varpool_node): Same.
17774         (input_ref): Same.
17775         (input_edge): Same.
17776         (input_cgraph_1): Same.
17777         (input_refs): Same.
17778         (input_symtab): Same.
17779         (input_offload_tables): Same.
17780         (output_cgraph_opt_summary): Same.
17781         (input_edge_opt_summary): Same.
17782         (input_cgraph_opt_section): Same.
17783         * lto-section-in.c (lto_free_raw_section_data): Same.
17784         (lto_create_simple_input_block): Same.
17785         (lto_free_function_in_decl_state_for_node): Same.
17786         * lto-streamer-in.c (lto_tag_check_set): Same.
17787         (lto_location_cache::revert_location_cache): Same.
17788         (lto_location_cache::input_location): Same.
17789         (lto_input_location): Same.
17790         (stream_input_location_now): Same.
17791         (lto_input_tree_ref): Same.
17792         (lto_input_eh_catch_list): Same.
17793         (input_eh_region): Same.
17794         (lto_init_eh): Same.
17795         (make_new_block): Same.
17796         (input_cfg): Same.
17797         (fixup_call_stmt_edges): Same.
17798         (input_struct_function_base): Same.
17799         (input_function): Same.
17800         (lto_read_body_or_constructor): Same.
17801         (lto_read_tree_1): Same.
17802         (lto_read_tree): Same.
17803         (lto_input_scc): Same.
17804         (lto_input_tree_1): Same.
17805         (lto_input_toplevel_asms): Same.
17806         (lto_input_mode_table): Same.
17807         (lto_reader_init): Same.
17808         (lto_data_in_create): Same.
17809         * lto-streamer-out.c (output_cfg): Same.
17810         * lto-streamer.h: Same.
17811         * modulo-sched.c (duplicate_insns_of_cycles): Same.
17812         (generate_prolog_epilog): Same.
17813         (mark_loop_unsched): Same.
17814         (dump_insn_location): Same.
17815         (loop_canon_p): Same.
17816         (sms_schedule): Same.
17817         * omp-expand.c (expand_omp_for_ordered_loops): Same.
17818         (expand_omp_for_generic): Same.
17819         (expand_omp_for_static_nochunk): Same.
17820         (expand_omp_for_static_chunk): Same.
17821         (expand_omp_simd): Same.
17822         (expand_omp_taskloop_for_inner): Same.
17823         (expand_oacc_for): Same.
17824         (expand_omp_atomic_pipeline): Same.
17825         (mark_loops_in_oacc_kernels_region): Same.
17826         * omp-offload.c (oacc_xform_loop): Same.
17827         * omp-simd-clone.c (simd_clone_adjust): Same.
17828         * optabs-query.c (get_traditional_extraction_insn): Same.
17829         * optabs.c (expand_vector_broadcast): Same.
17830         (expand_binop_directly): Same.
17831         (expand_twoval_unop): Same.
17832         (expand_twoval_binop): Same.
17833         (expand_unop_direct): Same.
17834         (emit_indirect_jump): Same.
17835         (emit_conditional_move): Same.
17836         (emit_conditional_neg_or_complement): Same.
17837         (emit_conditional_add): Same.
17838         (vector_compare_rtx): Same.
17839         (expand_vec_perm_1): Same.
17840         (expand_vec_perm_const): Same.
17841         (expand_vec_cond_expr): Same.
17842         (expand_vec_series_expr): Same.
17843         (maybe_emit_atomic_exchange): Same.
17844         (maybe_emit_sync_lock_test_and_set): Same.
17845         (expand_atomic_compare_and_swap): Same.
17846         (expand_atomic_load): Same.
17847         (expand_atomic_store): Same.
17848         (maybe_emit_op): Same.
17849         (valid_multiword_target_p): Same.
17850         (create_integer_operand): Same.
17851         (maybe_legitimize_operand_same_code): Same.
17852         (maybe_legitimize_operand): Same.
17853         (create_convert_operand_from_type): Same.
17854         (can_reuse_operands_p): Same.
17855         (maybe_legitimize_operands): Same.
17856         (maybe_gen_insn): Same.
17857         (maybe_expand_insn): Same.
17858         (maybe_expand_jump_insn): Same.
17859         (expand_insn): Same.
17860         * optabs.h (create_expand_operand): Same.
17861         (create_fixed_operand): Same.
17862         (create_output_operand): Same.
17863         (create_input_operand): Same.
17864         (create_convert_operand_to): Same.
17865         (create_convert_operand_from): Same.
17866         * optinfo.h: Same.
17867         * poly-int.h: Same.
17868         * predict.c (optimize_insn_for_speed_p): Same.
17869         (optimize_loop_for_size_p): Same.
17870         (optimize_loop_for_speed_p): Same.
17871         (optimize_loop_nest_for_speed_p): Same.
17872         (get_base_value): Same.
17873         (predicted_by_loop_heuristics_p): Same.
17874         (predict_extra_loop_exits): Same.
17875         (predict_loops): Same.
17876         (predict_paths_for_bb): Same.
17877         (predict_paths_leading_to): Same.
17878         (propagate_freq): Same.
17879         (pass_profile::execute): Same.
17880         * predict.h: Same.
17881         * profile-count.c (profile_count::differs_from_p): Same.
17882         (profile_probability::differs_lot_from_p): Same.
17883         * profile-count.h: Same.
17884         * profile.c (branch_prob): Same.
17885         * regrename.c (free_chain_data): Same.
17886         (mark_conflict): Same.
17887         (create_new_chain): Same.
17888         (merge_overlapping_regs): Same.
17889         (init_rename_info): Same.
17890         (merge_chains): Same.
17891         (regrename_analyze): Same.
17892         (regrename_do_replace): Same.
17893         (scan_rtx_reg): Same.
17894         (record_out_operands): Same.
17895         (build_def_use): Same.
17896         * regrename.h: Same.
17897         * reload.h: Same.
17898         * reload1.c (init_reload): Same.
17899         (maybe_fix_stack_asms): Same.
17900         (copy_reloads): Same.
17901         (count_pseudo): Same.
17902         (count_spilled_pseudo): Same.
17903         (find_reg): Same.
17904         (find_reload_regs): Same.
17905         (select_reload_regs): Same.
17906         (spill_hard_reg): Same.
17907         (fixup_eh_region_note): Same.
17908         (set_reload_reg): Same.
17909         (allocate_reload_reg): Same.
17910         (compute_reload_subreg_offset): Same.
17911         (reload_adjust_reg_for_icode): Same.
17912         (emit_input_reload_insns): Same.
17913         (emit_output_reload_insns): Same.
17914         (do_input_reload): Same.
17915         (inherit_piecemeal_p): Same.
17916         * rtl.h: Same.
17917         * sanopt.c (maybe_get_dominating_check): Same.
17918         (maybe_optimize_ubsan_ptr_ifn): Same.
17919         (can_remove_asan_check): Same.
17920         (maybe_optimize_asan_check_ifn): Same.
17921         (sanopt_optimize_walker): Same.
17922         * sched-deps.c (add_dependence_list): Same.
17923         (chain_to_prev_insn): Same.
17924         (add_insn_mem_dependence): Same.
17925         (create_insn_reg_set): Same.
17926         (maybe_extend_reg_info_p): Same.
17927         (sched_analyze_reg): Same.
17928         (sched_analyze_1): Same.
17929         (get_implicit_reg_pending_clobbers): Same.
17930         (chain_to_prev_insn_p): Same.
17931         (deps_analyze_insn): Same.
17932         (deps_start_bb): Same.
17933         (sched_free_deps): Same.
17934         (init_deps): Same.
17935         (init_deps_reg_last): Same.
17936         (free_deps): Same.
17937         * sched-ebb.c: Same.
17938         * sched-int.h: Same.
17939         * sched-rgn.c (add_branch_dependences): Same.
17940         (concat_insn_mem_list): Same.
17941         (deps_join): Same.
17942         (sched_rgn_compute_dependencies): Same.
17943         * sel-sched-ir.c (reset_target_context): Same.
17944         (copy_deps_context): Same.
17945         (init_id_from_df): Same.
17946         (has_dependence_p): Same.
17947         (change_loops_latches): Same.
17948         (bb_top_order_comparator): Same.
17949         (make_region_from_loop_preheader): Same.
17950         (sel_init_pipelining): Same.
17951         (get_loop_nest_for_rgn): Same.
17952         (make_regions_from_the_rest): Same.
17953         (sel_is_loop_preheader_p): Same.
17954         * sel-sched-ir.h (inner_loop_header_p): Same.
17955         (get_all_loop_exits): Same.
17956         * selftest.h: Same.
17957         * sese.c (sese_build_liveouts): Same.
17958         (sese_insert_phis_for_liveouts): Same.
17959         * sese.h (defined_in_sese_p): Same.
17960         * sreal.c (sreal::stream_out): Same.
17961         * sreal.h: Same.
17962         * streamer-hooks.h: Same.
17963         * target-globals.c (save_target_globals): Same.
17964         * target-globals.h: Same.
17965         * target.def: Same.
17966         * target.h: Same.
17967         * targhooks.c (default_has_ifunc_p): Same.
17968         (default_empty_mask_is_expensive): Same.
17969         (default_init_cost): Same.
17970         * targhooks.h: Same.
17971         * toplev.c: Same.
17972         * tree-affine.c (aff_combination_mult): Same.
17973         (aff_combination_expand): Same.
17974         (aff_combination_constant_multiple_p): Same.
17975         * tree-affine.h: Same.
17976         * tree-cfg.c (build_gimple_cfg): Same.
17977         (replace_loop_annotate_in_block): Same.
17978         (replace_uses_by): Same.
17979         (remove_bb): Same.
17980         (dump_cfg_stats): Same.
17981         (gimple_duplicate_sese_region): Same.
17982         (gimple_duplicate_sese_tail): Same.
17983         (move_block_to_fn): Same.
17984         (replace_block_vars_by_duplicates): Same.
17985         (move_sese_region_to_fn): Same.
17986         (print_loops_bb): Same.
17987         (print_loop): Same.
17988         (print_loops): Same.
17989         (debug): Same.
17990         (debug_loops): Same.
17991         * tree-cfg.h: Same.
17992         * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
17993         (chrec_fold_multiply_poly_poly): Same.
17994         (chrec_evaluate): Same.
17995         (chrec_component_in_loop_num): Same.
17996         (reset_evolution_in_loop): Same.
17997         (is_multivariate_chrec): Same.
17998         (chrec_contains_symbols): Same.
17999         (nb_vars_in_chrec): Same.
18000         (chrec_convert_1): Same.
18001         (chrec_convert_aggressive): Same.
18002         * tree-chrec.h: Same.
18003         * tree-core.h: Same.
18004         * tree-data-ref.c (dump_data_dependence_relation): Same.
18005         (canonicalize_base_object_address): Same.
18006         (data_ref_compare_tree): Same.
18007         (prune_runtime_alias_test_list): Same.
18008         (get_segment_min_max): Same.
18009         (create_intersect_range_checks): Same.
18010         (conflict_fn_no_dependence): Same.
18011         (object_address_invariant_in_loop_p): Same.
18012         (analyze_ziv_subscript): Same.
18013         (analyze_siv_subscript_cst_affine): Same.
18014         (analyze_miv_subscript): Same.
18015         (analyze_overlapping_iterations): Same.
18016         (build_classic_dist_vector_1): Same.
18017         (add_other_self_distances): Same.
18018         (same_access_functions): Same.
18019         (build_classic_dir_vector): Same.
18020         (subscript_dependence_tester_1): Same.
18021         (subscript_dependence_tester): Same.
18022         (access_functions_are_affine_or_constant_p): Same.
18023         (get_references_in_stmt): Same.
18024         (loop_nest_has_data_refs): Same.
18025         (graphite_find_data_references_in_stmt): Same.
18026         (find_data_references_in_bb): Same.
18027         (get_base_for_alignment): Same.
18028         (find_loop_nest_1): Same.
18029         (find_loop_nest): Same.
18030         * tree-data-ref.h (dr_alignment): Same.
18031         (ddr_dependence_level): Same.
18032         * tree-if-conv.c (fold_build_cond_expr): Same.
18033         (add_to_predicate_list): Same.
18034         (add_to_dst_predicate_list): Same.
18035         (phi_convertible_by_degenerating_args): Same.
18036         (idx_within_array_bound): Same.
18037         (all_preds_critical_p): Same.
18038         (pred_blocks_visited_p): Same.
18039         (predicate_bbs): Same.
18040         (build_region): Same.
18041         (if_convertible_loop_p_1): Same.
18042         (is_cond_scalar_reduction): Same.
18043         (predicate_scalar_phi): Same.
18044         (remove_conditions_and_labels): Same.
18045         (combine_blocks): Same.
18046         (version_loop_for_if_conversion): Same.
18047         (versionable_outer_loop_p): Same.
18048         (ifcvt_local_dce): Same.
18049         (tree_if_conversion): Same.
18050         (pass_if_conversion::gate): Same.
18051         * tree-if-conv.h: Same.
18052         * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
18053         * tree-loop-distribution.c (bb_top_order_cmp): Same.
18054         (free_rdg): Same.
18055         (stmt_has_scalar_dependences_outside_loop): Same.
18056         (copy_loop_before): Same.
18057         (create_bb_after_loop): Same.
18058         (const_with_all_bytes_same): Same.
18059         (generate_memset_builtin): Same.
18060         (generate_memcpy_builtin): Same.
18061         (destroy_loop): Same.
18062         (build_rdg_partition_for_vertex): Same.
18063         (compute_access_range): Same.
18064         (data_ref_segment_size): Same.
18065         (latch_dominated_by_data_ref): Same.
18066         (compute_alias_check_pairs): Same.
18067         (fuse_memset_builtins): Same.
18068         (finalize_partitions): Same.
18069         (find_seed_stmts_for_distribution): Same.
18070         (prepare_perfect_loop_nest): Same.
18071         * tree-parloops.c (lambda_transform_legal_p): Same.
18072         (loop_parallel_p): Same.
18073         (reduc_stmt_res): Same.
18074         (add_field_for_name): Same.
18075         (create_call_for_reduction_1): Same.
18076         (replace_uses_in_bb_by): Same.
18077         (transform_to_exit_first_loop_alt): Same.
18078         (try_transform_to_exit_first_loop_alt): Same.
18079         (transform_to_exit_first_loop): Same.
18080         (num_phis): Same.
18081         (gen_parallel_loop): Same.
18082         (gather_scalar_reductions): Same.
18083         (get_omp_data_i_param): Same.
18084         (try_create_reduction_list): Same.
18085         (oacc_entry_exit_single_gang): Same.
18086         (parallelize_loops): Same.
18087         * tree-pass.h: Same.
18088         * tree-predcom.c (determine_offset): Same.
18089         (last_always_executed_block): Same.
18090         (split_data_refs_to_components): Same.
18091         (suitable_component_p): Same.
18092         (valid_initializer_p): Same.
18093         (find_looparound_phi): Same.
18094         (insert_looparound_copy): Same.
18095         (add_looparound_copies): Same.
18096         (determine_roots_comp): Same.
18097         (predcom_tmp_var): Same.
18098         (initialize_root_vars): Same.
18099         (initialize_root_vars_store_elim_1): Same.
18100         (initialize_root_vars_store_elim_2): Same.
18101         (finalize_eliminated_stores): Same.
18102         (initialize_root_vars_lm): Same.
18103         (remove_stmt): Same.
18104         (determine_unroll_factor): Same.
18105         (execute_pred_commoning_cbck): Same.
18106         (base_names_in_chain_on): Same.
18107         (combine_chains): Same.
18108         (pcom_stmt_dominates_stmt_p): Same.
18109         (try_combine_chains): Same.
18110         (prepare_initializers_chain_store_elim): Same.
18111         (prepare_initializers_chain): Same.
18112         (prepare_initializers): Same.
18113         (prepare_finalizers_chain): Same.
18114         (prepare_finalizers): Same.
18115         (insert_init_seqs): Same.
18116         * tree-scalar-evolution.c (loop_phi_node_p): Same.
18117         (compute_overall_effect_of_inner_loop): Same.
18118         (add_to_evolution_1): Same.
18119         (add_to_evolution): Same.
18120         (follow_ssa_edge_binary): Same.
18121         (follow_ssa_edge_expr): Same.
18122         (backedge_phi_arg_p): Same.
18123         (follow_ssa_edge_in_condition_phi_branch): Same.
18124         (follow_ssa_edge_in_condition_phi): Same.
18125         (follow_ssa_edge_inner_loop_phi): Same.
18126         (follow_ssa_edge): Same.
18127         (analyze_evolution_in_loop): Same.
18128         (analyze_initial_condition): Same.
18129         (interpret_loop_phi): Same.
18130         (interpret_condition_phi): Same.
18131         (interpret_rhs_expr): Same.
18132         (interpret_expr): Same.
18133         (interpret_gimple_assign): Same.
18134         (analyze_scalar_evolution_1): Same.
18135         (analyze_scalar_evolution): Same.
18136         (analyze_scalar_evolution_for_address_of): Same.
18137         (get_instantiated_value_entry): Same.
18138         (loop_closed_phi_def): Same.
18139         (instantiate_scev_name): Same.
18140         (instantiate_scev_poly): Same.
18141         (instantiate_scev_binary): Same.
18142         (instantiate_scev_convert): Same.
18143         (instantiate_scev_not): Same.
18144         (instantiate_scev_r): Same.
18145         (instantiate_scev): Same.
18146         (resolve_mixers): Same.
18147         (initialize_scalar_evolutions_analyzer): Same.
18148         (scev_reset_htab): Same.
18149         (scev_reset): Same.
18150         (derive_simple_iv_with_niters): Same.
18151         (simple_iv_with_niters): Same.
18152         (expression_expensive_p): Same.
18153         (final_value_replacement_loop): Same.
18154         * tree-scalar-evolution.h (block_before_loop): Same.
18155         * tree-ssa-address.h: Same.
18156         * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
18157         * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
18158         (record_edge_info): Same.
18159         * tree-ssa-live.c (var_map_base_fini): Same.
18160         (remove_unused_locals): Same.
18161         * tree-ssa-live.h: Same.
18162         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
18163         (pass_ch_vect::execute): Same.
18164         (pass_ch::process_loop_p): Same.
18165         * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
18166         (movement_possibility): Same.
18167         (outermost_invariant_loop): Same.
18168         (stmt_cost): Same.
18169         (determine_max_movement): Same.
18170         (invariantness_dom_walker::before_dom_children): Same.
18171         (move_computations): Same.
18172         (may_move_till): Same.
18173         (force_move_till_op): Same.
18174         (force_move_till): Same.
18175         (memref_free): Same.
18176         (record_mem_ref_loc): Same.
18177         (set_ref_stored_in_loop): Same.
18178         (mark_ref_stored): Same.
18179         (sort_bbs_in_loop_postorder_cmp): Same.
18180         (sort_locs_in_loop_postorder_cmp): Same.
18181         (analyze_memory_references): Same.
18182         (mem_refs_may_alias_p): Same.
18183         (find_ref_loc_in_loop_cmp): Same.
18184         (rewrite_mem_ref_loc::operator): Same.
18185         (first_mem_ref_loc_1::operator): Same.
18186         (sm_set_flag_if_changed::operator): Same.
18187         (execute_sm_if_changed_flag_set): Same.
18188         (execute_sm): Same.
18189         (hoist_memory_references): Same.
18190         (ref_always_accessed::operator): Same.
18191         (refs_independent_p): Same.
18192         (record_dep_loop): Same.
18193         (ref_indep_loop_p_1): Same.
18194         (ref_indep_loop_p): Same.
18195         (can_sm_ref_p): Same.
18196         (find_refs_for_sm): Same.
18197         (loop_suitable_for_sm): Same.
18198         (store_motion_loop): Same.
18199         (store_motion): Same.
18200         (fill_always_executed_in): Same.
18201         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
18202         (estimated_unrolled_size): Same.
18203         (loop_edge_to_cancel): Same.
18204         (remove_exits_and_undefined_stmts): Same.
18205         (remove_redundant_iv_tests): Same.
18206         (unloop_loops): Same.
18207         (estimated_peeled_sequence_size): Same.
18208         (try_peel_loop): Same.
18209         (canonicalize_loop_induction_variables): Same.
18210         (canonicalize_induction_variables): Same.
18211         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
18212         (name_info): Same.
18213         (stmt_after_inc_pos): Same.
18214         (contains_abnormal_ssa_name_p): Same.
18215         (niter_for_exit): Same.
18216         (find_bivs): Same.
18217         (mark_bivs): Same.
18218         (find_givs_in_bb): Same.
18219         (find_induction_variables): Same.
18220         (find_interesting_uses_cond): Same.
18221         (outermost_invariant_loop_for_expr): Same.
18222         (idx_find_step): Same.
18223         (add_candidate_1): Same.
18224         (add_iv_candidate_derived_from_uses): Same.
18225         (alloc_use_cost_map): Same.
18226         (prepare_decl_rtl): Same.
18227         (generic_predict_doloop_p): Same.
18228         (computation_cost): Same.
18229         (determine_common_wider_type): Same.
18230         (get_computation_aff_1): Same.
18231         (get_use_type): Same.
18232         (determine_group_iv_cost_address): Same.
18233         (iv_period): Same.
18234         (difference_cannot_overflow_p): Same.
18235         (may_eliminate_iv): Same.
18236         (determine_set_costs): Same.
18237         (cheaper_cost_pair): Same.
18238         (compare_cost_pair): Same.
18239         (iv_ca_cand_for_group): Same.
18240         (iv_ca_recount_cost): Same.
18241         (iv_ca_set_remove_invs): Same.
18242         (iv_ca_set_no_cp): Same.
18243         (iv_ca_set_add_invs): Same.
18244         (iv_ca_set_cp): Same.
18245         (iv_ca_add_group): Same.
18246         (iv_ca_cost): Same.
18247         (iv_ca_compare_deps): Same.
18248         (iv_ca_delta_reverse): Same.
18249         (iv_ca_delta_commit): Same.
18250         (iv_ca_cand_used_p): Same.
18251         (iv_ca_delta_free): Same.
18252         (iv_ca_new): Same.
18253         (iv_ca_free): Same.
18254         (iv_ca_dump): Same.
18255         (iv_ca_extend): Same.
18256         (iv_ca_narrow): Same.
18257         (iv_ca_prune): Same.
18258         (cheaper_cost_with_cand): Same.
18259         (iv_ca_replace): Same.
18260         (try_add_cand_for): Same.
18261         (get_initial_solution): Same.
18262         (try_improve_iv_set): Same.
18263         (find_optimal_iv_set_1): Same.
18264         (create_new_iv): Same.
18265         (rewrite_use_compare): Same.
18266         (remove_unused_ivs): Same.
18267         (determine_scaling_factor): Same.
18268         * tree-ssa-loop-ivopts.h: Same.
18269         * tree-ssa-loop-manip.c (create_iv): Same.
18270         (compute_live_loop_exits): Same.
18271         (add_exit_phi): Same.
18272         (add_exit_phis): Same.
18273         (find_uses_to_rename_use): Same.
18274         (find_uses_to_rename_def): Same.
18275         (find_uses_to_rename_in_loop): Same.
18276         (rewrite_into_loop_closed_ssa): Same.
18277         (check_loop_closed_ssa_bb): Same.
18278         (split_loop_exit_edge): Same.
18279         (ip_end_pos): Same.
18280         (ip_normal_pos): Same.
18281         (copy_phi_node_args): Same.
18282         (gimple_duplicate_loop_to_header_edge): Same.
18283         (can_unroll_loop_p): Same.
18284         (determine_exit_conditions): Same.
18285         (scale_dominated_blocks_in_loop): Same.
18286         (niter_for_unrolled_loop): Same.
18287         (tree_transform_and_unroll_loop): Same.
18288         (rewrite_all_phi_nodes_with_iv): Same.
18289         * tree-ssa-loop-manip.h: Same.
18290         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
18291         (number_of_iterations_ne): Same.
18292         (assert_no_overflow_lt): Same.
18293         (assert_loop_rolls_lt): Same.
18294         (number_of_iterations_lt): Same.
18295         (adjust_cond_for_loop_until_wrap): Same.
18296         (tree_simplify_using_condition): Same.
18297         (simplify_using_initial_conditions): Same.
18298         (simplify_using_outer_evolutions): Same.
18299         (loop_only_exit_p): Same.
18300         (ssa_defined_by_minus_one_stmt_p): Same.
18301         (number_of_iterations_popcount): Same.
18302         (number_of_iterations_exit): Same.
18303         (find_loop_niter): Same.
18304         (finite_loop_p): Same.
18305         (chain_of_csts_start): Same.
18306         (get_val_for): Same.
18307         (loop_niter_by_eval): Same.
18308         (derive_constant_upper_bound_ops): Same.
18309         (do_warn_aggressive_loop_optimizations): Same.
18310         (record_estimate): Same.
18311         (get_cst_init_from_scev): Same.
18312         (record_nonwrapping_iv): Same.
18313         (idx_infer_loop_bounds): Same.
18314         (infer_loop_bounds_from_ref): Same.
18315         (infer_loop_bounds_from_array): Same.
18316         (infer_loop_bounds_from_pointer_arith): Same.
18317         (infer_loop_bounds_from_signedness): Same.
18318         (bound_index): Same.
18319         (discover_iteration_bound_by_body_walk): Same.
18320         (maybe_lower_iteration_bound): Same.
18321         (estimate_numbers_of_iterations): Same.
18322         (estimated_loop_iterations): Same.
18323         (estimated_loop_iterations_int): Same.
18324         (max_loop_iterations): Same.
18325         (max_loop_iterations_int): Same.
18326         (likely_max_loop_iterations): Same.
18327         (likely_max_loop_iterations_int): Same.
18328         (estimated_stmt_executions_int): Same.
18329         (max_stmt_executions): Same.
18330         (likely_max_stmt_executions): Same.
18331         (estimated_stmt_executions): Same.
18332         (stmt_dominates_stmt_p): Same.
18333         (nowrap_type_p): Same.
18334         (loop_exits_before_overflow): Same.
18335         (scev_var_range_cant_overflow): Same.
18336         (scev_probably_wraps_p): Same.
18337         (free_numbers_of_iterations_estimates): Same.
18338         * tree-ssa-loop-niter.h: Same.
18339         * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
18340         (idx_analyze_ref): Same.
18341         (analyze_ref): Same.
18342         (gather_memory_references_ref): Same.
18343         (mark_nontemporal_store): Same.
18344         (emit_mfence_after_loop): Same.
18345         (may_use_storent_in_loop_p): Same.
18346         (mark_nontemporal_stores): Same.
18347         (should_unroll_loop_p): Same.
18348         (volume_of_dist_vector): Same.
18349         (add_subscript_strides): Same.
18350         (self_reuse_distance): Same.
18351         (insn_to_prefetch_ratio_too_small_p): Same.
18352         * tree-ssa-loop-split.c (split_at_bb_p): Same.
18353         (patch_loop_exit): Same.
18354         (find_or_create_guard_phi): Same.
18355         (easy_exit_values): Same.
18356         (connect_loop_phis): Same.
18357         (connect_loops): Same.
18358         (compute_new_first_bound): Same.
18359         (split_loop): Same.
18360         (tree_ssa_split_loops): Same.
18361         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
18362         (is_maybe_undefined): Same.
18363         (tree_may_unswitch_on): Same.
18364         (simplify_using_entry_checks): Same.
18365         (tree_unswitch_single_loop): Same.
18366         (tree_unswitch_loop): Same.
18367         (tree_unswitch_outer_loop): Same.
18368         (empty_bb_without_guard_p): Same.
18369         (used_outside_loop_p): Same.
18370         (get_vop_from_header): Same.
18371         (hoist_guard): Same.
18372         * tree-ssa-loop.c (gate_oacc_kernels): Same.
18373         (get_lsm_tmp_name): Same.
18374         * tree-ssa-loop.h: Same.
18375         * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
18376         (build_and_add_sum): Same.
18377         (no_side_effect_bb): Same.
18378         (get_ops): Same.
18379         (linearize_expr): Same.
18380         (should_break_up_subtract): Same.
18381         (linearize_expr_tree): Same.
18382         * tree-ssa-scopedtables.c: Same.
18383         * tree-ssa-scopedtables.h: Same.
18384         * tree-ssa-structalias.c (condense_visit): Same.
18385         (label_visit): Same.
18386         (dump_pred_graph): Same.
18387         (perform_var_substitution): Same.
18388         (move_complex_constraints): Same.
18389         (remove_preds_and_fake_succs): Same.
18390         * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
18391         (determine_bb_domination_status): Same.
18392         (duplicate_thread_path): Same.
18393         (thread_through_all_blocks): Same.
18394         * tree-ssa-threadupdate.h: Same.
18395         * tree-streamer-in.c (streamer_read_string_cst): Same.
18396         (input_identifier): Same.
18397         (unpack_ts_type_common_value_fields): Same.
18398         (unpack_ts_block_value_fields): Same.
18399         (unpack_ts_translation_unit_decl_value_fields): Same.
18400         (unpack_ts_omp_clause_value_fields): Same.
18401         (streamer_read_tree_bitfields): Same.
18402         (streamer_alloc_tree): Same.
18403         (lto_input_ts_common_tree_pointers): Same.
18404         (lto_input_ts_vector_tree_pointers): Same.
18405         (lto_input_ts_poly_tree_pointers): Same.
18406         (lto_input_ts_complex_tree_pointers): Same.
18407         (lto_input_ts_decl_minimal_tree_pointers): Same.
18408         (lto_input_ts_decl_common_tree_pointers): Same.
18409         (lto_input_ts_decl_non_common_tree_pointers): Same.
18410         (lto_input_ts_decl_with_vis_tree_pointers): Same.
18411         (lto_input_ts_field_decl_tree_pointers): Same.
18412         (lto_input_ts_function_decl_tree_pointers): Same.
18413         (lto_input_ts_type_common_tree_pointers): Same.
18414         (lto_input_ts_type_non_common_tree_pointers): Same.
18415         (lto_input_ts_list_tree_pointers): Same.
18416         (lto_input_ts_vec_tree_pointers): Same.
18417         (lto_input_ts_exp_tree_pointers): Same.
18418         (lto_input_ts_block_tree_pointers): Same.
18419         (lto_input_ts_binfo_tree_pointers): Same.
18420         (lto_input_ts_constructor_tree_pointers): Same.
18421         (lto_input_ts_omp_clause_tree_pointers): Same.
18422         (streamer_read_tree_body): Same.
18423         * tree-streamer.h: Same.
18424         * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
18425         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
18426         (vect_analyze_possibly_independent_ddr): Same.
18427         (vect_analyze_data_ref_dependence): Same.
18428         (vect_compute_data_ref_alignment): Same.
18429         (vect_enhance_data_refs_alignment): Same.
18430         (vect_analyze_data_ref_access): Same.
18431         (vect_check_gather_scatter): Same.
18432         (vect_find_stmt_data_reference): Same.
18433         (vect_create_addr_base_for_vector_ref): Same.
18434         (vect_setup_realignment): Same.
18435         (vect_supportable_dr_alignment): Same.
18436         * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
18437         (adjust_phi_and_debug_stmts): Same.
18438         (vect_set_loop_mask): Same.
18439         (add_preheader_seq): Same.
18440         (vect_maybe_permute_loop_masks): Same.
18441         (vect_set_loop_masks_directly): Same.
18442         (vect_set_loop_condition_masked): Same.
18443         (vect_set_loop_condition_unmasked): Same.
18444         (slpeel_duplicate_current_defs_from_edges): Same.
18445         (slpeel_add_loop_guard): Same.
18446         (slpeel_can_duplicate_loop_p): Same.
18447         (create_lcssa_for_virtual_phi): Same.
18448         (iv_phi_p): Same.
18449         (vect_update_ivs_after_vectorizer): Same.
18450         (vect_gen_vector_loop_niters_mult_vf): Same.
18451         (slpeel_update_phi_nodes_for_loops): Same.
18452         (slpeel_update_phi_nodes_for_guard1): Same.
18453         (find_guard_arg): Same.
18454         (slpeel_update_phi_nodes_for_guard2): Same.
18455         (slpeel_update_phi_nodes_for_lcssa): Same.
18456         (vect_do_peeling): Same.
18457         (vect_create_cond_for_alias_checks): Same.
18458         (vect_loop_versioning): Same.
18459         * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
18460         (vect_inner_phi_in_double_reduction_p): Same.
18461         (vect_analyze_scalar_cycles_1): Same.
18462         (vect_fixup_scalar_cycles_with_patterns): Same.
18463         (vect_get_loop_niters): Same.
18464         (bb_in_loop_p): Same.
18465         (vect_get_max_nscalars_per_iter): Same.
18466         (vect_verify_full_masking): Same.
18467         (vect_compute_single_scalar_iteration_cost): Same.
18468         (vect_analyze_loop_form_1): Same.
18469         (vect_analyze_loop_form): Same.
18470         (vect_active_double_reduction_p): Same.
18471         (vect_analyze_loop_operations): Same.
18472         (neutral_op_for_slp_reduction): Same.
18473         (vect_is_simple_reduction): Same.
18474         (vect_model_reduction_cost): Same.
18475         (get_initial_def_for_reduction): Same.
18476         (get_initial_defs_for_reduction): Same.
18477         (vect_create_epilog_for_reduction): Same.
18478         (vectorize_fold_left_reduction): Same.
18479         (vectorizable_reduction): Same.
18480         (vectorizable_induction): Same.
18481         (vectorizable_live_operation): Same.
18482         (loop_niters_no_overflow): Same.
18483         (vect_get_loop_mask): Same.
18484         (vect_transform_loop_stmt): Same.
18485         (vect_transform_loop): Same.
18486         * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
18487         (vect_determine_precisions): Same.
18488         (vect_pattern_recog_1): Same.
18489         * tree-vect-slp.c (vect_analyze_slp_instance): Same.
18490         * tree-vect-stmts.c (stmt_vectype): Same.
18491         (process_use): Same.
18492         (vect_init_vector_1): Same.
18493         (vect_truncate_gather_scatter_offset): Same.
18494         (get_group_load_store_type): Same.
18495         (vect_build_gather_load_calls): Same.
18496         (vect_get_strided_load_store_ops): Same.
18497         (vectorizable_simd_clone_call): Same.
18498         (vectorizable_store): Same.
18499         (permute_vec_elements): Same.
18500         (vectorizable_load): Same.
18501         (vect_transform_stmt): Same.
18502         (supportable_widening_operation): Same.
18503         * tree-vectorizer.c (vec_info::replace_stmt): Same.
18504         (vec_info::free_stmt_vec_info): Same.
18505         (vect_free_loop_info_assumptions): Same.
18506         (vect_loop_vectorized_call): Same.
18507         (set_uid_loop_bbs): Same.
18508         (vectorize_loops): Same.
18509         * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
18510         * tree.c (add_tree_to_fld_list): Same.
18511         (fld_type_variant_equal_p): Same.
18512         (fld_decl_context): Same.
18513         (fld_incomplete_type_of): Same.
18514         (free_lang_data_in_binfo): Same.
18515         (need_assembler_name_p): Same.
18516         (find_decls_types_r): Same.
18517         (get_eh_types_for_runtime): Same.
18518         (find_decls_types_in_eh_region): Same.
18519         (find_decls_types_in_node): Same.
18520         (assign_assembler_name_if_needed): Same.
18521         * value-prof.c (stream_out_histogram_value): Same.
18522         * value-prof.h: Same.
18523         * var-tracking.c (use_narrower_mode): Same.
18524         (prepare_call_arguments): Same.
18525         (vt_expand_loc_callback): Same.
18526         (resolve_expansions_pending_recursion): Same.
18527         (vt_expand_loc): Same.
18528         * varasm.c (const_hash_1): Same.
18529         (compare_constant): Same.
18530         (tree_output_constant_def): Same.
18531         (simplify_subtraction): Same.
18532         (get_pool_constant): Same.
18533         (output_constant_pool_2): Same.
18534         (output_constant_pool_1): Same.
18535         (mark_constants_in_pattern): Same.
18536         (mark_constant_pool): Same.
18537         (get_section_anchor): Same.
18538         * vr-values.c (compare_range_with_value): Same.
18539         (vr_values::extract_range_from_phi_node): Same.
18540         * vr-values.h: Same.
18541         * web.c (unionfind_union): Same.
18542         * wide-int.h: Same.
18544 2019-07-09  Martin Sebor  <msebor@redhat.com>
18546         PR c++/61339
18547         * align.h: Change class-key from class to struct and vice versa
18548         to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
18549         * alloc-pool.h: Same.
18550         * asan.c (shadow_mem_size): Same.
18551         * auto-profile.c: Same.
18552         * basic-block.h: Same.
18553         * bitmap.h: Same.
18554         * cfgexpand.c (set_rtl): Same.
18555         (expand_one_stack_var_at): Same.
18556         * cfghooks.h: Same.
18557         * cfgloop.h: Same.
18558         * cgraph.h: Same.
18559         * config/i386/i386.h: Same.
18560         * df-problems.c (df_print_bb_index): Same.
18561         * df-scan.c: Same.
18562         * df.h (df_single_use): Same.
18563         * diagnostic-show-locus.c (layout::print_annotation_line): Same.
18564         (layout::annotation_line_showed_range_p): Same.
18565         (get_printed_columns): Same.
18566         (correction::ensure_terminated): Same.
18567         (line_corrections::~line_corrections): Same.
18568         * dojump.h: Same.
18569         * dse.c: Same.
18570         * dump-context.h: Same.
18571         * dumpfile.h: Same.
18572         * dwarf2out.c: Same.
18573         * edit-context.c: Same.
18574         * fibonacci_heap.c (test_union_of_equal_heaps): Same.
18575         * flags.h: Same.
18576         * function.c (assign_stack_local): Same.
18577         * function.h: Same.
18578         * gcc.c: Same.
18579         * gcov.c (block_info::block_info): Same.
18580         * genattrtab.c: Same.
18581         * genextract.c: Same.
18582         * genmatch.c (comparison_code_p): Same.
18583         (id_base::id_base): Same.
18584         (decision_tree::print): Same.
18585         * genoutput.c: Same.
18586         * genpreds.c (write_one_predicate_function): Same.
18587         * genrecog.c (validate_pattern): Same.
18588         (find_operand_positions): Same.
18589         (optimize_subroutine_group): Same.
18590         (merge_pattern_transition::merge_pattern_transition): Same.
18591         (merge_pattern_info::merge_pattern_info): Same.
18592         (merge_state_result::merge_state_result): Same.
18593         (merge_into_state): Same.
18594         * gensupport.c: Same.
18595         * gensupport.h: Same.
18596         * ggc-common.c (init_ggc_heuristics): Same.
18597         * ggc-tests.c (test_union): Same.
18598         * gimple-loop-interchange.cc (dump_induction): Same.
18599         * gimple-loop-versioning.cc: Same.
18600         * gimple-match.h (gimple_match_cond::any_else): Same.
18601         * gimple-ssa-backprop.c: Same.
18602         * gimple-ssa-sprintf.c: Same.
18603         * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
18604         Same.
18605         (store_immediate_info::store_immediate_info): Same.
18606         (merged_store_group::apply_stores): Same.
18607         (get_location_for_stmts): Same.
18608         * gimple-ssa-strength-reduction.c: Same.
18609         * gimple-ssa-warn-alloca.c: Same.
18610         * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
18611         * godump.c (go_type_decl): Same.
18612         * hash-map-tests.c (test_map_of_strings_to_int): Same.
18613         * hash-map.h: Same.
18614         * hash-set-tests.c (test_set_of_strings): Same.
18615         * hsa-brig.c: Same.
18616         * hsa-common.h: Same.
18617         * hsa-gen.c (transformable_switch_to_sbr_p): Same.
18618         * input.c (assert_loceq): Same.
18619         * input.h: Same.
18620         * ipa-cp.c: Same.
18621         * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
18622         * ipa-fnsummary.h: Same.
18623         * ipa-inline.h: Same.
18624         * ipa-prop.h: Same.
18625         * ipa-split.c (visit_bb): Same.
18626         * ira-int.h (minmax_set_iter_next): Same.
18627         * loop-invariant.c: Same.
18628         * loop-iv.c: Same.
18629         * lra-eliminations.c: Same.
18630         * lra-int.h: Same.
18631         * lra-lives.c (mark_regno_dead): Same.
18632         * lra-remat.c: Same.
18633         * lra-spills.c: Same.
18634         * lto-streamer.h: Same.
18635         * mem-stats.h: Same.
18636         * omp-grid.c (omp_grid_lastprivate_predicate): Same.
18637         * omp-low.c (omp_clause_aligned_alignment): Same.
18638         * optabs-query.h (get_vcond_eq_icode): Same.
18639         * optabs.h: Same.
18640         * opts.c (wrap_help): Same.
18641         * poly-int.h: Same.
18642         * predict.c (predict_paths_leading_to_edge): Same.
18643         * pretty-print.h: Same.
18644         * profile-count.h: Same.
18645         * read-md.h: Same.
18646         * read-rtl-function.c: Same.
18647         * ree.c: Same.
18648         * reginfo.c: Same.
18649         * regrename.c: Same.
18650         * regrename.h: Same.
18651         * reload.h: Same.
18652         * rtl-iter.h: Same.
18653         * rtl.h (costs_add_n_insns): Same.
18654         * sanopt.c: Same.
18655         * sched-int.h: Same.
18656         * sel-sched-ir.h: Same.
18657         * selftest.h: Same.
18658         * sese.h (vec_find): Same.
18659         * stmt.c: Same.
18660         * target-globals.h: Same.
18661         * tree-affine.c (aff_combination_find_elt): Same.
18662         * tree-affine.h: Same.
18663         * tree-data-ref.h: Same.
18664         * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
18665         * tree-predcom.c: Same.
18666         * tree-scalar-evolution.c (find_var_scev_info): Same.
18667         * tree-ssa-alias.h: Same.
18668         * tree-ssa-ccp.c: Same.
18669         * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
18670         * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
18671         (rewrite_mem_refs): Same.
18672         (execute_sm_if_changed): Same.
18673         (hoist_memory_references): Same.
18674         * tree-ssa-loop-ivopts.c (operator<=): Same.
18675         * tree-ssa-loop.h: Same.
18676         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
18677         * tree-ssa-structalias.c: Same.
18678         * tree-switch-conversion.h (cluster::cluster): Same.
18679         (simple_cluster::simple_cluster): Same.
18680         * tree-vect-patterns.c (type_conversion_p): Same.
18681         * tree-vectorizer.c (dump_stmt_cost): Same.
18682         * tree-vectorizer.h (loop_vec_info_for_loop): Same.
18683         * tree.c (protected_set_expr_location): Same.
18684         * tree.h (desired_pro_or_demotion_p): Same.
18685         (fndecl_built_in_p): Same.
18686         * unique-ptr-tests.cc: Same.
18687         * var-tracking.c (delete_variable_part): Same.
18688         * varasm.c (assemble_real): Same.
18689         (tree_output_constant_def): Same.
18690         * vec.c: Same.
18691         * wide-int-bitmask.h: Same.
18692         * wide-int.h (decompose): Same.
18694 2019-07-09  Richard Biener  <rguenther@suse.de>
18696         PR tree-optimization/91114
18697         * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
18698         find a vector type isn't fatal.
18700 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
18702         * config/aarch64/aarch64-simd.md
18703         (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
18704         (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
18705         (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
18706         (*aarch64_crypto_aese_fused,
18707         *aarch64_crypto_aesd_fused): Update to new definition.
18708         * config/aarch64/aarch64.c
18709         (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
18711 2019-07-09  Richard Biener  <rguenther@suse.de>
18713         * gimple-match.h (gimple_match_op::resimplify): New.
18714         (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
18715         gimple_resimplify4, gimple_resimplify5): Remove.
18716         * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
18717         gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
18718         Make static.
18719         (gimple_match_op::resimplify): New.
18720         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
18721         according to availability.  Use gimple_match_op::resimplify.
18723 2019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
18725         * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
18727 2019-07-09  Sylvia Taylor  <sylvia.taylor@arm.com>
18729         * config/arm/crypto.md:
18730         (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
18731         (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
18732         (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
18733         (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
18734         * config/arm/arm.c
18735         (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
18736         * config/arm/aarch-common-protos.h
18737         (aarch_crypto_can_dual_issue): Remove.
18738         * config/arm/aarch-common.c
18739         (aarch_crypto_can_dual_issue): Likewise.
18740         * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
18741         * config/arm/cortex-a53.md: Likewise.
18742         * config/arm/cortex-a57.md: Likewise.
18743         * config/arm/iterators.md:
18744         (CRYPTO_BINARY): Redefine.
18745         (CRYPTO_UNARY): Removed.
18746         (CRYPTO_AES, CRYPTO_AESMC): New.
18748 2019-07-09  Richard Biener  <rguenther@suse.de>
18750         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
18751         (vn_reference_lookup_3): If the main ref has no access path recorded
18752         but orig_ref has use it to do access-path based disambiguation.
18753         (vn_reference_lookup_pieces): Adjust.
18754         (vn_reference_lookup): Pass down original ref if we valueized.
18756 2019-07-09  Martin Liska  <mliska@suse.cz>
18758         * doc/extend.texi: Document influence on loop
18759         optimizers.
18761 2019-07-09  Martin Liska  <mliska@suse.cz>
18763         * lto-compress.c (lto_normalized_zstd_level): Do not use
18764         ZSTD_CLEVEL_DEFAULT as it is not default in old releases
18765         of libzstd.  One can use 0 as a default compression level.
18767 2019-07-09  Martin Liska  <mliska@suse.cz>
18769         * doc/invoke.texi: Add link from -fprofile-dir option.
18770         Use better wording for 'gcno filename'.
18772 2019-07-08  Martin Sebor  <msebor@redhat.com>
18774         PR middle-end/71924
18775         PR middle-end/90549
18776         * gimple-ssa-isolate-paths.c (isolate_path): Add attribute.  Update
18777         comment.
18778         (args_loc_t): New type.
18779         (args_loc_t, locmap_t): same.
18780         (diag_returned_locals): New function.
18781         (is_addr_local): Same.
18782         (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
18783         (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
18784         (find_explicit_erroneous_behavior): Call warn_return_addr_local.
18786 2019-07-08  Jakub Jelinek  <jakub@redhat.com>
18788         * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
18789         with SSA_NAME address of POINTER_PLUS_EXPR.  Handle MULT_EXPR
18790         and casts in offset when different, both through gimple stmts
18791         and through trees.  Rewritten using loops to minimize code duplication
18792         for each operand.
18794 2019-07-08  Eric Botcazou  <ebotcazou@adacore.com>
18796         * emit-rtl.c (set_insn_locations): New function moved from...
18797         * function.c (set_insn_locations): ...here.
18798         * ira-emit.c (emit_moves): Propagate location of the first instruction
18799         to the inserted move instructions.
18800         * reg-stack.c (compensate_edge): Set the location if the sequence is
18801         inserted on the edge.
18802         * rtl.h (set_insn_locations): Declare.
18804 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
18806         * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
18807         OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
18808         .machine string.
18810 2019-07-08  Segher Boessenkool  <segher@kernel.crashing.org>
18812         PR rtl-optimization/88233
18813         * common.opt (fsplit-wide-types-early): New option.
18814         * common/config/rs6000/rs6000-common.c
18815         (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
18816         OPT_LEVELS_ALL.
18817         * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
18818         * lower-subreg.c (pass_lower_subreg2::gate): Add test for
18819         flag_split_wide_types_early.
18820         (pass_data_lower_subreg3): New.
18821         (pass_lower_subreg3): New.
18822         (make_pass_lower_subreg3): New.
18823         * passes.def (pass_lower_subreg2): Move after the loop passes.
18824         (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
18825         * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
18826         the pass pipeline; its previous place is taken by ...
18827         (make_pass_lower_subreg3): ... this.
18829 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
18831         * config/s390/s390.c (s390_shift_truncation_mask): Define.
18832         (TARGET_SHIFT_TRUNCATION_MASK): Define.
18834 2019-07-08  Robin Dapp  <rdapp@linux.ibm.com>
18836         * config/s390/constraints.md: Add new jsc constraint.
18837         * config/s390/predicates.md: New predicates.
18838         * config/s390/s390-protos.h (s390_valid_shift_count): New function.
18839         * config/s390/s390.c (s390_valid_shift_count): New function.
18840         (print_shift_count_operand): Use s390_valid_shift_count.
18841         (print_operand): Likewise.
18842         * config/s390/s390.md: Use new predicate.
18843         * config/s390/subst.md: Remove addr_style_op and masked_op substs.
18844         * config/s390/vector.md: Use new predicate.
18846 2019-07-08  Andrew Waterman  <andrew@sifive.com>
18847             Jim Wilson  <jimw@sifive.com>
18849         * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
18850         bitsize instead of BITS_PER_WORD.
18852 2019-07-08  Martin Liska  <mliska@suse.cz>
18854         * collect2.c (defined): Revert to before r254460.
18855         (scan_prog_file): Revert to before r254460.
18857 2019-07-08  Richard Biener  <rguenther@suse.de>
18859         PR tree-optimization/83518
18860         * tree-ssa-sccvn.c: Include splay-tree.h.
18861         (struct pd_range, struct pd_data): New.
18862         (struct vn_walk_cb_data): Add data to track partial definitions.
18863         (vn_walk_cb_data::~vn_walk_cb_data): New.
18864         (vn_walk_cb_data::push_partial_def): New.
18865         (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
18866         (vn_reference_lookup_2): When partial defs are registered give up.
18867         (vn_reference_lookup_3): Track partial defs for memset and
18868         constructor zeroing and for defs from constants.
18870 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
18872         * doc/install.texi (bootstrap-Og): Document.
18874 2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
18876         * config/riscv/pic.md (*local_pic_load_s<mode>)
18877         (*local_pic_load_u<mode>): Explicitly specify the mode iterator
18878         referenced by <mode>, giving...
18879         (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
18880         * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
18881         (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
18882         use <X:MODE> for the mode attribute.
18884 2019-07-07  Jeff Law  <law@redhat.com>
18886         PR tree-optimization/91090
18887         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
18888         in handling of ranges to simplify switch statements.
18890 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
18892         * config/darwin.c (darwin_override_options): Make a final check on PIC
18893         options.
18895 2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
18897         * config/darwin.c (darwin_override_options): Don't jam symbol stubs
18898         on for kernel code.
18900 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
18902         PR target/91068
18903         * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
18904         (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
18905         instead of matching them to "l" output operands.
18907 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>
18909         * config/mips/mips.c (mips_split_move): Zero-initialize addr
18910         and check whether addr.reg is nonnull before using it.
18912 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
18914         * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
18915         ctx->for_simd_scan_phase simd copy the outer var to the privatized
18916         variable(s).  For conditional lastprivate look through outer
18917         GIMPLE_OMP_SCAN context.
18918         (lower_omp_1): For conditional lastprivate look through outer
18919         GIMPLE_OMP_SCAN context.
18921         * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
18922         member to combined_into_simd_safelen1.
18923         (lower_rec_input_clauses, lower_omp_1): Adjust uses.
18924         (lower_lastprivate_clauses): Likewise.  For conditional lastprivate
18925         clauses if ctx->combined_into_simd_safelen1 put statements after the
18926         predicate conditionalized block rather than into it.
18928 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
18930         * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
18931         operand 1.
18932         * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
18933         Make the choice of <mode> explicit, giving...
18934         (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
18936 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
18938         * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
18939         (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
18940         of .md attributes.
18941         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
18942         (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
18943         (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
18944         (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
18945         (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
18946         (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
18947         (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
18948         (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
18949         (*avx512f_scatterdi<mode>): Likewise.
18950         (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
18952 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
18954         * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
18955         specify the mode iterator referenced by <mode>, giving...
18956         (*push1_h8300hs_<QHI:mode>): ...this.
18958 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
18960         * config/gcn/gcn-valu.md
18961         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
18962         gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
18963         gen_vec_cmp<VEC_1REG_MODE:mode>di.  Explicitly use
18964         gen_vcond_mask_<VEC_1REG_MODE:mode>di.
18965         (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
18966         but using the _exec comparison patterns.
18967         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
18968         gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
18969         gen_vec_cmp<VEC_1REG_INT_MODE:mode>di.  Explicitly use
18970         gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
18971         (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
18972         but using the _exec comparison patterns.
18974 2019-07-06  Richard Sandiford  <richard.sandiford@arm.com>
18976         * config/arm/sync.md
18977         (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
18978         <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
18979         (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
18980         <SIDI:sync_predtab>.  Use <SIDI:cas_cmp_operand> and
18981         <SIDI:cas_cmp_str>.
18983 2019-07-06  Jakub Jelinek  <jakub@redhat.com>
18985         * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
18986         (maybe_lookup_ctx): Add forward declaration.
18987         (omp_find_scan): Likewise.  Walk into body of simd if composited
18988         with worksharing loop.
18989         (scan_omp_simd_scan): New function.
18990         (scan_omp_1_stmt): Call it.
18991         (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
18992         ctx->for_simd_scan_phase.
18993         (lower_rec_input_clauses): Do much less work for inscan reductions
18994         in ctx->for_simd_scan_phase is_simd regions.
18995         (lower_omp_scan): Set is_simd also on simd constructs composited
18996         with worksharing loop, unless ctx->for_simd_scan_phase.  Never emit
18997         a sorry message.  Don't change GIMPLE_OMP_SCAN stmts into nops and
18998         emit their body after in simd constructs composited with worksharing
18999         loop.
19000         (lower_omp_for_scan): Handle worksharing loop composited with simd.
19002         * omp-low.c (omp_find_scan): Make static.
19003         (lower_omp_for_scan): Fix order of merge arguments in input phase of
19004         the second loop, var2 represents the first partial sum and so needs
19005         to go before rprivb[ivar].
19007 2019-07-05  Iain Sandoe  <iain@sandoe.co.uk>
19009         * config/rs6000/rs6000-logue.c: Remove unused code.
19011 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
19013         * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
19015 2019-07-05  Sam Tebbs  <sam.tebbs@arm.com>
19017         PR target/90712
19018         * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
19019         check with a frame laid out check.
19021 2019-07-05  Richard Biener  <rguenther@suse.de>
19023         * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
19024         when comparing against a store with possibly the same value.
19026 2019-07-05  Richard Biener  <rguenther@suse.de>
19028         PR tree-optimization/91091
19029         * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
19030         (walk_non_aliased_vuses): Likewise.
19031         * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
19032         (get_continuation_for_phi): New tbaa_p parameter and pass
19033         it down.
19034         (walk_non_aliased_vuses): Likewise.
19035         * ipa-prop.c (determine_known_aggregate_parts): Adjust.
19036         * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
19037         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
19038         Likewise.
19039         * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
19040         (adjust_offsets_for_equal_base_address): New function.
19041         (vn_reference_lookup_3): Use it to catch more base equivalences.
19042         Handle and pass down tbaa_p flag.
19043         (vn_reference_lookup_pieces): Adjust.
19044         (vn_reference_lookup): Remove alias-set altering, instead pass
19045         down false as tbaa_p.
19047 2019-07-05  Richard Biener  <rguenther@suse.de>
19049         PR tree-optimization/91091
19050         * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
19051         accesses can happen with -fno-strict-aliasing.
19053 2019-07-05  Jan Hubicka  <hubicka@ucw.cz>
19055         * tree-ssa-alias.c (alias_stats): Add
19056         nonoverlapping_component_refs_since_match_p_must_overlap.
19057         (dump_alias_stats): Print it.
19058         (nonoverlapping_component_refs_since_match_p): Add early exit.
19059         (nonoverlapping_component_refs_p): Do not account early exit.
19061 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
19063         * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
19064         * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
19065         (emit_eh_dispatch): Delete.
19066         (lower_catch): Emit the eh_dispatch manually and set the location of
19067         the first catch statement onto it.
19068         (lower_eh_filter): Emit the eh_dispatch manually and set location.
19069         (lower_eh_dispatch): Propagate location.
19070         * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
19071         (eliminate_build): Likewise.
19073 2019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
19075         * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
19076         phi nodes if possible.
19077         * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
19078         location info on the newly created statement.
19079         * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
19080         newly created increment if needed.
19082 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
19084         PR middle-end/78884
19085         * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
19086         (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
19087         loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
19088         (gimplify_adjust_omp_clauses): Add safelen (1) clause if
19089         ctx->add_safelen1 is set.
19091         * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
19092         GOMP_loop_start at the start of second worksharing loop in a scan.
19093         For nowait, don't emit GOMP_loop_end_nowait at the end of first
19094         worksharing loop in a scan even if there are conditional lastprivates,
19095         and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
19097 2019-07-04  Jan Hubicka  <jh@suse.cz>
19099         * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
19100         Fix check for match in the ref walk.
19102 2019-07-04  Martin Liska  <mliska@suse.cz>
19104         * tree-ssa-loop-niter.c
19105         (get_upper_bound_based_on_builtin_expr_with_prob): New function.
19106         (estimate_numbers_of_iterations):
19107         Support __builtin_expect_with_probability for analysis
19108         of # of loop iterations.
19110 2019-07-04  Alexandre Oliva  <oliva@adacore.com>
19112         * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
19113         * except.c: Likewise.
19114         * expr.c (expand_expr_real_1): Reject it.
19115         * gimplify.c (gimplify_expr): Gimplify it, within
19116         TRY_FINALLY_EXPR.
19117         * tree-dump.c (dequeue_and_dump): Dump it.
19118         * tree-pretty-print.c (dump_generic_node): Likewise.
19119         * tree.c (block_may_fallthru): Handle it.
19120         * tree.def (EH_ELSE_EXPR): Introduce it.
19121         * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
19122         with GIMPLE_EH_ELSE as try/finally/else.
19124 2019-07-04  Richard Biener  <rguenther@suse.de>
19126         PR ipa/91062
19127         * tree-pass.h (execute_all_ipa_transforms): Add a flag
19128         parameter whether to disable GC collection.
19129         * passes.c (execute_one_ipa_transform_pass): Likewise, and
19130         honor it.
19131         (execute_all_ipa_transforms): Likewise and pass it down.
19132         * cgraph.c (cgraph_node::get_body): Do not invoke garbage
19133         collection from applying IPA transforms.
19134         * cgraphunit.c (cgraph_node::expand): Allow garbage collection
19135         from applying IPA transforms.
19137 2019-07-04  Richard Biener  <rguenther@suse.de>
19139         PR tree-optimization/90911
19140         * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
19141         (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
19142         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
19143         scalar_loop_scaling.
19144         (vect_transform_loop): Scale scalar loop profile if needed.
19145         * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
19146         the loop copy from if-conversion adjust edge probabilities
19147         and scale the vectorized loop body profile, queue the scalar
19148         profile for updating after peeling.
19150 2019-07-04  Jan Hubicka  <jh@suse.cz>
19152         * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
19153         parameters; return early for must-alias.
19154         (indirect_ref_may_alias_decl_p): Likewise; when establishing
19155         outer types match, try nonoverlapping_component_refs
19156         if must-alias is not obvious.
19157         (indirect_refs_may_alias_p): Likewise.
19158         (refs_may_alias_p_2): Likewise.
19160 2019-07-04  Richard Biener  <rguenther@suse.de>
19162         * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
19163         argument.
19164         * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
19165         globals into...
19166         (struct vn_walk_cb_data): New callback data struct.
19167         (vn_reference_lookup_2): Adjust.
19168         (vn_reference_lookup_3): Likewise.
19169         (vn_reference_lookup_pieces): Likewise.
19170         (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
19171         (visit_reference_op_load): Adjust.
19173 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
19175         PR tree-optimization/91063
19176         * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
19177         stmt from stmts sequence before calling vect_init_vector_1.
19178         Formatting fix.
19180 2019-07-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19182         PR target/88833
19183         * fwprop.c (reg_single_def_p): New function.
19184         (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
19185         (forward_propagate_into): New parameter reg_prop_only
19186         with default value false.
19187         Propagate def's src into loop only if SET_SRC and SET_DEST
19188         of def_set have single definitions.
19189         Likewise if reg_prop_only is set to true.
19190         (fwprop): New param fwprop_addr_p.
19191         Integrate fwprop_addr into fwprop.
19192         (fwprop_addr): Remove.
19193         (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
19194         to true.
19195         (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
19196         * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
19197         * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
19199 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
19201         * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
19202         in worksharing loop scans.
19204         PR tree-optimization/91074
19205         * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
19206         temporary.
19208         PR rtl-optimization/90756
19209         * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
19210         for VECTOR_TYPE_P.
19212 2019-07-03  Dennis Zhang  <dennis.zhang@arm.com>
19214         * config/aarch64/aarch64.md: Remove redundant constraints from
19215         define_expand but keep some patterns untouched if they are
19216         specially selected by TARGET_SECONDARY_RELOAD hook.
19217         * config/aarch64/aarch64-sve.md: Likewise.
19218         * config/aarch64/atomics.md: Remove redundant constraints from
19219         define_expand.
19220         * config/aarch64/aarch64-simd.md: Likewise.
19222 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
19224         * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
19225         (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
19226         (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
19227         clauses.
19228         (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
19229         DARWIN_NOPIE_SPEC.
19231 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
19233         * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
19234         (STARTFILE_SPEC): Split crt3 into a separate spec.
19235         (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
19236         (DARWIN_CRT2_SPEC): New.
19237         (DARWIN_CRT3_SPEC): New.
19238         (MIN_LD64_OMIT_STUBS): Revise to 62.1.
19239         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
19240         (DARWIN_CRT3_SPEC): New.
19242 2019-07-03  Michael Meissner  <meissner@linux.ibm.com>
19244         * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
19245         Change the RTL attribute "length" from "4" to "*" to allow the
19246         length attribute to be adjusted automatically for prefixed load,
19247         store, and add immediate instructions.
19248         * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
19249         Likewise.
19250         (extendsi<mode>2, EXTSI iterator): Likewise.
19251         (movsi_internal1): Likewise.
19252         (movsi_from_sf): Likewise.
19253         (movdi_from_sf_zero_ext): Likewise.
19254         (mov<mode>_internal): Likewise.
19255         (movcc_internal1, QHI iterator): Likewise.
19256         (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
19257         (movsf_from_si): Likewise.
19258         (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
19259         (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
19260         (mov<mode>, FMOVE128 iterator): Likewise.
19261         (movdi_internal64): Likewise.
19262         * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
19263         Likewise.
19264         (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
19265         (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
19266         (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
19267         (vsx_splat_v4sf): Likewise.
19269 2019-07-03  Mark Wielaard  <mark@klomp.org>
19271         PR debug/90981
19272         * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
19273         DW_AT_addr_base if there is actually a .debug_addr section with
19274         addresses.
19275         (output_addr_table): Add DWARF5 table header generation here after
19276         checking there are actually any addresses from...
19277         (dwarf2out_finish): ...here.
19279 2019-07-03  Richard Biener  <rguenther@suse.de>
19281         PR middle-end/91069
19282         * match.pd (vec_perm -> bit_insert): Fix element read from
19283         first vector.
19285 2019-07-03  Martin Liska  <mliska@suse.cz>
19287         * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
19288         * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
19289         condition.
19290         * generic-match-head.c: Include dbgcnt.h.
19291         * gimple-match-head.c: Likewise.
19293 2019-07-03  Martin Liska  <mliska@suse.cz>
19295         * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
19296         (GCOV_COUNTER_V_TOPN): New.
19297         (GCOV_COUNTER_V_INDIR): Use _topn.
19298         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
19299         (GCOV_TOPN_VALUES): New.
19300         (GCOV_SINGLE_VALUE_COUNTERS): Remove.
19301         (GCOV_TOPN_VALUES_COUNTERS): New.
19302         * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
19303         * tree-profile.c:
19304         (gimple_init_gcov_profiler): Rename variables from one_value
19305         to topn_values.
19306         (gimple_gen_one_value_profiler): Remove.
19307         (gimple_gen_topn_values_profiler): New function.
19308         * value-prof.c (dump_histogram_value): Use TOPN_VALUES
19309         names instead of SINGLE_VALUE.
19310         (stream_out_histogram_value): Likewise.
19311         (stream_in_histogram_value): Likewise.
19312         (get_most_common_single_value): Likewise.
19313         (gimple_divmod_fixed_value_transform): Likewise.
19314         (gimple_stringops_transform): Likewise.
19315         (gimple_divmod_values_to_profile): Likewise.
19316         (gimple_stringops_values_to_profile): Likewise.
19317         (gimple_find_values_to_profile): Likewise.
19318         * value-prof.h (enum hist_type): Rename to TOPN.
19319         (gimple_gen_one_value_profiler): Remove.
19320         (gimple_gen_topn_values_profiler): New.
19322 2019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
19324         * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
19325         if it has the DW_AT_data_member_location attribute.
19327 2019-07-03  Richard Biener  <rguenther@suse.de>
19329         * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
19330         dumping.
19332 2019-07-03  Sylvia Taylor  <sylvia.taylor@arm.com>
19334         * config/aarch64/aarch64.md (FP_REGNUM): New constant.
19335         (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
19336         (tlsdesc_small_sve_<mode>): Likewise.
19338 2019-07-03  Martin Liska  <mliska@suse.cz>
19340         * Makefile.in: Define ZSTD_LIB.
19341         * common.opt: Adjust compression level
19342         to support also zstd levels.
19343         * config.in: Regenerate.
19344         * configure: Likewise.
19345         * configure.ac: Add --with-zstd and --with-zstd-include options
19346         and detect ZSTD.
19347         * doc/install.texi: Mention zstd dependency.
19348         * gcc.c: Print supported LTO compression algorithms.
19349         * lto-compress.c (lto_normalized_zstd_level): Likewise.
19350         (lto_compression_zstd): Likewise.
19351         (lto_uncompression_zstd): Likewise.
19352         (lto_end_compression): Dispatch in between zlib and zstd.
19353         (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
19354         (lto_uncompression_zlib): Make it static.
19355         * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
19356         * lto-section-in.c (lto_get_section_data): Pass info
19357         about used compression.
19358         * lto-streamer-out.c: By default use zstd when possible.
19359         * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
19360         (TV_IPA_LTO_COMPRESS): Likewise for compression.
19362 2019-07-03  Martin Liska  <mliska@suse.cz>
19364         * lto-section-in.c (lto_get_section_data): Add "lto" section.
19365         * lto-section-out.c (lto_destroy_simple_output_block): Never
19366         compress LTO_section_lto section.
19367         * lto-streamer-out.c (produce_asm): Do not set major_version
19368         and minor_version.
19369         (lto_output_toplevel_asms): Likewise.
19370         (produce_lto_section): New function.
19371         (lto_output): Call produce_lto_section.
19372         (lto_write_mode_table): Do not set major_version and
19373         minor_version.
19374         (produce_asm_for_decls): Likewise.
19375         * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
19376         type.
19377         (struct lto_header): Remove.
19378         (struct lto_section): New struct.
19379         (struct lto_simple_header): Do not inherit from lto_header.
19380         (struct lto_file_decl_data): Add lto_section_header field.
19382 2019-07-03  Martin Liska  <mliska@suse.cz>
19384         * lra-eliminations.c (eliminate_regs_in_insn): Remove
19385         dead assignemts.
19386         * reg-stack.c (check_asm_stack_operands): Likewise.
19387         * tree-ssa-structalias.c (create_function_info_for): Likewise.
19388         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
19389         * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
19390         force_expand_binop.
19392 2019-07-03  Martin Liska  <mliska@suse.cz>
19394         PR tree-optimization/90892
19395         * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
19396         in string constants.
19398 2019-07-03  Martin Liska  <mliska@suse.cz>
19400         PR middle-end/90899
19401         * multiple_target.c (create_dispatcher_calls): Add to comdat
19402         group only if set for ifunc.
19404 2019-07-03  Martin Liska  <mliska@suse.cz>
19406         PR target/88056
19407         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
19408         Define local_object_name in outer scope in order to handle
19409         use-after-scope issue.
19411 2019-07-03  Martin Liska  <mliska@suse.cz>
19413         * common.opt: Add fprofile-note.
19414         * coverage.c (coverage_init): Append the option
19415         to bbg_file_name.
19416         * doc/invoke.texi: Document -fprofile-note.
19418 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
19420         PR tree-optimization/91033
19421         * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
19422         vect_analyze_data_refs): Add bool * arguments.
19423         * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
19424         if failure is due to scatter/gather, set *fatal to false if non-NULL.
19425         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19426         * tree-vect-loop.c (vect_analyze_loop_2): Adjust
19427         vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
19428         * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
19429         vect_analyze_data_refs caller.
19431         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
19432         clause.
19433         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
19434         OMP_CLAUSE__CONDTEMP_ as range's upper bound.
19435         (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
19436         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
19437         OMP_CLAUSE__SCANTEMP_ entry.
19438         (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
19439         * tree-pretty-print.c (dump_omp_clause): Likewise.
19440         * tree-nested.c (convert_nonlocal_omp_clauses,
19441         convert_local_omp_clauses): Likewise.
19442         * omp-general.h (struct omp_for_data): Add have_scantemp and
19443         have_nonctrl_scantemp members.
19444         * omp-general.c (omp_extract_for_data): Initialize them.
19445         * omp-low.c (struct omp_context): Add scan_exclusive member.
19446         (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
19447         result again with GF_OMP_FOR_KIND_MASK.  Initialize also
19448         ctx->scan_exclusive.
19449         (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
19450         of !ctx->scan_inclusive.
19451         (lower_rec_input_clauses): Simplify gimplification of dtors using
19452         gimplify_and_add.  For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
19453         rather than rvarp.  Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
19454         loops.  Don't add barrier for reduction_omp_orig_ref if
19455         ctx->scan_??xclusive.
19456         (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
19457         (lower_omp_scan): Use ctx->scan_exclusive instead
19458         of !ctx->scan_inclusive.  Handle worksharing loops with inscan
19459         reductions.  Use new_vard != new_var instead of repeated
19460         omp_is_reference calls.
19461         (omp_find_scan, lower_omp_for_scan): New functions.
19462         (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
19463         inscan reductions.
19464         * omp-expand.c (expand_omp_scantemp_alloc): New function.
19465         (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
19466         and fd->have_scantemp.
19468         * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
19469         on worksharing loop propagate it as shared clause to containing
19470         combined parallel.
19472         * omp-expand.c (expand_omp_for_static_nochunk,
19473         expand_omp_for_static_chunk): For nowait worksharing loop with
19474         conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
19475         at the end.
19477 2019-07-02  qing zhao  <qing.zhao@oracle.com>
19479         PR preprocessor/90581
19480         * doc/cppopts.texi: Add document for -fmax-include-depth.
19481         * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
19483 2019-07-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19485         * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
19486         Use TARGET_SSE2 && SSE_REGNO_P in split condition.
19487         (mmx_packssdw): Ditto.
19488         (mmx_punpckhbw): Ditto.
19489         (mmx_punpcklbw): Ditto.
19490         (mmx_punpckhwd): Ditto.
19491         (mmx_punpcklwd): Ditto.
19492         (mmx_punpckhdq): Ditto.
19493         (mmx_punpckldq): Ditto.
19494         (*vec_dupv4hi): Ditto.
19495         (*vec_dupv2si): Ditto.
19496         (mmx_pmovmskb): Ditto.
19497         * config/i386/sse.md (sse_cvtpi2ps): Use
19498         TARGET_SSE2 && SSE_REG_P in split condition.
19499         (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
19500         TARGET_SSSE3 && SSE_REGNO_P in split condition.
19501         (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
19502         (ssse3_pshufbv8qi3): Ditto.
19503         (ssse3_palignrdi): Ditto.
19505 2019-07-02  Andrew Stubbs  <ams@codesourcery.com>
19507         * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
19508         with inlined save and restore.
19510 2019-07-02  Eric Botcazou  <ebotcazou@adacore.com>
19512         * cfgexpand.c (pass_expand::execute): Deal specially with instructions
19513         to be inserted on single successor edge of the entry block.  Then call
19514         commit_edge_insertions instead of inserting the instructions manually.
19515         * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
19516         RTL expansion and rebuild jump labels chain.
19518 2019-07-02  Richard Biener  <rguenther@suse.de>
19520         * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
19521         TI_CHREC_KNOWN.
19522         * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
19523         Define here.
19524         * tree.c (build_common_tree_nodes): Initialize them.
19525         * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
19526         Make declarations comments.
19527         * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
19528         chrec_known): Remove definitions.
19529         (initialize_scalar_evolutions_analyzer): Remove.
19530         (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
19531         * tree-streamer.c (preload_common_nodes): Do not preload
19532         TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
19534 2019-07-02  Jan Hubicka  <jh@suse.cz>
19536         * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
19537         sanity check.
19539 2019-07-02  Jan Hubicka  <jh@suse.cz>
19541         * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
19542         to ..
19543         (nonoverlapping_component_refs_since_match_p): ... this one;
19544         handle also non-decl bases; return -1 if search gave up.
19545         (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
19546         nonoverlapping_component_refs_of_decl_p_no_alias to
19547         nonoverlapping_component_refs_since_match_p_may_alias,
19548         nonoverlapping_component_refs_since_match_p_no_alias.
19549         (dump_alias_stats): Update dumping.
19550         (aliasing_matching_component_refs_p): Break out from ...;
19551         dispatch to nonoverlapping_component_refs_for_decl_p
19552         and nonoverlapping_component_refs_since_match_p.
19553         (aliasing_component_refs_p): ... here; call
19554         nonoverlapping_component_refs_p in scenarios where we can not
19555         precisely determine base match.
19556         (decl_refs_may_alias_p): Use
19557         nonoverlapping_component_refs_since_match_p.
19558         (indirect_ref_may_alias_decl_p): Do not call
19559         nonoverlapping_component_refs_p.
19560         (indirect_refs_may_alias_p): Likewise.
19562 2019-07-02  Jan Hubicka  <jh@suse.cz>
19564         * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
19565         to clobber of return value.
19567 2019-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19569         * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
19570         for is_neon_type instructions that have not already been categorized.
19572 2019-07-02  Richard Biener  <rguenther@suse.de>
19574         PR tree-optimization/58483
19575         * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
19576         for MEM_REF base hashing.
19577         (equal_mem_array_ref_p): Likewise for base comparison.
19579 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19581         * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
19582         parameterized name.
19583         (signbit<mode>2): Use that name.  Simplify.
19585 2019-07-01  Joern Rennecke  <joern.rennecke@riscy-ip.com>
19587         PR middle-end/66726
19588         * tree-ssa-phiopt.c (factor_out_conditional_conversion):
19589         Tune heuristic from PR71016 to allow MIN / MAX.
19591 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19593         * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
19594         parameterized name.
19595         (abs<mode>2): Use that name.  Simplify.
19597 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19599         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
19600         parameterized name.
19601         (neg<mode>2): Use that name.  Simplify.
19603 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19605         * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
19606         name.
19607         (abs<mode>2): Use that name.  Simplify.
19609 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19611         * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
19612         name.
19613         (neg<mode>2): Use that name.  Simplify.
19615 2019-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19617         * config/i386/i386.md ("isa" attribute): Add sse_noavx.
19618         ("enabled" attribute): Handle sse_noavx isa attribute.
19619         * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
19620         Use TARGET_SSE && SSE_REGNO_P in split condition.
19621         (*vec_dupv2sf): Ditto.
19623 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19625         * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
19626         name.
19627         (floatsi<mode>2): Use that name.  Simplify.
19629 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19631         * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
19632         parameterized name.
19633         (extenddf<mode>2_vsx): Make this a parameterized name.
19634         (extenddf<mode>2): Use those names.  Simplify.
19636 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19638         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
19639         name.
19640         (eh_return): Use that name.  Simplify.
19642 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19644         * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
19645         (doloop_end): Use that name.  Simplify.
19647 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19649         * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
19650         parameterized name.
19651         (indirect_jump): Use that name.  Simplify.
19653 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19655         * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
19656         parameterized name.
19657         (abs<mode>2): Use that name.  Simplify.
19659 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19661         * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
19662         parameterized name.
19663         (fix_trunc<mode>si2): Use that name.  Simplify.
19665 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19667         * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
19668         (allocate_stack): Use that name.  Simplify.
19670 2019-07-01  Martin Sebor  <msebor@redhat.com>
19672         PR middle-end/90923
19673         * hash-map.h (hash_map::put): On insertion invoke element ctor.
19674         (hash_map::get_or_insert): Same.  Reformat comment.
19675         * hash-set.h (hash_set::add): On insertion invoke element ctor.
19676         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
19677         * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
19678         * hash-table.h (hash_table::operator=): Prevent copy assignment.
19679          (hash_table::hash_table (const hash_table&)): Use copy ctor
19680          instead of assignment to copy elements.
19682 2019-07-01  Wilco Dijkstra  <wdijkstr@arm.com>
19683             John David Anglin  <danglin@gcc.gnu.org>
19685         PR target/90963
19686         * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
19687         using saved frame pointer.
19689 2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
19691         PR middle-end/64242
19692         * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
19693         Add frame clobber and schedule blockage.
19695 2019-07-01  Sandra Loosemore  <sandra@codesourcery.com>
19697         * doc/invoke.texi (Link Options): Further editorial changes to
19698         -flinker-output docs.
19700 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
19702         * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
19703         Load both operands of a PLUS into registers separately.
19705 2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
19707         * config/s390/vector.md: Fix shift count operand printing.
19709 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
19711         * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
19713 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
19715         * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
19716         Use recog_data to test for an output operand.
19718 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
19720         * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
19721         exclude any others that are disparaged or that are bound to need
19722         a reload or spill.
19723         (ira_get_dup_out_num): Expand comment.
19725 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
19727         * ira.c (ira_setup_alts): Use preprocess_constraints to get the
19728         constraint string for each operand/alternative combo.  Only handle
19729         '%' at the start of constraint strings, and look for it outside
19730         the main loop.
19732 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
19734         * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
19735         alternative_mask instead of HARD_REG_SET to represent a
19736         bitmask of alternatives.
19737         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
19738         * ira-conflicts.c (add_insn_allocno_copies): Likewise.
19740 2019-07-01  Martin Liska  <mliska@suse.cz>
19742         * edit-context.c (test_applying_fixits_unreadable_file): Do not
19743         use () for a constructor call.
19744         (test_applying_fixits_line_out_of_range): Likewise.
19745         * ggc-page.c (alloc_page): Use (void *) for %p printf format
19746         argument.
19747         (free_page): Likewise.
19749 2019-07-01  Vladislav Ivanishin  <vlad@ispras.ru>
19751         * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
19752         parameter names to match usage (no functional change).
19753         (GdbPrettyPrinters.add_printer_for_regex): Ditto.
19755 2019-07-01  Richard Biener  <rguenther@suse.de>
19757         * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
19758         pass parameter.
19759         (pass_fre::execute): Honor it.
19760         * passes.def: Adjust pass_fre invocations to allow iterating,
19761         add non-iterating pass_fre before late threading/dom.
19763 2019-07-01  Richard Biener  <rguenther@suse.de>
19765         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
19766         TARGET_MEM_REF handling to also handle address-taken ones.
19768 2019-07-01  Hongtao Liu  <hongtao.liu@intel.com>
19770         * doc/sourcebuild.texi (Effective-Target Keywords, Other
19771         hardware attributes): Document avx512vp2intersect.
19773 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19775         * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
19776         (abs<mode>2): New expander.
19777         * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
19778         Use CODE_FOR_ssse3_absv8qi2.
19779         (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
19780         (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
19782 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19784         * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
19785         to sse, sse_noavx and avx.  Update all uses.
19787 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
19789         * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
19790         (*mmx_<plusminus_insn><mode>3): Ditto.
19791         (*mmx_mulv4hi3"): Ditto.
19792         (*mmx_smulv4hi3_highpart): Ditto.
19793         (*mmx_umulv4hi3_highpart): Ditto.
19794         (*mmx_pmaddwd): Ditto.
19795         (*sse2_umulv1siv1di3): Ditto.
19796         (*mmx_<code>v4hi3): Ditto.
19797         (*mmx_<code>v8qi3): Ditto.
19798         (mmx_ashr<mode>3): Ditto.
19799         ("mmx_<shift_insn><mode>3): Ditto.
19800         (*mmx_eq<mode>3): Ditto.
19801         (mmx_gt<mode>3): Ditto.
19802         (mmx_andnot<mode>3): Ditto.
19803         (*mmx_<code><mode>3): Ditto.
19804         (*mmx_pinsrw): Ditto.
19805         (*mmx_pextrw): Ditto.
19806         (mmx_pshufw_1): Ditto.
19807         (*mmx_uavgv8qi3): Ditto.
19808         (*mmx_uavgv4hi3): Ditto.
19809         ("mmx_psadbw): Ditto.
19810         * config/i386/sse.md (sse_cvtps2pi): Ditto.
19811         (sse_cvttps2pi): Ditto.
19812         (ssse3_pmaddubsw): Ditto.
19813         (*ssse3_pmulhrswv4hi3): Ditto.
19814         (ssse3_psign<mode>3): Ditto.
19816 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19818         * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
19819         adjustment for bit-fields to all aggregate types.
19821 2019-06-28   Michael Meissner  <meissner@linux.ibm.com>
19823         * config/rs6000/predicates.md (pcrel_address): Use
19824         SYMBOL_REF_LOCAL_P to determine if a label is local.
19825         (pcrel_external_address): New predicate.
19826         (non_prefixed_mem_operand): Delete, predicate not used.
19827         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
19828         SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
19829         addressing.
19830         (SYMBOL_REF_PCREL_P): Likewise.
19832         PR target/91009
19833         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
19834         alternative.
19835         (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
19836         (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
19837         (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
19839 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
19841         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
19842         override on extra_headers.
19844 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
19846         * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
19847         * config/darwin-driver.c (darwin_default_min_version): Remove newline
19848         from warning.
19849         (darwin_driver_init): Likewise.
19851 2019-06-28  Jan Beulich  <jbeulich@suse.com>
19853         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19854         vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
19855         Eliminate redundant alternative.
19857 2019-06-28  Jan Beulich  <jbeulich@suse.com>
19859         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
19860         vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
19861         Use vector_operand.
19863 2019-06-28  Claudiu Zissulescu  <claziss@synopsys.com>
19865         * config/arc/arc.c (arc_rtx_costs): All short instructions are
19866         having a lower cost regardless of the speed option.
19868 2019-06-28  Jan Beulich  <jbeulich@suse.com>
19870         * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
19871         vector_operand plus, on both alternatives, "Bm" constraint.
19873 2019-06-28  Dennis Zhang  <dennis.zhang@arm.com>
19875         * config/arm/arm.md: Remove redundant constraints from
19876         define_expand but leave reload_inm and reload_outm patterns
19877         untouched since they need special constraints to work.
19878         * config/arm/arm-fixed.md: Remove redundant constraints from
19879         define_expand.
19880         * config/arm/iwmmxt.md: Likewise.
19881         * config/arm/neon.md: Likewise.
19882         * config/arm/sync.md: Likewise.
19883         * config/arm/thumb1.md: Likewise.
19884         * config/arm/vec-common.md: Likewise.
19886 2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
19888         * doc/install.texi: Document --disable-tm-clone-registry.
19890 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
19892         PR c++/91024
19893         * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
19894         statements.
19896         PR tree-optimization/91010
19897         * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
19898         return true.  Otherwise, don't call operand_equal_p if offset1 or
19899         offset2 is NULL and just return false.
19901 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
19903         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
19904         user-specified float mode choice for kernel mode code.
19906 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
19908         * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
19909         spec.
19911 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
19913         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
19914         use longcall for 64b code.
19916 2019-06-27  Aaron Sawdey  <acsawdey@linux.ibm.com>
19918         * builtins.c (get_memory_rtx): Fix comment.
19919         * optabs.def (movmem_optab): Change to cpymem_optab.
19920         * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
19921         (emit_block_move_hints): Change movmem to cpymem.
19922         * defaults.h: Change movmem to cpymem.
19923         * targhooks.c (get_move_ratio): Change movmem to cpymem.
19924         (default_use_by_pieces_infrastructure_p): Ditto.
19925         * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
19926         * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
19927         to cpymem.
19928         * config/aarch64/aarch64.h: Change movmem to cpymem.
19929         * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
19930         * config/alpha/alpha.h: Change movmem to cpymem in comment.
19931         * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
19932         movmem to cpymem.
19933         * config/arc/arc-protos.h: Change movmem to cpymem.
19934         * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
19935         * config/arc/arc.h: Change movmem to cpymem in comment.
19936         * config/arc/arc.md (movmemsi): Change movmem to cpymem.
19937         * config/arm/arm-protos.h: Change movmem to cpymem in names.
19938         * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
19939         gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
19940         * config/arm/arm.md (movmemqi): Change movmem to cpymem.
19941         * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
19942         * config/avr/avr-protos.h: Change movmem to cpymem.
19943         * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
19944         avr_out_movmem): Change movmem to cpymem.
19945         * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
19946         Change movmem to cpymem.
19947         * config/bfin/bfin-protos.h: Change movmem to cpymem.
19948         * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
19949         Change movmem to cpymem.
19950         * config/bfin/bfin.h: Change movmem to cpymem in comment.
19951         * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
19952         * config/c6x/c6x-protos.h: Change movmem to cpymem.
19953         * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
19954         * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
19955         * config/frv/frv.md (movmemsi): Change name to cpymemsi.
19956         * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
19957         * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
19958         * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
19959         expand_set_or_movmem_via_rep, expand_movmem_epilogue,
19960         expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
19961         expand_small_cpymem_or_setmem,
19962         expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
19963         expand_set_or_cpymem_constant_prologue,
19964         ix86_expand_set_or_cpymem): Change movmem to cpymem.
19965         * config/i386/i386-protos.h: Change movmem to cpymem.
19966         * config/i386/i386.h: Change movmem to cpymem in comment.
19967         * config/i386/i386.md (movmem<mode>): Change name to cpymem.
19968         (setmem<mode>): Change expansion function name.
19969         * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
19970         * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
19971         movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
19972         * config/m32c/m32c-protos.h: Change movmem to cpymem.
19973         * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
19974         * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
19975         * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
19976         to cpymem.
19977         * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
19978         * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
19979         * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
19980         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
19981         Change movmem to cpymem.
19982         * config/mips/mips.h: Change movmem to cpymem.
19983         * config/mips/mips.md (movmemsi): Change name to cpymemsi.
19984         * config/nds32/nds32-memory-manipulation.c
19985         (nds32_expand_movmemsi_loop_unknown_size,
19986         nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
19987         nds32_expand_movmemsi_unroll,
19988         nds32_expand_movmemsi): Change movmem to cpymem.
19989         * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
19990         * config/nds32/nds32-protos.h: Change movmem to cpymem.
19991         * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
19992         (pa_adjust_insn_length): Change call to compute_movmem_length.
19993         * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
19994         movmemdi, movmemdi_prereload,
19995         movmemdi_postreload): Change movmem to cpymem.
19996         * config/pdp11/pdp11.md (movmemhi, movmemhi1,
19997         movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
19998         * config/riscv/riscv.c: Change movmem to cpymem in comment.
19999         * config/riscv/riscv.h: Change movmem to cpymem.
20000         * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
20001         * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
20002         * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
20003         movmem to cpymem.
20004         * config/s390/s390-protos.h: Change movmem to cpymem.
20005         * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
20006         s390_expand_insv): Change movmem to cpymem.
20007         * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
20008         movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
20009         * config/sh/sh.md (movmemsi): Change name to cpymemsi.
20010         * config/sparc/sparc.h: Change movmem to cpymem in comment.
20011         * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
20012         for nonexistent function.
20013         * config/vax/vax.h: Change movmem to cpymem in comment.
20014         * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
20015         * config/visium/visium.h: Change movmem to cpymem in comment.
20016         * config/visium/visium.md (movmemsi): Change name to cpymemsi.
20017         * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
20018         * doc/md.texi: Change movmem to cpymem and update description to match.
20019         * doc/rtl.texi: Change movmem to cpymem.
20020         * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
20021         * doc/tm.texi: Regenerate.
20023 2019-06-27  Bill Schmidt  <wschmidt@linux.ibm.com>
20025         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
20026         -fvariable-expansion-in-unroller by default.
20027         * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
20028         default for Power.
20030 2019-06-27  David Edelsohn  <dje.gcc@gmail.com>
20032         Revert
20033         2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
20034         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
20036         * config.gcc(rs6000-*-*): Define target_gtfiles.
20038 2019-06-27  Jan Hubicka  <jh@suse.cz>
20040         * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
20041         (add_type_duplicate): When odr hash is not allocated, to nothing.
20042         (odr_based_tbaa_p): New function.
20043         (set_type_canonical_for_odr_type): New function.
20044         * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
20045         set_type_canonical_for_odr_type): New.
20046         * tree.c (gimple_canonical_types_compatible_p): ODR types with
20047         ODR based TBAA are not equivalent to non-ODR types.
20049 2019-06-27  Martin Liska  <mliska@suse.cz>
20051         PR tree-optimization/90974
20052         PR rtl-optimization/90975
20053         PR rtl-optimization/90976
20054         PR target/91016
20055         PR tree-optimization/91017
20056         * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
20057         unused tmp.
20058         * lra.c (lra_set_insn_recog_data): Remove a leftover from
20059         initial commit of IRA.
20060         * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
20061         of op0 and op1.
20062         * tree-vect-loop.c (vect_create_epilog_for_reduction):
20063         Remove unused mode1.
20064         * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
20065         to new_stmt_info.
20067 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
20069         PR target/90991
20070         * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
20071         instead of register_operand for operands[1], add m to its constraints
20072         if operands[2] uses "C" constraint.  Ensure in condition that if
20073         operands[2] is not 0, then operands[1] is not a MEM.  For last two
20074         alternatives, use unaligned loads instead of aligned if operands[1] is
20075         misaligned_operand.
20077 2019-06-27  Martin Liska  <mliska@suse.cz>
20079         * asan.c (asan_emit_allocas_unpoison): Remove obviously
20080         dead assignments.
20081         * bt-load.c (move_btr_def): Likewise.
20082         * builtins.c (expand_builtin_apply_args_1): Likewise.
20083         (expand_builtin_apply): Likewise.
20084         * cfgexpand.c (expand_asm_stmt): Likewise.
20085         (construct_init_block): Likewise.
20086         * cfghooks.c (verify_flow_info): Likewise.
20087         * cfgloopmanip.c (remove_path): Likewise.
20088         * cfgrtl.c (rtl_verify_bb_layout): Likewise.
20089         * cgraph.c (cgraph_node::set_pure_flag): Likewise.
20090         * combine.c (simplify_if_then_else): Likewise.
20091         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
20092         (choose_basereg): Likewise.
20093         (ix86_expand_prologue): Likewise.
20094         (ix86_preferred_output_reload_class): Likewise.
20095         * cselib.c (cselib_record_sets): Likewise.
20096         * df-scan.c (df_scan_alloc): Likewise.
20097         * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
20098         * early-remat.c (early_remat::record_equiv_candidates): Likewise.
20099         * emit-rtl.c (try_split): Likewise.
20100         * graphite-scop-detection.c (assign_parameter_index_in_region):
20101         Likewise.
20102         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
20103         * ira-color.c (setup_profitable_hard_regs): Likewise.
20104         * ira.c (rtx_moveable_p): Likewise.
20105         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
20106         * read-rtl.c (read_subst_mapping): Likewise.
20107         * regrename.c (scan_rtx): Likewise.
20108         * reorg.c (fill_slots_from_thread): Likewise.
20109         * tree-inline.c (tree_function_versioning): Likewise.
20110         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
20111         * tree-ssa-sink.c (statement_sink_location): Likewise.
20112         * tree-ssa-threadedge.c (thread_across_edge): Likewise.
20113         * tree-vect-loop.c (vect_get_loop_niters): Likewise.
20114         (vect_create_epilog_for_reduction): Likewise.
20115         * tree.c (build_nonstandard_integer_type): Likewise.
20117 2019-06-27  Richard Biener  <rguenther@suse.de>
20119         * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
20121 2019-06-27  Jun Ma  <JunMa@linux.alibaba.com>
20123         PR tree-optimization/89772
20124         * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
20125         out-of-bound accesses checking.
20127 2019-06-27  Martin Liska  <mliska@suse.cz>
20129         PR tree-optimization/91014
20130         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
20131         when LHS is NULL_TREE.
20133 2019-06-27  Martin Liska  <mliska@suse.cz>
20135         * symbol-summary.h (traverse): Pass
20136         argument a to the call of callback.
20137         (gt_ggc_mx): Mark arguments as unused.
20138         (gt_pch_nx): Likewise.
20140 2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>
20142         PR target/62147
20143         * loop-iv.c (find_simple_exit): Call finite_loop_p to update
20144         finiteness.
20146 2019-06-26  Jeff Law  <law@redhat.com>
20148         PR tree-optimization/90883
20149         * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
20150         (delete_dead_or_redundant_assignment): Likewise.
20152         PR tree-optimization/90883
20153         * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
20154         * tree-ssa-dse.c: Update various comments to distinguish between
20155         dead and redundant stores.
20156         (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
20157         (dse_optimize_redundant_stores): New function.
20158         (delete_dead_or_redundant_call): Renamed from delete_dead_call.
20159         Distinguish between dead and redundant calls in dump output.  All
20160         callers updated.
20161         (delete_dead_or_redundant_assignment): Similarly for assignments.
20162         (dse_optimize_stmt): Handle _CHK variants.  For statements which
20163         store 0 into multiple memory locations, try to prove a subsequent
20164         store is redundant.
20166 2019-06-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20168         PR target/89021
20169         * config/i386/i386.c (ix86_autovectorize_vector_sizes):
20170         Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
20172 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
20174         * config/rs6000/rs6000-internal.h (branch_island): New typedef.
20175         (branch_islands): New extern.
20176         * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
20177         * config/rs6000/rs6000.c: .. here.
20179 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
20181         * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
20182         (powerpc*-*-*) ... to here.
20184 2019-06-26  Jeff Law  <law@redhat.com>
20186         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
20187         memcpy, memmove and memset builtins.
20188         (maybe_trim_memstar_call): Likewise.
20190 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
20192         * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
20194 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
20196         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
20198 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
20200         * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
20201         declaration.
20202         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
20203         "static".
20204         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
20205         declaration.
20207 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
20209         * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
20211 2019-06-26  Richard Biener  <rguenther@suse.de>
20213         PR ipa/90982
20214         * tree-inline.c (remap_ssa_name): Copy SSA range info.
20216 2019-06-26  Richard Biener  <rguenther@suse.de>
20218         * lto-streamer.h (lto_bitmap_alloc): Remove.
20219         (lto_bitmap_free): Likewise.
20220         * lto-streamer.c (lto_bitmap_alloc): Remove.
20221         (lto_bitmap_free): Likewise.
20222         (lto_obstack): Likewise.
20223         (lto_obstack_initialized): Likewise.
20224         * lto-streamer-out.c (lto_output): Use own obstack for local
20225         bitmap, free it consistently.
20227 2019-06-26  Jakub Jelinek  <jakub@redhat.com>
20229         PR target/90991
20230         * config/i386/sse.md
20231         (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
20232         vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
20233         insns if operands[2] is misaligned_operand.
20235 2019-06-26  Li Jia He  <helijia@linux.ibm.com>
20237         * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
20238         TARGET_POWERPC64.
20239         * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
20240         to GPR.
20242 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
20244         * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
20246 2019-06-26  Martin Liska  <mliska@suse.cz>
20248         PR tree-optimization/90973
20249         * tree-vect-loop.c (vect_get_known_peeling_cost): Use
20250         epilogue_cost_vec instead of prologue_cost_vec for
20251         a epilogue cost.
20253 2019-06-26  Martin Liska  <mliska@suse.cz>
20255         * bb-reorder.c (connect_better_edge_p): Add missing else
20256         statement in the middle of if-else statements.
20258 2019-06-25  Hongtao Liu  <hongtao.liu@intel.com>
20259             H.J. Lu  <hongjiu.lu@intel.com>
20260             Olga Makhotina  <olga.makhotina@intel.com>
20262         * common/config/i386/i386-common.c
20263         (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
20264         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
20265         (OPTION_MASK_ISA2_AVX512F_UNSET): Add
20266         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
20267         (ix86_handle_option): Handle -mavx512vp2intersect.
20268         * config/i386/avx512vp2intersectintrin.h: New.
20269         * config/i386/avx512vp2intersectvlintrin.h: New.
20270         * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
20271         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
20272         AVX512VP2INTERSECT.
20273         * config/i386/i386-builtin-types.def: Add new types.
20274         * config/i386/i386-builtin.def: Add new builtins.
20275         * config/i386/i386-builtins.c: (enum processor_features): Add
20276         F_AVX512VP2INTERSECT.
20277         (static const _isa_names_table isa_names_table): Ditto.
20278         * config/i386/i386-c.c (ix86_target_macros_internal): Define
20279         __AVX512VP2INTERSECT__.
20280         * config/i386/i386-expand.c (ix86_expand_builtin): Expand
20281         IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
20282         IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
20283         IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
20284         * config/i386/i386-modes.def (P2QI, P2HI): New modes.
20285         * config/i386/i386-options.c (ix86_target_string): Add
20286         -mavx512vp2intersect.
20287         (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
20288         * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
20289         P2HImode and P2QImode.
20290         (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
20291         number for P2QImode and P2HImode.
20292         (ix86_regmode_natural_size): New function.
20293         * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
20294         TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
20295         REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
20296         * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
20297         * config/i386/i386.opt: Add -mavx512vp2intersect.
20298         * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
20299         avx512vp2intersectvlintrin.h.
20300         * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
20301         (define_mode_iterator VI48_AVX512VP2VL): New.
20302         (avx512vp2intersect_2intersect<mode>,
20303         avx512vp2intersect_2intersectv16si): New define_insn patterns.
20304         * config.gcc: Add avx512vp2intersectvlintrin.h and
20305         avx512vp2intersectintrin.h to extra_headers.
20306         * doc/invoke.texi: Document -mavx512vp2intersect.
20308 2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
20310         * config/rs6000/darwin.h (ENDFILE_SPEC): New.
20312 2019-06-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
20314         * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
20315         savres_routine_syms, savres_routine_name, morestack_ref,
20316         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
20317         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
20318         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
20319         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
20320         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
20321         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
20322         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
20323         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
20324         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
20325         get_stack_clash_protection_probe_interval,
20326         get_stack_clash_protection_guard_size,
20327         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
20328         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
20329         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
20330         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
20331         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
20332         gen_frame_mem_offset, rs6000_savres_routine_name,
20333         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
20334         ptr_regno_for_savres, rs6000_emit_savres_rtx,
20335         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
20336         rs6000_global_entry_point_prologue_needed_p,
20337         rs6000_get_separate_components, rs6000_components_for_bb,
20338         rs6000_disqualify_components, rs6000_emit_prologue_components,
20339         rs6000_emit_epilogue_components, rs6000_set_handled_components,
20340         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
20341         rs6000_output_savres_externs, rs6000_output_function_prologue,
20342         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
20343         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
20344         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
20345         rs6000_output_function_epilogue, gen_add3_const,
20346         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
20347         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
20348         to rs6000-logue.c.
20349         (machine_function): Moved to rs6000.h.
20350         (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
20351         rs6000-internal.h.
20352         * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
20353         savres_routine_syms, savres_routine_name, morestack_ref,
20354         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
20355         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
20356         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
20357         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
20358         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
20359         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
20360         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
20361         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
20362         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
20363         get_stack_clash_protection_probe_interval,
20364         get_stack_clash_protection_guard_size,
20365         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
20366         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
20367         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
20368         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
20369         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
20370         gen_frame_mem_offset, rs6000_savres_routine_name,
20371         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
20372         ptr_regno_for_savres, rs6000_emit_savres_rtx,
20373         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
20374         rs6000_global_entry_point_prologue_needed_p,
20375         rs6000_get_separate_components, rs6000_components_for_bb,
20376         rs6000_disqualify_components, rs6000_emit_prologue_components,
20377         rs6000_emit_epilogue_components, rs6000_set_handled_components,
20378         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
20379         rs6000_output_savres_externs, rs6000_output_function_prologue,
20380         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
20381         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
20382         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
20383         rs6000_output_function_epilogue, gen_add3_const,
20384         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
20385         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
20386         to here from rs6000.c.
20387         * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
20388         * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
20389         quad_address_offset_p) Moved to here from rs6000.c.
20390         * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
20391         * config/config.gcc: Add new source file rs6000-logue.c to garbage
20392         collector.
20394 2019-06-25  Martin Liska  <mliska@suse.cz>
20396         * hash-table.c (hashtab_chk_error): Move here from ...
20397         * hash-table.h (hashtab_chk_error): ... here.
20399 2019-06-25  Martin Liska  <mliska@suse.cz>
20401         PR tree-optimization/90978
20402         * df-scan.c (df_update_entry_block_defs): Remove dead else
20403         branch.
20404         (df_update_exit_block_uses): Likewise.
20406 2019-06-25  Kwok Cheung Yeung  <kcy@codesourcery.com>
20407             Andrew Stubbs  <ams@codesourcery.com>
20409         * config.gcc (thread_file): Set to gcn for AMD GCN.
20410         * config/gcn/gcn.c (gcn_emutls_var_init): New function.
20411         (TARGET_EMUTLS_VAR_INIT): New hook.
20413 2019-06-25  Martin Jambor  <mjambor@suse.cz>
20415         PR ipa/90939
20416         * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
20418 2019-06-25  Richard Biener  <rguenther@suse.de>
20420         PR tree-optimization/90930
20421         * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
20422         into parallel form in the last pass instance.
20424 2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>
20426         * config/arc/arc.c (arc_symbol_binds_local_p): New function.
20427         (arc_legitimize_pic_address): Simplify and cleanup the function.
20428         (SYMBOLIC_CONST): Remove.
20429         (prepare_pic_move): Likewise.
20430         (prepare_move_operands): Handle complex mov cases here.
20431         (arc_legitimize_address_0): Remove call to
20432         arc_legitimize_pic_address.
20433         (arc_legitimize_address): Remove call to
20434         arc_legitimize_tls_address.
20435         * config/arc/arc.md (movqi_insn): Allow Cm3 match.
20436         (movhi_insn): Likewise.
20438 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
20440         * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
20441         PTRDIFF_TYPE.
20442         * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
20443         format of "__intN" types for UINTMAX_TYPE.
20444         * stor-layout.c (initialize_sizetypes): Accept "__intN__"
20445         format of "__intN" types for SIZETYPE.
20446         * tree.c (build_common_tree_nodes): Accept "__intN__"
20447         format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
20448         * doc/invoke.texi: Document that __intN__ disables pedantic
20449         warnings.
20451 2019-06-25  Jan Hubicka  <jh@suse.cz>
20453         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
20454         base2_alias_set is non-zero before doing TBAA based disambiguation.
20456 2019-06-25  Martin Liska  <mliska@suse.cz>
20458         PR tree-optimization/90973
20459         * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
20460         of prologue and epilogue.
20462 2019-06-24  Jan Hubicka  <jh@suse.cz>
20464         * ipa-utils.h (type_with_linkage_p): Verify that type is
20465         CXX_ODR_P.
20466         (odr_type_p): Remove extra return.
20467         * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
20468         hash STRING_FLAG only for arrays and integers.
20469         * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
20470         Update analogously.
20471         * tree-streamer-out.c (pack_ts_type_common_value_fields):
20472         Likewise.
20473         * print-tree.c (print_node): Print cxx-odr-p
20474         and string-flag.
20475         * tree.c (need_assembler_name_p): Also check that type
20476         is CXX_ODR_TYPE_P
20477         (verify_type_variant): Update verification of SRING_FLAG;
20478         also check CXX_ODR_P.
20479         * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
20480         (TYPE_STRING_FLAG): Use it.
20481         (TYPE_CXX_ODR_P): New macro.
20482         * dwarf2out.c (gen_array_type_die): First check that type
20483         is an array and then test string flag.
20485 2019-06-24  Richard Biener  <rguenther@suse.de>
20487         PR tree-optimization/90972
20488         * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
20489         in common code, dealing with STRING_CST properly.
20491 2019-06-24  Richard Biener  <rguenther@suse.de>
20493         PR tree-optimization/90930
20494         PR tree-optimization/90316
20495         * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
20496         decrement of limit.
20498 2019-06-24  Martin Sebor  <msebor@redhat.com>
20500         * tree-pretty-print.h: Remove unnecessary punctuation characters
20501         from a diagnostic.
20502         * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
20504 2019-06-24  Jonathan Wakely  <jwakely@redhat.com>
20506         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
20507         (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
20508         (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
20510 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
20512         * config/rs6000/darwin.h: Handle GCC target pragma.
20514 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
20516         * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
20518 2019-06-22  Jeff Law  <law@redhat.com>
20520         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20522 2019-06-22  Jan Hubicka  <jh@suse.cz>
20524         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
20525         give up on bitfields; continue searching for different refs
20526         appearing later.
20528 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
20530         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
20531         even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
20532         containing the offset as possible simd lane access.  Look through
20533         widening conversion.  Move the
20534         TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
20536 2019-06-21  Richard Biener  <rguenther@suse.de>
20538         PR tree-optimization/90930
20539         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
20540         flag on new stmts to avoid re-processing them.
20542 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
20544         PR c++/90875 - added -Wswitch-outside-range option
20545         * doc/invoke.texi (Wswitch-outside-range): Document.
20547 2019-06-21  Jeff Law  <law@redhat.com>
20549         PR tree-optimization/90949
20550         * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
20551         * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
20553 2019-06-21  Richard Biener  <rguenther@suse.de>
20555         PR debug/90914
20556         * dwarf2out.c (prune_unused_types_walk): Always consider
20557         function-local extern declarations as used.
20559 2019-06-21  Richard Biener  <rguenther@suse.de>
20561         PR tree-optimization/90913
20562         * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
20563         the scalar variant of if-conversion versioning.
20565 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
20567         * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
20568         create another "omp scan inscan exclusive" array if
20569         !ctx->scan_inclusive.
20570         (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
20571         (lower_omp_scan): Likewise.
20572         * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
20573         2-bit bitfield for simd_lane_access_p member.
20574         * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
20575         aux == (void *)-4 as simd lane access.
20576         * tree-vect-stmts.c (check_scan_store): Handle exclusive scan.  Update
20577         comment with permutations to show the canonical permutation order.
20578         (vectorizable_scan_store): Handle exclusive scan.
20579         (vectorizable_store): Call vectorizable_scan_store even for
20580         STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
20582         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
20583         "omp simd array" arrays with one byte elements.
20585 2019-06-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20587         * config/alpha/alpha.md (@unaligned_store<mode>):
20588         Rename from unaligned_store<mode>.
20589         (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
20590         * config/alpha/sync.md (@load_locked_<mode>): Rename
20591         from load_locked_<mode>.
20592         (@store_conditional_<mode>): Rename from store_conditional_<mode>.
20593         (@atomic_compare_and_swap<mode>_1): Rename
20594         from atomic_compare_and_swap<mode>_1.
20595         (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
20596         * config/alpha/alpha.c (alpha_expand_mov_nobwx):
20597         Use gen_reload_in_aligned and gen_unaligned_store.
20598         (emit_load_locked): Remove.
20599         (emit_store_conditional): Ditto.
20600         (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
20601         (alpha_split_compare_and_swap): Ditto.
20602         (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
20603         (alpha_split_compare_and_swap_12): Use gen_load_locked
20604         and gen_store_conditional.
20605         (alpha_split_atomic_exchange): Ditto.
20606         (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
20607         (alpha_split_atomic_exchange_12): Use gen_load_locked
20608         and gen_store_conditional.
20610 2019-06-20  Richard Earnshaw  <rearnsha@arm.com>
20612         * config/aarch64/aarch64-errata.h: New file.
20613         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
20614         (CA53_ERR_843419_SPEC): Delete.
20615         (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
20616         * config/aarch64/aarch64-linux.h: Likewise.
20617         * config/aarch64/aarch64-netbsd.h: Likewise.
20618         * config/aarch64/aarch64-freebsd.h: Likewise.
20620 2019-06-20  Marek Polacek  <polacek@redhat.com>
20622         * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
20624 2019-06-20  Michael Meissner  <meissner@linux.ibm.com>
20626         * config/rs6000/rs6000.md (isa attribute): Add support for
20627         for a future processor.
20629 2019-06-20  H.J. Lu  <hongjiu.lu@intel.com>
20631         PR target/54855
20632         * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
20633         standard scalar operation pattern for V2DF.
20634         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
20635         (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
20636         (*ieee_<ieee_maxmin><mode>3): Likewise.
20637         (vec_setv2df_0): Likewise.
20639 2019-06-20  Jan Hubicka  <jh@suse.cz>
20641         * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
20642         parameter; it has no use in gimple memory model.
20643         (indirect_ref_may_alias_decl_p): Update.
20645 2019-06-20  Martin Liska  <mliska@suse.cz>
20647         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
20648         to 10.
20650 2019-06-20  Jakub Jelinek  <jakub@redhat.com>
20652         * tree-vect-stmts.c (enum scan_store_kind): New type.
20653         (scan_store_can_perm_p): Change last argument from int * to
20654         vec<enum scan_store_kind> *, record precisely which permutations
20655         need whole vector left shift or that plus VEC_COND_EXPR.
20656         (vectorizable_scan_store): Adjust caller, use whole vector left shift
20657         and additional VEC_COND_EXPR only for those iterations that need it.
20659 2019-06-20  Alexandre Oliva  <oliva@adacore.com>
20661         * config.gcc: Fix ARM --with-fpu checking and error message.
20663 2019-06-19  Marek Polacek  <polacek@redhat.com>
20665         PR c++/60364 - noreturn after first decl not diagnosed.
20666         * attribs.c (get_attribute_namespace): No longer static.
20667         (decl_attributes): Avoid shadowing.  Preserve the C++11 form for C++11
20668         attributes.
20669         (attr_noreturn_exclusions): Make it extern.
20670         * attribs.h (get_attribute_namespace): Declare.
20671         * tree-inline.c (function_attribute_inlinable_p): Use
20672         get_attribute_name.
20674 2019-06-19  Martin Sebor  <msebor@redhat.com>
20676         PR tree-optimization/90626
20677         * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
20679         PR tree-optimization/90626
20680         * tree-ssa-strlen.c (strxcmp_unequal): New function.
20681         (handle_builtin_string_cmp): Call it.
20683 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
20685         * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
20686         and DARWIN_NOPIE_SPEC.
20687         (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
20688         (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
20689         (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
20690         (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
20691         (DARWIN_EXPORT_DYNAMIC): Delete.
20692         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
20693         and pie options processing to  darwin.h.
20694         * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
20696 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
20698         * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
20699         in computing the number of options to be moved.
20701 2019-06-19  Maya Rashish  <coypu@sdf.org>
20703         *  config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
20704         (CLEAR_INSN_CACHE) Use it.
20706 2019-06-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20708         * config/i386/i386.md (cmpstrnsi): Remove dead code.
20710 2019-06-19  Wilco Dijkstra  <wdijkstr@arm.com>
20712         PR middle-end/84521
20713         * builtins.c (expand_builtin_setjmp_setup): Save
20714         hard_frame_pointer_rtx.
20715         (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
20716         restore fp.
20717         * function.c (expand_function_start): Save hard_frame_pointer_rtx for
20718         non-local goto.
20719         * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
20720         elimination code.
20721         (remove_reg_equal_offset_note): Remove unused function.
20722         * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
20723         code.
20724         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20725         (arc_builtin_setjmp_frame_value): Remove function.
20726         * config/avr/avr.c  (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20727         (avr_builtin_setjmp_frame_value): Remove function.
20728         * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20729         (ix86_builtin_setjmp_frame_value): Remove function.
20730         * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
20731         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20732         (sparc_builtin_setjmp_frame_value): Remove function.
20733         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
20734         (vax_builtin_setjmp_frame_value): Remove function.
20735         * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
20736         pointer if has_nonlocal_label.
20738 2019-06-19  Jakub Jelinek  <jakub@redhat.com>
20740         * doc/md.texi: Document vec_shl_<mode> pattern.
20741         * optabs.def (vec_shl_optab): New optab.
20742         * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
20743         argument, if == vec_shl_optab, check for left whole vector shift
20744         pattern rather than right shift.
20745         (expand_vec_perm_const): Add vec_shl_optab support.
20746         * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
20747         in the comment.
20748         * tree-vect-generic.c (lower_vec_perm): Support permutations which
20749         can be handled by vec_shl_optab.
20750         * tree-vect-stmts.c (scan_store_can_perm_p): New function.
20751         (check_scan_store): Use it.
20752         (vectorizable_scan_store): If target can't do normal permutations,
20753         try to use whole vector left shifts and if needed a VEC_COND_EXPR
20754         after it.
20755         * config/i386/sse.md (vec_shl_<mode>): New expander.
20757         * omp-low.c (lower_rec_input_clauses): Handle references properly
20758         in inscan clauses.
20759         (lower_omp_scan): Likewise.
20761 2019-06-19  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
20763         * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
20764         mem_mode is BLKmode.
20766 2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
20768         PR target/90922
20769         * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
20770         pointer adjustment for the case of no callee-saved registers and
20771         stack frame bigger than 128 bytes.
20773 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
20775         PR middle-end/90862
20776         * omp-low.c (check_omp_nesting_restrictions): Handle
20777         GF_OMP_TARGET_KIND_OACC_DECLARE.
20779 2019-06-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20781         * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
20782         (@add<mode>3_carry): Rename from add<mode>3_carry.
20783         (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
20784         (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
20785         (@copysign<mode>3_const): Rename from copysign<mode>3_const.
20786         (@copysign<mode>3_var): Rename from copysign<mode>3_var.
20787         (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
20788         (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
20789         (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
20790         (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
20791         (cmpstrnsi): Use gen_cmp_1.
20792         (lwp_slwpcb): Use gen_lwp_slwpcb_1.
20793         (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
20794         (@umonitor_<mode>): Rename from umonitor_<mode>.
20795         * config/i386/i386-expand.c (ix86_expand_copysign):
20796         Use gen_copysign3_const and gen_copysign3_var.
20797         (ix86_expand_xorsign): Use gen_xorsign3_1.
20798         (ix86_expand_branch): Use gen_sub3_carry_ccc,
20799         gen_sub3_carry_ccgz and gen_cmp1.
20800         (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
20801         (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
20802         (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
20803         (ix86_split_lshr): Ditto.
20804         (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
20806 2019-06-18  Jason Merrill  <jason@redhat.com>
20808         * tree.c (build_constructor): Add MEM_STAT_DECL.
20810 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20812         * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
20813         * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
20814         (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
20815         (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
20816         (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
20817         (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
20818         (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
20819         Use CC_NZC instead of CC.
20820         * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
20821         * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
20822         (aarch64_print_operand): Handle E_CC_NZCmode.
20823         (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
20824         of gen_set_clobber_cc.
20826 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20828         * config/aarch64/aarch64-sve.md: Tabify file.
20830 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20832         * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
20833         * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
20834         * config/aarch64/aarch64-sve.md: Use it.
20836 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20838         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
20839         * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
20840         (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
20841         (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
20842         (aarch64_expand_sve_vec_cmp_int): Use it.
20843         (aarch64_expand_sve_vec_cmp_float): Likewise.
20844         * config/aarch64/aarch64-sve.md: Likewise throughout.
20846 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20847             Kugan Vivekanandarajah  <kuganv@linaro.org>
20849         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
20850         (*cond_<optab><mode>_z): Fold into...
20851         (*cond_<optab><mode>_any): ...here.  Also handle cases in which
20852         operand 4 can be tied to operand 0 (either inherently or via RA).
20854 2019-06-18  Richard Biener  <rguenther@suse.de>
20856         PR debug/90900
20857         * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
20858         as if optimized away.
20860 2019-06-18  Tom de Vries  <tdevries@suse.de>
20862         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
20863         * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
20864         * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
20865         Rename to ...
20866         (define_insn "@set_softstack_<mode>"): ... this.
20867         (define_insn "omp_simt_enter_<mode>"): Rename to ...
20868         (define_insn "@omp_simt_enter_<mode>"): ... this.
20869         (define_insn "omp_simt_exit_<mode>"): Rename to ...
20870         (define_insn "@omp_simt_exit_<mode>"): ... this.
20872 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
20874         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
20875         vf parameter.  Restore the previous iv step of nscalars_step,
20876         but give it iv_type rather than compare_type.  Tweak code order
20877         to match the comments.
20878         (vect_set_loop_condition_masked): Update accordingly.
20879         * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
20880         for iv_precision.  Tweak comment formatting.
20882 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
20884         * config/darwin.c: Strip trailing whitespace.
20886 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
20888         * config/darwin.c (darwin_emit_unwind_label): New default to false.
20889         (darwin_override_options): Set darwin_emit_unwind_label as needed.
20891 2019-06-18  Martin Jambor  <mjambor@suse.cz>
20893         PR ipa/90889
20894         * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
20895         caller does not have flag_ipa_cp set.
20897 2019-06-18  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
20899         * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
20900         from "*fold_left_plus_<mode>", updated operands order.
20901         * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
20902         * internal-fn.c (mask_fold_left_direct): New define.
20903         (expand_mask_fold_left_optab_fn): Likewise.
20904         (direct_mask_fold_left_optab_supported_p): Likewise.
20905         * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
20906         * optabs.def (mask_fold_left_plus_optab): New optab.
20907         * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
20908         masked internal_fn for a reduction ifn.
20909         (vectorize_fold_left_reduction): Add support for masking reductions.
20911 2019-06-18  Kewen Lin  <linkw@gcc.gnu.org>
20913         PR middle-end/80791
20914         * target.def (predict_doloop_p): New hook.
20915         * targhooks.h (default_predict_doloop_p): New declaration.
20916         * targhooks.c (default_predict_doloop_p): New function.
20917         * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
20918         * doc/tm.texi: Regenerate.
20919         * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
20920         (TARGET_PREDICT_DOLOOP_P): New macro.
20921         * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
20923 2019-06-17  Jakub Jelinek  <jakub@redhat.com>
20925         * omp-low.c (struct omp_context): Add scan_inclusive field.
20926         (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
20927         if inclusive scan.
20928         (struct omplow_simd_context): Add lastlane member.
20929         (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
20930         reductions.  Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
20931         1 or 2 argument.
20932         (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
20933         (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
20934         (lower_omp_scan): New function.
20935         (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
20936         * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
20937         check 3rd argument if present rather than 2nd.
20938         * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
20939         (struct _stmt_vec_info): Change simd_lane_access_p from bool into
20940         2-bit bitfield.
20941         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
20942         scan_map.  For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
20943         than 2nd.
20944         (_loop_vec_info::~_loop_vec_info): Delete scan_map.
20945         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
20946         different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
20947         init.
20948         (vect_find_stmt_data_reference): Encode in ->aux the 2nd
20949         IFN_GOMP_SIMD_LANE argument.
20950         (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
20951         encoded ->aux value.
20952         * tree-vect-stmts.c: Include attribs.h.
20953         (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
20954         (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
20955         functions.
20956         (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
20957         (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
20959 2019-06-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
20961         PR target/62055
20962         * config/i386/i386.md (*nabstf2_1): New insn pattern.
20963         (*nabs<mode>2_1): Ditto.
20964         (nabs sse-reg splitter): New splitter.
20965         * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
20967 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
20969         PR bootstrap/90873.
20970         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
20971         TMR index check.
20973 2019-06-17  Tom de Vries  <tdevries@suse.de>
20975         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
20976         * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
20977         * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
20978         ...
20979         (define_insn "set_softstack_<mode>"): ... this.  Use P iterator on
20980         match_operand 0.
20981         (define_insn "omp_simt_enter_insn"): Rename to ...
20982         (define_insn "omp_simt_enter_<mode>"): ... this.  Use P iterator on
20983         match_operand 0, 1 and 2, as well as the unspec_volatile result.
20984         (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
20985         gen_omp_simt_enter_si.
20986         (define_expand "omp_simt_exit"): New.
20987         (define_insn "omp_simt_exit"): Rename to ...
20988         (define_insn "omp_simt_exit_<mode>"): ... this.  Use P iterator on
20989         match_operand 0.
20991 2019-06-17  Matthew Green  <mrg@eterna.com.au>
20992             Maya Rashish  <coypu@sdf.org>
20994         * config.gcc (aarch64*-*-netbsd*): New target.
20995         * config/aarch64/aarch64-netbsd.h: New file.
20996         * config/aarch64/t-aarch64-netbsd: Likewise.
20998 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
21000         * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
21001         the access path from base to first VIEW_CONVERT_EXPR or
21002         BIT_FIELD_REF.
21004 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
21006         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
21007         access path on BIT_FIELD_REFs.
21009 2019-06-17  Martin Liska  <mliska@suse.cz>
21011         PR ipa/90874
21012         * ipa-utils.h (odr_type_p): Remove dead code.
21014 2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21016         * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
21017         alternative Solaris 11.4 format.
21018         * configure: Regenerate.
21020 2019-06-17  Tom de Vries  <tdevries@suse.de>
21022         * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
21023         (define_insn "call_insn_<mode>"): ... this.  Use P iterator on
21024         match_operand 0.
21025         (define_insn "call_value_insn"): Rename to ...
21026         (define_insn "call_value_insn_<mode>"): this.  Use P iterator on
21027         match_operand 0.
21028         (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
21029         DI.
21031 2019-06-16  John David Anglin  <danglin@gcc.gnu.org>
21033         PR middle-end/64242
21034         * config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
21035         frame clobbers and schedule block.
21036         (builtin_longjmp): Likewise.
21038 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
21040         * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
21041         describe how to perform MSPABI compliant 64-bit shift.
21042         * config/msp430/msp430.md (ashldi3): New define_expand.
21043         (ashrdi3): New define_expand.
21044         (lshrdi3): New define_expand.
21046 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
21048         * doc/sourcebuild.texi: Document new effective target keyword
21049         longlong64.
21051 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
21053         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
21054         indirect_refs_may_alias_p): Revert accidental commits.
21056         * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
21057         at the end of structures.
21059 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
21061         * config/darwin.c (machopic_indirect_call_target): Use renamed
21062         darwin_picsymbol_stubs to decide on output.
21063         (darwin_override_options): Handle darwin_picsymbol_stubs.
21064         * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
21065         (LD64_VERSION): Revise default.
21066         * config/darwin.opt: (mpic-symbol-stubs): New option.
21067         (darwin_picsymbol_stubs): New variable.
21068         * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
21069         rename to TARGET_MACHO_PICSYM_STUBS.
21070         * config/i386/i386.c (output_pic_addr_const): Likewise.
21071         * config/i386/i386.h Likewise.
21072         * config/rs6000/darwin.h: Likewise.
21073         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
21074         darwin_picsymbol_stubs.
21076 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
21078         * config/darwin.opt (prebind, noprebind, seglinkedit,
21079         noseglinkedit): Add RejectNegative.
21081 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
21083         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
21084         in my previous patch.
21086 2019-06-16  Tom de Vries  <tdevries@suse.de>
21088         PR tree-optimization/89376
21089         * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
21091 2019-06-15  Maya Rashish  <coypu@sdf.org>
21093         * doc/invoke.texi (Spec Files): Update location of the
21094         Fortran spec file.
21096 2019-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
21098         * doc/extend.texi (Common Function Attributes): Clarify
21099         no_sanitize.  Fix grammar.
21101 2019-06-15  Jan Hubicka  <hubicka@ucw.cz>
21103         * tree-ssa-alias.c (alias_stats): Add
21104         nonoverlapping_component_refs_p_may_alias,
21105         nonoverlapping_component_refs_p_no_alias,
21106         nonoverlapping_component_refs_of_decl_p_may_alias,
21107         nonoverlapping_component_refs_of_decl_p_no_alias.
21108         (dump_alias_stats): Dump them.
21109         (nonoverlapping_component_refs_of_decl_p): Add stats.
21110         (nonoverlapping_component_refs_p): Add stats; do not stop on first
21111         ARRAY_REF.
21113 2019-06-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21115         * config/i386/i386.md (and<mode>3): Generate zero-extends for
21116         TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
21117         only.
21118         (*anddi3_doubleword): Split before reload. Merge with
21119         anddi->zext pre-reload splitter.
21120         (*andndi3_doubleword): Split before reload.
21121         (*<code>di3_doubleword): Ditto.
21122         (*one_cmpldi2_doubleword): Ditto.
21124 2019-06-15  Jakub Jelinek  <jakub@redhat.com>
21126         PR middle-end/90779
21127         * gimplify.c: Include omp-offload.h and context.h.
21128         (gimplify_bind_expr): Add "omp declare target" attributes
21129         to static block scope variables inside of target region or target
21130         functions.
21132 2019-06-15  Tom de Vries  <tdevries@suse.de>
21134         PR tree-optimization/90009
21135         * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
21136         Return NULL if bb contains IFN_UNIQUE.
21138 2019-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
21140         * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
21141         (un): New define_mode_attr.
21142         (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
21143         (isel_<un>signed_<GPR:mode>): ... this.  New define_insn.
21144         (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
21145         merge into ...
21146         (isel_reversed_<un>signed_<GPR:mode>): ... this.  New define_insn.
21148 2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
21150         * config/darwin.opt: Add RejectNegative where needed, reorder
21151         and add minimal functional descriptions.
21153 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21155         PR rtl-optimization/90765
21156         * calls.c (update_stack_alignment_for_call): New function.
21157         (expand_call): Call update_stack_alignment_for_call when
21158         outgoing parameter is passed in the stack.
21159         (emit_library_call_value_1): Likewise.
21160         * function.c (locate_and_pad_parm): Don't update
21161         stack_alignment_needed and preferred_stack_boundary.
21163 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21165         PR target/90877
21166         * config/i386/i386-features.c
21167         (dimode_scalar_chain::compute_convert_gain): Replace
21168         mmxsse_to_integer with sse_to_integer.
21169         * config/i386/i386.c (ix86_register_move_cost): Verify that
21170         moves between MMX and non-MMX units require secondary memory.
21171         Correct costs of moves between SSE and integer units.
21172         * config/i386/i386.h (processor_costs): Rename cost of moving
21173         SSE register to integer to sse_to_integer.  Rename cost of
21175 2019-06-14  Matt Thomas  <matt@3am-software.com>
21176             Matthew Green  <mrg@eterna.com.au>
21177             Nick Hudson  <skrll@netbsd.org>
21178             Maya Rashish  <coypu@sdf.org>
21179             Richard Earnshaw  <rearnsha@arm.com>
21181         * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
21182         * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
21183         * config/arm/netbsd-eabi.h: New file.
21184         * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
21185         redefining.
21186         (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
21187         * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
21188         (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
21189         (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
21191 2019-06-14  Richard Biener  <rguenther@suse.de>
21193         * tree-loop-distribution.c (classify_partition): Return
21194         whether a reduction appeared in all partitions and do not
21195         stop builtin detection because of this.
21196         (distribute_loop): Sort a non-builtin partition last if
21197         there's a reduction in all partitions and make sure the
21198         partition prevailing as last is not a builtin.
21200 2019-06-14  Feng Xue  <fxue@os.amperecomputing.com>
21202         PR ipa/90401
21203         * ipa-prop.c (add_to_agg_contents_list): New function.
21204         (clobber_by_agg_contents_list_p): Likewise.
21205         (extract_mem_content): Likewise.
21206         (get_place_in_agg_contents_list): Delete.
21207         (determine_known_aggregate_parts): Renamed from
21208         determine_locally_known_aggregate_parts.  New parameter
21209         aa_walk_budget_p.
21211 2019-06-13  Martin Sebor  <msebor@redhat.com>
21213         PR tree-optimization/90662
21214         * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
21215         to the same type.
21217 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
21219         PR bootstrap/90873
21220         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
21221         dbase is not TARGET_MEM_REF.
21223 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21225         * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
21226         Update all uses.
21227         (and<mode>3): Use gen_extend_insn instead of indirect functions.
21228         Do not generate DImode extends for 32bit targets.
21229         (and->zext post-reload splitter): Use gen_extend_insn
21230         instead of indirect functions.
21231         (anddi->zext pre-reload splitter): New.
21232         (*zext<mode>_doubleword_and): Remove.
21233         (*zext<mode>_doubleword): Ditto.
21234         (*zextsi_doubleword): Dittto.
21236 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21238         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
21239         Use gen_sub3_insn instead of indirect function.
21240         (ix86_expand_ashl_const): Use gen_add2_insn instead of
21241         indirect function.
21242         (ix86_adjust_counter): Ditto.
21244 2019-06-13  Jiufu Guo  <guojiufu@linux.ibm.com>
21245             Lijia He  <helijia@linux.ibm.com>
21247         PR tree-optimization/77820
21248         * tree-ssa-threadedge.c
21249         (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
21250         function.
21251         (thread_across_edge): Add call to
21252         edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
21254 2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
21256         * config/darwin-driver.c (validate_macosx_version_min): New.
21257         (darwin_default_min_version): Cleanup and validate supplied version.
21258         (darwin_driver_init): Likewise and push cleaned version into opts.
21260 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
21262         PR tree-optimization/90869
21263         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
21264         converts in MEM_REF referencing decl rather than view converts
21265         from decl type to MEM_REF type.
21267 2019-06-13  Richard Biener  <rguenther@suse.de>
21269         PR tree-optimization/90856
21270         * tree-sra.c (build_ref_for_model): Only use
21271         build_reconstructed_reference when address-spaces are the same.
21273 2019-06-13  Jakub Jelinek  <jakub@redhat.com>
21275         * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
21276         wrap ei variable name in the declaration in ()s.
21277         (nvptx_single): Actually use mode_label variable.  Formatting fix.
21279 2019-06-13  Richard Biener  <rguenther@suse.de>
21281         * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
21282         * tree-vectorizer.c (vect_loop_vectorized_call): Export and
21283         also return the condition stmt.
21284         * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
21285         loop we can version and version that, reusing the loop version
21286         created by if-conversion instead of versioning again.
21288 2019-06-13  Aldy Hernandez  <aldyh@redhat.com>
21290         * gimple-loop-versioning.cc (prune_loop_conditions): Use
21291         may_contain_p.
21292         * tree-vrp (value_range_base::may_contain_p): Call into
21293         value_inside_range.
21294         (value_inside_range): Make private inside value_range_base class.
21295         Take min/max from *this.
21296         (range_includes_p): Remove.
21297         * tree-vrp.h (value_range_base): Add value_inside_range.
21298         (range_includes_p): Remove.
21299         (range_includes_zero_p): Call may_contain_p.
21300         * vr-values.c (compare_range_with_value): Same.
21302 2019-06-13  Claudiu Zissulescu  <claziss@synopsys.com>
21304         * doc/extend.texi (ARC Function Attributes): Update info.
21306 2019-06-13  Feng Xue  <fxue@os.amperecomputing.com>
21308         PR tree-optimization/89713
21309         * doc/invoke.texi (-ffinite-loops): Document new option.
21310         * common.opt (-ffinite-loops): New option.
21311         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
21312         IFN_GOACC_LOOP calls as necessary.
21313         * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
21314         is finite.
21315         * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
21316         IFN_GOACC_LOOP call is not used.
21317         * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
21319 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
21321         PR target/88838
21322         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
21323         compare_type is not with Pmode size, we will create an IV with
21324         Pmode size with truncated use (i.e. converted to the correct type).
21325         * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
21326         (vect_iv_limit_for_full_masking): New. Factored out of
21327         vect_set_loop_condition_masked.
21328         * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
21329         (vect_iv_limit_for_full_masking): Declare.
21331 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
21333         PR target/88834
21334         * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
21335         IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
21336         (get_alias_ptr_type_for_ptr_address): Likewise.
21337         (add_iv_candidate_for_use): Add scaled index candidate if useful.
21338         * tree-ssa-address.c (preferred_mem_scale_factor): New.
21339         * config/aarch64/aarch64.c (aarch64_classify_address): Relax
21340         allow_reg_index_p.
21342 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
21344         * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
21346 2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>
21348         * common/config/pru/pru-common.c: New file.
21349         * config.gcc: Add PRU target.
21350         * config/pru/alu-zext.md: New file.
21351         * config/pru/constraints.md: New file.
21352         * config/pru/predicates.md: New file.
21353         * config/pru/pru-opts.h: New file.
21354         * config/pru/pru-passes.c: New file.
21355         * config/pru/pru-pragma.c: New file.
21356         * config/pru/pru-protos.h: New file.
21357         * config/pru/pru.c: New file.
21358         * config/pru/pru.h: New file.
21359         * config/pru/pru.md: New file.
21360         * config/pru/pru.opt: New file.
21361         * config/pru/t-pru: New file.
21362         * doc/extend.texi: Document PRU pragmas.
21363         * doc/invoke.texi: Document PRU-specific options.
21364         * doc/md.texi: Document PRU asm constraints.
21366 2019-06-12  Martin Sebor  <msebor@redhat.com>
21368         PR middle-end/90676
21369         * tree-pretty-print.c (dump_mem_ref): New function.  Include
21370         MEM_REF type in output when different size than operand.
21371         (dump_generic_node): Move code to dump_mem_ref and call it.
21373 2019-06-12  Martin Sebor  <msebor@redhat.com>
21375         PR tree-optimization/90662
21376         * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
21377         to arrays.
21379 2019-06-12  Tom de Vries  <tdevries@suse.de>
21381         PR tree-optimization/90009
21382         * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
21384 2019-06-12  Martin Liska  <mliska@suse.cz>
21386         * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
21387         the created map.
21388         * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
21389         * mem-stats.h (mem_alloc_description::mem_alloc_description):
21390         Do not sanitize created maps.
21392 2019-06-12  Aldy Hernandez  <aldyh@redhat.com>
21394         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
21395         value_range::singleton_p.
21396         * tree-vrp.c (value_range_constant_singleton): Remove.
21397         * tree-vrp.h (value_range_constant_singleton): Remove.
21398         * vr-values.c (vr_values::singleton): Use
21399         value_range::singleton_p.
21401 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
21403         PR target/90811
21404         * cfgexpand.c (align_local_variable): Add really_expand argument,
21405         don't SET_DECL_ALIGN if it is false.
21406         (add_stack_var): Add really_expand argument, pass it through to
21407         align_local_variable.
21408         (expand_one_stack_var_1): Pass true as really_expand to
21409         align_local_variable.
21410         (expand_one_ssa_partition): Pass true as really_expand to
21411         add_stack_var.
21412         (expand_one_var): Pass really_expand through to add_stack_var.
21414 2019-06-12  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
21416         * config/arm/iterators.md (VABAL): New int iterator.
21417         * config/arm/neon.md (<sup>sadv16qi): New define_expand.
21418         * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
21419         UNSPEC_VABAL_U values.
21421 2019-06-12  Martin Liska  <mliska@suse.cz>
21423         * value-prof.c (stream_out_histogram_value): Only first value
21424         can't be negative.
21426 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
21428         PR c/90760
21429         * symtab.c (symtab_node::set_section): Allow being called on aliases
21430         as long as they aren't analyzed yet.
21432 2019-06-11  Faraz Shahbazker  <fshahbazker@wavecomp.com>
21434         * config/mips/mips.c (mips_final_postscan_insn): Modify call
21435         to `mips_set_text_contents_type' to indicate whether a
21436         non-debug insn follows.
21438 2019-06-11  Michael Meissner  <meissner@linux.ibm.com>
21440         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
21441         enabling -mpcrel by default.
21442         * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
21443         test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
21444         that the test against -mcpu=future is done first.  Then test if
21445         -mprefixed-addr is on for -mpcrel.
21446         (rs6000_disable_incompatible_switches): Add -mcpu=future support.
21448 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
21450         PR target/90811
21451         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
21452         instead of and.u%d.
21454 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
21456         * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
21458 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
21460         PR c++/90449 - add -Winaccessible-base option.
21461         * doc/invoke.texi (Winaccessible-base): Document.
21463 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
21465         PR tree-optimization/62041
21466         * fold-const.c (fold_real_zero_addition_p): Handle vectors.
21468 2019-06-11  Jason Merrill  <jason@redhat.com>
21470         * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
21471         * tree.c (get_tree_code_name): Likewise.
21472         * print-tree.c (print_node): Only briefly print a node with an
21473         invalid code.
21475 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
21477         PR bootstrap/90819
21478         * trans-mem.c (tm_memopt_compute_available): Add assertion
21479         that blocks is not empty.  Formatting fix.
21481 2019-06-11  Martin Liska  <mliska@suse.cz>
21483         PR c++/87847
21484         * hash-table.h: Extend create_gcc, add one parameter
21485         that is passed into hash_table::hash_table.
21487 2019-06-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
21489         * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
21490         New prototype.
21491         * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
21492         Emit clobber also for non-sse operations.
21493         (ix86_split_fp_absneg_operator): New function.
21494         * config/i386/i386.md (SSEMODEF): New mode iterator.
21495         (ssevecmodef): New mode attribute.
21496         (<code>tf2): Use absneg code iterator.
21497         (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
21498         Add three-operand AVX alternatives.
21499         (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
21500         Use absneg code iterator and X87MODEF mode iterator.
21501         (absneg fp_reg non-sse splitter): Call absneg code iterator
21502         and X87MODEF mode iterator.
21503         (absneg general_reg non-sse splitter): Use absneg code iterator
21504         and X87MODEF mode iterator.  Use ix86_split_fp_absneg_operator.
21505         (*<code><mode>2_1): Rename from *absneg<mode>2.  Use absneg
21506         code iterator.  Add three-operand AVX alternative.
21507         (absneg sse_reg splitter): Use absneg code iterator
21508         and SSEMODEF mode iterator.  Handle AVX operands.
21509         (absneg fp_reg splitter): Use absneg code iterator
21510         and MODEF mode iterator.
21511         (absneg general_reg splitter): Merge splitters using MODEF mode
21512         iterator.  Use absneg code iterator.  Call
21513         ix86_split_fp_absneg_operator.
21514         (*<code><mode>2_i387): Rename from *<code><mode>2_1.
21515         Do not enable for non-sse modes before reload.
21516         (CSGNMODE): Remove.
21517         (CSGNVMODE): Ditto.
21518         (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
21519         ssevecmodef mode attribute instaed of CSGNVMODE.
21520         (copysign<mode>3_const): Ditto.
21521         (copysign<mode>3_var): Ditto.
21522         * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
21523         Use absneg code iterator.  Simplify code using std::swap.
21524         * config/i386/predicates.md (absneg_operator): Remove.
21526 2019-06-10  Martin Sebor  <msebor@redhat.com>
21528         * gimple-fold.c (get_range_strlen): Update comment that didn't
21529         make it into r267503 or related commits.
21531 2019-06-10  Vladislav Ivanishin  <vlad@ispras.ru>
21533         * gcov-tool.c (merge_usage, rewrite_usage): Mark with
21534         ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
21536 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
21538         * tree.def (OMP_SCAN): New tree code.
21539         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
21540         OMP_CLAUSE_EXCLUSIVE.
21541         * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
21542         (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
21543         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
21544         OMP_CLAUSE_{IN,EX}CLUSIVE.
21545         (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
21546         * tree-nested.c (convert_nonlocal_reference_stmt,
21547         convert_local_reference_stmt, convert_gimple_call): Handle
21548         GIMPLE_OMP_SCAN.
21549         * tree-pretty-print.c (dump_omp_clause): Handle
21550         OMP_CLAUSE_{IN,EX}CLUSIVE.
21551         (dump_generic_node): Handle OMP_SCAN.
21552         * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
21553         * gimple.h (gomp_scan): New type.
21554         (is_a_helper <gomp_scan *>::test,
21555         is_a_helper <const gomp_scan *>::test): New templates.
21556         (gimple_build_omp_scan): Declare.
21557         (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
21558         gimple_omp_scan_set_clauses): New inline functions.
21559         (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
21560         * gimple.c (gimple_build_omp_scan): New function.
21561         (gimple_copy): Handle GIMPLE_OMP_SCAN.
21562         * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
21563         * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
21564         GIMPLE_OMP_TASKGROUP.
21565         (dump_gimple_omp_scan): New function.
21566         (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
21567         * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
21568         * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
21569         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
21570         (is_gimple_stmt): Handle OMP_SCAN.
21571         (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
21572         other than OMP_FOR or OMP_SIMD.  Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
21573         (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
21574         mentioned in nested #pragma omp scan.  Handle
21575         OMP_CLAUSE_{IN,EX}CLUSIVE.
21576         (gimplify_expr): Handle OMP_SCAN.
21577         * omp-low.c (check_omp_nesting_restrictions): For parent context,
21578         look through GIMPLE_OMP_SCAN context.  Allow #pragma omp scan in
21579         simd constructs.
21580         (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
21581         GIMPLE_OMP_SCAN.
21583 2019-06-10  Martin Liska  <mliska@suse.cz>
21585         * ipa-cp.c (ignore_edge_p): New function.
21586         (build_toporder_info): Use it.
21587         * ipa-inline.c (ignore_edge_p): New function.
21588         (inline_small_functions): Use it.
21589         * ipa-pure-const.c (ignore_edge_for_nothrow):
21590         Verify opt_for_fn for caller and callee.
21591         (ignore_edge_for_pure_const): Likewise.
21592         * ipa-reference.c (ignore_edge_p): Extend to check
21593         for opt_for_fn.
21594         * ipa-utils.c (searchc): Refactor.
21595         * ipa-utils.h: Fix coding style.
21597 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
21599         * config/arc/arc.c (arc_rtx_costs): Update costs.
21601 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
21603         * config/arc/arc-protos.h (arc_check_ior_const): Declare.
21604         (arc_split_ior): Likewise.
21605         (arc_check_mov_const): Likewise.
21606         (arc_split_mov_const): Likewise.
21607         * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
21608         (arc_rtx_costs): Replace check Crr with Cax constraint.
21609         (prepare_move_operands): Cleanup, remove unused code.
21610         (arc_split_ior): New function.
21611         (arc_check_ior_const): Likewise.
21612         (arc_split_mov_const): Likewise.
21613         (arc_check_mov_const): Likewise.
21614         * config/arc/arc.md (movsi_insn): Restructure it, and convert it
21615         in define_insn_and_split pattern.
21616         (iorsi3): Likewise.
21617         (mulsi3_v2): Add new matching variant.
21618         (andsi3_i): Cleanup pattern.
21619         (rotrsi3_cnt1): Update pattern.
21620         (rotrsi3_cnt8): New pattern.
21621         (ashlsi2_cnt8): Likewise.
21622         (ashlsi2_cnt16): Likewise.
21623         * config/arc/constraints.md (C0p): Update constraint.
21624         (Crr): Remove it.
21625         (C0x): New pattern.
21626         (Cax): New pattern.
21628 2019-06-10  Martin Liska  <mliska@suse.cz>
21630         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
21631         Update coding style.
21632         (sem_item_optimizer::dump_cong_classes):
21633         Print how many items are in a non-singular class.  Improve
21634         coding style.
21636 2019-06-10  Martin Liska  <mliska@suse.cz>
21638         * value-prof.c (dump_histogram_value): Change dump format.
21639         (gimple_mod_subtract_transform): Remove legacy comment.
21641 2019-06-10  Martin Liska  <mliska@suse.cz>
21643         * value-prof.c (dump_histogram_value): Print histogram values
21644         only if present.
21646 2019-06-10  Martin Liska  <mliska@suse.cz>
21648         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
21649         (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
21650         * ipa-profile.c (ipa_profile_generate_summary):
21651         Use get_most_common_single_value.
21652         * tree-profile.c (gimple_init_gcov_profiler):
21653         Instrument with __gcov_one_value_profiler_v2
21654         and __gcov_indirect_call_profiler_v4.
21655         * value-prof.c (dump_histogram_value):
21656         Print all values for HIST_TYPE_SINGLE_VALUE.
21657         (stream_out_histogram_value): Update assert for
21658         N values.
21659         (stream_in_histogram_value): Set number of
21660         counters for HIST_TYPE_SINGLE_VALUE.
21661         (get_most_common_single_value): New.
21662         (gimple_divmod_fixed_value_transform):
21663         Use get_most_common_single_value.
21664         (gimple_ic_transform): Likewise.
21665         (gimple_stringops_transform): Likewise.
21666         (gimple_find_values_to_profile): Set number
21667         of counters for HIST_TYPE_SINGLE_VALUE.
21668         * value-prof.h (get_most_common_single_value): New.
21670 2019-06-10  Martin Liska  <mliska@suse.cz>
21672         * hash-map.h: Pass default value to hash_table ctor.
21673         * hash-table.h: Add default value to call of a ctor.
21675 2019-06-08  Jonathan Wakely  <jwakely@redhat.com>
21677         * doc/invoke.texi (C Dialect Options): Minor grammatical change.
21678         (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
21680 2019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
21682         PR target/90751
21683         * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
21684         Call pa_output_function_label.
21685         (TARGET_ASM_FUNCTION_PROLOGUE): define.
21686         * config/pa/pa-protos.h (pa_output_function_label): Declare.
21687         * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
21688         to declaration.
21689         (pa_linux_output_function_prologue): Declare.
21690         (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
21691         (pa_output_function_label): New.
21692         (pa_output_function_prologue): Revise to use pa_output_function_label.
21693         (pa_linux_output_function_prologue): New.
21694         * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
21696 2019-06-07  Aldy Hernandez  <aldyh@redhat.com>
21698         * tree-vrp.h (value_range_base::intersect): New.
21699         (value_range::intersect_helper): Move from here...
21700         (value_range_base::intersect_helper): ...to here.
21701         * tree-vrp.c (value_range::intersect_helper): Rename to...
21702         (value_range_base::intersect_helper): ...this, and rewrite to
21703         return a value instead of modifying THIS in place.
21704         Also, move equivalence handling...
21705         (value_range::intersect): ...here, while calling intersect_helper.
21706         * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
21707         calling intersect.
21708         * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
21709         Same.
21710         * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
21712 2019-06-07  Jakub Jelinek  <jakub@redhat.com>
21714         * Makefile.in (genprogerr): Add condmd.
21715         (genprog): Remove it here.
21717 2019-06-07  Andrew Stubbs  <ams@codesourcery.com>
21719         * doc/invoke.texi (AMD GCN Options): Add gfx906.
21721 2019-06-07  Richard Biener  <rguenther@suse.de>
21723         PR debug/90574
21724         * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
21725         that appear after user labels.
21727 2019-06-07  Martin Liska  <mliska@suse.cz>
21729         * cselib.c (cselib_init): Disable hash table
21730         sanitization.
21731         * hash-set.h: Pass new default argument to m_table.
21732         * hash-table.c: Add global variable with hash table
21733         sanitization limit.
21734         * hash-table.h (Allocator>::hash_table): Add new argument
21735         to ctor.
21736         (hashtab_chk_error): New.
21737         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
21738         * toplev.c (process_options): Set hash_table_sanitize_eq_limit
21739         from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
21741 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
21743         * common.opt (flto-odr-type-merging): Ignore.
21744         * invoke.texi (-flto-odr-type-merging): Remove.
21745         * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
21746         (can_be_vtable_hashed_p): Remove.
21747         (hash_odr_vtable): Remove.
21748         (odr_vtable_hasher::hash): Remove.
21749         (types_same_for_odr): Remove.
21750         (types_odr_comparable): Remove.
21751         (odr_vtable_hasher::equal): Remove.
21752         (odr_vtable_hash_type, odr_vtable_hash): Remove.
21753         (add_type_duplicate): Do not synchronize vtable and name hashtables.
21754         (get_odr_type): Do not use vtable hash.
21755         (dump_odr_type): Remove commented out code.
21756         (build_type_inheritance_graph): Do not allocate vtable hash.
21757         (rebuild_type_inheritance_graph): Do not delete vtable hash.
21758         * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
21759         (odr_type_p): Likewise.
21760         * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
21761         test.
21763 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
21765         * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
21766         immediately after same_types_for_tbaa_p returns -1 and continue
21767         looking for possible exact match; if matching types are arrays
21768         watch for partial overlaps.
21769         (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
21770         (indirect_refs_may_alias_p): Do type based disambiguation first;
21771         update comment.
21773 2019-06-07  Richard Sandiford  <richard.sandiford@arm.com>
21775         * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
21777 2019-06-07  Martin Liska  <mliska@suse.cz>
21779         * doc/invoke.texi: Remove param.
21780         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
21781         Remove.
21782         * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
21783         (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
21784         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
21785         * profile.c (instrument_values): Remove
21786         HIST_TYPE_INDIR_CALL_TOPN.
21787         * tree-profile.c (init_ic_make_global_vars):
21788         Always build __gcov_indirect_call only.
21789         (gimple_init_gcov_profiler): Remove usage
21790         of PARAM_INDIR_CALL_TOPN_PROFILE.
21791         (gimple_gen_ic_profiler): Likewise.
21792         * value-prof.c (dump_histogram_value): Likewise.
21793         (stream_in_histogram_value): Likewise.
21794         (gimple_indirect_call_to_profile): Likewise.
21795         (gimple_find_values_to_profile): Likewise.
21796         * value-prof.h (enum hist_type): Likewise.
21798 2019-06-07  Martin Liska  <mliska@suse.cz>
21800         * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
21801         function.
21803 2019-06-07  Martin Liska  <mliska@suse.cz>
21805         PR tree-optimization/78902
21806         * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
21807         (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
21808         (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
21809         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
21810         (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
21811         (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
21812         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
21813         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
21814         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
21815         (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
21816         (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
21817         (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
21818         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
21819         New.
21820         (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
21821         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
21822         (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
21823         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21824         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
21825         (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
21826         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21827         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
21828         * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
21829         warn_unused_result attribute.
21830         (BUILT_IN_STRDUP): Likewise.
21831         (BUILT_IN_STRNDUP): Likewise.
21832         (BUILT_IN_ALLOCA): Likewise.
21833         (BUILT_IN_CALLOC): Likewise.
21834         (BUILT_IN_MALLOC): Likewise.
21835         (BUILT_IN_REALLOC): Likewise.
21837 2019-06-06  Jim Wilson  <jimw@sifive.com>
21839         PR target/89955
21840         * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
21841         * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
21842         * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
21844 2019-06-06  Martin Sebor  <msebor@redhat.com>
21846         * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
21847         (handle_builtin_malloc): Remove trailing spaces.
21848         (handle_builtin_memset): Same.
21849         (handle_builtin_memcmp): Same.
21850         (compute_string_length): Same.
21851         (determine_min_objsize): Same.
21852         (handle_builtin_string_cmp): Same.
21853         (handle_char_store): Same.  Break up excessively long line.
21855 2019-06-06  Martin Jambor  <mjambor@suse.cz>
21857         * tree-sra.c (build_reconstructed_reference): Drop the alignment
21858         check.
21860 2019-06-06  Martin Jambor  <mjambor@suse.cz>
21862         * tree-sra.c (struct access): New field grp_same_access_path.
21863         (dump_access): Dump it.
21864         (build_reconstructed_reference): New function.
21865         (build_ref_for_model): Use it if possible.
21866         (path_comparable_for_same_access): New function.
21867         (same_access_path_p): Likewise.
21868         (sort_and_splice_var_accesses): Set the new flag.
21869         (analyze_access_subtree): Likewise.
21870         (propagate_subaccesses_across_link): Propagate zero value of the new
21871         flag down the access tree.
21873 2019-06-06  Andrew Stubbs  <ams@codesourcery.com>
21875         * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
21876         * config/gcn/gcn.opt (gpu_type): Add gfx906.
21877         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
21878         (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
21879         Add gfx906.
21881 2019-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21883         PR tree-optimization/90332
21884         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
21885         Handle VALS containing two vectors.
21886         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
21887         to...
21888         (@aarch64_combinez<mode>): ... This.
21889         (*aarch64_combinez_be<mode>): Rename to...
21890         (@aarch64_combinez_be<mode>): ... This.
21891         (vec_init<mode><Vhalf>): New define_expand.
21892         * config/aarch64/iterators.md (Vhalf): Handle V8HF.
21894 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
21896         * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
21897         library functions only when not optimizing for size.
21898         (ashlsi3): Likewise.
21899         (ashrhi3): Likewise.
21900         (ashrsi3): Likewise.
21901         (lshrhi3): Likewise.
21902         (lshrsi3): Likewise.
21904 2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
21906         PR rtl-optimization/88751
21907         * ira.c (ira): Use the number of the actually referenced registers
21908         when calculating the threshold.
21910 2019-06-06  Jakub Jelinek  <jakub@redhat.com>
21912         * configure: Regenerate.
21914 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
21916         * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
21917         register if it is in memory, so the shift can be emulated with a rotate
21918         instruction.
21919         (ashrhi3): Likewise.
21920         (lshrhi3): Likewise.
21922 2019-06-06  Martin Liska  <mliska@suse.cz>
21924         PR tree-optimization/87954
21925         * match.pd: Simplify mult where both arguments are 0 or 1.
21927 2019-06-06  Richard Biener  <rguenther@suse.de>
21929         * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
21930         put equivalences on UNDEFINED ranges.
21931         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
21932         Make sure to drop defs of stmts added during simplification
21933         to VARYING.
21935 2019-06-06  Richard Biener  <rguenther@suse.de>
21937         * tree-ssa-structalias.c: Include tree-cfg.h.
21938         (make_heapvar): Do not make heap vars artificial.
21939         (find_func_aliases_for_builtin_call): Handle stack allocation
21940         functions.
21941         (find_func_aliases): Delay processing of simple enough returns
21942         in non-IPA mode.
21943         (set_uids_in_ptset): Adjust.
21944         (find_what_var_points_to): Likewise.
21945         (solve_constraints): Do not dump points-to sets here.
21946         (compute_points_to_sets): Post-process return statements,
21947         amending the escaped solution.  Dump points-to sets afterwards.
21948         (ipa_pta_execute): Dump points-to sets.
21950 2019-06-06  Martin Liska  <mliska@suse.cz>
21952         PR web/87933
21953         * doc/install.texi: Fix HTML headers and
21954         titles for 'Installing GCC' pages.
21956 2019-06-06  Martin Liska  <mliska@suse.cz>
21958         * ipa-icf-gimple.h (dump_message_1): Remove.
21959         (dump_message): Likewise.
21960         (return_false_with_message_1): Print also file.
21961         (return_false_with_msg): Likewise.
21962         (return_with_result): Likewise.
21963         (return_with_debug): Likewise.
21964         * ipa-icf.c (sem_function::equals_private): Remove call
21965         to dump_message.
21967 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
21969         * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
21970         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
21971         memory operand for it.
21972         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
21974 2019-06-05  Martin Sebor  <msebor@redhat.com>
21976         * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
21977         Adjust quoting and hyphenation.
21978         * convert.c (convert_to_real_1): Same.
21979         * gcc.c (driver_wrong_lang_callback): Same.
21980         (driver::handle_unrecognized_options): Same.
21981         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
21982         * opts-common.c (cmdline_handle_error): Same.
21983         (read_cmdline_option): Same.
21984         * opts-global.c (complain_wrong_lang): Same.
21985         (print_ignored_options): Same.
21986         (handle_common_deferred_options): Same.
21987         * pretty-print.h: Same.
21988         * print-rtl.c (debug_bb_n_slim): Same.
21989         * sched-rgn.c (make_pass_sched_fusion): Same.
21990         * tree-cfg.c (verify_gimple_assign_unary): Same.
21991         (verify_gimple_label): Same.
21992         * tree-ssa-operands.c (verify_ssa_operands): Same.
21993         * varasm.c (do_assemble_alias): Same.
21994         (assemble_alias): Same.
21996 2019-06-05  Richard Henderson  <rth@twiddle.net>
21998         * config/alpha/alpha.c (direct_return): Move down after
21999         struct machine_function definition; use saved frame_size;
22000         return bool.
22001         (struct machine_function): Add sa_mask, sa_size, frame_size.
22002         (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
22003         (alpha_compute_frame_layout): ... new function.
22004         (TARGET_COMPUTE_FRAME_LAYOUT): New.
22005         (alpha_initial_elimination_offset): Use saved sa_size.
22006         (alpha_vms_initial_elimination_offset): Likewise.
22007         (alpha_vms_can_eliminate): Remove alpha_sa_size call.
22008         (alpha_expand_prologue): Use saved frame data.  Merge integer
22009         and fp register save loops.
22010         (alpha_expand_epilogue): Likewise.
22011         (alpha_start_function): Use saved frame data.
22012         * config/alpha/alpha-protos.h (direct_return): Update.
22013         (alpha_sa_size): Remove.
22015 2019-06-05  Eric Botcazou  <ebotcazou@adacore.com>
22017         * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
22018         multiplication by a power-of-two value.
22019         (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
22020         and turn the modulo operation into a masking operation.
22022 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
22024         PR debug/90733
22025         * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
22026         with VOIDmode inner operands.
22028 2019-06-05  Richard Biener  <rguenther@suse.de>
22030         PR middle-end/90726
22031         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22032         turn an expression graph into a tree.
22034 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
22036         * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
22037         member.
22038         (expand_parallel_call): If region->inner->has_lastprivate_conditional,
22039         treat it like explicit monotonic schedule modifier.
22040         (expand_omp_for): Initialize has_lastprivate_conditional.
22041         If fd.lastprivate_conditional != 0, treat it like explicit monotonic
22042         schedule modifier.
22044         * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
22045         references, lookup in in hash map MEM_REF operand instead of the
22046         MEM_REF itself.
22047         (lower_omp_1): When looking for lastprivate conditional assignments,
22048         handle MEM_REFs with REFERENCE_TYPE operands.
22050         * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
22051         on privatization clauses OMP_CLAUSE_DECL is privatized by reference
22052         and references a VLA.  Handle references to non-VLAs if is_simd
22053         all privatization clauses like reductions.
22054         (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
22055         If omp_is_reference, use always omp simd arrays and set
22056         DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
22057         fails, emit reference initialization.
22059 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
22061         PR target/89803
22062         * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
22063         _mm_mask_fpclass_sd_mask): New intrinsics.
22064         (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
22065         * config/i386/i386-builtin.def
22066         (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
22067         New builtins.
22068         (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
22069         * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
22070         DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
22071         * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
22072         case QI_FTYPE_V2SF_INT): Ditto.
22073         * config/i386/sse.md
22074         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
22075         Extended to insnstructions with mask operands.
22077 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22079         * config/rs6000/constraints.md (define_register_constraint "wp"):
22080         Delete.
22081         (define_register_constraint "wq"): Delete.
22082         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22083         (rs6000_init_hard_regno_mode_ok): Adjust.
22084         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22085         RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
22086         * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
22087         (define_mode_attr VSa): Delete.
22088         (define_mode_attr VSisa): New.
22089         (rest of file): Adjust.
22090         * doc/md.texi (Machine Constraints): Adjust.
22092 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22094         * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
22095         (define_attr "enabled"): Handle those new isa values.
22097 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22099         * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
22100         (define_mode_attr VSr5): Delete.
22101         (define_mode_attr VStype_sqrt): Delete.
22102         (define_mode_iterator VSX_SPDP): Delete.
22103         (define_mode_attr VS_spdp_res): Delete.
22104         (define_mode_attr VS_spdp_insn): Delete.
22105         (define_mode_attr VS_spdp_type): Delete.
22106         (*vsx_sqrt<mode>2): Adjust.
22107         (vsx_<VS_spdp_insn>): Delete, split to...
22108         (vsx_xscvdpsp): ... this.  New.  And...
22109         (vsx_xvcvspdp): ... this.  New.  And...
22110         (vsx_xvcvdpsp): ... this.  New.
22112 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22114         * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
22115         and V2DF.
22116         * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
22117         (rest of file): Adjust.
22119 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22121         * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
22122         (vsx_extract_<mode>_var): Ditto.
22124 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22126         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
22127         with just "wa".
22129 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22131         * config/rs6000/constraints.md (define_register_constraint "ww"):
22132         Delete.
22133         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22134         (rs6000_init_hard_regno_mode_ok): Adjust.
22135         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22136         RS6000_CONSTRAINT_ww.
22137         * config/rs6000/rs6000.md: Adjust.
22138         * config/rs6000/vsx.md: Adjust.
22139         * doc/md.texi (Machine Constraints): Adjust.
22141 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22143         * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
22144         (define_mode_attr sd): New.
22145         (define_mode_attr s): New.
22146         (define_mode_attr Ftrad): Delete.
22147         (define_mode_attr Fvsx): Delete.
22148         (define_mode_attr Fs): Delete.
22149         (rest of file): Use the new mode attributes.
22150         * config.rs6000/vsx.md: Use the new mode attributes.
22152 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22154         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
22155         with just "wa".
22157 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22159         * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
22160         (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
22161         used with VSX_B, VSX_D, or VSX_F, with just "wa".
22163 2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>
22165         PR target/78263
22166         * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
22167         C++ with strict ANSI requirements.
22169 2019-06-04  Marc Glisse  <marc.glisse@inria.fr>
22171         * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
22172         computations when step is 1.
22174 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22176         * config/rs6000/constraints.md (define_register_constraint "wf"):
22177         Delete.
22178         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22179         (rs6000_init_hard_regno_mode_ok): Adjust.
22180         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22181         RS6000_CONSTRAINT_wf.
22182         * config/rs6000/rs6000.md: Adjust.
22183         * config/rs6000/vsx.md: Adjust.
22184         * doc/md.texi (Machine Constraints): Adjust.
22186 2019-06-04  Andrew Pinski  <apinski@marvell.com>
22188         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
22189         Fix ILP32 value.
22191 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22193         * config/rs6000/constraints.md (define_register_constraint "wd"):
22194         Delete.
22195         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22196         (rs6000_init_hard_regno_mode_ok): Adjust.
22197         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22198         RS6000_CONSTRAINT_wd.
22199         * config/rs6000/rs6000.md: Adjust.
22200         * config/rs6000/vsx.md: Adjust.
22201         * doc/md.texi (Machine Constraints): Adjust.
22203 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22205         * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
22206         (rest of file): Adjust.
22208 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22210         * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
22211         (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
22212         (vsx_splat_<mode>_reg): Adjust.
22214 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22216         * config/rs6000/constraints.md (define_register_constraint "ws"):
22217         Delete.
22218         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22219         (rs6000_init_hard_regno_mode_ok): Adjust.
22220         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22221         RS6000_CONSTRAINT_ws.
22222         * config/rs6000/rs6000.md: Adjust.
22223         * config/rs6000/vsx.md: Adjust.
22224         * doc/md.texi (Machine Constraints): Adjust.
22226 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22228         * config/rs6000/constraints.md (define_register_constraint "wv"):
22229         Delete.
22230         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22231         (rs6000_init_hard_regno_mode_ok): Adjust.
22232         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22233         RS6000_CONSTRAINT_wv.
22234         * config/rs6000/rs6000.md: Adjust.
22235         * config/rs6000/vsx.md: Adjust.
22236         * doc/md.texi (Machine Constraints): Adjust.
22238 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
22240         * config/rs6000/constraints.md (define_register_constraint "wi"):
22241         Delete.
22242         (define_register_constraint "wt"): Delete.
22243         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22244         (rs6000_init_hard_regno_mode_ok): Adjust.
22245         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22246         RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
22247         * config/rs6000/rs6000.md: Adjust.
22248         * config/rs6000/vsx.md: Adjust.
22249         * doc/md.texi (Machine Constraints): Adjust.
22251 2019-06-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22253         * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
22254         const.
22255         * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
22256         default_elf_asm_output_external.
22258 2019-06-04  Martin Liska  <mliska@suse.cz>
22260         * ipa-icf.c (INCLUDE_LIST): Remove.
22261         (sem_item_optimizer::execute): Remove call to init_wpa.
22262         * ipa-icf.h (init_wpa): Remove.
22264 2019-06-04  Jakub Jelinek  <jakub@redhat.com>
22266         * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
22267         conditional on combined for simd.
22268         * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
22269         member.
22270         (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
22271         constructs, don't remove lastprivate_conditional_map, but instead set
22272         ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
22273         to parent construct temporaries.
22274         (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
22275         like !ctx->lastprivate_conditional_map.
22276         (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
22277         use up->outer context instead of up.
22278         * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
22279         gimple_omp_for_combined_p.
22280         (expand_omp_for_static_nochunk): Likewise.
22281         (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
22282         probably moved over into expand_omp_for_generic rather than being copied
22283         there.
22285 2019-06-04  Martin Liska  <mliska@suse.cz>
22287         * value-prof.c (dump_histogram_value): Fix typo.
22288         (gimple_mod_subtract_transform): Likewise.
22290 2019-06-04  Richard Biener  <rguenther@suse.de>
22292         PR middle-end/90726
22293         * tree-chrec.c (chrec_contains_symbols): Add to visited.
22294         (tree_contains_chrecs): Likewise.
22295         (chrec_contains_symbols_defined_in_loop): Move here and avoid
22296         exponential behaivor from ...
22297         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
22298         ... here.
22299         (expression_expensive_p): Avoid exponential behavior and compute
22300         expanded size, rejecting any expansion.
22301         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
22302         (idx_contains_abnormal_ssa_name_p): Likewise.
22303         (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
22304         (contains_abnormal_ssa_name_p): Simplify and use
22305         walk_tree_without_duplicates.
22307 2019-06-04  Richard Biener  <rguenther@suse.de>
22309         PR tree-optimization/90738
22310         Revert
22311         2019-06-03  Richard Biener  <rguenther@suse.de>
22313         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
22314         full reference tree and record in ref->ref.
22315         (vn_reference_lookup_3): Pass in original ref to
22316         ao_ref_init_from_vn_reference.
22317         (vn_reference_lookup): Likewise.
22318         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
22319         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22320         Handle non-decl bases in the original reference.
22322 2019-06-04  Martin Liska  <mliska@suse.cz>
22324         * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
22325         number of references.
22326         (sem_item_optimizer::do_congruence_step):
22327         (sem_item_optimizer::worklist_push): Dump how references
22328         a class has.
22329         (sem_item_optimizer::worklist_pop): Use heap.
22330         (sem_item_optimizer::process_cong_reduction): Likewise.
22331         * ipa-icf.h: Use fibonacci_heap insteam of std::list.
22333 2019-06-04  Martin Liska  <mliska@suse.cz>
22335         * ipa-icf.h (struct sem_usage_pair_hash): New.
22336         (sem_usage_pair_hash::hash): Likewise.
22337         (sem_usage_pair_hash::equal): Likewise.
22338         (struct sem_usage_hash): Likewise.
22339         * ipa-icf.c (sem_item::sem_item): Initialize
22340         referenced_by_count.
22341         (sem_item::add_reference): Register a reference
22342         in ref_map and not in target->usages.
22343         (sem_item::setup): Remove initialization of
22344         dead vectors.
22345         (sem_item::~sem_item): Remove usage of dead vectors.
22346         (sem_item::dump): Remove dump of references.
22347         (sem_item_optimizer::sem_item_optimizer): Initialize
22348         m_references.
22349         (sem_item_optimizer::read_section): Remove useless
22350         dump.
22351         (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
22352         (sem_item_optimizer::build_graph): Pass m_references
22353         to ::add_reference.
22354         (sem_item_optimizer::verify_classes): Remove usage of dead
22355         vectors.
22356         (sem_item_optimizer::traverse_congruence_split): Return true
22357         when a class is split.
22358         (sem_item_optimizer::do_congruence_step_for_index): Use
22359         hash_map for look up of (sem_item *, index). That brings
22360         significant speed up.
22361         (sem_item_optimizer::do_congruence_step): Return true
22362         when a split is done.
22363         (congruence_class::is_class_used): Use referenced_by_count.
22365 2019-06-04  Alan Modra  <amodra@gmail.com>
22367         PR target/90689
22368         * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
22369         error.
22371 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
22373         * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
22374         * config/rs6000/rs6000.c (direct_move_p): Adjust.
22375         (rs6000_secondary_reload_simple_move): Adjust.
22376         (rs6000_opt_masks): Neuter the "mfpgpr" option.
22377         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
22378         * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
22379         comment.
22380         (power6x): Adjust.
22381         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
22382         (floatunssi<mode>2_lfiwzx): Adjust.
22383         (fix_trunc<mode>si2_stfiwx): Adjust.
22384         (fixuns_trunc<mode>si2_stfiwx): Adjust.
22385         * config/rs6000/rs6000.opt (mno-mfpgpr): New.
22386         (mfpgpr): Mark as deprecated.
22387         * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
22388         (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
22389         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
22391 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
22393         * config/rs6000/constraints.md (define_register_constraint "wg"):
22394         Delete.
22395         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
22396         RS6000_CONSTRAINT_wg.
22397         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
22398         (rs6000_init_hard_regno_mode_ok): Adjust.
22399         * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
22400         Delete "wg" alternatives.
22401         * doc/md.texi (Machine Constraints): Adjust.
22403 2019-06-03  Alan Modra  <amodra@gmail.com>
22405         * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
22406         (get_uncond_jump_length): Assert length less than INT_MAX and
22407         non-negative.
22409 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
22411         PR middle-end/64242
22412         * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
22413         block.
22414         (expand_builtin_nonlocal_goto): Likewise.
22416 2019-06-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22418         * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
22419         (aarch64_asm_output_external): Declare.
22420         * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
22421         (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
22422         (aarch64_asm_output_alias): New.
22423         (aarch64_asm_output_external): New.
22424         * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
22425         (ASM_OUTPUT_EXTERNAL): Define.
22427 2019-06-03  Aldy Hernandez  <aldyh@redhat.com>
22428         * tree-vrp.h (value_range_base::nonzero_p): New.
22429         (value_range_base::set_nonnull): Rename to...
22430         (value_range_base::set_nonzero): ...this.
22431         (value_range_base::set_null): Rename to...
22432         (value_range_base::set_zero): ...this.
22433         (value_range::set_nonnull): Remove.
22434         (value_range::set_null): Remove.
22435         * tree-vrp.c (range_is_null): Remove.
22436         (range_is_nonnull): Remove.
22437         (extract_range_from_binary_expr): Use value_range_base::*zero_p
22438         instead of range_is_*null.
22439         (extract_range_from_unary_expr): Same.
22440         (value_range_base::set_nonnull): Rename to...
22441         (value_range_base::set_nonzero): ...this.
22442         (value_range::set_nonnull): Remove.
22443         (value_range_base::set_null): Rename to...
22444         (value_range_base::set_zero): ...this.
22445         (value_range::set_null): Remove.
22446         (extract_range_from_binary_expr): Rename set_*null uses to
22447         set_*zero.
22448         (extract_range_from_unary_expr): Same.
22449         (union_helper): Same.
22450         * vr-values.c (get_value_range): Use set_*zero instead of
22451         set_*null.
22452         (vr_values::extract_range_from_binary_expr): Same.
22453         (vr_values::extract_range_basic): Same.
22455 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
22457         PR driver/90684
22458         * opts.c (parse_and_check_align_values): Allow 4 alignment values.
22460 2019-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22462         * config/aarch64/iterators.md (MAX_OPP): New code attr.
22463         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
22464         Rename to...
22465         (aarch64_<su>abd<mode>_3): ... This.
22466         (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
22468 2019-06-03  Richard Biener  <rguenther@suse.de>
22470         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
22471         full reference tree and record in ref->ref.
22472         (vn_reference_lookup_3): Pass in original ref to
22473         ao_ref_init_from_vn_reference.
22474         (vn_reference_lookup): Likewise.
22475         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
22476         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22477         Handle non-decl bases in the original reference.
22479 2019-06-03  Martin Liska  <mliska@suse.cz>
22481         * doc/generic.texi: Remove Java Trees.
22483 2019-06-03  Martin Liska  <mliska@suse.cz>
22485         * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
22486         returns 0 when operands are equal.
22488 2019-06-03  Richard Biener  <rguenther@suse.de>
22490         PR tree-optimization/90716
22491         * tree-loop-distribution.c (destroy_loop): Process blocks in
22492         correct order.
22494 2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22496         PR target/88837
22497         * vector-builder.h (vector_builder::count_dups): New method.
22498         * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
22499         Declare prototype.
22500         * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
22501         (vec_init<mode><Vel>): New pattern.
22502         * config/aarch64/aarch64.c (emit_insr): New function.
22503         (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
22504         (aarch64_sve_expand_vector_init_insert_elems): Likewise.
22505         (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
22506         (aarch64_sve_expand_vector_init): Define two overloaded functions.
22508 2019-06-03  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
22510         PR tree-optimization/90681
22511         * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
22512         * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
22513         special case for SLP, but fail on non-groupped loads.
22515 2019-06-03  Martin Liska  <mliska@suse.cz>
22517         * cfg.c (debug): Use TDF_DETAILS for debug and
22518         print edge info only once.
22520 2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
22522         PR fortran/90539
22523         * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
22525 2019-06-01  Martin Sebor  <msebor@redhat.com>
22527         PR middle-end/90694
22528         * tree-pretty-print.c (dump_generic_node): Add parentheses.
22530 2019-05-31  Jan Hubicka  <jh@suse.cz>
22532         * alias.c: Include ipa-utils.h.
22533         (get_alias_set): Try to complete ODR type via ODR type hash lookup.
22534         * ipa-devirt.c (prevailing_odr_type): New.
22535         * ipa-utils.h (previaling_odr_type): Declare.
22537 2019-05-31  H.J. Lu  <hongjiu.lu@intel.com>
22538             Hongtao Liu  <hongtao.liu@intel.com>
22540         PR target/89355
22541         * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
22542         NOTE_INSN_DELETED_LABEL check.
22544 2019-05-31  Prachi Godbole  <prachi.godbole@imgtec.com>
22545             Robert Suchanek  <robert.suchanek@mips.com>
22547         * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
22548         and 3rd operands of the fmadd/fmsub/maddv builtin.
22550 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
22552         * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
22553         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
22554         on OMP_SIMD if not nested inside of worksharing loop that also has
22555         lastprivate conditional clause for the same decl.
22556         (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
22557         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
22558         on simd.
22559         (lower_rec_input_clauses): Likewise.  Handle lastprivate conditional
22560         on simd construct.
22561         (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
22562         on simd construct.
22563         (lower_lastprivate_clauses): Likewise.
22564         (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
22565         calling lower_rec_input_clauses.
22566         (lower_omp_for): Likewise.
22567         (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
22568         clause on simd construct.
22569         * omp-expand.c (expand_omp_simd): Initialize cond_var if
22570         OMP_CLAUSE__CONDTEMP_ clause is present.
22572         * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
22573         ivar and lvar.
22575 2019-05-31  Xiong Hu Luo  <luoxhu@linux.ibm.com>
22577         PR c/43673
22578         * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
22579         TEX_D32, TEX_D64 or TEX_D128.
22581 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
22583         * match.pd (~(vec?cst1:cst2)): New transformation.
22585 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
22587         * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
22588         ((size_t)(A /[ex] B) CMP C): New transformation.
22590 2019-05-31  Richard Sandiford  <richard.sandiford@arm.com>
22592         * doc/md.texi: Document define_insn_and_rewrite.
22593         * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
22594         * gensupport.c (queue_elem): Update comment.
22595         (replace_operands_with_dups): New function.
22596         (gen_rewrite_sequence): Likewise.
22597         (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
22598         * read-rtl.c (apply_subst_iterator): Likewise.
22599         (add_condition_to_rtx, named_rtx_p): Likewise.
22600         (rtx_reader::read_rtx_operand): Likewise.
22601         * config/aarch64/aarch64-sve.md
22602         (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
22603         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
22604         define_insn_and_rewrite.
22605         (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
22606         Remove separate define_split.
22608 2019-05-31  Jan Hubicka  <jh@suse.cz>
22610         * tree-ssa-alias.c (type_has_components_p): New function.
22611         (aliasing_component_refs_p): Use it.
22613 2019-05-31  Martin Liska  <mliska@suse.cz>
22615         * gdbhooks.py: Add const_tree to TreePrinter.
22617 2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>
22619         PR debug/86964
22620         * common.opt (feliminate-unused-debug-symbols): Enable by default.
22621         * doc/invoke.texi (Debugging Options): Document new default of
22622         -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
22624 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
22626         PR tree-optimization/90671
22627         * tree-ssa-threadupdate.c (ssa_create_duplicates): If
22628         template_block used to be empty on the first call, don't use
22629         gsi_split_seq_after and gsi_insert_seq_after, but remember whole
22630         seq with bb_seq and set it with set_bb_seq.
22632 2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
22634         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
22636 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
22637             Michael Meissner  <meissner@linux.ibm.com>
22639         * config/rs6000/predicates.md (pcrel_address): New define_predicate.
22640         (prefixed_mem_operand): Likewise.
22641         (non_prefixed_mem_operand): Likewise.
22642         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
22643         prototype.
22644         * config/rs6000/rs6000.c (print_operand_address): Handle
22645         PC-relative addresses.
22646         (mode_supports_prefixed_address_p): New function.
22647         (rs6000_prefixed_address): New function.
22648         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
22649         (SYMBOL_REF_PCREL_P): Likewise.
22651 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
22653         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
22654         (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
22655         (gimplify_omp_for): If worksharing loop with lastprivate conditional
22656         is nested inside of parallel region, add _condtemp_ clause to both.
22657         * tree-nested.c (convert_nonlocal_omp_clauses,
22658         convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
22659         assertion failure.
22660         * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
22661         member.
22662         * omp-general.c (omp_extract_for_data): Compute it.
22663         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
22664         (lower_rec_input_clauses): Likewise.
22665         (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
22666         clause is already present, just add one further one after it.
22667         (lower_lastprivate_clauses): Handle cond_ptr with array type.
22668         (lower_send_shared_vars): Clear _condtemp_ vars.
22669         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
22670         or section or taskgroup.
22671         * omp-expand.c (determine_parallel_type): Disallow combining only if
22672         first OMP_CLAUSE__CONDTEMP_ has pointer type.  Disallow combining
22673         of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
22674         (expand_omp_for_generic, expand_omp_for_static_nochunk,
22675         expand_omp_for_static_chunk, expand_omp_for): Use
22676         fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
22677         determine if a special set of API routines are needed and if condtemp
22678         needs to be initialized, while always initialize cond_var if
22679         fd->lastprivate_conditional is non-zero.
22681 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
22682             Michael Meissner  <meissner@linux.ibm.com>
22684         * config/rs6000/constraints.md (eI): New constraint.
22685         * config/rs6000/predicates.md (cint34_operand): New predicate.
22686         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
22687         (SIGNED_34BIT_OFFSET_P): Likewise.
22688         * doc/md.texi (eI): Document constraint.
22690 2019-05-30  Sylvia Taylor  <sylvia.taylor@arm.com>
22692         * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
22694 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
22695             Michael Meissner  <meissner@linux.ibm.com>
22697         * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
22698         (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
22699         (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
22700         (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
22701         (OTHER_FUTURE_MASKS): Likewise.
22702         (POWERPC_MASKS): Likewise.
22703         * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
22704         specified without -mprefixed-addr or -mcpu=future.  Error if
22705         -mprefixed-addr is specified without -mcpu=future.
22706         (rs6000_opt_masks): Add entry for prefixed-addr.
22707         * rs6000.opt (mprefixed-addr): New option.
22709 2019-05-30  Sam Tebbs  <sam.tebbs@arm.com>
22711         * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
22712         cfun->is_thunk check.
22714 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
22716         * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
22717         to length.
22719 2019-05-30  Martin Liska  <mliska@suse.cz>
22721         * gdbinit.in: Fix 'ptc' command.  Add trt
22722         that prints TREE_TYPE($).
22724 2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>
22725             Alan Modra  <amodra@gmail.com>
22727         * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
22728         calls here...
22729         (rs6000_indirect_call_template_1): ...and here.
22730         (rs6000_pltseq_template): Handle plt_pcrel34.  Rework tocsave,
22731         plt16_ha, plt16_lo, mtctr indirect calls.  Use
22732         rs6000_pltseq_enum.
22733         (rs6000_decl_ok_for_sibcall): New function.
22734         (rs6000_function_ok_for_sibcall): Refactor.
22735         (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
22736         (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
22737         when pcrel.  Reorganize.
22738         (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
22739         * rs6000.h (rs6000_pltseq_enum): New enum.
22740         * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
22741         (*pltseq_tocsave): Use rs6000_pltseq_enum.
22742         (*pltseq_plt16_ha): Likewise.
22743         (*pltseq_plt16_lo): Likewise.
22744         (*pltseq_mtctr): Likewise.
22745         (*pltseq_plt_pcrel): New insn.
22746         (*call_local_aix): Handle @notoc calls.
22747         (*call_value_local_aix): Likewise.
22748         (*call_nonlocal_aix): Adjust lengths for pcrel calls.
22749         (*call_value_nonlocal_aix): Likewise.
22750         (*call_indirect_pcrel): New insn.
22751         (*call_value_indirect_pcrel): Likewise.
22753 2019-05-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22755         * config/i386/sse.md (*save_multiple<mode>): Rename from
22756         save_multiple<mode>.
22757         (*restore_multiple<mode>): Rename from restore_multiple<mode>.
22758         (*restore_multiple_and_return<mode>): Rename from
22759         restore_multiple_and_return<mode>.
22760         (*restore_multiple_leave_return<mode>): Rename from
22761         restore_multiple_leave_return<mode>.
22763 2019-05-29  Yoshinori Sato  <ysato@users.sourceforge.jp>
22765         * config.gcc (rx-*-linux*): New target.
22766         * config/rx/elf.opt: New file.
22767         * config/rx/linux.h: Likewise.
22768         * config/rx/t-linux: Likewise.
22769         * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
22770         make it zero.
22771         * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
22772         (ASM_APP_OFF): Likewise.
22773         * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
22774         moved elsewhere.
22776 2019-05-29  Jan Hubicka  <jh@suse.cz>
22778         * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
22779         variants are pointer equivalent.
22781 2019-05-29  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
22783         * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
22784         * config/aarch64/aarch64-sve2.md: New file.
22785         (<u>avg<mode>3_floor): New pattern.
22786         (<u>avg<mode>3_ceil): Likewise.
22787         (*<sur>h<addsub><mode>): Likewise.
22788         * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
22789         * config/aarch64/aarch64.md: Include aarch64-sve2.md.
22791 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
22793         PR bootstrap/90543
22794         * optc-save-gen.awk: In cl_optimization_print, use correct condition
22795         for var_opt_string printing.  In cl_optimization_print_diff, print
22796         (null) instead of invoking undefined behavior if one of the
22797         var_opt_string pointers is NULL and use && instead of first || in the
22798         guarding condition.  For var_target_other options, handle const char *
22799         target variables similarly to const char * optimize node variables.
22801 2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
22803         * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
22804         AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
22805         * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
22806         Add autib1716 and pacib1716 initialisation.
22807         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
22808         for autib1716 and pacib1716.
22809         * config/aarch64/aarch64-protos.h (aarch64_key_type,
22810         aarch64_post_cfi_startproc): Define.
22811         * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
22812         * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
22813         aarch64_handle_pac_ret_protection): Set default sign key to A.
22814         * config/aarch64/aarch64.c (aarch64_expand_epilogue,
22815         aarch64_expand_prologue): Add check for b-key.
22816         * config/aarch64/aarch64.c (aarch64_ra_sign_key,
22817         aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
22818         * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
22819         * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
22820         * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
22821         UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
22822         UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22823         * config/aarch64/aarch64.md (do_return): Add check for b-key.
22824         * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
22825         pauth_hint_num_a with pauth_hint_num.
22826         * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
22827         pauth_hint_num_a with pauth_hint_num.
22828         * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
22829         * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
22830         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22831         * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
22832         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
22833         * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
22834         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
22835         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
22836         * config/aarch64/iterators.md (pauth_hint_num_a): Replace
22837         UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
22838         UNSPEC_AUTIA1716 respectively.
22839         * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
22840         pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
22841         UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
22842         * doc/invoke.texi (-mbranch-protection): Add b-key type.
22843         * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
22844         UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
22846 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
22848         * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
22849         (gimplify_scan_omp_clauses): Initialize ctx->clauses.
22850         (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
22851         explicit clause on combined parallel into implicit shared clause.
22852         (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
22853         and firstprivate if the decl has one too from combined parallel to
22854         the worksharing construct.
22856 2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
22857             Michael Meissner  <meissner@linux.ibm.com>
22859         * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
22861 2019-05-28  Michael Meissner  <meissner@linux.ibm.com>
22863         * rtl.h (LABEL_REF_P): New #define.
22865 2019-05-28  John David Anglin  <danglin@gcc.gnu.org>
22867         * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
22869 2019-05-28  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
22871         * internal-fn.c: Marked mask_load_direct as vectorizable.
22872         * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
22873         * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
22874         combined even if masks different with allow_slp_p param.
22875         (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
22876         * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
22877         dissolve SLP-only vectorizable groups when SLP has been discarded.
22878         (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
22879         * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
22880         masks.
22881         (vect_build_slp_tree_1): Fixed comment typo.
22882         (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
22883         * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
22884         loads for SLP only.
22885         * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
22886         vectorizable.
22887         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
22889 2019-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22891         * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
22892         Remove obsolete use_thunk reference.
22893         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
22894         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
22895         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
22896         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
22897         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
22898         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
22899         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
22900         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
22901         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
22903 2019-05-28  Nathan Sidwell  <nathan@acm.org>
22905         * tree.h (IDENTIFIER_ANON_P): New.
22906         (anon_aggrname_format, anon_aggname_p): Don't declare.
22907         (make_anon_name): Declare.
22908         * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
22909         (hash_tree): Likewise.
22910         * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
22911         * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
22912         (anon_cnt, make_anon_name): New.
22914 2019-05-28  Martin Liska  <mliska@suse.cz>
22916         PR other/90315
22917         * opts-global.c (decode_options): Print help for all
22918         help_option_arguments.
22919         * opts.c (print_help): Add new argument.
22920         (common_handle_option): Remember all values into
22921         help_option_arguments.
22922         * opts.h (print_help): Add new argument.
22924 2019-05-28  Martin Liska  <mliska@suse.cz>
22926         PR ipa/90555
22927         * ipa-icf-gimple.c (func_checker::compare_loops): New function.
22928         * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
22929         (func_checker::compare_bb): Call compare_loops.
22931 2019-05-27  Jakub Jelinek  <jakub@redhat.com>
22933         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
22934         on sections construct.
22935         * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
22936         construct.
22937         (lower_omp_sections): Handle lastprivate conditional.
22938         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
22939         lastprivate_conditional_map.
22940         * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
22942         * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
22943         critical, taskgroup and section regions when looking for a region
22944         with non-NULL lastprivate_conditional_map.
22946 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22948         * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
22949         (*ix86_gen_sub3): Ditto.
22950         (*ix86_gen_sub3_carry): Ditto.
22951         (*ix86_gen_one_cmpl2): Ditto.
22952         (*ix86_gen_andsp): Ditto.
22953         (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
22954         (gen_and2_insn): New static function.
22955         (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
22956         Use gen_add3_insn instead of ix86_gen_add3.
22957         (ix86_expand_split_stack_prologue): Use gen_add2_insn
22958         instead of ix86_gen_add3.
22959         (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
22960         Use gen_sub3_insn instead of ix86_gen_sub3.
22961         * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
22962         instead of ix86_gen_add3.
22963         (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
22964         ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
22965         (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
22966         * config/i386/i386-options.c (ix86_option_override_internal):
22967         Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
22968         ix86_gen_one_cmpl2 and ix86_gen_andsp.
22970 2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
22972         * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
22973         and DW_OP_GNU_const_index opcodes.
22975 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22977         * config/i386/i386.h (STACK_SIZE_MODE): Define.
22979 2019-05-27  Richard Biener  <rguenther@suse.de>
22981         PR tree-optimization/90637
22982         * tree-ssa-sink.c (statement_sink_location): Honor the
22983         computed sink location for single-uses.
22985 2019-05-27  Richard Biener  <rguenther@suse.de>
22987         PR middle-end/90610
22988         * match.pd (vec_perm): Avoid clobbering op0 when not generating
22989         a bit-insert.
22991 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
22993         * config/i386/i386.md (@sub<mode>3_carry): Rename
22994         from sub<mode>3_carry.
22995         (@leave_<mode>): New expander.
22996         (*leave): Rename from leave.
22997         (*leave_rex64): Rename from leave_rex64.
22998         (@monitorx_<mode>): Rename from monitorx_<mode>.
22999         (@clzero_<mode>): Rename from clzero_<mode>.
23000         * config/i386/sse.md (@sse3_monitor_<mode>): Rename
23001         from sse3_monitor_<mode>.
23002         * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
23003         (*ix86_gen_leave): Ditto.
23004         (*ix86_gen_monitor): Ditto.
23005         (*ix86_gen_monitorx): Ditto.
23006         (*ix86_gen_clzero): Ditto.
23007         (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
23008         * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
23009         Use gen_sub3_carry instead of ix86_gen_sub3_carry.
23010         (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
23011         Use gen_sse3_monitor instead of ix86_gen_monitor.
23012         <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
23013         instead of ix86_gen_monitorx.
23014         <case IX86_BUILTIN_CLZERO>: Use gen_clzero
23015         instead of ix86_gen_clzero.
23016         * config/i386/i386-options.c (ix86_option_override_internal):
23017         Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
23018         ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
23020 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23022         * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
23023         Rename from tls_global_dynamic_64_<mode>.
23024         (@tls_local_dynamic_base_64_<mode>): Rename from
23025         tls_local_dynamic_base_64_<mode>.
23026         * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
23027         Remove indirect function.
23028         (*ix86_gen_tls_local_dynamic_base_64): Ditto.
23029         (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
23030         instead of ix86_gen_tls_global_dynamic_64.
23031         Use gen_tls_local_dynamic_base_64 instead of
23032         ix86_gen_tls_local_dynamic_base_64.
23033         * config/i386/i386-options.c (ix86_option_override_internal):
23034         Do not initialize ix86_gen_tls_global_dynamic_64 and
23035         ix86_gen_tls_local_dynamic_base_64.
23037 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23039         * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
23040         Rename from pro_epilogue_adjust_stack_<mode>_add.
23041         (@pro_epilogue_adjust_stack_sub_<mode>)
23042         Rename from pro_epilogue_adjust_stack_<mode>_sub.
23043         (@allocate_stack_worker_probe_<mode>):
23044         Rename from allocate_stack_worker_probe_<mode>.
23045         (allocate_stack): Use gen_allocate_stack_worker_probe.
23046         (probe_stack): Use gen_probe_stack_1.
23047         (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
23048         (@adjust_stack_and_probe_<mode>): Rename from
23049         adjust_stack_and_probe<mode>.
23050         (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
23051         (stack_protect_set): Use gen_stack_protect_set_1.
23052         (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
23053         (stack_protect_test): Use gen_stack_protect_test_1.
23054         (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
23055         * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
23056         Remove indirect function.
23057         (*ix86_gen_adjust_stack_and_probe): Ditto.
23058         (*ix86_gen_probe_stack_range): Ditto.
23059         (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
23060         instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
23061         (ix86_adjust_stack_and_probe_stack_clash): Use
23062         gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
23063         (ix86_adjust_stack_and_probe): Ditto.
23064         (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
23065         of ix86_gen_probe_stack_range.
23066         (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
23067         instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
23068         * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
23069         Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
23070         CODE_FOR_stack_protect_test_{si,di}.
23071         * config/i386/i386-options.c (ix86_option_override_internal):
23072         Do not initialize ix86_gen_allocate_stack_worker,
23073         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
23075 2019-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
23077         * doc/invoke.texi (Link Options): Many editorial changes around
23078         -flinker-output.
23080 2019-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23082         * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
23083         pre-Solaris 11 referene and most Studio compiler details.
23085 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
23087         PR target/90530
23088         * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
23089         DImode to SImode in floating-point registers on 64-bit target.
23090         * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
23091         register_operand in xmpyu patterns.
23093 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
23095         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
23096         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
23097         OMP_CLAUSE__REDUCTEMP_.
23098         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
23099         OMP_CLAUSE__CONDTEMP_.
23100         (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
23101         * tree-pretty-print.c (dump_omp_clause): Likewise.
23102         * tree-nested.c (convert_nonlocal_omp_clauses,
23103         convert_local_omp_clauses): Likewise.
23104         * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
23105         instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
23106         (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
23107         on OMP_FOR.
23108         (gimplify_omp_for): Warn and disable conditional modifier from
23109         lastprivate on loop iterators.
23110         * omp-general.h (struct omp_for_data): Add lastprivate_conditional
23111         member.
23112         * omp-general.c (omp_extract_for_data): Initialize it.
23113         * omp-low.c (struct omp_context): Add lastprivate_conditional_map
23114         member.
23115         (delete_omp_context): Delete it.
23116         (lower_lastprivate_conditional_clauses): New function.
23117         (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
23118         handle lastprivate conditional clauses.
23119         (lower_reduction_clauses): Add CLIST argument, emit it into
23120         the critical section if any.
23121         (lower_omp_sections): Adjust lower_lastprivate_clauses and
23122         lower_reduction_clauses callers.
23123         (lower_omp_for_lastprivate): Add CLIST argument, pass it through
23124         to lower_lastprivate_clauses.
23125         (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
23126         lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
23127         clist into a critical section if not emitted there already by
23128         lower_reduction_clauses.
23129         (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
23130         callers.
23131         (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
23132         conditional variables.
23133         * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
23134         clause is present.
23135         (expand_omp_for_generic, expand_omp_for_static_nochunk,
23136         expand_omp_for_static_chunk): Handle lastprivate conditional.
23137         (expand_omp_for): Handle fd.lastprivate_conditional like
23138         fd.have_reductemp.
23140 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
23142         * config/gcn/gcn-run.c (main): Set a non-zero return value if the
23143         kernel does not exit cleanly.
23144         * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
23146 2019-05-24  Jason Merrill  <jason@redhat.com>
23148         Revert:
23149         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
23151 2019-05-24  Richard Biener  <rguenther@suse.de>
23153         PR testsuite/90607
23154         * tree-loop-distribution.c (struct partition): Add location
23155         member.
23156         (partition_alloc): Initialize all fields.
23157         (generate_memset_builtin): Use the location recorded in the
23158         partition for the generated call.
23159         (generate_memcpy_builtin): Likewise.
23160         (classify_partition): Record the location of a single store
23161         as location for the partition.
23163 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
23165         * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
23166         for lo-part.
23168 2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>
23170         PR target/90588
23171         * common/config/aarch64/aarch64-common.c
23172         (aarch64_rewrite_selected_cpu): Change local temporary variable
23173         type from unsigned long to uint64_t.
23174         * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
23175         aarch64_get_extension_string_for_isa_flags): Change declaration to
23176         match new definition by replacing unsigned long with uint64_t.
23178 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
23180         PR target/90568
23181         * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
23182         gen_attr_type just once instead of 4-7 times.  Formatting fixes.
23183         Handle stack_protect_test_<mode> codegen similarly to corresponding
23184         sub instruction.
23186 2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
23188         * config/i386/darwin.h: Reject -mfentry*.
23189         * doc/sourcebuild.texi: Document mfentry target support.
23191 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
23193         * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
23194         Rename to rs6000_global_entry_point_prologue_needed_p.  Return
23195         false for PC-relative functions.
23196         (rs6000_output_function_prologue): Change called function name to
23197         rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
23198         name,1" for PC-relative functions.
23199         (rs6000_elf_declare_function_name): Change called function name to
23200         rs6000_global_entry_point_prologue_needed_p.
23202 2019-05-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23204         PR target/90552
23205         * config/i386/i386.c (gen_rtx_cost):
23206         Use ix86_tune_cost instead of ix86_cost.
23208 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
23209             Michael Meissner  <meissner@linux.ibm.com>
23210             Segher Boessenkool  <segher@kernel.crashing.org>
23212         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
23213         OPTION_MASK_PCREL.
23214         (POWERPC_MASKS): Add OPTION_MASK_PCREL.
23215         * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
23216         (rs6000_fndecl_pcrel_p): Likewise.
23217         * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
23218         error if -mpcrel is requested without -mcpu=future.
23219         (rs6000_opt_masks): Add entry for pcrel.
23220         (rs6000_fndecl_pcrel_p): New function.
23221         (rs6000_pcrel_p): Likewise.
23222         * config/rs6000/rs6000.opt (mpcrel): New option.
23223         * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
23225 2019-05-23  Jan Hubicka  <jh@suse.cz>
23226             Martin Liska  <mliska@suse.cz>
23228         PR tree-optimization/90576
23229         * tree-ssa-alias.c (compare_sizes): Remove dead calls to
23230         poly_int_tree_p.
23231         (aliasing_component_refs_p): Fix three way size compare conditional;
23232         give up earlier in case we can not decide on equivalence.
23234 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
23235             Michael Meissner  <meissner@linux.ibm.com>
23236             Segher Boessenkool  <segher@kernel.crashing.org>
23238         * config.gcc: Add future cpu.
23239         * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
23240         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
23241         #define.
23242         (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
23243         (RS6000_CPU): New instantiation for future cpu.
23244         * config/rs6000/rs6000-opts.h (enum processor_type): Add
23245         PROCESSOR_FUTURE.
23246         * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
23247         PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
23248         * config/rs6000/rs6000-tables.opt: Regenerate.
23249         * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
23250         PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
23251         (rs6000_machine_from_flags): Handle future cpu.
23252         (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
23253         PROCESSOR_POWER9 for now.
23254         (rs6000_adjust_cost): Likewise.
23255         (rs6000_issue_rate): Likewise.
23256         (rs6000_register_move_cost): Likewise.
23257         (rs6000_opt_masks): Add entry for future.
23258         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
23259         (MASK_FUTURE): New #define.
23260         * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
23261         * config/rs6000/rs6000.opt (mfuture): New target option.
23262         * doc/invoke.texi (mcpu): Add future cpu.
23264 2019-05-23  Martin Liska  <mliska@suse.cz>
23266         PR c++/90587
23267         * tree-ssa-uninit.c (value_sat_pred_p): The result of &
23268         operation points to a temporary (pointed via tree_to_wide_ref)
23269         that is out of scope after the &.
23271 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
23273         PR c++/90592
23274         * doc/extend.texi (Function Names): Add missing word.
23276 2019-05-23  Richard Biener  <rguenther@suse.de>
23278         PR tree-optimization/88440
23279         * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
23280         at -O[2s]+.
23281         * tree-loop-distribution.c (generate_memset_builtin): Fold the
23282         generated call.
23283         (generate_memcpy_builtin): Likewise.
23284         (distribute_loop): Pass in whether to only distribute patterns.
23285         (prepare_perfect_loop_nest): Also allow size optimization.
23286         (pass_loop_distribution::execute): When optimizing a loop
23287         nest for size allow pattern replacement.
23289 2019-05-23  Jakub Jelinek  <jakub@redhat.com>
23291         PR target/90568
23292         * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
23293         of xor.
23295 2019-05-23  Martin Liska  <mliska@suse.cz>
23297         PR sanitizer/90570
23298         * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
23299         expression similarly to gimplify_decl_expr.
23301 2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23303         * cse.c (cse_dump_path): s/dump_file/f.
23305 2019-05-22  David Malcolm  <dmalcolm@redhat.com>
23307         PR c++/90462
23308         * diagnostic-format-json.cc: Include "selftest.h".
23309         (json_from_expanded_location): Only add "file" key for non-NULL
23310         file strings.
23311         (json_from_location_range): Don't add "start" and "finish"
23312         children if they are UNKNOWN_LOCATION.
23313         (selftest::test_unknown_location): New selftest.
23314         (selftest::test_bad_endpoints): New selftest.
23315         (selftest::diagnostic_format_json_cc_tests): New function.
23316         * json.cc (json::object::get): New function.
23317         (selftest::test_object_get): New selftest.
23318         (selftest::json_cc_tests): Call it.
23319         * json.h (json::object::get): New decl.
23320         * selftest-run-tests.c (selftest::run_tests): Call
23321         selftest::diagnostic_format_json_cc_tests.
23322         * selftest.h (selftest::diagnostic_format_json_cc_tests): New
23323         decl.
23325 2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
23326             Andrew Stubbs  <amd@codesourcery.com>
23328         * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
23329         * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
23330         (kernel): Rename to...
23331         (main_kernel): ... this.
23332         (load_image): Load _init_array and _fini_array kernels.
23333         (run): Add argument for kernel to run.
23334         (main): Run init_array_kernel before main_kernel, and
23335         fini_array_kernel after.
23336         * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
23337         amdgpu_hsa_kernel attribute on functions.
23338         (gcn_disable_constructors): Delete.
23339         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
23340         * config/gcn/crt0.c (size_t): Define.
23341         (_init_array, _fini_array): New.
23342         (__preinit_array_start, __preinit_array_end,
23343         __init_array_start, __init_array_end,
23344         __fini_array_start, __fini_array_end): Declare weak references.
23346 2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
23348         * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
23350 2019-05-22  Jason Merrill  <jason@redhat.com>
23352         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
23354 2019-05-22  H.J. Lu  <hongjiu.lu@intel.com>
23356         PR target/88483
23357         * config/i386/i386-options.c (ix86_init_machine_status): Set
23358         stack_frame_required to true.
23359         * config/i386/i386.c (ix86_get_frame_size): New function.
23360         (ix86_frame_pointer_required): Replace get_frame_size with
23361         ix86_get_frame_size.
23362         (ix86_compute_frame_layout): Likewise.
23363         (ix86_find_max_used_stack_alignment): Changed to void.  Set
23364         stack_frame_required.
23365         (ix86_finalize_stack_frame_flags): Always call
23366         ix86_find_max_used_stack_alignment.  Replace get_frame_size with
23367         ix86_get_frame_size.
23368         * config/i386/i386.h (machine_function): Add stack_frame_required.
23370 2019-05-22  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23372         * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
23374 2019-05-22  Matthew Malcomson  <matthew.malcomson@arm.com>
23376         * common/config/aarch64/aarch64-common.c
23377         (struct aarch64_option_extension, struct processor_name_to_arch,
23378         struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
23379         aarch64_contains_opt,
23380         aarch64_get_extension_string_for_isa_flags): Change type of
23381         variables storing flags to uint64_t.
23382         * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
23383         sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
23384         * config/aarch64/aarch64.c (struct processor,
23385         aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
23386         aarch64_validate_march, aarch64_override_options,
23387         aarch64_option_print, aarch64_handle_attr_isa_flags,
23388         aarch64_declare_function_name, aarch64_start_file): Make flag
23389         variables uint64_t.
23390         * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
23391         AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
23392         AARCH64_FL_SVE2_BITPERM): New macro feature flags.
23393         * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
23394         * config/aarch64/driver-aarch64.c
23395         (struct aarch64_arch_extension, struct aarch64_core_data,
23396         struct aarch64_arch_driver_info, host_detect_local_cpu): Make
23397         flag variables uint64_t.
23398         * doc/invoke.texi: Add documentation for new arguments.
23400 2019-05-22  Richard Biener  <rguenther@suse.de>
23402         * alias.c (ao_ref_from_mem): Move stack-slot sharing
23403         rewrite ...
23404         * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
23406 2019-05-22  Martin Liska  <mliska@suse.cz>
23408         PR lto/90500
23409         * doc/extend.texi: Document the change.
23411 2019-05-22  Richard Biener  <rguenther@suse.de>
23413         PR tree-optimization/90450
23414         * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
23415         (mem_ref_hasher::equal): Check it.
23416         (mem_ref_alloc): Initialize it.
23417         (gather_mem_refs_stmt): Set it.
23419 2019-05-22  Richard Biener  <rguenther@suse.de>
23421         * gimple-fold.c (arith_code_with_undefined_signed_overflow):
23422         Add ABS_EXPR.
23423         (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
23424         as ABSU_EXPR.
23426 2019-05-22  Alan Modra  <amodra@gmail.com>
23428         * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
23429         (ASM_CPU_SPEC): Conditionally add -many.
23430         * config/rs6000/rs6000.c (rs6000_machine): New static var.
23431         (rs6000_machine_from_flags, emit_asm_machine): New functions..
23432         (rs6000_file_start): ..extracted from here, and modified to
23433         test all ISA bits.
23434         (rs6000_output_function_prologue): Emit .machine as necessary.
23436 2019-05-22  Hans-Peter Nilsson  <hp@axis.com>
23438         PR middle-end/90553
23439         * ira-lives.c (process_bb_node_lives): Consider defs
23440         for a call insn to be die before the call, not after.
23442         * function.c (assign_parm_setup_block): Raise alignment of
23443         stacked parameter only for STRICT_ALIGNMENT targets.
23445 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23447         * config/rs6000/constraints.md (define_register_constraint "wz"):
23448         Delete.
23449         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23450         RS6000_CONSTRAINT_wz.
23451         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23452         (rs6000_init_hard_regno_mode_ok): Adjust.
23453         * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
23454         * doc/md.texi (Machine Constraints): Adjust.
23456 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23458         * config/rs6000/constraints.md (define_register_constraint "wl"):
23459         Delete.
23460         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23461         RS6000_CONSTRAINT_wl.
23462         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23463         (rs6000_init_hard_regno_mode_ok): Adjust.
23464         * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
23465         * doc/md.texi (Machine Constraints): Adjust.
23467 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23469         * config/rs6000/constraints.md (define_register_constraint "wm"):
23470         Delete.
23471         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23472         RS6000_CONSTRAINT_wm.
23473         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23474         (rs6000_init_hard_regno_mode_ok): Adjust.
23475         * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
23476         * doc/md.texi (Machine Constraints): Adjust.
23478 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23480         * config/rs6000/constraints.md (define_register_constraint "wk"):
23481         Delete.
23482         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23483         RS6000_CONSTRAINT_wk.
23484         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23485         (rs6000_init_hard_regno_mode_ok): Adjust.
23486         * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
23487         * doc/md.texi (Machine Constraints): Adjust.
23489 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23491         * config/rs6000/constraints.md (define_register_constraint "wj"):
23492         Delete.
23493         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23494         RS6000_CONSTRAINT_wj.
23495         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23496         (rs6000_init_hard_regno_mode_ok): Adjust.
23497         * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
23498         (VS_64dm): Delete.
23499         * config/rs6000/vsx.md: Ditto.
23500         * doc/md.texi (Machine Constraints): Adjust.
23502 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
23504         * config/rs6000/constraints.md (define_register_constraint "wh"):
23505         Delete.
23506         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23507         RS6000_CONSTRAINT_wh.
23508         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23509         (rs6000_init_hard_regno_mode_ok): Adjust.
23510         * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
23511         * doc/md.texi (Machine Constraints): Adjust.
23513 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23515         PR target/90547
23516         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
23517         Avoid calling gen_lowpart with CONST operand.
23519 2019-05-21  Alexandre Oliva  <aoliva@redhat.com>
23521         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
23522         field template_last_to_copy.
23523         (ssa_create_duplicates): Set it, and use it.  Attempt to
23524         preserve more debug stmts.
23526 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23528         * config/i386/sse.md (VF1_AVX2): New mode iterator.
23529         (signbit<mode>2): New expander
23531 2019-05-21  James Clarke  <jrtc27@jrtc27.com>
23533         PR bootstrap/87338
23534         * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
23535         instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
23537 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
23539         * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
23540         %ebx and %ecx bafore calling cpuid with leaf 1 or
23541         non-constant leaf argument.
23543 2019-05-21  Alan Modra  <amodra@gmail.com>
23545         PR target/90545
23546         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
23547         power9 direct move cost.
23549 2019-05-21  Richard Biener  <rguenther@suse.de>
23551         PR middle-end/90510
23552         * fold-const.c (fold_read_from_vector): New function.
23553         * fold-const.h (fold_read_from_vector): Declare.
23554         * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
23555         single-element insert permutations.  Canonicalize selector
23556         further and fix issue with last commit.
23558 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
23560         * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
23561         parameter with default value false to declaration.
23562         (split_edges_for_insertion): New inline function.  Wrapper for
23563         split_critical_edges with for_edge_insertion_p = true.
23564         * tree-cfg.c (split_critical_edges): Don't split non-critical
23565         edges if for_edge_insertion_p is false.  Fix whitespace.
23566         * tree-ssa-pre.c (pass_pre::execute): Call
23567         split_edges_for_insertion instead of split_critical_edges.
23568         * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
23569         * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
23570         (pass_data_sink_code): Update function name in the comment.
23572 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
23574         * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
23575         around is_value_included_in that knows how to handle BIT_AND_EXPR.
23576         (is_pred_expr_subset_of): Use the new function.  Handle more cases where
23577         code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
23578         positives.
23580 2019-05-21  Martin Liska  <mliska@suse.cz>
23582         * config/rs6000/driver-rs6000.c (elf_platform): Do not use
23583         an extra newline.
23584         * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
23585         (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
23586         vec_lvsr.
23587         * config/rs6000/rs6000.c (rs6000_option_override_internal):
23588         Quote a C type.
23589         (rs6000_function_arg): Likewise.
23590         (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
23591         (rs6000_expand_ternop_builtin): Use interval syntax.
23592         (get_element_number): Likewise.
23593         (altivec_expand_builtin): Likewise.
23594         (rs6000_get_function_versions_dispatcher): Quote target_clones.
23596 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
23598         PR c++/59813
23599         PR target/90418
23600         * function.h (struct function): Add calls_eh_return member.
23601         * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
23602         gimplifying __builtin_eh_return call.
23603         * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
23604         to cfun.
23605         (expand_call_inline): Or in src_cfun->calls_eh_return into
23606         dst_cfun->calls_eh_return.
23607         * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
23608         cfun->calls_eh_return.
23609         * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
23610         * lto-streamer-out.c (output_struct_function_base): Write
23611         calls_eh_return.
23613 2019-05-20  Marc Glisse  <marc.glisse@inria.fr>
23615         PR rtl-optimization/43147
23616         * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
23617         IX86_BUILTIN_SHUFPD.
23619 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
23621         * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
23622         (refs_may_alias_p_1): ... here; update stats.
23623         (refs_may_alias_p): Do not update stats here.
23625 2019-05-20  Richard Biener  <rguenther@suse.de>
23627         * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
23628         doesn't produce pointers.
23629         {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
23630         the first operand points to.
23632 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
23634         * tree-ssa-alias.c (compare_sizes): New function.
23635         (sompare_type_sizes): New function
23636         (aliasing_component_refs_p): Use it.
23637         (indirect_ref_may_alias_decl_p): Likewise.
23639 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23641         * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
23643 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23645         * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
23646         (LIBLSAN_EARLY_SPEC): Likewise.
23647         * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
23649 2019-05-20  Martin Liska  <mliska@suse.cz>
23651         * config/i386/i386.c (ix86_libc_has_fast_function):
23652         Add ATTRIBUTE_UNUSED for the argument.
23654 2019-05-20  Richard Biener  <rguenther@suse.de>
23656         * gimple-match-head.c: Include vec-perm-indices.h.
23657         * generic-match-head.c: Likewise.
23658         * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
23659         is included.
23660         * fold-const.c (fold_vec_perm): Export.
23661         (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
23662         (match.pd): ...here.
23664 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
23666         * cfgloop.h (struct loop): Add simdlen member.
23667         * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
23668         * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
23669         * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
23670         as new argument to autovectorize_vector_sizes target hook.  If
23671         loop->simdlen, pick up vector size where the vectorization factor
23672         is equal to loop->simd, and if there is none, fall back to the first
23673         successful one.
23674         (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
23675         caller.
23676         * omp-low.c (omp_clause_aligned_alignment): Likewise.
23677         * omp-general.c (omp_max_vf): Likewise.
23678         * optabs-query.c (can_vec_mask_load_store_p): Likewise.
23679         * tree-vect-slp.c (vect_slp_bb): Likewise.
23680         * target.def (autovectorize_vector_sizes): Add ALL argument and
23681         document it.
23682         * doc/tm.texi: Adjust documentation.
23683         * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
23684         * targhooks.h (default_autovectorize_vector_sizes): Likewise.
23685         * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
23686         bool argument.
23687         * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
23688         * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
23689         * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
23690         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.  If
23691         true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
23692         preferred vector size is not 512-bit or 256-bit, just put those
23693         unpreferred ones last.
23695 2019-05-20  Martin Liska  <mliska@suse.cz>
23697         * targhooks.c (default_libc_has_fast_function): New function.
23698         * targhooks.h (default_libc_has_fast_function): Likewise.
23700 2019-05-20  Martin Liska  <mliska@suse.cz>
23702         PR middle-end/90263
23703         * builtins.c (expand_builtin_memory_copy_args): When having a
23704         target with fast mempcpy implementation do now use memcpy.
23705         * config/i386/i386.c (ix86_libc_has_fast_function): New.
23706         (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
23707         * doc/tm.texi: Likewise.
23708         * doc/tm.texi.in: Likewise.
23709         * target.def:
23710         * expr.c (emit_block_move_hints): Add 2 new arguments.
23711         * expr.h (emit_block_move_hints): Bail out when libcall
23712         to memcpy would be used.
23714 2019-05-20  Martin Liska  <mliska@suse.cz>
23716         * profile-count.c: Add vertical spacing in order
23717         to separate functions.
23718         * profile-count.h: Likewise.
23720 2019-05-20  Martin Liska  <mliska@suse.cz>
23722         * profile-count.h: Do not use full qualified
23723         names if possible.
23724         * profile-count.c (profile_count::to_frequency): Likewise.
23726 2019-05-20  Martin Liska  <mliska@suse.cz>
23728         * profile-count.h (enum profile_quality): Use capital letters
23729         for enum value names.  Use the adjusted names.
23730         * profile-count.c: Use the adjusted names.
23732 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23734         * config/rs6000/constraints.md (define_register_constraint "wH"):
23735         Delete.
23736         (define_register_constraint "wI"): Delete.
23737         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23738         RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
23739         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23740         (rs6000_init_hard_regno_mode_ok): Adjust.
23741         * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
23742         resp. "d", or with "wa" as appropriate, all with "p8v".
23743         * config/rs6000/vsx.md: Ditto.
23744         * doc/md.texi (Machine Constraints): Adjust.
23746 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23748         * config/rs6000/constraints.md (define_register_constraint "wy"):
23749         Delete.
23750         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23751         RS6000_CONSTRAINT_wy.
23752         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23753         (rs6000_init_hard_regno_mode_ok): Adjust.
23754         * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
23755         Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
23756         (define_mode_attr Fisa): New.
23757         * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
23758         * doc/md.texi (Machine Constraints): Adjust.
23760 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23762         * config/rs6000/constraints.md (define_register_constraint "wu"):
23763         Delete.
23764         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23765         RS6000_CONSTRAINT_wu.
23766         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23767         (rs6000_init_hard_regno_mode_ok): Adjust.
23768         * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
23769         both with "p8v".
23770         (define_mode_attr Fa): Delete.
23771         * config/rs6000/vsx.md: Ditto.
23772         * doc/md.texi (Machine Constraints): Adjust.
23774 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23776         * config/rs6000/constraints.md (define_register_constraint "wJ"):
23777         Delete.
23778         (define_register_constraint "wK"): Delete.
23779         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23780         RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
23781         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23782         (rs6000_init_hard_regno_mode_ok): Adjust.
23783         * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
23784         Replace "wK" constraint by "wH" with "p9v".
23785         * config/rs6000/vsx.md: Ditto.
23786         * doc/md.texi (Machine Constraints): Adjust.
23788 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23790         * config/rs6000/constraints.md (define_register_constraint "wb"):
23791         Delete.
23792         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23793         RS6000_CONSTRAINT_wb.
23794         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23795         (rs6000_init_hard_regno_mode_ok): Adjust.
23796         * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
23797         * config/rs6000/vsx.md: Ditto.
23798         * doc/md.texi (Machine Constraints): Adjust.
23800 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
23802         * config/rs6000/constraints.md (define_register_constraint "wo"):
23803         Delete.
23804         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
23805         RS6000_CONSTRAINT_wo.
23806         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
23807         (rs6000_init_hard_regno_mode_ok): Adjust.
23808         * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
23809         * config/rs6000/altivec.md: Ditto.
23810         * doc/md.texi (Machine Constraints): Adjust.
23812 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
23814         * config/darwin-c.c (darwin_register_objc_includes): Do not
23815         prepend the sysroot when building gnu-runtime header search
23816         paths.
23818 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
23820         * config/darwin.c (darwin_file_end): Use switch_to_section ()
23821         instead of direct output of the asm.
23823 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
23825         * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
23826         argument to be type bool (was int before).
23827         (rs6000_emit_epilogue): Simplify some code.  Declare some variables
23828         at first use.  Use type bool for some variables.  Fix a theoretical
23829         eh_return bug for svr4.
23831 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
23833         * config/rs6000/rs6000.md (isa): New attribute.
23834         (enabled): New attribute.
23836 2019-05-17  Max Filippov  <jcmvbkbc@gmail.com>
23838         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
23839         assemble_start_function and assemble_end_function.
23841 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
23843         PR middle-end/89433
23844         * omp-general.c (oacc_verify_routine_clauses): Change formal
23845         parameters.  Add checking if already marked with an OpenACC
23846         'routine' directive.  Adjust all users.
23848         PR middle-end/89433
23849         * omp-general.c (oacc_build_routine_dims): Move some of its
23850         processing into...
23851         (oacc_verify_routine_clauses): ... this new function.
23852         * omp-general.h (oacc_verify_routine_clauses): New prototype.
23854 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
23856         * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
23857         formating of picbase labels to match other ports.
23859 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
23861         * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
23862         in the generated code.
23864 2019-05-16  Martin Sebor  <msebor@redhat.com>
23866         * builtins.c (expand_builtin_atomic_always_lock_free): Quote
23867         identifiers, keywords, operators, and types in diagnostics.  Correct
23868         quoting, spelling, and sentence capitalization issues.
23869         (expand_builtin_atomic_is_lock_free): Same.
23870         (fold_builtin_next_arg): Same.
23871         * cfgexpand.c (expand_one_var): Same.
23872         (tree_conflicts_with_clobbers_p): Same.
23873         (expand_asm_stmt): Same.
23874         (verify_loop_structure): Same.
23875         * cgraphunit.c (process_function_and_variable_attributes): Same.
23876         * collect-utils.c (collect_execute): Same.
23877         * collect2.c (maybe_run_lto_and_relink): Same.
23878         (is_lto_object_file): Same.
23879         (scan_prog_file): Same.
23880         * convert.c (convert_to_real_1): Same.
23881         * dwarf2out.c (dwarf2out_begin_prologue): Same.
23882         * except.c (verify_eh_tree): Same.
23883         * gcc.c (execute): Same.
23884         (eval_spec_function): Same.
23885         (run_attempt): Same.
23886         (driver::set_up_specs): Same.
23887         (compare_debug_auxbase_opt_spec_function): Same.
23888         * gcov-tool.c (unlink_gcda_file): Same.
23889         (do_merge): Same.
23890         (do_rewrite): Same.
23891         * gcse.c (gcse_or_cprop_is_too_expensive): Same.
23892         * gimplify.c (gimplify_asm_expr): Same.
23893         (gimplify_adjust_omp_clauses): Same.
23894         * hsa-gen.c (gen_hsa_addr_insns): Same.
23895         (gen_hsa_insns_for_load): Same.
23896         (gen_hsa_cmp_insn_from_gimple): Same.
23897         (gen_hsa_insns_for_operation_assignment): Same.
23898         (gen_get_level): Same.
23899         (gen_hsa_alloca): Same.
23900         (omp_simple_builtin::generate): Same.
23901         (gen_hsa_atomic_for_builtin): Same.
23902         (gen_hsa_insns_for_call): Same.
23903         * input.c (dump_location_info): Same.
23904         * ipa-devirt.c (compare_virtual_tables): Same.
23905         * ira.c (ira_setup_eliminable_regset): Same.
23906         * lra-assigns.c (lra_assign): Same.
23907         * lra-constraints.c (lra_constraints): Same.
23908         * lto-streamer-in.c (lto_input_mode_table): Same.
23909         * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
23910         (merge_and_complain): Same.
23911         (compile_offload_image): Same.
23912         (compile_images_for_offload_targets): Same.
23913         (debug_objcopy): Same.
23914         (run_gcc): Same.
23915         (main): Same.
23916         * opts.c (print_specific_help): Same.
23917         (parse_no_sanitize_attribute): Same.
23918         (print_help): Same.
23919         (handle_param): Same.
23920         * plugin.c (add_new_plugin): Same.
23921         (parse_plugin_arg_opt): Same.
23922         (try_init_one_plugin): Same.
23923         * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
23924         operators, and types in diagnostics.  Correct quoting and spelling
23925         issues.
23926         * read-rtl-function.c (parse_edge_flag_token): Same.
23927         (function_reader::parse_enum_value): Same.
23928         * reg-stack.c (check_asm_stack_operands): Same.
23929         * regcprop.c (validate_value_data): Same.
23930         * sched-rgn.c (make_pass_sched_fusion): Same.
23931         * stmt.c (check_unique_operand_names): Same.
23932         * targhooks.c (default_target_option_pragma_parse): Same.
23933         * tlink.c (recompile_files): Same.
23934         * toplev.c (process_options): Same.
23935         (do_compile): Same.
23936         * trans-mem.c (diagnose_tm_1): Same.
23937         (ipa_tm_scan_irr_block): Same.
23938         (ipa_tm_diagnose_transaction): Same.
23939         * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
23940         format a tree code name in a diagnostic.
23941         (verify_types_in_gimple_min_lval): Same.
23942         (verify_types_in_gimple_reference): Same.
23943         (verify_gimple_call): Same.
23944         (verify_gimple_assign_unary): Same.
23945         (verify_gimple_assign_binary): Same.
23946         (verify_gimple_assign_ternary): Same.
23947         (verify_gimple_assign_single): Same.
23948         (verify_gimple_switch): Same.
23949         (verify_gimple_label): Same.
23950         (verify_gimple_phi): Same.
23951         (verify_gimple_in_seq): Same.
23952         (verify_eh_throw_stmt_node): Same.
23953         (collect_subblocks): Same.
23954         (gimple_verify_flow_info): Same.
23955         (do_warn_unused_result): Same.
23956         * tree-inline.c (expand_call_inline): Same.
23957         * tree-into-ssa.c (update_ssa): Same.
23958         * tree.c (tree_int_cst_elt_check_failed): Same.
23959         (tree_vec_elt_check_failed): Same.
23960         (omp_clause_operand_check_failed): Same.
23961         (verify_type_variant): Same.
23962         (verify_type): Same.
23963         * value-prof.c (verify_histograms): Same.
23964         * varasm.c (assemble_start_function): Same.
23966 2019-05-16  Martin Sebor  <msebor@redhat.com>
23968         * config/i386/i386-expand.c (get_element_number): Quote keywords
23969         and other internal names in diagnostics.  Adjust other diagnostic
23970         formatting issues noted by -Wformat-diag.
23971         * config/i386/i386-features.c
23972         (ix86_mangle_function_version_assembler_name): Same.
23973         * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
23974         * config/i386/i386.c (ix86_function_type_abi): Same.
23975         (ix86_function_ms_hook_prologue): Same.
23976         (classify_argument): Same.
23977         (ix86_expand_prologue): Same.
23978         (ix86_md_asm_adjust): Same.
23979         (ix86_memmodel_check): Same.
23981 2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
23983         * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
23984         TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
23985         and fpxx modes.
23987 2019-05-17  H.J. Lu  <hongjiu.lu@intel.com>
23989         PR target/90497
23990         * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
23991         intrinsics without SSE/SSE2/SSSE3.
23992         * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
23993         check.
23994         (*mmx_uavgv8qi3): Likewise.
23996 2019-05-17  Richard Biener  <rguenther@suse.de>
23998         * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
23999         VEC_PERM_EXPR as __VEC_PERM with -gimple.
24001 2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>
24003         * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
24004         vec_sldw insn pattern.
24006 2019-05-17  Richard Biener  <rguenther@suse.de>
24008         * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
24010 2019-05-17  Martin Liska  <mliska@suse.cz>
24012         PR driver/90496
24013         * toplev.c (output_stack_usage): With LTO and sanitizer it
24014         happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
24015         has no file location.
24017 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
24019         PR c++/90484
24020         * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
24021         sz0 is equal to sz1, instead return false in that case.
24023         * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
24024         has non-constant expression, force sctx.lane and use two
24025         argument IFN_GOMP_SIMD_LANE instead of single argument.
24026         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
24027         two argument IFN_GOMP_SIMD_LANE without lhs.
24028         * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
24029         member.
24030         (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
24031         Define.
24032         (LOOP_REQUIRES_VERSIONING): Or in
24033         LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
24034         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
24035         simd_if_cond.
24036         (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
24037         * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
24038         from simd if clause if needed.
24040 2019-05-16  Richard Biener  <rguenther@suse.de>
24042         * tree-affine.c (expr_to_aff_combination): New function split
24043         out from...
24044         (tree_to_aff_combination): ... here.
24045         (aff_combination_expand): Avoid building a GENERIC tree.
24047 2019-05-16  Max Filippov  <jcmvbkbc@gmail.com>
24049         * cgraphunit.c (cgraph_node::expand_thunk): Remove
24050         assemble_start_function and assemble_end_function calls.
24051         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
24052         assemble_start_function and assemble_end_function.
24053         * config/arc/arc.c (arc_output_mi_thunk): Likewise.
24054         * config/arm/arm.c (arm_output_mi_thunk): Likewise.
24055         * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
24056         * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
24057         * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
24058         * config/csky/csky.c (csky_output_mi_thunk): Likewise.
24059         * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
24060         * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
24061         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
24062         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
24063         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
24064         * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
24065         Likewise.
24066         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
24067         * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
24068         * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
24069         * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
24070         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
24071         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
24072         * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
24073         * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
24074         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
24075         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
24076         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
24077         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
24078         * config/spu/spu.c (spu_output_mi_thunk): Likewise.
24079         * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
24080         Likewise.
24081         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
24082         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
24083         * config/vax/vax.c (vax_output_mi_thunk): Likewise.
24085 2019-05-16  Jan Hubicka  <hubicka@ucw.cz>
24087         * tree-ssa-alias.c (alias_stats): Add
24088         aliasing_component_refs_p_may_alias and
24089         aliasing_component_refs_p_no_alias.
24090         (dump_alias_stats): Print aliasing_component_refs_p stats.
24091         (aliasing_component_refs_p): Update stats.
24093 2019-05-16  Martin Liska  <mliska@suse.cz>
24095         PR lto/90500
24096         * multiple_target.c (expand_target_clones): Do not allow
24097         target_clones being used with a symbol that is an alias.
24099 2019-05-16  Vladislav Ivanishin  <vlad@ispras.ru>
24101         PR tree-optimization/90394
24102         * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
24103         positives rather than ICE for cases where (code2 == NE_EXPR
24104         && code1 == BIT_AND_EXPR).
24106 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
24108         PR fortran/90329
24109         * tree-core.h (struct tree_decl_common): Document
24110         decl_nonshareable_flag for PARM_DECLs.
24111         * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
24112         * calls.c (expand_call): Don't try tail call if caller
24113         has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
24114         passed on the stack and callee needs to pass any arguments on the
24115         stack.
24116         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
24117         else if instead of series of mutually exclusive ifs.  Handle
24118         DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
24119         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
24121         * lto-streamer.h (LTO_major_version): Bump to 9.
24123 2019-05-16  Jun Ma  <JunMa@linux.alibaba.com>
24125         PR tree-optimization/90106
24126         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
24127         new parameter as new internal function call, also move it to new
24128         basic block.
24129         (use_internal_fn): Pass internal function call to
24130         shrink_wrap_one_built_in_call_with_conds.
24132 2019-05-15  Jakub Jelinek  <jakub@redhat.com>
24134         * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
24135         max_vf to 1.
24136         * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
24137         safelen_int and set loop->dont_vectorize.
24139 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24141         PR target/89021
24142         * config/i386/i386-builtin.def: Enable MMX intrinsics with
24143         SSE/SSE2/SSSE3.
24144         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
24145         Likewise.
24146         * config/i386/i386-expand.c (ix86_expand_builtin): Allow
24147         SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
24148         * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
24149         is defined.
24151 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24153         PR target/89021
24154         * config/i386/mmx.md (*vec_dupv2sf): Changed to
24155         define_insn_and_split to support SSE emulation.
24156         (*vec_extractv2sf_0): Likewise.
24157         (*vec_extractv2sf_1): Likewise.
24158         (*vec_extractv2si_0): Likewise.
24159         (*vec_extractv2si_1): Likewise.
24160         (*vec_extractv2si_zext_mem): Likewise.
24161         (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
24162         (vec_extractv2sf_1 splitter): Likewise.
24163         (vec_extractv2sfsf): Likewise.
24164         (vec_setv2si): Likewise.
24165         (vec_extractv2si_1 splitter): Likewise.
24166         (vec_extractv2sisi): Likewise.
24167         (vec_setv4hi): Likewise.
24168         (vec_extractv4hihi): Likewise.
24169         (vec_setv8qi): Likewise.
24170         (vec_extractv8qiqi): Likewise.
24171         (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
24172         TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
24173         (vec_extractv2sisi): Likewise.
24174         (vec_extractv4hihi): Likewise.
24175         (vec_extractv8qiqi): Likewise.
24176         (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
24177         TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
24178         (vec_initv2sisi): Likewise.
24179         (vec_initv4hihi): Likewise.
24180         (vec_initv8qiqi): Likewise.
24181         (vec_setv2si): Also allow TARGET_MMX_WITH_SSE.  Pass
24182         TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
24183         (vec_setv4hi): Likewise.
24184         (vec_setv8qi): Likewise.
24186 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24188         PR target/89021
24189         * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
24190         TARGET_MMX_WITH_SSE.
24191         (MMXMODE:*mov<mode>_internal): Likewise.
24192         (MMXMODE:movmisalign<mode>): Likewise.
24194 2019-05-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24196         PR target/89021
24197         * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
24198         * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
24199         (sse2_cvtpd2pi): Ditto.
24200         (sse2_cvttpd2pi): Ditto.
24201         (*vec_concatv2sf_sse4_1): Ditto.
24202         (*vec_concatv2sf_sse): Ditto.
24203         (*vec_concatv2si_sse4_1): Ditto.
24204         (*vec_concatv2si): Ditto.
24205         (*vec_concatv4si_0): Ditto.
24206         (*vec_concatv2di_0): Ditto.
24208 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24210         PR target/89021
24211         * config/i386/sse.md (abs<mode>2): Add SSE emulation.
24213 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24215         PR target/89021
24216         * config/i386/sse.md (ssse3_palignrdi): Changed to
24217         define_insn_and_split to support SSE emulation.
24219 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24221         PR target/89021
24222         * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
24224 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24226         PR target/89021
24227         * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
24228         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
24229         SSE emulation.
24231 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24233         PR target/89021
24234         * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
24235         or TARGET_MMX_WITH_SSE.
24236         (*ssse3_pmulhrswv4hi3): Add SSE emulation.
24238 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24240         PR target/89021
24241         * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
24243 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24245         PR target/89021
24246         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
24247         Changed to define_insn_and_split to support SSE emulation.
24249 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24251         PR target/89021
24252         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
24253         Changed to define_insn_and_split to support SSE emulation.
24255 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24257         PR target/89021
24258         * config/i386/mmx.md (mmx_<emms>): Renamed to ...
24259         (*mmx_<emms>): This.
24260         (mmx_<emms>): New expander.
24262 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24264         PR target/89021
24265         * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
24266         support.
24267         (*sse2_umulv1siv1di3): Add SSE2 emulation.
24269 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24271         PR target/89021
24272         * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
24274 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24276         PR target/89021
24277         * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
24279 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24281         PR target/89021
24282         * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
24283         TARGET_MMX_WITH_SSE.
24284         (*mmx_uavgv4hi3): Add SSE emulation.
24286 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24288         PR target/89021
24289         * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
24290         and TARGET_MMX_WITH_SSE.
24291         (*mmx_uavgv8qi3): Add SSE emulation.
24293 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24295         PR target/89021
24296         * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
24297         maskmovdqu for __MMX_WITH_SSE__.
24299 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24301         PR target/89021
24302         * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
24303         TARGET_MMX and TARGET_MMX_WITH_SSE.
24304         (*mmx_umulv4hi3_highpart): Add SSE emulation.
24306 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24308         PR target/89021
24309         * config/i386/mmx.md (mmx_pmovmskb): Changed to
24310         define_insn_and_split to support SSE emulation.
24312 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24314         PR target/89021
24315         * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
24316         and TARGET_MMX_WITH_SSE.
24317         (mmx_<code>v8qi3): Likewise.
24318         (smaxmin:<code>v4hi3): New.
24319         (umaxmin:<code>v8qi3): Likewise.
24320         (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
24321         (umaxmin:*mmx_<code>v8qi3): Likewise.
24323 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24325         PR target/89021
24326         * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
24327         TARGET_MMX_WITH_SSE.
24328         (*mmx_pinsrw): Add SSE emulation.
24330 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24332         PR target/89021
24333         * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
24335 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24337         PR target/89021
24338         * config/i386/sse.md (sse_cvtpi2ps): Changed to
24339         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
24340         SSE emulation.
24342 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24344         PR target/89021
24345         * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
24346         (sse_cvttps2pi): Likewise.
24348 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24350         PR target/89021
24351         * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
24352         TARGET_MMX_WITH_SSE.
24353         (mmx_pshufw_1): Add SSE emulation.
24354         (*vec_dupv4hi): Changed to define_insn_and_split and also allow
24355         TARGET_MMX_WITH_SSE to support SSE emulation.
24357 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24359         PR target/89021
24360         * config/i386/constraints.md (Yw): New constraint.
24361         * config/i386/mmx.md (*vec_dupv2si): Changed to
24362         define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
24363         support SSE emulation.
24365 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24367         PR target/89021
24368         * config/i386/mmx.md (mmx_eq<mode>3): Also allow
24369         TARGET_MMX_WITH_SSE.
24370         (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
24371         support.
24372         (mmx_gt<mode>3): Likewise.
24374 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24376         PR target/89021
24377         * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
24378         TARGET_MMX_WITH_SSE.  Add SSE support.
24380 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24382         PR target/89021
24383         * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
24384         TARGET_MMX_WITH_SSE.
24385         (any_logic:<code><mode>3): New.
24386         (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
24387         Add SSE support.
24389 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24391         PR target/89021
24392         * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
24393         TARGET_MMX_WITH_SSE.  Add SSE emulation.
24394         (mmx_<shift_insn><mode>3): Likewise.
24395         (ashr<mode>3): New.
24396         (<shift_insn><mode>3): Likewise.
24398 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24400         PR target/89021
24401         * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
24402         (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.  Add SSE support.
24404 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24406         PR target/89021
24407         * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
24408         TARGET_MMX_WITH_SSE.
24409         (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
24410         SSE support.
24412 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24414         PR target/89021
24415         * config/i386/mmx.md (mmx_mulv4hi3): Also allow
24416         TARGET_MMX_WITH_SSE.
24417         (mulv4hi3): New.
24418         (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
24419         support.
24421 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24423         PR target/89021
24424         * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
24425         (plusminus:mmx_<plusminus_insn><mode>3): Check
24426         TARGET_MMX_WITH_SSE.
24427         (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
24428         (<plusminus_insn><mode>3): New.
24429         (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
24430         (*mmx_<plusminus_insn><mode>3): Likewise.
24432 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24434         PR target/89021
24435         * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
24436         * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
24437         prototype.
24438         * config/i386/mmx.m (mmx_punpckhbw): Changed to
24439         define_insn_and_split to support SSE emulation.
24440         (mmx_punpcklbw): Likewise.
24441         (mmx_punpckhwd): Likewise.
24442         (mmx_punpcklwd): Likewise.
24443         (mmx_punpckhdq): Likewise.
24444         (mmx_punpckldq): Likewise.
24446 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24447             Uros Bizjak  <ubizjak@gmail.com>
24449         PR target/89021
24450         * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
24451         New function.
24452         (ix86_split_mmx_pack): Likewise.
24453         * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
24454         New prototype.
24455         (ix86_split_mmx_pack): Likewise.
24456         * config/i386/i386.md (mmx_isa): New.
24457         (enabled): Also check mmx_isa.
24458         * config/i386/mmx.md (any_s_truncate): New code iterator.
24459         (s_trunsuffix): New code attr.
24460         (mmx_packsswb): Removed.
24461         (mmx_packssdw): Likewise.
24462         (mmx_packuswb): Likewise.
24463         (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
24464         MMX packsswb/packuswb with SSE2.
24465         (mmx_packssdw): Likewise.
24466         * config/i386/predicates.md (register_mmxmem_operand): New.
24468 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
24470         PR target/89021
24471         * config/i386/i386-c.c (ix86_target_macros_internal): Define
24472         __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
24473         * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
24474         TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
24475         (ix86_vector_mode_supported_p): Likewise.
24476         * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
24478 2019-05-15  Martin Liska  <mliska@suse.cz>
24480         PR middle-end/90478
24481         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
24482         Check for overflow.
24484 2019-05-15  Richard Biener  <rguenther@suse.de>
24486         * tree-into-ssa.c (pass_build_ssa::execute): Run
24487         update_address_taken before going into SSA.
24489 2019-05-15  Richard Biener  <rguenther@suse.de>
24491         * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
24492         as __BIT_FIELD_REF with type with -gimple.
24494 2019-05-15  Vladislav Ivanishin  <vlad@ispras.ru>
24496         * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
24497         semantically equivalent branches (left over after prior refactorings).
24499 2019-05-15  Richard Biener  <rguenther@suse.de>
24501         PR tree-optimization/88828
24502         * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
24503         bogus check.
24505 2019-05-14  Richard Biener  <rguenther@suse.de>
24507         * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
24508         as __VIEW_CONVERT with -gimple.
24510 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
24512         PR target/82920
24513         * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
24514         Darwin.
24516 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
24518         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
24519         define_split to become a define_insn_and_split.
24521 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
24523         * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
24524         arguments.
24525         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
24526         * config/rs6000/rs6000.md (epilogue_type): New define_enum.
24527         (sibcall_epilogue): Adjust.
24528         (epilogue): Adjust.
24530 2019-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24532         * config.gcc: Move *-*-solaris2.10* from obsolete configurations
24533         to unsupported ones.
24534         Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
24535         * config.host: Likewise.
24536         * config/i386/sol2.h (ASM_COMMENT_START): Remove.
24537         * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
24538         __svr4__]: Remove "brand" fallback.
24539         [!KSTAT_DATA_STRING]: Remove.
24540         * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
24541         to *-*-solaris2*.
24542         (comdat_group): Likewise.
24543         (set_have_as_tls): Likewise.
24544         (gcc_cv_target_dl_iterate_phdr): Likewise.
24545         (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
24546         (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
24547         * configure: Regenerate.
24548         * doc/install.texi: Simplify Solaris target triplets.
24549         (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
24550         (Specific, *-*-solaris2*): Document Solaris 10 removal.
24551         Remove Solaris 10 references.
24552         Remove obsolete Solaris bug reference.
24553         (Specific, sparc-sun-solaris2.10): Remove.
24555 2019-05-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24557         * config/i386/i386.md (any_div): New code iterator.
24558         (paired_mod): New code attribute.
24559         (sgnprefix): Handle DIV and UDIV RTXes.
24560         (u): Ditto.
24561         (<u>divmod<mode>4): Macroize expander from divmod<mode>4
24562         and udivmod<mode>4 patterns using any_div code iterator.
24563         (divmod splitters): Macroize splitters using any_div code iterator.
24564         (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
24565         (*udivmodsi4_pow2_zext_2): Ditto.
24566         (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
24567         and *udivmod<mode>4_noext patterns using any_div code iterator.
24568         (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
24569         *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
24570         patterns using any_div code iterator.
24571         (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
24572         *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
24573         patterns using any_div code iterator.
24574         (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
24575         udivmodhiqi3 patterns using any_extend code iterator.
24577 2019-05-14  Richard Biener  <rguenther@suse.de>
24578             H.J. Lu  <hongjiu.lu@intel.com>
24580         PR tree-optimization/88828
24581         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
24582         permuting in a single non-constant element not extracted
24583         from a vector.
24585 2019-05-14  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
24587         * internal-fn.def (SIGNBIT): New.
24588         * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
24589         defined.
24590         (signbitv4sf2): Likewise.
24592 2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>
24594         PR target/90357
24595         * config/mips/mips.c (mips_split_move): Skip forward SRC into
24596         next insn when the SRC reg is dead.
24598 2019-05-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
24600         * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
24601         (alloc_cand_and_find_basis): Ditto.
24602         (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
24603         (create_mul_imm_cand, create_add_ssa_cand): Ditto.
24604         (create_add_imm_cand, slsr_process_cast): Ditto.
24605         (slsr_process_copy, replace_mult_candidate): Ditto.
24606         (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
24607         (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
24608         (pass_strength_reduction::execute): Init the first NULL element.
24610 2019-05-13  Nathan Sidwell  <nathan@acm.org>
24612         * gcc.c (execute): Simplify cond-expr into if.  Reformat comment.
24613         (run_attempt): Reformat line break.
24615 2019-05-13  David Edelsohn  <dje.gcc@gmail.com>
24617         PR target/90418
24618         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
24619         data registers in sibcall epilogues.
24620         Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
24622 2019-05-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24624         PR target/89221
24625         * configure.ac (--enable-frame-pointer):
24626         Disable by default for cygwin and mingw.
24627         * configure: Regenerate.
24629 2019-05-13  Nathan Sidwell  <nathan@acm.org>
24631         * dwarf2out.c (breakout_comdat_types): Move comment to correct
24632         piece of code.
24633         (const_ok_for_output_1): Balance parens around #if/#else/#endif
24634         (gen_member_die): Move abstract origin check earlier.  Only VARs
24635         can be static_inline_p.  Simplify splicing control flow.
24637 2019-05-13  Richard Biener  <rguenther@suse.de>
24639         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
24640         VIEW_CONVERT_EXPR.
24641         (vect_build_slp_tree_1): Likewise.
24643 2019-05-13  Richard Biener  <rguenther@suse.de>
24645         PR tree-optimization/90402
24646         * tree-if-conv.c (tree_if_conversion): Value number only
24647         the loop body by making the latch an exit of the region
24648         as well.
24649         * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
24650         processing PHIs.
24651         (do_rpo_vn): Deal with multiple edges into the entry block
24652         that are not backedges inside the region by skipping PHIs
24653         of the entry block.
24655 2019-05-13  Richard Biener  <rguenther@suse.de>
24657         PR tree-optimization/90316
24658         * tree-ssa-pre.c (insert_aux): Fold into ...
24659         (insert): ... this function.  Use a RPO walk to reduce the
24660         number of required iterations.
24662 2019-05-13  Martin Liska  <mliska@suse.cz>
24664         PR tree-optimization/90416
24665         * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
24666         string instead of passing the second part as va_arg argument.
24668 2019-05-13  Martin Liska  <mliska@suse.cz>
24670         PR gcov-profile/90380
24671         * gcov.c (handle_cycle): Do not support zero cycle count,
24672         it should not be possible.
24673         (path_contains_zero_cycle_arc): New function.
24674         (circuit): Ignore zero cycle arc counts.
24676 2019-05-13  Martin Liska  <mliska@suse.cz>
24678         PR gcov-profile/90380
24679         * gcov.c (enum loop_type): Remove the enum and
24680         the operator.
24681         (handle_cycle): Assert that we should not reach
24682         a negative count.
24683         (circuit): Use loop_found instead of a tri-state loop_type.
24684         (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
24685         happen.
24687 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
24689         PR target/82920
24690         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
24691         (ix86_output_indirect_branch_via_reg): Use output mechanism
24692         accounting for __USER_LABEL_PREFIX__.
24693         (ix86_output_indirect_branch_via_push): Likewise.
24694         (ix86_output_function_return): Likewise.
24695         (ix86_output_indirect_function_return): Likewise.
24697 2019-05-12  Richard Sandiford  <richard.sandiford@arm.com>
24699         * doc/md.texi: Document use of code attributes in rtx patterns.
24700         * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
24701         * read-rtl.c (find_code): Split out search loops into...
24702         (maybe_find_code): ...this new function.
24703         (check_code_iterator): Make the error message more informative.
24704         (check_code_attribute): New function.
24705         (rtx_reader::rtx_alloc_for_name): Likewise.
24706         (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
24707         * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
24708         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
24709         <max_opp> directly as an rtx code instead of via a match_operator.
24710         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
24711         (<su>abd<mode>_3): Update accordingly.
24713 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
24715         * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
24716         is given, print the state of the EH "save world" computation for
24717         Darwin.
24719 2019-05-11  Jakub Jelinek  <jakub@redhat.com>
24721         PR c++/59813
24722         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
24723         EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
24725 2019-05-11  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24727         * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
24728         Use pinsrd for TARGET_SSE4_1.
24729         * config/i386/sse.md (movdi_to_sse): Ditto.
24731 2019-05-10  Richard Biener  <rguenther@suse.de>
24733         * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
24734         (do_rpo_vn): Initialize next_value_id.
24736 2019-05-10  Martin Liska  <mliska@suse.cz>
24738         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
24739         Fix plural form.
24741 2019-05-10  Jakub Jelinek  <jakub@redhat.com>
24743         PR tree-optimization/90385
24744         * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
24745         arguments of the exit phis.
24747         PR c++/90383
24748         * tree-inline.h (struct copy_body_data): Add do_not_fold member.
24749         * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
24750         id->do_not_fold.
24751         (copy_tree_body_r): Likewise.
24752         (copy_fn): Set id.do_not_fold to true.
24754 2019-05-10  Martin Liska  <mliska@suse.cz>
24756         * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
24757         Reapply changes from r269790.
24759 2019-05-10  Martin Liska  <mliska@suse.cz>
24761         PR middle-end/90340
24762         * doc/invoke.texi: New params.
24763         * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
24764         (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
24765         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
24766         Use it.
24767         * tree-switch-conversion.h (struct jump_table_cluster):
24768         Likewise.
24770 2019-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
24772         * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
24774 2019-05-09  Bill Schmidt  <wschmidt@linux.ibm.com>
24776         * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
24778 2019-05-09  Alexander Monakov  <amonakov@ispras.ru>
24780         PR rtl-optimization/88879
24781         * sel-sched.c (sel_target_adjust_priority): Remove assert.
24783 2019-05-09  Richard Earnshaw  <rearnsha@arm.com>
24785         PR target/90405
24786         * config/arm/arm.c (callee_saved_reg_p): Move before
24787         thumb_find_work_register.
24788         (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
24789         thumb_find_work_register.  Only call df_get_live_out once.
24790         (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
24791         (thumb_find_work_register): Use
24792         thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
24793         algorithms to locate a spare call clobbered reg.
24795 2019-05-09  Martin Liska  <mliska@suse.cz>
24797         * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
24798         and MAX_EXPR in GIMPLE FE format.
24800 2019-05-09  Martin Liska  <mliska@suse.cz>
24802         * tree-cfg.c (dump_function_to_file): Dump entry BB count.
24803         * gimple-pretty-print.c (dump_gimple_bb_header):
24804         Dump BB count.
24805         (pp_cfg_jump): Dump edge probability.
24806         * profile-count.c (profile_quality_as_string): Simplify
24807         with a static array.
24808         (parse_profile_quality): New function.
24809         (profile_count::dump): Simplify with a static array.
24810         (profile_count::from_gcov_type): Add new argument.
24811         * profile-count.h (parse_profile_quality): Likewise.
24812         * predict.h (set_hot_bb_threshold): New.
24813         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
24814         New param.
24815         * predict.c (get_hot_bb_threshold): Set from the new param.
24816         (set_hot_bb_threshold): New.
24818 2019-05-09  Richard Biener  <rguenther@suse.de>
24820         PR tree-optimization/90395
24821         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
24822         rewrite vector stores that throw internally.
24824 2019-05-09  Thomas Schwinge  <thomas@codesourcery.com>
24826         * cif-code.def (CHKP): Remove.
24828         PR target/89221
24829         * configure.ac (--enable-frame-pointer): Disable by default for
24830         GNU systems.
24831         * configure: Regenerate.
24833 2019-05-09  Alan Modra  <amodra@gmail.com>
24835         PR target/89271
24836         * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
24837         (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
24838         * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
24839         cost for general <-> vsx when direct moves are available.
24840         Cost union classes at minimal cost for any reg in the class.
24841         Correct calculation for moves between vsx, float, and altivec.
24842         Don't return a low cost for moves between special regs.  Don't
24843         use hard coded register numbers.
24844         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
24845         (rs6000_ira_change_pseudo_allocno_class): New function.
24846         * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
24847         (movdi_internal32, movdi_internal64): Remove '*' from vsx register
24848         alternatives.
24849         (movsi_internal1): Don't disparage vector alternatives.
24850         (mov<mode>_internal): Likewise, excepting alternative that
24851         will be split.
24852         * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
24853         we <- b alternative.
24855 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
24857         PR c++/59813
24858         PR tree-optimization/89060
24859         * tree-ssa-live.h (live_vars_map): New typedef.
24860         (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
24861         * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
24862         (struct compute_live_vars_data): New type.
24863         (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
24864         live_vars_at_stmt, destroy_live_vars): New functions.
24865         * tree-tailcall.c: Include tree-ssa-live.h.
24866         (live_vars, live_vars_vec): New global variables.
24867         (find_tail_calls): Perform variable life analysis before punting.
24868         (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
24869         * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
24870         member.
24871         * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
24872         Perform variable life analysis to select variables that really need
24873         clobbers added.
24874         (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
24875         instead set id->eh_landing_pad_dest and assert it is the same.
24876         (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
24878 2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
24879             Richard Earnshaw  <rearnsha@arm.com>
24881         PR target/88167
24882         * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
24883         function.
24884         (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
24885         (thumb1_compute_save_core_reg_mask): Don't force a spare work
24886         register if both the epilogue and prologue can use call-clobbered
24887         regs.
24888         (thumb1_unexpanded_epilogue): Use
24889         thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
24890         picking temporaries for restoring high regs to match that of the
24891         prologue where possible.
24892         (thumb1_expand_prologue): Add any usable call-clobbered low registers to
24893         the list of work registers.  Detect if the return address is still live
24894         at the end of the prologue and avoid using it for a work register if so.
24895         If the return address is not live, add LR to the list of pushable regs
24896         after the first pass.
24898 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
24900         PR tree-optimization/90078
24901         * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
24902         (INFTY): Increase the value for infinite cost.
24903         (struct comp_cost): Promote type of members to int64_t.
24904         (infinite_cost): Don't set complexity in initialization.
24905         (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
24906         overflows to infinite_cost.
24907         (adjust_setup_cost): Promote type of parameter and cost computation
24908         to int64_t.
24909         (struct ainc_cost_data, struct iv_ca): Promote type of member to
24910         int64_t.
24911         (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
24912         cost computation to int64_t.
24913         (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
24914         int64_t's format specifier in dump.
24916 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
24918         PR tree-optimization/90240
24919         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
24920         with respect to scaling factor pre-computed for each basic block.
24921         (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
24922         (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
24923         (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
24924         (tree_ssa_iv_optimize_loop): Call determine_scaling_factor.  Extend
24925         live range for array of loop's basic blocks.  Cleanup aux field of
24926         loop's basic blocks.
24928 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
24930         PR tree-optimization/90356
24931         * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
24933 2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
24935         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
24936         OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
24937         (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
24938         (ix86_handle_option): Handle -mavx512bf16.
24939         * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
24940         to extra_headers.
24941         * config/i386/avx512bf16vlintrin.h: New.
24942         * config/i386/avx512bf16intrin.h: New.
24943         * config/i386/cpuid.h (bit_AVX512BF16): New.
24944         * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
24945         * config/i386/i386-builtin-types.def: Add new types.
24946         * config/i386/i386-builtin.def: Add new builtins.
24947         * config/i386/i386-c.c (ix86_target_macros_internal): Define
24948         __AVX512BF16__.
24949         * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
24950         (ix86_option_override_internal): Handle BF16.
24951         (ix86_valid_target_attribute_inner_p): Ditto.
24952         * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
24953         * config/i386/i386-builtin.c (enum processor_features): Add
24954         F_AVX512BF16.
24955         (static const _isa_names_table isa_names_table): Ditto.
24956         * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
24957         (PTA_AVX512BF16): Ditto.
24958         * config/i386/i386.opt: Add -mavx512bf16.
24959         * config/i386/immintrin.h: Include avx512bf16intrin.h
24960         and avx512bf16vlintrin.h.
24961         * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
24962         avx512f_cvtneps2bf16_<mode><mask_name>,
24963         avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
24964         * config/i386/subst.md (mask_half): Add new subst.
24965         * doc/invoke.texi: Document -mavx512bf16.
24967 2019-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
24969         * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
24970         Delete declaration.
24971         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
24972         (rs6000_debug_legitimize_reload_address): Delete.
24973         (rs6000_legitimize_reload_address_ptr): Delete.
24974         (rs6000_option_override_internal): Adjust.
24975         (mem_operand_gpr): Adjust comment.
24976         (legitimate_lo_sum_address_p): Ditto.
24977         (rs6000_legitimize_reload_address): Delete.
24978         (rs6000_debug_legitimize_reload_address): Delete.
24979         * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
24981 2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24983         PR target/89765
24984         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24985         In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
24986         to compute vector element selector for both constant and variable
24987         operands.
24989 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
24991         * config/i386/i386.md (cvt_mnemonic): New mode attribute.
24992         (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
24993         ashrdi3_cvt using SWI48 mode iterator.
24995 2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
24997         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
24998         (aarch64_<su>abd<mode>_3): Likewise.
24999         (*aarch64_<su>abd<mode>_3): New define_insn.
25000         (<sur>sad<vsi2qi>): New define_expand.
25001         * config/aarch64/iterators.md: Added MAX_OPP attribute.
25002         * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
25003         (build_vect_cond_expr): Likewise.
25005 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25007         * cfgexpand.c (asm_clobber_reg_is_valid): Reject
25008         clobbers outside of accessible_reg_set.
25009         * config/i386/i386.c (ix86_conditional_register_usage):
25010         Disable register sets by clearing corresponding bits in
25011         accessible_reg_set.  Do not set corresponding bits in fixed_regs,
25012         call_used_regs and don't clear corresponding reg_names array members.
25014 2019-05-07  Richard Biener  <rguenther@suse.de>
25016         * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
25017         not specified still compute a comp_vectype for invariant
25018         compares.
25020 2019-05-07  Richard Biener  <rguenther@suse.de>
25022         PR tree-optimization/90316
25023         * tree-ssa-pre.c (translate_vuse_through_block): When
25024         same_valid is NULL do not bother to search for a virtual
25025         PHI continuation.
25026         (phi_translate_1): When operands changed we cannot keep
25027         the same value-number so do not bother to ask whether
25028         that's possible from translate_vuse_through_block.
25030 2019-05-07  Martin Liska  <mliska@suse.cz>
25032         * bitmap.c (bitmap_register): Come up with
25033         alloc_descriptor_max_uid and assign it for
25034         a new bitmap.
25035         (register_overhead): Use get_descriptor as
25036         a descriptor.
25037         (release_overhead): New.
25038         (bitmap_elem_to_freelist): Call it.
25039         (bitmap_elt_clear_from): Likewise.
25040         (bitmap_obstack_free): Likewise.
25041         (bitmap_move): Sensitively release memory.
25042         * bitmap.h (struct GTY): Add alloc_descriptor and padding.
25043         (bitmap_initialize): Initialize alloc_descriptor to zero.
25044         * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
25046 2019-05-07  Richard Biener  <rguenther@suse.de>
25048         * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
25049         we build a SLP node.  Remove max_size and limiting.
25050         (vect_analyze_slp_instance): Record and dump size of the SLP graph.
25052 2019-05-07  Richard Biener  <rguenther@suse.de>
25054         PR tree-optimization/90316
25055         * tree-ssa-alias.h (get_continuation_for_phi): Take walking
25056         limit by reference.
25057         (walk_non_aliased_vuses): Take walking limit argument.
25058         * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
25059         walking if it is reached instead of just counting.
25060         (get_continuation_for_phi): Likewise.
25061         (walk_non_aliased_vuses): Likewise, instead of leaving counter
25062         limiting to the callback.
25063         * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
25064         (vn_reference_lookup_3): Likewise.
25065         (vn_reference_lookup_pieces): Likewise.
25066         (vn_reference_lookup): Likewise.
25067         * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
25068         * tree-ssa-scopedtables.c (vuse_eq): Adjust.
25069         (avail_exprs_stack::lookup_avail_expr): Likewise.
25071 2019-05-07  Jan Hubicka  <hubicka@ucw.cz>
25073         * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
25074         for comparaible types in the second direction even if first one
25075         hits incomparable type.
25077 2019-05-07  Richard Biener  <rguenther@suse.de>
25079         PR lto/90369
25080         * lto-wrapper.c (debug_objcopy): Use the original filename
25081         including archive offset for the filename used for -save-temps.
25083 2019-05-07  Li Jia He  <helijia@linux.ibm.com>
25085         * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
25086         detection.
25088 2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
25089             Hongtao Liu  <hongtao.liu@intel.com>
25091         PR target/89750
25092         PR target/86444
25093         * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
25094         Modified, original implementation isn't correct.
25096 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
25098         * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
25099         (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
25100         (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
25101         (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
25102         (FRAME_POINTER_REGNUM): Change numbering.
25103         * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
25104         (alt_reg_names): Adjust.
25105         (rs6000_conditional_register_usage): Don't mark hard register 64 as
25106         fixed.
25107         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
25108         (DWARF_FRAME_REGISTERS): Delete.
25109         (DWARF2_FRAME_REG_OUT): Fix whitespace.
25110         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
25111         Adjust.
25112         (REG_ALLOC_ORDER): Adjust.
25113         (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
25114         (REG_CLASS_CONTENTS): Adjust.
25115         (RETURN_ADDR_RTX): Change comment.
25116         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
25117         instead of 67.
25118         (REGISTER_NAMES): Adjust.
25119         (ADDITIONAL_REGISTER_NAMES): Adjust.
25120         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
25122 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
25124         * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
25125         Delete.
25126         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
25127         (DWARF_FRAME_REGISTERS): Adjust.
25128         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
25129         Adjust.
25130         (REG_ALLOC_ORDER): Adjust.
25131         (enum reg_class): Delete SPR_REGS.
25132         (REG_CLASS_NAMES): Delete SPR_REGS.
25133         (REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
25134         (REGISTER_NAMES): Adjust.
25135         (ADDITIONAL_REGISTER_NAMES): Adjust.
25136         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
25137         * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
25138         * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
25139         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
25140         (htm_spr_regno): Delete.
25141         (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
25142         argument.
25143         (rs6000_dbx_register_number): Adjust.
25145 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
25147         * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
25149 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
25151         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
25152         FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
25154 2019-05-06  Jakub Jelinek  <jakub@redhat.com>
25156         PR tree-optimization/88709
25157         PR tree-optimization/90271
25158         * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
25159         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
25160         non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
25161         variable.
25162         (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
25163         of the store merging group is larger than
25164         PARAM_STORE_MERGING_MAX_SIZE parameter.
25165         (split_group): Add bzero_first argument.  If set, always emit first
25166         the first store which must be = {} of the whole area and then for the
25167         rest of the stores consider all zero bytes as paddings.
25168         (imm_store_chain_info::output_merged_store): Check if first store
25169         is = {} of the whole area and if yes, determine which setting of
25170         bzero_first for split_group gives smaller number of stores.  Adjust
25171         split_group callers.
25172         (lhs_valid_for_store_merging_p): Allow decls.
25173         (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
25174         no elts.
25175         (pass_store_merging::process_store): Likewise.
25177 2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25179         PR target/89424
25180         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
25181         handling of V1TImode.
25183 2019-05-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25185         PR target/89221
25186         * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
25187         and enable_frame_pointer ...
25188         * configure.ac: ... here.  Update help strings for
25189         --enable-frame-pointer.
25190         * configure: Regenerate.
25191         * config/i386/i386-options.c (ix86_option_override_internal): Remove
25192         USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
25193         * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
25194         (USE_X86_64_FRAME_POINTER): Ditto.
25196 2019-05-06  Martin Liska  <mliska@suse.cz>
25198         * config.gcc: Append to target_gtfiles and fix indentation.
25200 2019-05-06  Richard Biener  <rguenther@suse.de>
25202         PR tree-optimization/90358
25203         * tree-vect-stmts.c (get_group_load_store_type): Properly
25204         detect unused upper half of load.
25205         (vectorizable_load): Likewise.
25207 2019-05-06  Richard Biener  <rguenther@suse.de>
25209         PR tree-optimization/88828
25210         * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
25211         (simplify_vector_constructor): ...here.  Handle constants in
25212         the constructor.
25214 2019-05-06  Richard Biener  <rguenther@suse.de>
25216         PR tree-optimization/90328
25217         * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
25218         * tree-data-ref.c (dr_may_alias_p): Check whether the clique
25219         is valid in the loop nest before using it.
25220         (initialize_data_dependence_relation): Adjust.
25221         * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
25222         loop as loop-nest to dr_may_alias_p.
25224 2019-05-06  Richard Biener  <rguenther@suse.de>
25226         * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
25228 2019-05-06  Richard Biener  <rguenther@suse.de>
25230         PR tree-optimization/90316
25231         * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
25232         compute target on demand.
25233         (get_continuation_for_phi): Remove code walking stmts to
25234         get to a target virtual operand which could end up being
25235         quadratic.
25237 2019-05-06  Martin Liska  <mliska@suse.cz>
25239         PR sanitizer/90312
25240         * config/i386/i386-options.c (ix86_option_override_internal): Error only
25241         when -mabi is selected to a non-default version.
25243 2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
25244             Martin Liska  <mliska@suse.cz>
25246         * Makefile.in: Add lto-dump.texi.
25247         * cgraph.h: Add new functions get_visibility_string and
25248         get_symtab_type_string.
25249         * doc/gcc.texi: Include lto-dump section.
25250         * doc/lto-dump.texi: New file.
25251         * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
25252         (parse_dump_option): Factor out this function.
25253         * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
25254         (parse_dump_option): Export the function.
25255         * symtab.c (symtab_node::get_visibility_string): New function.
25256         (symtab_node::get_symtab_type_string): Likewise.
25258 2019-05-06  Martin Liska  <mliska@suse.cz>
25260         * config/i386/i386-builtins.c: New file.
25261         * config/i386/i386-builtins.h: New file.
25262         * config/i386/i386-expand.c: New file.
25263         * config/i386/i386-expand.h: New file.
25264         * config/i386/i386-features.c: New file.
25265         * config/i386/i386-features.h: New file.
25266         * config/i386/i386-options.c: New file.
25267         * config/i386/i386-options.h: New file.
25268         * config.gcc: Add new files into extra_objs and
25269         target_gtfiles.
25270         * config/i386/i386.c: Split content of the file
25271         into newly introduced files.
25272         * config/i386/i386.h: Declare common variables
25273         and macros.
25274         * config/i386/t-i386: Define dependencies for new files.
25276 2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
25278         PR target/89400
25279         * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
25280         Restrict 'all' variant to 32-bit configurations.
25281         (unaligned_loadhiu): Likewise.
25282         (unaligned_storehi): Likewise.
25283         (unaligned_storesi): Likewise.
25284         (unaligned_loadhis): Disable when compiling for thumb1.
25286 2019-05-03  Marc Glisse  <marc.glisse@inria.fr>
25288         PR tree-optimization/90269
25289         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
25290         Ignore clobbers.
25292 2019-05-03  Martin Liska  <mliska@suse.cz>
25294         * hash-map.h: Add is_empty function.
25295         * hash-set.h: Likewise.
25296         * hash-table.h: Likewise.
25297         * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
25298         elements () == 0 (and similar usages).
25299         * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
25300         * gimplify.c (gimplify_bind_expr): Likewise.
25301         (gimplify_switch_expr): Likewise.
25302         * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
25303         * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
25304         * postreload-gcse.c (dump_hash_table): Likewise.
25305         (gcse_after_reload_main): Likewise.
25306         * predict.c (combine_predictions_for_bb): Likewise.
25307         * tree-parloops.c (reduction_phi): Likewise.
25308         (separate_decls_in_region): Likewise.
25309         (transform_to_exit_first_loop): Likewise.
25310         (gen_parallel_loop): Likewise.
25311         (gather_scalar_reductions): Likewise.
25312         (try_create_reduction_list): Likewise.
25313         * var-tracking.c (dump_vars): Likewise.
25314         (emit_notes_for_changes): Likewise.
25315         (vt_emit_notes): Likewise.
25317 2019-05-03  Richard Biener  <rguenther@suse.de>
25319         PR tree-optimization/90316
25320         * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
25321         before running VN.
25323 2019-05-03  Richard Biener  <rguenther@suse.de>
25325         * tree-vect-stmts.c (get_group_load_store_type): Avoid
25326         peeling for gaps by loading only lower halves of vectors
25327         if possible.
25328         (vectorizable_load): Likewise.
25330 2019-05-03  Richard Biener  <rguenther@suse.de>
25332         PR middle-end/89518
25333         * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
25335 2019-05-03  Richard Biener  <rguenther@suse.de>
25337         PR middle-end/87314
25338         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
25339         Handle STRING_CST vs DECL or STRING_CST.
25341 2019-05-03  Richard Biener  <rguenther@suse.de>
25343         PR tree-optimization/88963
25344         * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
25345         vector loads feeding only BIT_FIELD_REFs to component
25346         loads.  Rewrite stores fed by CONSTRUCTORs to component
25347         stores.
25349 2019-05-03  Jakub Jelinek  <jakub@redhat.com>
25351         * opts.h (finish_options): Remove lang_mask argument.
25352         (print_help, help_option_argument): Declare.
25353         * opts.c (print_help): Remove forward declaration, no longer static.
25354         (finish_options): Remove lang_mask argument, don't call print_help
25355         here.
25356         * opts-global.c (decode_options): Adjust finish_option caller, call
25357         print_help here.
25359         PR tree-optimization/90303
25360         * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
25361         TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
25363 2019-05-03  Richard Biener  <rguenther@suse.de>
25365         PR tree-optimization/89698
25366         * gimple-fold.c (canonicalize_constructor_val): Early out
25367         for constants, handle unfolded INTEGER_CSTs as they appear in
25368         C++ virtual table ctors.
25370 2019-05-03  Richard Biener  <rguenther@suse.de>
25372         * passes.c (execute_function_todo): Remove dead code.
25374 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
25376         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
25377         the internal register number, for any "real" register.
25379 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
25381         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
25382         correct numbers for TFHAR, TFIAR, TEXASR.
25384 2019-05-02  Richard Biener  <rguenther@suse.de>
25386         PR tree-optimization/89653
25387         * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
25388         update-address-taken before the pass.
25389         * passes.def (pass_tree_loop_init): Put comment before it.
25391 2019-05-02  Richard Biener  <rguenther@suse.de>
25393         PR tree-optimization/89509
25394         * tree-ssa-structalias.c (compute_dependence_clique): Look
25395         at the first subvar when determining whether it is restrict.
25397 2019-05-02  Richard Biener  <rguenther@suse.de>
25399         PR tree-optimization/90273
25400         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
25401         useless debug stmts.
25403 2019-05-02  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
25405         * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
25406         ACLE branch.
25407         * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
25408         SVE ACLE branch.
25409         * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
25410         VEC_COND_EXPR be inserted to emulate a conditional internal function.
25411         (build_vect_cond_expr): Emit the VEC_COND_EXPR.
25412         (vectorizable_reduction): Use the functions above to vectorize in a
25413         fully masked loop codes that don't have a conditional internal
25414         function.
25416 2019-05-02  Martin Liska  <mliska@suse.cz>
25418         * cgraphclones.c: Call valid_attribute_p with 1 for
25419         target_clone.
25420         * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
25421         it's for target attribute.
25422         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
25423         Add new boolean argument.
25424         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
25425         Likewise.
25426         (ix86_valid_target_attribute_tree): Pass target_clone_attr
25427         to ix86_valid_target_attribute_inner_p.
25428         (ix86_valid_target_attribute_p): Pass flags argument to
25429         ix86_valid_target_attribute_inner_p.
25430         (get_builtin_code_for_version): Use 0 as it's target attribute.
25432 2019-05-02  Martin Liska  <mliska@suse.cz>
25434         * gcc.c (process_command): Add dummy file only
25435         if n_infiles == 0.
25436         * opts-global.c (decode_options): Pass lang_mask.
25437         * opts.c (print_help): New function.
25438         (finish_options): Print --help if help_option_argument
25439         is set.
25440         (common_handle_option): Factor out content of OPT__help_
25441         into print_help.
25442         * opts.h (finish_options): Add new argument.
25444 2019-05-02  Martin Liska  <mliska@suse.cz>
25446         PR target/88809
25447         * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
25448         With -minline-all-stringops use inline expansion using 4B loop.
25449         * doc/invoke.texi: Document the change of
25450         -minline-all-stringops.
25452 2019-05-01  Jeff Law  <law@redhat.com>
25454         PR tree-optimization/88797
25455         * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
25456         PHI feeds a conditional on the RHS of an assignment.
25458 2019-04-30  Andrew Waterman  <andrew@sifive.com>
25459             Jim Wilson  <jimw@sifive.com>
25461         * config/riscv/constraints.md (L): New.
25462         * config/riscv/predicates.md (lui_operand): New.
25463         (sfb_alu_operand): New.
25464         * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
25465         * config/riscv/riscv.c (riscv_expand_conditional_move): New.
25466         * config/riscv/riscv.h (TARGET_SFB_ALU): New.
25467         * config/riscv/risc.md (type): Add sfb_alu.
25468         (branch<mode>): Renamed from branch_order<mode>.  Change predicate for
25469         operand 3 to reg_or_0_operand.  In output string, change %3 to %z3.
25470         (branch_zero<mode>): Delete.
25471         (mov<mode>cc): New.
25472         (mov<GPR:mode><X:mode>cc): Likewise.
25473         * config/riscv/sifive-7.md (sifive_7_sfb_alu): New.  Use in bypasses.
25475 2019-04-30  Nathan Sidwell  <nathan@acm.org>
25477         * tree.h (MARK_TS_EXP): New.
25479 2019-04-30  Martin Liska  <mliska@suse.cz>
25481         * opts.c (enable_warning_as_error): Provide hints
25482         for unknown options.
25484 2019-04-30  Martin Liska  <mliska@suse.cz>
25486         PR debug/90288
25487         * doc/invoke.texi: Add missing dash for gas-locview-support
25488         and gno-as-locview-support.
25490 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
25492         PR target/89093
25493         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
25494         whitespace at the start of target attribute string.
25496 2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25498         PR target/86538
25499         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
25500         Define __ARM_FEATURE_ATOMICS.
25502 2019-04-30  Martin Liska  <mliska@suse.cz>
25504         * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
25505         into built_in_function enum. Remove code for endp == 2 and
25506         use BUILT_IN_* constants.
25507         (gimple_fold_builtin): Call the function with fcode.
25509 2019-04-30  Martin Liska  <mliska@suse.cz>
25511         * config/i386/i386.c (ix86_builtin_reciprocal): Cast
25512         DECL_FUNCTION_CODE into ix86_builtins enum before
25513         the switch statement.
25515 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
25517         PR tree-optimization/89475
25518         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
25519         calls.
25521 2019-04-30  Martin Liska  <mliska@suse.cz>
25523         PR translation/90274
25524         * opts.c (print_filtered_help): Wrap string in _(...).
25526 2019-04-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
25528         PR tree-optimization/90240
25529         Revert:
25530         2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
25532         PR tree-optimization/90078
25533         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
25534         checks for infinite_cost overflow.
25536 2019-04-29  Jeff Law  <law@redhat.com>
25538         * passes.def: Move -Wrestrict pass after copy propagation.
25540 2019-04-29  Maya Rashish  <coypu@sdf.org>
25542         * config.gcc (default_gnu_indirect_function): Default to yes
25543         for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
25544         sparc*-*-netbsd*, x86_64-*-netbsd*.
25546 2019-04-29  Vladislav Ivanishin  <vlad@ispras.ru>
25548         * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
25549         where cond2 is NE_EXPR.
25550         (is_value_included_in): Update comment.
25552 2019-04-29  Richard Biener  <rguenther@suse.de>
25554         PR tree-optimization/90278
25555         * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
25556         EH on comparison simplification.
25558 2019-04-29  Jason Merrill  <jason@redhat.com>
25560         PR c++/82081 - tail call optimization breaks noexcept
25561         * tree-tailcall.c (find_tail_calls): Don't turn a call from a
25562         nothrow function to a might-throw function into a tail call.
25564 2019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
25566         * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
25567         (DDR_INNER_LOOP): Likewise.
25568         * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
25569         (initialize_data_dependence_relation): Likewise.
25570         (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
25572 2019-04-29  Jakub Jelinek  <jakub@redhat.com>
25574         PR rtl-optimization/90257
25575         * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
25576         return value.
25578         Revert the revert:
25579         2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
25581         PR target/90178
25582         Revert:
25583         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
25585         Revert the revert:
25586         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
25588         Revert:
25589         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
25591         * lra-spills.c (lra_final_code_change): Remove useless move insns.
25593 2019-04-29  Richard Biener  <rguenther@suse.de>
25595         * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
25596         rhs issue a reset.
25598 2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
25600         * config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
25601         varasm.h, and netbsd-protos.h.
25603 2019-04-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25605         PR target/89261
25606         * config/i386/i386-protos.h (ix86_data_alignment): Change
25607         the second argument type to unsigned int.
25608         * config/i386/i386.c (ix86_data_alignment): Change "align"
25609         argument type to unsigned int.
25611 2019-04-27  Martin Liska  <mliska@suse.cz>
25613         PR middle-end/90258
25614         * opt-suggestions.c (option_proposer::build_option_suggestions):
25615         When get_valid_option_values returns empty values, add the
25616         misspelling candidate.
25618 2019-04-26  Jim Wilson  <jimw@sifive.com>
25620         * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
25621         parameter.
25622         * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
25623         Pass orig_mode to riscv_build_integer.
25624         (riscv_split_integer): Pass mode to riscv_move_integer.
25625         (riscv_legitimize_const_move): Likewise.
25626         (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
25627         promoted_mode.  Replace force_reg call with code to load constant into
25628         promoted reg and then subreg it for the store.
25629         * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
25630         riscv_move_integer.
25632 2018-04-26  Eugene Sharygin  <eush@ispras.ru>
25634         * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
25635         corrupt codes.
25637 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
25639         * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
25640         commentary about the encoding of precision.
25642 2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
25644         * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
25645         * config/i386/t-freebsd64: New file.
25646         * config.gcc: Add the t-freebsd64 for multilib support.
25648 2019-04-25  UroÅ¡ Bizjak  <ubizjak@gmail.com>
25650         * doc/extend.texi (vector_size): Add missing comma after @xref.
25652 2019-04-25  Jakub Jelinek  <jakub@redhat.com>
25654         * BASE-VER: Set to 10.0.0.
25656 2019-04-25  Richard Biener  <rguenther@suse.de>
25658         PR middle-end/89765
25659         * gimplify.c (gimplify_expr): Avoid turning a lvalue
25660         VIEW_CONVERT_EXPR into one operating on an rvalue.
25662 2019-04-25  H.J. Lu  <hongjiu.lu@intel.com>
25664         PR target/89929
25665         * config/i386/i386.c (feature_priority): Moved to file scope.
25666         (processor_features): Likewise.
25667         (processor_model): Likewise.
25668         (_arch_names_table): Likewise.
25669         (arch_names_table): Likewise.
25670         (_feature_list): Removed.
25671         (feature_list): Likewise.
25672         (_isa_names_table): Moved to file scope.  Add priority.
25673         (isa_names_table): Likewise.
25674         (get_builtin_code_for_version): Replace feature_list with
25675         isa_names_table.  Update error message for P_ZERO priority.
25677 2019-04-25  Richard Biener  <rguenther@suse.de>
25679         * tree-pass.h (make_pass_phi_only_cprop): Remove.
25680         * timevar.def (TV_TREE_PHI_CPROP): Likewise.
25682 2019-04-24  Jeff Law  <law@redhat.com>
25684         PR tree-optimization/90037
25685         * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
25686         * passes.def: Replace all instance of phi-only cprop with the
25687         lattice propagator.  Move propagation pass from after erroneous
25688         path isolation to before erroneous path isolation.
25689         * tree-ssa-phionlycprop.c: Remove.
25691 2019-04-24  Richard Biener  <rguenther@suse.de>
25693         PR middle-end/90213
25694         * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
25695         by size and BITS_PER_UNIT on poly-wide-ints.
25697 2019-04-25  Richard Biener  <rguenther@suse.de>
25699         PR middle-end/90194
25700         * match.pd: Add pattern to simplify view-conversion of an
25701         empty constructor.
25703 2019-04-24  Clement Chigot  <clement.chigot@atos.net>
25705         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
25706         OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
25707         for Go on 32 bit AIX.
25708         * config/rs6000/aix72.h: Likewise.
25710 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
25712         PR target/90193
25713         * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
25714         * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
25716 2019-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
25718         PR target/89952
25719         * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
25720         from FPRs in reverse order.  Generate REG_CFA_DEF_CFA note also
25721         for restored hard frame pointer.
25722         (s390_sched_dependencies_evaluation): Implement new target hook.
25723         (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
25725 2019-04-24  Claudiu Zissulescu  <claziss@sysnopsys.com>
25727         * config/arc/arc-options.def: Fix typos and spelling mistakes.
25728         * config/arc/arc.c (arc_init): Cleanup warning message.
25729         (arc_override_options): Likewise.
25731 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
25733         PR target/90187
25734         * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
25735         a register if both if_true and if_false are MEMs.
25737         PR tree-optimization/90208
25738         * tree-cfg.c (remove_bb): Move forced labels from removed bbs
25739         after labels of new_bb, not before them.
25741         PR tree-optimization/90211
25742         * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
25743         which are not SSA_NAMEs.
25745 2018-04-23  Sudakshina Das  <sudi.das@arm.com>
25747         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
25748         AArch64.
25749         (aarch64_file_end_indicate_exec_stack): Add gnu note section.
25751 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
25753         PR rtl-optimization/87979
25754         * modulo-sched.c (sms_schedule): Start ii value "mii" should
25755         not equal zero.
25757 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
25759         PR rtl-optimization/84032
25760         * modulo-sched.c (ps_insn_find_column): Change condition so that
25761         branch will always be the last insn in a row inside partial
25762         schedule.
25764 2019-04-23  Richard Biener  <rguenther@suse.de>
25766         PR debug/90131
25767         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
25768         dest_single_pred_p argument.
25769         (remove_forwarder_block): Adjust.
25770         (remove_forwarder_block_with_phi): Likewise.
25772 2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25773             Bernd Edlinger  <bernd.edlinger@hotmail.de>
25774             Jakub Jelinek  <jakub@redhat.com>
25776         PR target/89093
25777         * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
25778         if used with general-regs-only.
25779         (arm_conditional_register_usage): Don't add non-general regs if
25780         general-regs-only.
25781         (arm_valid_target_attribute_rec): Handle general-regs-only.
25782         * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
25783         general-regs-only.
25784         (TARGET_HARD_FLOAT_SUB): Define.
25785         (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
25786         (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
25787         (TARGET_REALLY_IWMMXT2): Likewise.
25788         * config/arm/arm.opt: Add -mgeneral-regs-only.
25789         * doc/extend.texi: Document ARM general-regs-only target.
25790         * doc/invoke.texi: Document ARM -mgeneral-regs-only.
25792 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
25794         PR tree-optimization/90078
25795         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
25796         checks for infinite_cost overflow.
25798 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
25800         PR tree-optimization/90021
25801         * tree-chrec.c (evolution_function_is_univariate_p): New parameter
25802         and check univariate against it.
25803         * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
25804         * tree-data-ref.c (add_other_self_distances): Pass new argument.
25806 2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
25808         PR target/90178
25809         Revert:
25810         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
25812         Revert the revert:
25813         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
25815         Revert:
25816         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
25818         * lra-spills.c (lra_final_code_change): Remove useless move insns.
25820 2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
25822         * config/rs6000/rs6000.md (group_end_nop): Emit insn register
25823         names using operand format, rather than hard-wired.
25824         (speculation_barrier): Likewise.
25826 2019-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
25828         PR tree-optimization/88055
25829         * tree-call-cdce.c (comparison_code_if_no_nans): New function.
25830         (gen_one_condition): Use it if !HONOR_NANS.
25832 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
25834         PR middle-end/90139
25835         * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
25836         assign_temp instead of gen_reg_rtx.
25838 2019-04-19  Christophe Lyon  <christophe.lyon@linaro.org>
25840         PR translation/90118
25841         * config/aarch64/aarch64.c (aarch64_override_options_internal):
25842         Add missing space before %<.
25844 2019-04-18  Peter Bergner  <bergner@linux.ibm.com>
25846         PR rtl-optimization/87871
25847         * ira-lives.c (make_object_dead): Don't add conflicts to
25848         TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
25850 2019-04-18  Martin Sebor  <msebor@redhat.com>
25852         PR middle-end/89797
25853         * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
25854         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
25855         assuming type size fits in SHWI.
25857 2019-04-18  Jan Hubicka  <hubicka@ucw.cz>
25859         PR ipa/85051
25860         * ipa-inline.c (flatten_function): New parameter UPDATE.
25861         (ipa_inline, early_inliner): Use it.
25863 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
25865         * fold-const.c (int_const_binop): Return early on failure.
25867 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
25869         PR middle-end/85164
25870         * combine.c (force_int_to_mode): Cast the argument rather than
25871         the result of known_alignment.
25872         * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
25874 2019-04-18  Richard Biener  <rguenther@suse.de>
25876         PR debug/90131
25877         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
25878         out from ...
25879         (remove_forwarder_block): ... here.
25880         (remove_forwarder_block_with_phi): Also move debug stmts here.
25882 2019-04-18  Jakub Jelinek  <jakub@redhat.com>
25884         PR translation/79183
25885         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
25886         inform where appropriate.
25888 2019-04-18  Richard Biener  <rguenther@suse.de>
25890         * tree.c (get_qualified_type): Put found type variants at the
25891         head of the variant list.
25893 2018-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
25895         * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
25897 2019-04-17  Hongtao Liu  <hongtao.liu@intel.com>
25899         PR target/90125
25900         * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
25901         _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
25902         _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
25903         _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
25904         _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
25906 2019-04-17  Peter Bergner  <bergner@linux.ibm.com>
25908         * ira-conflicts.c (print_allocno_conflicts): Always print something,
25909         even for allocno's with no conflicts.
25910         (print_conflicts): Print an extra newline.
25912 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
25914         * auto-inc-dec.c (attempt_change): Set the alignment of the
25915         temporary memory to that of the original.
25917 2019-04-17  Joao Moreira  <jmoreira@suse.de>
25919         * targhooks.c (default_print_patchable_function_entry): Emit
25920         __patchable_function_entries section with writable flags to allow
25921         relocation resolution.
25923 2019-04-17  Jonny Grant  <jg@jguk.org>
25925         * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
25927 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
25929         PR middle-end/90095
25930         * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
25931         on lowpart SUBREGs.
25933 2019-04-17  Claudiu Zissulescu  <claziss@synopsys.com>
25935         * config/arc/arc.c (arc_init): Format diagnostic string.
25936         (arc_override_options): Likewise.
25937         (check_if_valid_regno_const): Likewise.
25938         (arc_reorg): Likewise.
25940 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
25942         PR target/17108
25943         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
25944         name.
25945         (rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
25946         name.
25947         * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
25948         (*movdi_update1): Use Pmode.
25949         (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
25950         (movdi_<mode>_update_stack): Rename to ...
25951         (movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
25952         use Pmode.
25953         (*movsi_update1): Use Pmode.
25954         (*movsi_update2): Use Pmode.
25955         (movsi_update): Rename to ...
25956         (movsi_<mode>_update): ... this.  Use Pmode.
25957         (movsi_update_stack): Fix condition.
25958         (*movhi_update1): Use Pmode.  Fix argument to
25959         avoiding_indexed_address_p.
25960         (*movhi_update2): Ditto.
25961         (*movhi_update3): Ditto.
25962         (*movhi_update4): Ditto.
25963         (*movqi_update1): Ditto.
25964         (*movqi_update2): Ditto.
25965         (*movqi_update3): Ditto.
25966         (*movsf_update1, *movdf_update1): Merge, rename to...
25967         (*mov<mode>_update1): This.  Use Pmode.  Fix argument to
25968         avoiding_indexed_address_p.  Add "size" attribute.
25969         (*movsf_update2, *movdf_update2): Merge, rename to...
25970         (*mov<mode>_update2): This.  Ditto.
25971         (*movsf_update3): Use Pmode.  Fix argument to
25972         avoiding_indexed_address_p.
25973         (*movsf_update4): Ditto.
25974         (allocate_stack): Simplify condition.  Adjust pattern names.
25976 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
25978         PR target/89093
25979         * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
25980         whitespace at the start of target attribute string.
25982 2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
25984         PR target/84369
25985         * config/rs6000/power9.md: Add store forwarding bypass.
25987 2019-04-16  Alexandre Oliva  <aoliva@redhat.com>
25989         PR debug/89528
25990         * valtrack.c (dead_debug_insert_temp): Reset debug references
25991         to the return value of a call being removed.
25993 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
25995         * config/arc/arc-protos.h (arc_register_move_cost): Remove.
25996         * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
25997         implement target hook.
25998         (arc_memory_move_cost): New function.
25999         (TARGET_REGISTER_MOVE_COST): Define.
26000         (TARGET_MEMORY_MOVE_COST): Likewise.
26001         * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
26002         (MEMORY_MOVE_COST): Likewise.
26004 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
26006         * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
26007         (sibcall_value_insn): Likewise.
26008         * config/arc/constraints.md (Rs5): Remove.
26010 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
26012         * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
26013         for last two fake registers.
26014         (arc_conditional_register_usage): Make sure fake frame and arg
26015         pointer regs are in general regs class.
26016         (FRAME_POINTER_MASK): Remove.
26017         (RETURN_ADDR_MASK): Remove.
26018         (arc_must_save_register): Use hard frame regnum.
26019         (frame_restore_reg): Use hard_frame_pointer_rtx.
26020         (arc_save_callee_saves): Likewise.
26021         (arc_restore_callee_saves): Likewise.
26022         (arc_save_callee_enter): Likewise.
26023         (arc_restore_callee_leave): Likewise.
26024         (arc_save_callee_milli): Likewise.
26025         (arc_eh_return_address_location): Likewise.
26026         (arc_check_multi): Use hard frame regnum.
26027         (arc_can_eliminate): Likewise.
26028         * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
26029         for register allocator.
26030         (REG_CLASS_CONTENTS): Update GENERAL_REGS.
26031         (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
26032         (FRAME_POINTER_REGNUM): Change it to a fake register.
26033         (HARD_FRAME_POINTER_REGNUM): Defined.
26034         (ARG_POINTER_REGNUM): Change it to a new fake register.
26035         (ELIMINABLE_REGS): Update.
26036         (REGISTER_NAMES): Update names.
26037         * config/arc/arc.md (LP_START): Remove.
26038         (LP_END): Likewise.
26039         (shift_si3_loop): Update pattern.
26041 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
26043         * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
26044         to avoid delay slot scheduling.
26045         (arc_must_save_register): Don't save SP.
26046         * config/arc/arc.md (stack_tie): Remove.
26047         (UNSPEC_ARC_STKTIE): Likewise.
26049 2019-04-16  Kito Cheng  <kito.cheng@gmail.com>
26050             Shiva Chen  <shiva0217@gmail.com>
26052         * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
26053         code gen with large shift amount.
26055 2019-04-16  Chung-Ju Wu  <jasonwucj@gmail.com>
26057         * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
26058         subreg.
26060 2019-04-16  Jakub Jelinek  <jakub@redhat.com>
26062         PR target/90096
26063         * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
26064         print -m64/-mx32/-m32 if it is true.
26065         (ix86_debug_options, ix86_function_specific_print): Pass true as
26066         ADD_ABI_P to ix86_target_string.
26067         (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
26068         ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
26069         or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
26071         PR rtl-optimization/90082
26072         * dce.c (can_delete_call): New function.
26073         (deletable_insn_p, mark_insn): Use it.
26075         PR tree-optimization/90090
26076         * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
26077         throw internally.
26078         (is_division_by_square): Likewise.  Formatting fix.
26080 2019-04-16  Richard Biener  <rguenther@suse.de>
26082         PR tree-optimization/56049
26083         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
26084         equality check if alias-set zero will prevail.
26086 2019-04-15  Jeff Law  <law@redhat.com>
26088         * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
26089         size and alignment as unsigned.
26091 2019-04-15  Richard Biener  <rguenther@suse.de>
26093         PR debug/90074
26094         * tree-loop-distribution.c (destroy_loop): Preserve correct
26095         debug info.
26097 2019-04-15  Richard Biener  <rguenther@suse.de>
26099         PR tree-optimization/90071
26100         * tree-ssa-reassoc.c (init_range_entry): Do not pick up
26101         abnormal operands from def stmts.
26103 2019-04-15  Segher Boessenkool  <segher@kernel.crashing.org>
26105         PR rtl-optimization/89794
26106         * combine.c (count_auto_inc): New function.
26107         (try_combine): Count how many auto_inc expressions there were in the
26108         original instructions.  Ensure we have the same number in the new
26109         instructions.  Remove the code that tried to ensure auto_inc side
26110         effects on i1 and i0 are not lost.
26112 2019-04-15  Richard Biener  <rguenther@suse.de>
26114         PR ipa/88936
26115         * tree.h (auto_var_p): Declare.
26116         * tree.c (auto_var_p): New function, split out from ...
26117         (auto_var_in_fn_p): ... here.
26118         * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
26119         member.
26120         (new_var_info): Initialize it.
26121         (set_uids_in_ptset): Also set the shadow variable uid if required.
26122         (ipa_pta_execute): Postprocess points-to solutions assigning
26123         shadow variable uids for locals that may reach their containing
26124         function recursively.
26125         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
26126         assert but instead check whether the points-to solution is
26127         a singleton.
26129 2019-04-15  Martin Jambor  <mjambor@suse.cz>
26131         PR ipa/pr89693
26132         * cgraph.c (clone_of_p): Loop over clone chain for each step in
26133         the thunk chain.
26135 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
26137         * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
26139 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
26140             Kito Cheng  <kito.cheng@gmail.com>
26141             Shiva Chen  <shiva0217@gmail.com>
26143         * config/nds32/nds32-md-auxiliary.c
26144         (nds32_legitimize_pic_address): Use new PIC pattern.
26145         (nds32_legitimize_tls_address): Use new TLS pattern.
26146         (nds32_output_symrel): New.
26147         * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
26148         (nds32_alloc_relax_group_id): Ditto.
26149         * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
26150         (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
26151         relax_group_id.
26152         (nds32_group_tls_insn): Ditto.
26153         (nds32_group_float_insns): Ditto.
26154         * config/nds32/nds32.md (tls_le): New.
26155         (sym_got): Ditto.
26157 2019-04-15  Chung-Ju Wu  <jasonwucj@gmail.com>
26159         * configure: Add nds32 target for dwarf2 debug_line checking.
26160         * configure.ac: Regenerated.
26162 2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
26164         PR lto/89358
26165         * ipa-devirt.c (skip_in_fields_list_p): New.
26166         (odr_types_equivalent_p): Use it.
26168 2019-04-13  Jakub Jelinek  <jakub@redhat.com>
26170         PR target/89093
26171         * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
26172         instead of strncmp when checking for thumb and arm.  Formatting fixes.
26174 2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
26176         * doc/install.texi: Document --with-target-system-zlib.
26178 2019-04-12  Martin Sebor  <msebor@redhat.com>
26180         PR c/88383
26181         PR c/89288
26182         PR c/89798
26183         PR c/89797
26184         * targhooks.c (default_vector_alignment): Avoid assuming
26185         argument fits in SHWI.
26186         * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
26187         a shift expression.
26188         * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
26190 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
26192         PR rtl-optimization/89965
26193         * dce.c: Include rtl-iter.h.
26194         (struct check_argument_load_data): New type.
26195         (check_argument_load): New function.
26196         (find_call_stack_args): Check for loads from stack slots still tracked
26197         in sp_bytes and punt if any is found.
26199         * config/mips/loongson-mmiintrin.h: Fix up #error message.
26201 2019-04-12  Jan Hubicka  <hubicka@ucw.cz>
26203         * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
26204         * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
26206 2019-04-12  Martin Liska  <mliska@suse.cz>
26208         PR middle-end/89970
26209         * multiple_target.c (create_dispatcher_calls): Wrap ifunc
26210         in error message.
26211         (separate_attrs): Handle multiple 'default's.
26212         (expand_target_clones): Rework error handling code.
26214 2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26216         PR target/87532
26217         * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
26218         mode of vector rather than mode of destination for move instruction.
26219         * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
26220         Use QI inner mode with V16QI vector mode.
26222 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
26224         PR target/52726
26225         * config/tilepro/tilepro.c (tilepro_print_operand): Use just
26226         "invalid %%t operand" in output_operand_lossage message.
26228 2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
26230         * config/s390/predicates.md (permute_pattern_operand): New
26231         predicate.
26232         * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
26233         operand for the permute pattern.
26234         ("*vec_perm<mode>"): New insn definition.
26235         ("bswap<mode>"): Generate the permute pattern operand in the
26236         expander and perform the operand reloads for pre arch13 level
26237         already.
26238         ("*bswap<mode>_emu"): Rename to ...
26239         ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
26240         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
26241         Add the USE operand for the permute pattern.
26242         ("*vec_set_bswap_vec<mode>"): Likewise.
26244 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
26246         PR c/89946
26247         * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
26248         and gcc_unreachable if it fails, just call tree_to_uhwi which
26249         verifies that too.  Test TREE_CHAIN instead of list_length > 1.
26250         Start warning message with a lower-case letter.  Formatting fixes.
26252         PR rtl-optimization/90026
26253         * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
26254         successors, look for BARRIERs inside of the whole BB_FOOTER chain
26255         rather than just at the start of it.  If e->src BB_FOOTER is not NULL
26256         in cfglayout mode, use emit_barrier_after_bb.
26258 2018-04-11  Steve Ellcey  <sellcey@marvell.com>
26260         PR rtl-optimization/87763
26261         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
26262         New Instruction.
26264 2019-04-11  Tom de Vries  <tdevries@suse.de>
26266         * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
26267         max macro using statement expression.
26269 2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
26271         * xcoffout.h (xcoff_private_rodata_section_name): Declare.
26272         * xcoffout.c (xcoff_private_rodata_section_name): Define.
26273         * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
26274         read_only_private_data_section using xcoff_private_rodata_section_name.
26275         (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
26277 2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>
26279         PR target/90016
26280         * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
26282 2019-04-11  Jakub Jelinek  <jakub@redhat.com>
26284         PR rtl-optimization/89965
26285         * dce.c (sp_based_mem_offset): New function.
26286         (find_call_stack_args): Use sp_based_mem_offset.
26288 2019-04-11  Jonathan Wakely  <jwakely@redhat.com>
26290         * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
26292 2019-04-11  Richard Biener  <rguenther@suse.de>
26294         PR tree-optimization/90020
26295         * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
26296         * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
26297         * tree-ssa-pre.c (compute_avail): Use it to not put
26298         possibly trapping references after a call that might not
26299         return into EXP_GEN.
26300         * gcse.c (compute_hash_table_work): Do not elide
26301         marking a block containing a call if the call might not
26302         return.
26304 2019-04-11  Richard Biener  <rguenther@suse.de>
26306         PR tree-optimization/90018
26307         * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
26308         Test both SLP and interleaving variants.
26310 2019-04-11  Robin Dapp  <rdapp@linux.ibm.com>
26312         * config/s390/8561.md: New file.
26313         * config/s390/driver-native.c (s390_host_detect_local_cpu):
26314         Add arch13 cpu model.
26315         * config/s390/s390-opts.h (enum processor_type): Likewise.
26316         * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
26317         (s390_get_unit_mask): Likewise.
26318         (s390_is_fpd): Likewise.
26319         (s390_is_fxd): Likewise.
26320         * config/s390/s390.h (s390_tune_attr): Likewise.
26321         * config/s390/s390.md: Include arch13 pipeline description.
26322         * config/s390/s390.opt: Add arch13.
26324 2018-04-10  Steve Ellcey  <sellcey@marvell.com>
26326         PR rtl-optimization/87763
26327         * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
26328         New prototype.
26329         * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
26330         New function.
26331         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
26332         New instruction.
26333         (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
26334         (*aarch64_bfi<GPI:mode>4_noand): Ditto.
26335         (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
26336         (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
26338 2019-04-10  Jonathan Wakely  <jwakely@redhat.com>
26340         * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
26341         "Although" in -fipa-icf documentation.
26343         * doc/invoke.texi (Debugging Options): Explicitly state the semantics
26344         of using multiple -g options.
26346 2019-04-10  Martin Liska  <mliska@suse.cz>
26348         PR gcov-profile/89959
26349         * doc/gcov.texi: Make documentation of -x option
26350         more precise.
26352 2019-04-10  Richard Biener  <rguenther@suse.de>
26354         * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
26355         member.
26356         (DR_GROUP_SAME_DR_STMT): Remove.
26357         * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
26358         * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
26359         replace with assert.
26360         (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
26361         (vect_record_grouped_load_vectors): Remove unreachable code.
26363 2019-04-10  Richard Earnshaw  <rearnsha@arm.com>
26365         PR target/90016
26366         * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
26367         obsolete reference to N.
26369 2019-04-10  Jakub Jelinek  <jakub@redhat.com>
26371         PR middle-end/90025
26372         * expr.c (store_expr): Set properly size on the MEM passed to
26373         clear_storage.
26375         PR c++/90010
26376         * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
26377         with strlen in between hostsz-3 and hostsz-1 inclusive when no
26378         translation is needed, and when translation is needed, only append
26379         ... if the string length is hostsz or more bytes long.  Avoid using
26380         strncpy or strcat.
26382 2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>
26384         PR target/90024
26385         * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
26386         * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
26387         into three.
26388         * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
26389         differences directly.
26390         (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
26392 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
26394         PR translation/90011
26395         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
26396         from diagnostics.
26397         * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
26398         diagnostics.
26399         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
26400         * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
26401         * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
26402         trailing space from -gsplit-dwarf diagnostics.
26404         PR tree-optimization/89998
26405         * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
26406         instead of integer_type_node if possible, don't add ranges if return
26407         type is not compatible with int.
26408         * gimple-fold.c (gimple_fold_builtin_sprintf,
26409         gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
26410         integer_type_node.
26412 2019-04-09  Martin Liska  <mliska@suse.cz>
26414         * Makefile.in: Use GENERATOR_CFLAGS for all generators.
26415         * doc/install.texi: Document the new config.
26417 2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
26419         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
26420         use gimple_expr_type for load and store calls.  Skip over the
26421         condition argument in a conditional internal function.
26422         Protect use of TREE_INT_CST_LOW.
26424 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
26426         PR target/90015
26427         * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
26428         (riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
26429         trailing period from it too.
26431 2019-04-08  wu yuan  <wuyuan5@huawei.com>
26433         * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
26434         * config/aarch64/aarch64.md: Add "tsv110.md".
26435         * config/aarch64/tsv110.md: New file.
26437 2019-04-08  Richard Biener  <rguenther@suse.de>
26439         PR tree-optimization/90006
26440         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
26441         calls like lrint.
26443 2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>
26445         PR target/83033
26446         * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
26447         construction.
26448         (fma_root_node): Likewise.
26449         (func_fma_steering): Likewise.
26451 2019-04-08  Jakub Jelinek  <jakub@redhat.com>
26453         PR rtl-optimization/89865
26454         * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
26456         PR rtl-optimization/89865
26457         * config/i386/i386.md
26458         (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
26459         numbers not to clash with the additional operands[4].
26460         (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
26461         with extra register copy in the middle.
26463 2019-04-08  Martin Liska  <mliska@suse.cz>
26465         PR gcov-profile/89961
26466         * doc/gcov.texi: Document data_file.
26467         * gcov.c (generate_results): Add data_info into JSON output.
26469 2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
26471         PR tree-optimization/89725
26472         * tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
26473         loop's chrec as invariant symbol.
26474         * tree-chrec.h (chrec_contains_symbols): New parameter.
26475         * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
26476         (build_classic_dist_vector_1, add_other_self_distances): Bypass access
26477         function of loops not in DDR's loop_nest.
26478         * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
26480 2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>
26482         PR target/89623
26483         * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
26484         Mask.
26486 2019-04-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26488         PR target/89945
26489         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
26490         Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
26492 2019-04-05  Joern Rennecke  <joern.rennecke@embecosm.com>
26494         * sched-deps.c (sched_macro_fuse_insns): Check return value of
26495         targetm.fixed_condition_code_regs.
26497 2019-04-05  Richard Biener  <rguenther@suse.de>
26499         PR debug/89892
26500         PR debug/89905
26501         * tree-cfgcleanup.c (remove_forwarder_block): Always move
26502         debug bind stmts but reset them if they are not valid at the
26503         destination.
26505 2019-04-05  Martin Liska  <mliska@suse.cz>
26507         PR translation/89936
26508         * collect-utils.c (collect_execute): Use %< and %>, or %qs in
26509         order to wrap keywords or arguments.
26510         * collect2.c (main): Likewise.
26511         (scan_prog_file): Likewise.
26512         (scan_libraries): Likewise.
26513         * common/config/riscv/riscv-common.c
26514         (riscv_subset_list::parsing_subset_version): Likewise.
26515         (riscv_subset_list::parse_std_ext): Likewise.
26516         * config/aarch64/aarch64.c (aarch64_override_options_internal):
26517         Likewise.
26518         * config/arm/arm.c (arm_option_override): Likewise.
26519         * config/cris/cris.c (cris_print_operand): Likewise.
26520         * config/darwin-c.c (darwin_pragma_options): Likewise.
26521         (darwin_pragma_unused): Likewise.
26522         (darwin_pragma_ms_struct): Likewise.
26523         * config/ft32/ft32.c (ft32_print_operand): Likewise.
26524         * config/i386/i386.c (print_reg): Likewise.
26525         (ix86_print_operand): Likewise.
26526         * config/i386/xm-djgpp.h: Likewise.
26527         * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
26528         * config/m32c/m32c.c (m32c_option_override): Likewise.
26529         * config/msp430/msp430.c (msp430_option_override): Likewise.
26530         * config/nds32/nds32.c (nds32_option_override): Likewise.
26531         * config/nvptx/mkoffload.c (main): Likewise.
26532         * config/rx/rx.c (rx_print_operand): Likewise.
26533         (valid_psw_flag): Likewise.
26534         * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
26535         (vms_pragma_nomember_alignment): Likewise.
26536         (vms_pragma_extern_model): Likewise.
26537         * lto-wrapper.c (compile_offload_image): Likewise.
26538         * omp-offload.c (oacc_parse_default_dims): Likewise.
26539         * symtab.c (symtab_node::verify_base): Likewise.
26540         * tlink.c (recompile_files): Likewise.
26541         (start_tweaking): Likewise.
26542         * tree-profile.c (parse_profile_filter): Likewise.
26544 2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>
26546         PR tree-optimization/89956
26547         * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
26548         multiple negates of the same value.
26550 2019-04-04  Martin Sebor  <msebor@redhat.com>
26552         PR middle-end/89957
26553         PR middle-end/89911
26554         * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
26555         have the same precision since the function crashes otherwise.
26556         * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
26557         has non-zero arguments.
26559 2019-04-04  Martin Sebor  <msebor@redhat.com>
26561         PR middle-end/89934
26562         * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
26563         out if the number of arguments is less than expected.
26565 2019-04-04  Jeff Law  <law@redhat.com>
26567         PR rtl-optimization/89399
26568         * ree.c (combine_set_extension): Use single_set rather than
26569         digging into PATTERN for items on the candidate list.
26570         (combine_reaching_defs): Likewise.
26572 2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>
26574         PR rtl-optimization/46590
26575         * loop-invariant.c (find_defs): Move df_remove_problem and
26576         df_process_deferred_rescans to move_invariants.
26577         Move df_live_add_problem and df_live_set_all_dirty calls
26578         to move_invariants.
26579         (move_invariants): Likewise.
26580         (move_loop_invariants): Likewise, making the df_live calls
26581         conditional on -O.  Remove the problem again if we added it
26582         locally.
26584 2019-04-03  qing zhao  <qing.zhao@oracle.com>
26586         PR tree-optimization/89730
26587         * ipa-inline.c (can_inline_edge_p): Delete the checking for
26588         -flive-patching=inline-only-static.
26589         (can_inline_edge_by_limits_p): Add the checking for
26590         -flive-patching=inline-only-static and grant always_inline
26591         even when -flive-patching=inline-only-static is specified.
26593 2019-04-03  Jeff Law  <law@redhat.com>
26595         PR rtl-optimization/81025
26596         * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
26598 2019-04-03  Richard Biener  <rguenther@suse.de>
26600         PR tree-optimization/84101
26601         * tree-vect-stmts.c: Include explow.h for hard_function_value,
26602         regs.h for hard_regno_nregs.
26603         (cfun_returns): New helper.
26604         (vect_model_store_cost): When vectorizing a store to a decl
26605         we return and the function ABI returns in a multi-reg location
26606         account for the possible spilling that will happen.
26608 2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>
26610         * config/s390/s390.c (s390_legitimate_address_p): Reject long
26611         displacement addresses for vector mode operands.
26613 2019-04-03  Claudiu Zissulescu  <claziss@synopsys.com>
26615         * config/arc/arc.c (GMASK_LEN): Define.
26616         (arc_restore_callee_saves): Restore first blink when
26617         !optimize_size.
26619 2019-04-03  Sudakshina Das  <sudi.das@arm.com>
26621         * doc/extend.texi: Add deprecated comment on sign-return-address
26622         function attribute and add mbranch-protection.
26623         * doc/invoke.texi: Add bti to the options for mbranch-protection.
26625 2019-04-03  Richard Biener  <rguenther@suse.de>
26627         PR lto/89896
26628         * lto-wrapper.c (run_gcc): Avoid implicit rules making
26629         the all target phony.
26631 2019-04-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26633         PR target/89902
26634         PR target/89903
26635         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
26636         Return false for variable DImode shifts.
26637         (dimode_scalar_chain::compute_convert_gain): Do not handle
26638         register count operand in variable DImode shifts.
26639         (dimode_scalar_chain::make_vector_copies): Remove support to copy
26640         count argument of a variable shift instruction to a vector register.
26641         (dimode_scalar_chain::convert_reg): Remove support to convert
26642         count argument of a variable shift instruction.
26644 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
26646         PR rtl-optimization/84206
26647         * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
26648         iterating over loop headers.
26650 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
26652         PR rtl-optimization/85876
26653         * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
26654         beyond the original fence.
26656 2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>
26658         * config.gcc: Mark spu* targets as deprecated/obsolete.
26660 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26662         * config/s390/s390-builtin-types.def: New builtin function type
26663         definitions. Remove unused types.
26664         * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
26665         (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
26666         (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
26667         overloaded builtins.
26668         (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
26669         (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
26670         * config/s390/vecintrin.h (vec_float): New builtin macro definition.
26671         (vec_double, vec_signed, vec_unsigned): Define to use the new
26672         overloaded builtins.
26673         * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
26674         Remove expanders.
26676 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26678         * config/s390/s390-builtin-types.def: New builtin function type
26679         definitions.
26680         * config/s390/s390-builtins.def (s390_vec_search_string_cc)
26681         (s390_vec_search_string_until_zero_cc): New overloaded builtins.
26682         (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
26683         (s390_vstrszh, s390_vstrszf): New low-level builtins.
26684         * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
26685         constant definitions.
26686         * config/s390/vecintrin.h (vec_search_string_cc)
26687         (vec_search_string_until_zero_cc): New builtin name definitions.
26688         * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
26689         expanders.
26690         ("vec_vstrs<mode>"): New insn definition.
26692 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26694         * config/s390/s390-builtin-types.def: Add new builtin function
26695         types.
26696         * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
26697         New overloaded builtins.
26698         (s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
26699         s390_vsrd.
26700         * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
26701         (UNSPEC_VEC_SLDBYTE): ... this.
26702         (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
26703         * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
26704         definitions.
26705         * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
26706         Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
26707         ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
26709 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26711         ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
26712         New insn definition.
26713         * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
26714         * config/s390/vector.md (V_HW_HSD): ... here.
26716 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26718         * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
26719         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
26720         ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
26721         ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
26722         New insn definitions.
26724 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26726         * config/s390/s390-builtin-types.def: Add new builtin function type.
26727         * config/s390/s390-builtins.def: Add overloaded builtin
26728         s390_vec_reve and low-level builtins for s390_vler and s390_vster.
26729         * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
26730         * config/s390/vecintrin.h (vec_reve): New builtin name definition.
26731         * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
26732         ("eltswap<mode>"): New expander.
26733         ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
26734         insn definitions.
26736 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26738         * config/s390/s390-builtin-types.def: Add new builtin function types.
26739         * config/s390/s390-builtins.def: Add overloaded builtin
26740         s390_vec_revb. Add low-level builtins for vlbr and vstbr
26741         instructions.
26742         * config/s390/vecintrin.h (vec_revb): New builtin name definition.
26743         * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
26744         ("bswap<mode>"): New expander.
26745         ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
26747 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26749         * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
26750         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
26751         vector builtin version number in __VEC__.
26753 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26755         * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
26756         iterators.
26757         (SFSI): New mode attribute.
26758         ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
26759         ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
26760         rename to ...
26761         ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
26762         ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
26763         ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
26764         ("floatsi<mode>2"): Add wcefb instruction.
26766 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26768         * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
26769         * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
26770         mode iterators.
26771         ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
26772         ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
26773         support 32 bit fp-int conversions. Rename to ...
26774         ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
26775         ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
26776         ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
26777         ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
26778         ... to these.
26780 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26782         * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
26783         if-then-else constructs if we can use the select instruction.
26784         * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
26786 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26788         * config/s390/s390.md ("*popcountdi_arch13_cc")
26789         ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
26790         definition.
26791         ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
26792         Append _z196 to make it ...
26793         ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
26794         ("popcounthi2_z196"): ... this.
26795         ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
26796         ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
26798 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26800         * config/s390/s390.c (s390_canonicalize_comparison): Convert
26801         certain compares for arch13 in order to make use of the condition
26802         code result produced by the new instructions.
26803         (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
26804         nxrk, and nxgrk instruction patterns.
26805         * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
26806         (inv_no): Add new code iterator together with some attributes.
26807         ("*andc_split_<mode>"): Disable splitter for arch13.
26808         ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
26809         ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
26810         ("*<ANDOR:bitops_name>c<GPR:mode>")
26811         ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
26812         ("*n<ANDOR:inv_bitops_name><mode>_cconly")
26813         ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
26814         ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
26816 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
26818         * common/config/s390/s390-common.c (processor_flags_table): New
26819         entry for arch13.
26820         * config.gcc: Support arch13 with the --with-arch= configure flag.
26821         * config/s390/driver-native.c (s390_host_detect_local_cpu):
26822         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
26823         * config/s390/s390.c (s390_get_sched_attrmask)
26824         (s390_get_unit_mask): Add PROCESSOR_ARCH13.
26825         * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
26826         * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
26827         (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
26828         (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
26829         definitions.
26830         * config/s390/s390.opt: Support arch13 as processor type in
26831         command line options.
26833 2019-04-02  Martin Liska  <mliska@suse.cz>
26835         PR translation/89912
26836         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
26837         Fix param description of graphite-max-arrays-per-scop.
26839 2019-04-02  Eric Botcazou  <ebotcazou@adacore.com>
26841         * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
26842         (ASAN_CC1_SPEC): Use it in 64-bit mode.
26843         * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
26845 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
26847         PR rtl-optimization/85412
26848         * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
26849         sel_sched_region_1, not after.
26851 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
26853         PR rtl-optimization/86928
26854         * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
26855         compute_live if necessary.
26856         (sel_redirect_edge_and_branch): Likewise.
26858 2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>
26860         PR rtl-optimization/89865
26861         * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
26862         register if it is a part of small class.
26864 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
26866         PR rtl-optimization/87273
26867         * sel-sched-ir.c (merge_fences): Remove assert.
26869 2019-04-01  Richard Biener  <rguenther@suse.de>
26871         PR tree-optimization/46590
26872         * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
26873         (dom_walker::m_reachability): Add in place of...
26874         (dom_walker::m_skip_unreachable_blocks): ...this.
26875         * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
26876         Move complex initialization ...
26877         (dom_walker::walk): Here.  Especially compute m_bb_to_rpo
26878         lazily and initialize edge flags on each invocation.
26879         (dom_walker::bb_reachable): Use m_reachability.
26881 2019-04-01  Martin Liska  <mliska@suse.cz>
26883         PR driver/89861
26884         * opt-suggestions.c (option_proposer::build_option_suggestions):
26885         Add variant without any argument in order to provide better
26886         hints.
26888 2019-04-01  Richard Biener  <rguenther@suse.de>
26890         PR c/71598
26891         * gimple.c: Include langhooks.h.
26892         (gimple_get_alias_set): Treat enumeral types as the underlying
26893         integer type.
26895 2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
26896             Eric Botcazou  <ebotcazou@adacore.com>
26898         PR rtl-optimization/89862
26899         * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
26900         that operates on the full registers for WORD_REGISTER_OPERATIONS
26901         architectures.
26903 2019-03-29  Jim Wilson  <jimw@sifive.com>
26905         * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
26906         Clear MASK_RVC and then set if C subset supported.
26908 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
26910         PR c/89872
26911         * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
26912         non-addressable complit into its initializer if it is volatile.
26914 2019-03-29  Roman Zhuykov  <zhroma@ispras.ru>
26916         * opts-common.c (integral_argument): Set errno properly in one case.
26918 2019-03-29  Martin Liska  <mliska@suse.cz>
26920         * doc/invoke.texi: Remove -Wchkp from documentation.
26922 2019-03-29  Martin Liska  <mliska@suse.cz>
26924         * dbgcnt.c (print_limit_reach): New function.
26925         (dbg_cnt): Use it.
26927 2019-03-29  Martin Liska  <mliska@suse.cz>
26929         * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
26930         (dbg_cnt_process_opt): Parse first tokens aas
26931         dbg_cnt_process_single_pair is also using strtok.
26933 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
26935         PR rtl-optimization/87485
26936         * function.c (expand_function_end): Move stack_protect_epilogue
26937         before loading of return value into hard register(s).
26939 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
26941         PR middle-end/89621
26942         * tree-inline.h (struct copy_body_data): Add
26943         dont_remap_vla_if_no_change flag.
26944         * tree-inline.c (remap_type_3, remap_type_2): New functions.
26945         (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
26946         and remap_type_2 returns false.
26947         * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
26948         Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
26949         only from where it is copied to nested contexts.
26951 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26953         PR target/89865
26954         * config/i386/i386.md (RMW operation with LEA peephole):
26955         Use LEAMODE mode attribute instead of SWI mode iterator for
26956         LEA pattern.
26958 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
26960         PR target/89848
26961         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
26962         Also process XEXP (src, 0) of a shift insn.
26964 2019-03-28  David Malcolm  <dmalcolm@redhat.com>
26966         PR middle-end/89725
26967         * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
26968         Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
26970 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
26972         * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
26973         test.
26974         (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
26975         (pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
26976         immediately after first one with df_analyze in between, but rather
26977         process all bbs, queueing ones that need second pass in a worklist,
26978         df_analyze, process queued debug insn changes and if second pass is
26979         needed, process bbs from worklist, df_analyze, process queued debug
26980         insns again.
26982         * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
26983         or CALL_P instead of INSN_P && !DEBUG_INSN_P.
26984         (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
26986 2019-03-28  Jonathan Wakely  <jwakely@redhat.com>
26988         PR c/79022
26989         * gengtype.h (create_nested_ptr_option): Fix parameter names to match
26990         definition.
26992 2019-03-27  Mateusz B  <mateuszb@poczta.onet.pl>
26994         PR target/85667
26995         * config/i386/i386.c (ix86_function_value_1): Call the newly added
26996         function for 32-bit MS_ABI.
26997         (function_value_ms_32): New function.
26999 2019-03-27  Andrew Stubbs  <ams@codesourcery.com>
27001         * config/gcn/gcn.md (CC_SAVE_REG): New constant.
27002         (movdi): Call gen_movdi_symbol_save_scc.
27003         (gen_movdi_symbol_save_scc): New insn and split.
27005 2019-03-27  Peter Bergner  <bergner@linux.ibm.com>
27007         PR rtl-optimization/89313
27008         * function.c (matching_constraint_num): New static function.
27009         (match_asm_constraints_1): Use it.  Fixup white space and comment.
27010         Don't replace inputs with non-matching constraints which conflict
27011         with early clobber outputs.
27013 2019-03-27  Jeff Law  <law@redhat.com>
27015         PR rtl-optimization/87761
27016         PR rtl-optimization/89826
27017         * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
27018         slightly later.
27019         (pass_cprop_hardreg::execute): Call df_analyze after adding the
27020         note problem to get REG_DEAD/REG_UNUSED notes updated.
27022 2019-03-27  Richard Biener  <rguenther@suse.de>
27024         PR tree-optimization/89463
27025         * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
27026         queue edges to remove.
27027         (eliminate_unnecessary_stmts): Remove dead PHIs alongside
27028         dead stmts.  Delay edge removal until PHIs are removed to
27029         make debug-stmt creation not confused by seemingly degenerate
27030         PHIs.
27032 2019-03-27  Alan Modra  <amodra@gmail.com>
27034         * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
27035         throughout file.
27036         * config/rs6000/darwin.h: Likewise.
27037         * config/rs6000/rs6000.c: Likewise.
27039 2019-03-27  Alan Modra  <amodra@gmail.com>
27041         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
27042         assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.
27044 2019-03-26  Andrew Waterman  <andrew@sifive.com>
27045             Jim Wilson  <jimw@sifive.com>
27047         * config/riscv/generic.md (generic_alu, generic_load, generic_store)
27048         (generic_xfer, generic_branch, generic_imul, generic_idivsi)
27049         (generic_idivdi, generic_fmul_single, generic_fmul_double)
27050         (generic_fdiv, generic_fsqrt): Add check for generic tune.
27051         (generic_alu): Add auipc to type list.
27052         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
27053         (riscv_microarchitecture): Declare.
27054         * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
27055         * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
27056         field.
27057         (riscv_microarchitecture): New.
27058         (sifive_7_tune_info): New.
27059         (riscv_cpu_info_table): Add microarchitecture value for rocket and
27060         size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
27061         entries.
27062         (riscv_store_data_bypass_p): New.
27063         (riscv_option_override): Set riscv_microarchitecture from
27064         cpu->microarchitecture.
27065         * config/riscv/riscv.md: Include sifive-7.md.
27066         (type): Add auipc.
27067         (tune): New.
27068         (auipc<mode>): Change type to auipc.
27069         (restore_stack_nonlocal): New.
27070         * config/riscv/sifive-7.md: New.
27071         * doc/invoke.texi (RISC-V Options): Update mtune docs.
27073 2019-03-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
27075         PR target/89827
27076         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
27077         Also process XEXP (src, 0) of a shift insn.
27079 2019-03-26  Richard Biener  <rguenther@suse.de>
27081         * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
27082         (copy_debug_stmt): Likewise.
27083         (expand_call_inline): Likewise.
27084         (copy_bb): Avoid redundant lookup & set of gimple_block.
27085         * gimple-low.c (lower_gimple_return): Likewise.
27086         (lower_builtin_setjmp): Likewise.
27088 2019-03-26  Jakub Jelinek  <jakub@redhat.com>
27090         * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
27091         is constant 0, turn into static const data member initialized to false.
27092         (hash_table::hash_table): Only initialize m_gather_mem_stats #if
27093         GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.
27095 2019-03-26  Jason Merrill  <jason@redhat.com>
27096             Jakub Jelinek  <jakub@redhat.com>
27098         * mem-stats.h (mem_alloc_description::unregister_descriptor): New
27099         method.
27100         (mem_alloc_description::release_object_overhead): Fix comment typos.
27101         * hash-table.h (hash_table::~hash_table): Call
27102         release_instance_overhead only if m_entries is non-NULL, otherwise
27103         call unregister_descriptor.
27105 2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
27107         PR tree-optimization/81740
27108         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
27109         In case of outer loop vectorization, check for backward dependence
27110         at the inner loop if outer loop dependence is reversed.
27112 2019-03-26  Alan Modra  <amodra@gmail.com>
27114         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
27115         rs6000_vector_mem init.  Correct wI and wJ comment.
27117 2019-03-25  Alexander Monakov  <amonakov@ispras.ru>
27119         PR rtl-optimization/88347
27120         PR rtl-optimization/88423
27121         * sched-deps.c (sched_analyze_insn): Take into account that for
27122         tablejumps the barrier appears after a label and a jump_table_data.
27124 2019-03-25  Martin Sebor  <msebor@redhat.com>
27126         PR c/89812
27127         * c-common.c (check_user_alignment): Rename local.  Correct maximum
27128         alignment in diagnostic.  Avoid assuming argument fits in SHWI,
27129         convert it to UHWI when it fits.
27131 2019-03-25  Johan Karlsson  <johan.karlsson@enea.com>
27133         PR debug/86964
27134         * dwarf2out.c (premark_used_variables): New function.
27135         (prune_unused_types_walk): Do not mark not premarked external
27136         variables.
27137         (prune_unused_types): Call premark_used_variables.
27139 2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>
27141         PR rtl-optimization/89676
27142         * lra-constraints.c (curr_insn_transform): Do match reload for
27143         early clobbers when the match was successful only for different
27144         registers.
27146 2019-03-25  Martin Sebor  <msebor@redhat.com>
27148         * doc/extend.texi (Common Type Attributes): Document vector_size.
27149         (Common Variable Attributes): Mention size constraint.  Correct
27150         quoting and typos.
27151         (Vector Extensions): Use @dfn when defining bas type.  Clarify
27152         base type and size constraints.
27154 2019-03-25  Richard Biener  <rguenther@suse.de>
27156         PR tree-optimization/89789
27157         * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
27158         changes from non-undefined back to undefined.
27160 2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>
27162         * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
27163         heap string and a gc string, but since this variable is unknown to
27164         ggc the gc string might get reused and corrupted. Fixed by always
27165         using a heap string.
27167 2019-03-25  Richard Biener  <rguenther@suse.de>
27169         PR tree-optimization/89779
27170         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
27171         to remove IV defs, delay actual removal.
27172         (tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
27173         (tree_ssa_iv_optimize): Remove eliminated IV defs at the
27174         very end, properly also reset loop control IV information.
27176 2019-03-25  Richard Biener  <rguenther@suse.de>
27178         PR tree-optimization/89802
27179         * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
27180         move EH data to folded stmt.
27182 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
27184         * config/s390/s390-builtin-types.def: Remove few unused types and
27185         fix sort order for others.
27187 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
27189         * config/s390/s390-c.c (s390_fn_types_compatible): Print the
27190         expected and found types with -mdebug during builtin matching.
27192 2019-03-25  Richard Biener  <rguenther@suse.de>
27194         PR middle-end/89790
27195         * fold-const.c (operand_equal_p): Revert last change with
27196         updated comment.
27198 2019-03-24  Segher Boessenkool  <segher@kernel.crashing.org>
27200         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
27201         notes for the result of the __tls_get_addr calls.
27202         * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
27204 2019-03-24  Jeff Law  <law@redhat.com>
27206         * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
27208         PR rtl-optimization/87761
27209         * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
27210         not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
27211         as needed.
27212         (pass_cprop_hardreg::execute): Add df note problem and defer insn
27213         rescans.  Reprocess blocks as needed, calling df_analyze before
27214         reprocessing.  Always call df_analyze before fixing up debug bind
27215         insns.
27217 2019-03-23  Segher Boessenkool  <segher@kernel.crashing.org>
27219         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
27220         big endian.
27222 2019-03-22  Andrew Pinski  <apinski@marvell.com>
27224         * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
27225         attrribute for uxtw.
27227 2019-03-26  Jeff Law  <law@redhat.com>
27229         PR rtl-optimization/87761
27230         * config/mips/mips-protos.h (mips_split_move): Add new argument.
27231         (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
27232         (mips_split_move): Accept new INSN argument.  Try to forward SRC
27233         into the next instruction.
27234         (mips_split_move_insn): Pass INSN through to mips_split_move.
27236 2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>
27238         PR rtl-optimization/89676
27239         * lra-constraints.c (curr_insn_transform): Do match reload for
27240         early clobbers even if the match was successful.
27242 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
27244         PR c++/87481
27245         * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
27247 2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
27249         * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
27251 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
27253         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
27254         <avx512>_fmsub_<mode>_mask3<round_name>,
27255         <avx512>_fnmadd_<mode>_mask3<round_name>,
27256         <avx512>_fnmsub_<mode>_mask3<round_name>,
27257         avx512f_vmfmadd_<mode>_mask3<round_name>,
27258         avx512f_vmfmsub_<mode>_mask3<round_name>,
27259         *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
27260         instead of register_operand and %v instead of v for match_operand 1.
27261         (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
27262         (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
27263         <round_nimm_predicate> instead of register_operand and %v instead of v
27264         for match_operand 1.
27266         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
27267         <avx512>_fmadd_<mode>_mask3<round_name>,
27268         <avx512>_fmsub_<mode>_mask<round_name>,
27269         <avx512>_fmsub_<mode>_mask3<round_name>,
27270         <avx512>_fnmadd_<mode>_mask<round_name>,
27271         <avx512>_fnmadd_<mode>_mask3<round_name>,
27272         <avx512>_fnmsub_<mode>_mask<round_name>,
27273         <avx512>_fnmsub_<mode>_mask3<round_name>,
27274         <avx512>_fmaddsub_<mode>_mask<round_name>,
27275         <avx512>_fmaddsub_<mode>_mask3<round_name>,
27276         <avx512>_fmsubadd_<mode>_mask<round_name>,
27277         <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
27278         <round_nimm_predicate> instead of nonimmediate_operand.
27279         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
27280         fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
27281         Use register_operand instead of <round_nimm_predicate> for the
27282         operand that needs to match output.
27283         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
27284         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
27285         Likewise.  Formatting fixes.
27287         PR target/89784
27288         * config/i386/i386.c (enum ix86_builtins): Remove
27289         IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
27290         * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
27291         __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
27292         __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
27293         __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
27294         __builtin_ia32_vfmsubss3_mask3): New builtins.
27295         * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
27296         avx512f_vmfmadd_<mode>_mask3<round_name>,
27297         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
27298         *avx512f_vmfmsub_<mode>_mask<round_name>,
27299         avx512f_vmfmsub_<mode>_mask3<round_name>,
27300         *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
27301         *avx512f_vmfnmadd_<mode>_mask<round_name>,
27302         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
27303         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
27304         *avx512f_vmfnmsub_<mode>_mask<round_name>,
27305         avx512f_vmfnmsub_<mode>_mask3<round_name>,
27306         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
27307         (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
27308         * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
27309         _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
27310         _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
27311         _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
27312         _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
27313         _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
27314         _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
27315         _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
27316         _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
27317         _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
27318         _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
27319         _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
27320         _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
27321         _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
27322         _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
27323         _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
27324         _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
27325         _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
27326         _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
27327         _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
27329 2019-03-21  Martin Sebor  <msebor@redhat.com>
27331         PR tree-optimization/89350
27332         * builtins.c (compute_objsize): Also ignore offsets whose upper
27333         bound is negative.
27334         * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
27335         (builtin_memref::builtin_memref): Initialize new member.
27336         Allow EXPR to be null.
27337         (builtin_memref::extend_offset_range): Replace local with a member.
27338         Avoid assuming pointer offsets are unsigned.
27339         (builtin_memref::set_base_and_offset): Determine base object
27340         before computing offset range.
27341         (builtin_access::builtin_access): Handle memset.
27342         (builtin_access::generic_overlap): Replace local with a member.
27343         (builtin_access::strcat_overlap): Same.
27344         (builtin_access::overlap): Same.
27345         (maybe_diag_overlap): Same.
27346         (maybe_diag_access_bounds): Same.
27347         (wrestrict_dom_walker::check_call): Handle memset.
27348         (check_bounds_or_overlap): Same.
27350 2019-03-21  Jan Hubicka  <hubicka@ucw.cz>
27351             Jakub Jelinek  <jakub@redhat.com>
27353         PR lto/89692
27354         * tree.c (fld_type_variant, fld_incomplete_type_of,
27355         fld_process_array_type): Call fld->pset.add and don't call
27356         add_tree_to_fld_list if it returns true.
27357         (free_lang_data_in_type): Similarly with self-recursive call.  Purge
27358         non-marked types from TYPE_NEXT_VARIANT list.
27359         (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
27361 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
27363         * hash-table.h (hash_table): Add Lazy template parameter defaulted
27364         to false, if true, don't alloc_entries during construction, but defer
27365         it to the first method that needs m_entries allocated.
27366         (hash_table::hash_table, hash_table::~hash_table,
27367         hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
27368         hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
27369         hash_table::clear_slot, hash_table::traverse_noresize,
27370         hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
27371         * hash-set.h (hash_set): Add Lazy template parameter defaulted to
27372         false.
27373         (hash_set::contains): If Lazy is true, use find_slot_with_hash with
27374         NO_INSERT instead of find_with_hash.
27375         (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
27376         hash_set::m_table): Add Lazy to template params of hash_table.
27377         (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
27378         * attribs.c (test_attribute_exclusions): Likewise.
27379         * hash-set-tests.c (test_set_of_strings): Add iterator tests for
27380         hash_set.  Add tests for hash_set with Lazy = true.
27382 2019-03-21  Richard Biener  <rguenther@suse.de>
27384         PR tree-optimization/89779
27385         * tree.c (tree_nop_conversion): Consolidate and fix defensive
27386         checks with respect to released SSA names now having error_mark_node
27387         type.
27388         * fold-const.c (operand_equal_p): Likewise.
27390 2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
27392         PR target/89775
27393         * config/s390/s390.c (global_not_special_regno_p): Move to make it
27394         available to ...
27395         (s390_optimize_register_info): Use global_not_special_regno_p to
27396         check for global regs.
27398 2019-03-20  Jakub Jelinek  <jakub@redhat.com>
27400         PR target/89752
27401         * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
27402         update this_alternative nor this_alternative_set.
27404 2019-03-19  Jim Wilson  <jimw@sifive.com>
27406         PR target/89411
27407         * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x.  New locals
27408         align, size, offset.  Use them to handle a BLKmode reference.  Update
27409         comment.
27410         (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
27412 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
27414         PR rtl-optimization/89768
27415         * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
27416         instead of GEN_INT.
27417         (unroll_loop_runtime_iterations): Likewise.
27419 2019-03-19  Martin Sebor  <msebor@redhat.com>
27421         PR tree-optimization/89644
27422         * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
27423         rather than endptr as an indicator of nul-termination.
27425         PR tree-optimization/89644
27426         * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
27427         arrays in determining sequence sizes in strncpy and stpncpy.
27429 2019-03-19  Martin Liska  <mliska@suse.cz>
27431         PR middle-end/89737
27432         * predict.c (combine_predictions_for_bb): Empty likely_edges and
27433         unlikely_edges if there's an edge that belongs to both these sets.
27435 2018-03-19  Segher Boessenkool  <segher@kernel.crashing.org>
27437         PR target/89746
27438         * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
27439         non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
27440         go via a stack temporary.
27442 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
27444         PR target/89378
27445         * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
27446         instead of gen_rtx_SUBREG.
27447         * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
27449 2019-03-19  Richard Biener  <rguenther@suse.de>
27451         PR debug/88389
27452         * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
27454 2019-03-19  Jan Hubicka  <hubicka@ucw.cz>
27456         PR lto/87809
27457         PR lto/89335
27458         * tree.c (free_lang_data_in_decl): Do not free context of C++
27459         destrutors.
27461 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
27463         PR target/89506
27464         * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
27465         subs for the first alternative except when operands[3] is 1.
27467         PR target/89752
27468         * gimplify.c (gimplify_asm_expr): For output argument with
27469         TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
27470         diagnose error.
27472 2019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
27474         PR rtl-optimization/89753
27475         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
27476         explicit unrolling factor even more robust.
27478 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
27480         PR target/89726
27481         * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
27482         compensation use x2 += 1 instead of x2 -= -1 and when honoring
27483         signed zeros, do another copysign after the compensation.
27485 2019-03-18  Martin Sebor  <msebor@redhat.com>
27487         PR tree-optimization/89720
27488         * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
27489         more conservatively, the same as anti-range.
27491 2019-03-18  Richard Biener  <rguenther@suse.de>
27493         PR middle-end/88945
27494         * tree-ssanames.c (release_ssa_name_fn): For released SSA names
27495         use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
27496         basic-blocks that are removed.  Remove restoring SSA_NAME_VAR.
27497         * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
27499 2019-03-18  Andrew Stubbs  <ams@codesourcery.com>
27501         * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
27502         Extend queue to 1024 entries.
27503         Add "consumed" field.
27504         (gomp_print_output): Remove print_index parameter.
27505         Add final parameter.
27506         Change limit to unsigned.
27507         Use consumed field to implement circular buffer.
27508         Detect interrupted print in final pass.
27509         Flush output at the end.
27510         (run): Update gomp_print_output usage.
27511         (main): Initialize kernargs->output_data.consumed.
27513 2019-03-18  Richard Sandiford  <richard.sandiford@arm.com>
27515         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
27516         calculation of the minimum number of scalar iterations for
27517         fully-predicated loops.
27519 2019-03-18  Martin Jambor  <mjambor@suse.cz>
27521         PR tree-optimization/89546
27522         * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
27523         any propagation to its children took place.
27525 2019-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>
27527         PR target/89627
27528         * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
27529         parameter, and make use of it.
27530         (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
27532 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
27534         * config/arc/arc.opt (mcode-density-frame): Get the inital value
27535         from TARGET_CODE_DENSITY_FRAME_DEFAULT.
27536         * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
27537         * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
27538         * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
27539         match what the ops is doing.
27540         (push_multi_fp_blink): Likewise.
27541         * config/arc/arc.c (arc_override_options): Enable enter/leave when
27542         compiling for size and elf target.
27543         (arc_save_callee_enter): Adjust note to match what enter/leave
27544         operation does.
27546 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
27548         * config/arc/arc.md (tst_movb): Fix constraint.
27550 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
27552         * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
27554 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
27556         * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
27557         * config/arc/arc.c (arc_conditional_register_usage): Remove all
27558         reg_alloc_order references.
27559         (size_alloc_order): Define.
27560         (arc_adjust_reg_alloc_order): New function.
27561         * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
27562         order.
27563         (ADJUST_REG_ALLOC_ORDER): Define.
27564         (HONOR_REG_ALLOC_ORDER): Likewise.
27566 2019-03-18  Richard Biener  <rguenther@suse.de>
27568         PR target/87561
27569         * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
27570         loads and stores a bit more.
27572 2019-03-18  Richard Biener  <rguenther@suse.de>
27574         PR target/87561
27575         * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
27576         load pessimization to stores as well.
27578 2019-03-18  Andrey Belevantsev  <abel@ispras.ru>
27580         PR middle-end/86979
27581         * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
27582         successor, use NULL as its av set.
27584 2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
27586         PR rtl-optimization/89721
27587         * lra-constraints (invariant_p): Return false if side_effects_p holds.
27589 2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
27591         PR target/87532
27592         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27593         When handling vec_extract, use modular arithmetic to allow
27594         constant selectors greater than vector length.
27595         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
27596         V1TImode vectors to have constant selector values greater than 0.
27597         Use modular arithmetic to compute vector index.
27598         (rs6000_split_vec_extract_var): Use modular arithmetic to compute
27599         index for in-memory vectors.  Correct code generation for
27600         in-register vectors.
27601         (altivec_expand_vec_ext_builtin): Use modular arithmetic to
27602         compute index.
27604 2019-03-15  Alexandre Oliva  <aoliva@redhat.com>
27606         PR c++/88534
27607         PR c++/88537
27608         * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
27609         VAR_DECL args.
27611 2019-03-15  Jakub Jelinek  <jakub@redhat.com>
27613         PR c++/89709
27614         * tree.c (inchash::add_expr): Strip any location wrappers.
27615         * fold-const.c (operand_equal_p): Move stripping of location wrapper
27616         after hash verification.
27618         PR debug/89704
27619         * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
27620         SIGN_EXTEND and ZERO_EXTEND.
27622 2019-03-14  Jason Merrill  <jason@redhat.com>
27623             Jakub Jelinek  <jakub@redhat.com>
27625         * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
27626         than if is_empty (*slot).
27627         * hash-set-tests.c (test_set_of_strings): Add tests for addition of
27628         existing elt and for elt removal.
27629         * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
27630         of already removed elt.
27632 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
27634         PR target/89650
27635         * config/i386/i386.c (remove_partial_avx_dependency): Handle
27636         REG_EH_REGION note.
27638 2019-03-14  Martin Liska  <mliska@suse.cz>
27640         PR other/89712
27641         * doc/invoke.texi: Remove -fdump-class-hierarchy option.
27643 2019-03-14  Richard Biener  <rguenther@suse.de>
27645         PR target/89711
27646         * config/i386/i386.c (make_resolver_func): Properly set
27647         DECL_CONTEXT on the RESULT_DECL.
27648         * config/rs6000/rs6000.c (make_resolver_func): Likewise.
27650 2019-03-14  Richard Biener  <rguenther@suse.de>
27652         * gimple-pretty-print.c: Include cfgloop.h.
27653         (dump_gimple_phi): Adjust.
27654         (dump_gimple_bb_header): Dump loop header for GIMPLE.
27655         (pp_cfg_jump): Adjust.
27656         (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
27657         * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
27658         (lower_phi_internal_fn): Remove.
27659         (verify_gimple_call): Remove IFN_PHI special-casing.
27660         (dump_function_to_file): Dump IL state.
27661         * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
27662         done to deal with PHI nodes being present in non-SSA state.
27664 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
27666         PR ipa/89684
27667         * multiple_target.c (create_dispatcher_calls): Change
27668         references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
27669         In the node->iterate_referring loop, push *ref rather than ref, call
27670         ref->remove_reference () and always pass 0 to iterate_referring.
27672         PR rtl-optimization/89679
27673         * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
27674         would contain a paradoxical SUBREG.
27676 2019-03-14  Richard Biener  <rguenther@suse.de>
27678         PR tree-optimization/89710
27679         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
27680         safe_dyn_cast.
27682 2019-03-14  Martin Liska  <mliska@suse.cz>
27684         * coverage.c (coverage_begin_function): Stream also
27685         end_column.
27686         * doc/gcov.texi: Document 2 new fields in JSON file.  Improve
27687         documentation about function declaration location.
27688         * gcov-dump.c (tag_function): Print whole range
27689         of function declaration.
27690         * gcov.c (struct function_info): Add end_column field.
27691         (function_info::function_info): Initialize it.
27692         (output_json_intermediate_file): Output {start,end}_column
27693         fields.
27694         (read_graph_file): Read end_column.
27696 2019-03-14  Richard Biener  <rguenther@suse.de>
27698         PR middle-end/89698
27699         * fold-const.c (operand_equal_p): For INDIRECT_REF check
27700         that the access types are similar.
27702 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
27704         PR tree-optimization/89703
27705         * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
27706         aren't compatible also with builtin_decl_explicit.  Check pure
27707         or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
27708         and BUILT_IN_STPNCPY{,_CHK}.
27710 2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
27712         PR target/89523
27713         * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
27714         addr32 prefix to VSIB address for X32.
27715         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
27716         "%M2" to opcode.
27717         (*avx512pf_gatherpf<mode>df_mask): Likewise.
27718         (*avx512pf_scatterpf<mode>sf_mask): Likewise.
27719         (*avx512pf_scatterpf<mode>df_mask): Likewise.
27720         (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
27721         (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
27722         (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
27723         (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
27724         (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
27725         (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
27726         (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
27727         (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
27728         (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
27729         (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
27730         (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
27731         (*avx512f_scatterdi<mode>): Likewise.
27733 2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
27735         PR target/85860
27736         * lra-constraints.c (inherit_in_ebb): Update
27737         potential_reload_hard_regs along with live_hard_regs.
27739 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
27741         PR debug/89498
27742         * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
27743         DWARF_OFFSET_SIZE.
27744         (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
27746 2019-03-13  Martin Sebor  <msebor@redhat.com>
27748         PR tree-optimization/89662
27749         * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
27750         has a size.
27752 2019-03-13  Richard Biener  <rguenther@suse.de>
27754         PR middle-end/89677
27755         * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
27756         throw FP expressions at tree-affine.
27758 2019-03-14  Richard Biener  <rguenther@suse.de>
27760         * tree-pretty-print.c (dump_generic_node): For -gimple properly
27761         dump negative integer constants using _Literal (type) -num.
27763 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
27765         * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
27766         nonlocal_value member.
27768         PR middle-end/88588
27769         * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
27770         (ipa_simd_modify_function_body): Handle PHIs.
27772 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
27774         * config/s390/s390.c (s390_option_override_internal): Use more
27775         aggressive inlining parameters.
27777 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
27779         * config/s390/3906.md: New file.
27780         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
27781         (LONGRUNNING_THRESHOLD): Remove.
27782         (MAX_SCHED_MIX_SCORE): Decrease.
27783         (MAX_SCHED_MIX_DISTANCE): Decrease.
27784         (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
27785         (struct s390_sched_state): New struct to hold scheduling state.
27786         (S390_SCHED_STATE_NORMAL): Remove.
27787         (S390_SCHED_STATE_CRACKED): Remove.
27788         (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
27789         (s390_get_sched_attrmask): Use new attribute.
27790         (s390_get_unit_mask): Use new units.
27791         (s390_is_fpd): New function.
27792         (s390_is_fxd): New function.
27793         (s390_is_longrunning): New function.
27794         (s390_sched_score): Use new functions.
27795         (s390_sched_reorder): Likewise.
27796         (s390_sched_variable_issue): Rework and use new functions.
27797         (s390_sched_init): Use new functions.
27798         * config/s390/s390.h (s390_tune_attr): Add z14.
27799         * config/s390/s390.md: Add z14.
27801 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
27803         * config/s390/2964.md: Update pipeline description.
27804         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
27805         (LONGRUNNING_THRESHOLD): Remove.
27806         (LATENCY_FACTOR): Remove.
27807         (s390_get_unit_mask): Add unit.
27808         (s390_sched_score): Use fxd/fpd.
27809         (s390_sched_variable_issue): Use fxd/fpd.
27811 2019-03-12  Martin Liska  <mliska@suse.cz>
27813         * config/i386/i386.c: Reword an error message.
27815 2019-03-12  Martin Jambor  <mjambor@suse.cz>
27817         * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
27818         terminate with newline.
27820 2019-03-12  Jakub Jelinek  <jakub@redhat.com>
27822         PR target/52726
27823         * config/s390/s390.md (tabort): Use %wd instead of
27824         HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
27825         letters and periods.
27826         * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
27827         output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
27828         's with %< and %>.
27830         PR middle-end/89663
27831         * builtins.c (expand_builtin_int_roundingfn,
27832         expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
27833         gcc_unreachable if validate_arglist fails.
27835 2019-03-12  Richard Biener  <rguenther@suse.de>
27837         PR tree-optimization/89664
27838         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
27839         free the occurance tree after the early out.
27841 2019-03-11  Jakub Jelinek  <jakub@redhat.com>
27843         PR middle-end/89655
27844         PR bootstrap/89656
27845         * vr-values.c (vr_values::update_value_range): If
27846         old_vr->varying_p (), don't update it, make new_vr also VARYING
27847         and return false.
27849 2019-03-11  Martin Liska  <mliska@suse.cz>
27851         * config/aarch64/aarch64.c (aarch64_override_options_internal):
27852         Fix double string quoting.
27854 2019-03-11  Martin Liska  <mliska@suse.cz>
27856         * collect-utils.c (collect_wait): Wrap apostrophes
27857         in gcc internal format with %'.
27858         * collect2.c (main): Likewise.
27859         (scan_prog_file): Likewise.
27860         (scan_libraries): Likewise.
27861         * config/i386/i386.c (ix86_expand_call): Likewise.
27862         (ix86_handle_interrupt_attribute): Likewise.
27863         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
27864         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
27865         * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
27866         * lto-wrapper.c (find_crtoffloadtable): Likewise.
27867         * symtab.c (symtab_node::verify_base): Likewise.
27868         * tree-cfg.c (verify_gimple_label): Likewise.
27869         * tree.c (verify_type_variant): Likewise.
27871 2019-03-11  Martin Liska  <mliska@suse.cz>
27873         * builtins.c (expand_builtin_thread_pointer): Wrap an option name
27874         in a string format message and fix GNU coding style.
27875         (expand_builtin_set_thread_pointer): Likewise.
27876         * common/config/aarch64/aarch64-common.c
27877         (aarch64_rewrite_selected_cpu): Likewise.
27878         * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
27879         * common/config/arc/arc-common.c (arc_handle_option): Likewise.
27880         * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
27881         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
27882         * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
27883         * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
27884         * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
27885         * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
27886         * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
27887         * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
27888         Likewise.
27889         * common/config/riscv/riscv-common.c
27890         (riscv_subset_list::parsing_subset_version): Likewise.
27891         (riscv_subset_list::parse_std_ext): Likewise.
27892         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
27893         (riscv_subset_list::parse): Likewise.
27894         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
27895         * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
27896         (aarch64_override_options_internal): Likewise.
27897         (aarch64_validate_mcpu): Likewise.
27898         (aarch64_validate_march): Likewise.
27899         (aarch64_validate_mtune): Likewise.
27900         (aarch64_override_options): Likewise.
27901         * config/alpha/alpha.c (alpha_option_override): Likewise.
27902         * config/arc/arc.c (arc_init): Likewise.
27903         (parse_mrgf_banked_regs_option): Likewise.
27904         (arc_override_options): Likewise.
27905         (arc_expand_builtin_aligned): Likewise.
27906         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
27907         (arm_expand_builtin): Likewise.
27908         * config/arm/arm.c (arm_option_check_internal): Likewise.
27909         (arm_configure_build_target): Likewise.
27910         (arm_option_override): Likewise.
27911         (arm_options_perform_arch_sanity_checks): Likewise.
27912         (arm_handle_cmse_nonsecure_entry): Likewise.
27913         (arm_handle_cmse_nonsecure_call): Likewise.
27914         (arm_tls_referenced_p): Likewise.
27915         (thumb1_expand_prologue): Likewise.
27916         * config/avr/avr.c (avr_option_override): Likewise.
27917         * config/bfin/bfin.c (bfin_option_override): Likewise.
27918         * config/c6x/c6x.c (c6x_option_override): Likewise.
27919         * config/cr16/cr16.c (cr16_override_options): Likewise.
27920         * config/cris/cris.c (cris_option_override): Likewise.
27921         * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
27922         * config/darwin-c.c (macosx_version_as_macro): Likewise.
27923         * config/darwin.c (darwin_override_options): Likewise.
27924         * config/frv/frv.c (frv_expand_builtin): Likewise.
27925         * config/h8300/h8300.c (h8300_option_override): Likewise.
27926         * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
27927         (ix86_option_override_internal): Likewise.
27928         (warn_once_call_ms2sysv_xlogues): Likewise.
27929         (ix86_expand_prologue): Likewise.
27930         (split_stack_prologue_scratch_regno): Likewise.
27931         (ix86_warn_parameter_passing_abi): Likewise.
27932         * config/ia64/ia64.c (fix_range): Likewise.
27933         * config/m68k/m68k.c (m68k_option_override): Likewise.
27934         * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
27935         * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
27936         (mips_set_compression_mode): Likewise.
27937         * config/mmix/mmix.c (mmix_option_override): Likewise.
27938         * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
27939         * config/msp430/msp430.c (msp430_option_override): Likewise.
27940         * config/nds32/nds32.c (nds32_option_override): Likewise.
27941         * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
27942         (nios2_option_override): Likewise.
27943         (nios2_expand_custom_builtin): Likewise.
27944         * config/nvptx/mkoffload.c (main): Likewise.
27945         * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
27946         * config/pa/pa.c (fix_range): Likewise.
27947         (pa_option_override): Likewise.
27948         * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
27949         (riscv_option_override): Likewise.
27950         * config/rl78/rl78.c (rl78_option_override): Likewise.
27951         * config/rs6000/aix61.h: Likewise.
27952         * config/rs6000/aix71.h: Likewise.
27953         * config/rs6000/aix72.h: Likewise.
27954         * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
27955         * config/rs6000/freebsd64.h: Likewise.
27956         * config/rs6000/linux64.h: Likewise.
27957         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
27958         (rs6000_expand_zeroop_builtin): Likewise.
27959         (rs6000_expand_mtfsb_builtin): Likewise.
27960         (rs6000_expand_set_fpscr_rn_builtin): Likewise.
27961         (rs6000_expand_set_fpscr_drn_builtin): Likewise.
27962         (rs6000_invalid_builtin): Likewise.
27963         (rs6000_expand_split_stack_prologue): Likewise.
27964         * config/rs6000/rtems.h: Likewise.
27965         * config/rx/rx.c (valid_psw_flag): Likewise.
27966         (rx_expand_builtin): Likewise.
27967         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
27968         * config/s390/s390.c (s390_expand_builtin): Likewise.
27969         (s390_function_profiler): Likewise.
27970         (s390_option_override_internal): Likewise.
27971         (s390_option_override): Likewise.
27972         * config/sh/sh.c (sh_option_override): Likewise.
27973         (sh_builtin_saveregs): Likewise.
27974         (sh_fix_range): Likewise.
27975         * config/sh/vxworks.h: Likewise.
27976         * config/sparc/sparc.c (sparc_option_override): Likewise.
27977         * config/spu/spu.c (spu_option_override): Likewise.
27978         (fix_range): Likewise.
27979         * config/visium/visium.c (visium_option_override): Likewise.
27980         (visium_handle_interrupt_attr): Likewise.
27981         * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
27982         * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
27983         (dbg_cnt_process_opt): Likewise.
27984         * dwarf2out.c (output_dwarf_version): Likewise.
27985         * except.c (expand_eh_return): Likewise.
27986         * gcc.c (defined): Likewise.
27987         (driver_handle_option): Likewise.
27988         (process_command): Likewise.
27989         (compare_files): Likewise.
27990         (driver::prepare_infiles): Likewise.
27991         (driver::do_spec_on_infiles): Likewise.
27992         (driver::maybe_run_linker): Likewise.
27993         * omp-offload.c (oacc_parse_default_dims): Likewise.
27994         * opts-global.c (handle_common_deferred_options): Likewise.
27995         * opts.c (parse_sanitizer_options): Likewise.
27996         (common_handle_option): Likewise.
27997         (enable_warning_as_error): Likewise.
27998         * passes.c (enable_disable_pass): Likewise.
27999         * plugin.c (parse_plugin_arg_opt): Likewise.
28000         (default_plugin_dir_name): Likewise.
28001         * targhooks.c (default_expand_builtin_saveregs): Likewise.
28002         (default_pch_valid_p): Likewise.
28003         * toplev.c (init_asm_output): Likewise.
28004         (process_options): Likewise.
28005         (toplev::run_self_tests): Likewise.
28006         * tree-cfg.c (verify_gimple_call): Likewise.
28007         * tree-inline.c (inline_forbidden_p_stmt): Likewise.
28008         (tree_inlinable_function_p): Likewise.
28009         * var-tracking.c (vt_find_locations): Likewise.
28011 2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
28013         * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
28014         only on the else branch.
28016 2019-03-11  Martin Liska  <mliska@suse.cz>
28018         * gcov.c (output_intermediate_json_line): Print function
28019         name of each line.
28020         (output_json_intermediate_file): Add new argument.
28021         * doc/gcov.texi: Document the change.
28023 2019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
28025         PR rtl-optimization/89588
28026         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
28027         explicit unrolling factor more robust.
28029 2019-03-11  Richard Biener  <rguenther@suse.de>
28031         PR tree-optimization/89649
28032         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
28033         * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
28034         on the prolog and epilog loops.
28035         (vect_loop_versioning): Return copy of loop.
28036         * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
28037         on the non-vectorized version of the loop.
28039 2019-03-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28041         PR target/68924
28042         * config/i386/sse.md (*vec_extractv2di_0_sse):
28043         Add (=r,x) alternative and corresponding splitter.
28045 2019-03-10  Martin Jambor  <mjambor@suse.cz>
28047         PR tree-optimization/85762
28048         PR tree-optimization/87008
28049         PR tree-optimization/85459
28050         * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
28051         it points to if there is a type changing MEM_REF.  Adjust all callers.
28052         (build_accesses_from_assign): Disable total scalarization if
28053         contains_vce_or_bfcref_p returns true through the new parameter, for
28054         both rhs and lhs.
28056 2019-03-09  Jakub Jelinek  <jakub@redhat.com>
28058         PR c/88568
28059         * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
28060         dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
28062         PR target/79645
28063         * common.opt (fdiagnostics-show-labels,
28064         fdiagnostics-show-line-numbers, fdiagnostics-format=,
28065         fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
28066         gas-locview-support, ginline-points, ginternal-reset-location-views):
28067         Terminate description text with a dot.
28068         * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
28069         * config/mcore/mcore.opt (m210, m340): Likewise.
28070         * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
28071         mnops=): Start description text with a capital letter.
28072         * config/arc/arc.opt (msize-level=): Likewise.
28073         * config/sh/sh.opt (minline-ic_invalidate): Likewise.
28074         * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
28075         mnewlib): Likewise.
28076         * config/ft32/ft32.opt (msim): Likewise.
28077         (mft32b, mcompress): Likewise.  Terminate description text with a dot.
28078         (mnodiv, mnopm): Terminate description text with a dot.
28079         * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
28080         a colon.
28081         * config/i386/i386.opt (prefer_vector_width, instrument_return):
28082         Likewise.
28083         * config/rx/rx.opt (nofpu): Remove trailing spaces from description
28084         text.
28086         PR rtl-optimization/89634
28087         * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
28088         are modified in BB_END (e->src) instruction.
28090 2019-03-08  David Malcolm  <dmalcolm@redhat.com>
28092         PR target/79926
28093         * config/i386/i386.c (ix86_set_current_function): Make "sorry"
28094         messages more amenable to translation, and improve wording.
28096 2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
28098         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
28099         ud- and du-chains between phases.
28101 2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
28103         PR debug/89631
28104         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
28105         instead of POLY_INT_CST.
28107 2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
28109         * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
28110         requirement.
28112 2019-03-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28114         PR target/68924
28115         PR target/78782
28116         PR target/87558
28117         * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
28118         (_mm_storeu_si64): Ditto.
28120 2019-03-08  Martin Liska  <mliska@suse.cz>
28122         PR target/86952
28123         * config/i386/i386.c (ix86_option_override_internal): Disable
28124         jump tables when retpolines are used.
28126 2019-03-08  Jan Hubicka  <hubicka@ucw.cz>
28128         PR go/63560
28129         * ipa-split.c (execute_split_functions): Do not split
28130         'noinline' or 'section' function.
28132 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
28134         PR target/79846
28135         * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
28136         HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
28137         HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.
28139         PR ipa/80000
28140         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
28141         from diagnostics.  Formatting fixes.
28143         PR target/85665
28144         * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
28145         warn_odr diagnostics.
28147         PR other/80058
28148         * lra-constraints.c (process_alt_operands): Avoid one space before
28149         " at the end of line and another after " on another line in a string
28150         literal.
28151         * attribs.c (handle_dll_attribute): Likewise.
28152         * config/avr/avr-devices.c (avr_texinfo): Likewise.
28154         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
28155         warning_at or inform messages in G_() if there is no ?:.
28157         PR tree-optimization/89550
28158         * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
28159         returned true.  Formatting fixes.
28160         (expand_builtin_strnlen): Formatting fixes.
28161         * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
28162         if warning_at returned true.
28163         * tree-cfg.c (pass_warn_function_return::execute): Likewise.
28165 2019-03-08  Richard Biener  <rguenther@suse.de>
28167         PR middle-end/89578
28168         * cfgloop.h (struct loop): Add owned_clique field.
28169         * cfgloopmanip.c (copy_loop_info): Copy it.
28170         * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
28171         cliques.
28172         * tree-inline.c (copy_loops): Remap owned_clique.
28173         * lto-streamer-in.c (input_cfg): Stream owned_clique.
28174         * lto-streamer-out.c (output_cfg): Likewise.
28176 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
28178         PR target/80190
28179         * config/darwin.c: Include intl.h.
28180         (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
28181         composing the message out of two separate parts.
28183 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
28185         PR target/80003
28186         * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
28187         doesn't start with a capital letter and doesn't end with a dot.
28188         (ix86_function_arg_boundary): Make sure diagnostics doesn't start
28189         with a capital letter.
28190         (ix86_mangle_function_version_assembler_name): Likewise.
28191         (ix86_generate_version_dispatcher_body): Likewise.
28192         (fold_builtin_cpu): Likewise.
28193         (get_builtin_code_for_version): Likewise.  Remove extraneous space.
28194         (ix86_handle_interrupt_attribute): Make the diagnostics easier for
28195         translators, wrap full type name in %qs.
28197         PR translation/79999
28198         * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
28199         depend clause with source (or sink) modifier.
28200         * omp-expand.c (expand_omp_ordered_sink): Likewise.
28202         PR target/89602
28203         * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
28204         *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
28205         (avx512f_load<mode>_mask): New define_expand.
28206         * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
28207         __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
28208         __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
28209         __builtin_ia32_movess_mask): New builtins.
28210         * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
28211         _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
28212         _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
28213         _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
28215 2019-03-07  Martin Jambor  <mjambor@suse.cz>
28217         PR lto/87525
28218         * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
28219         for extern inline functions.
28221 2019-03-07  Martin Jambor  <mjambor@suse.cz>
28223         PR ipa/88235
28224         * cgraph.h (cgraph_node): New inline method former_thunk_p.
28225         * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
28226         (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
28227         have multiple callees.  At the end check if declarations match as
28228         opposed to cgraph_nodes.
28230 2019-03-07  Martin Liska  <mliska@suse.cz>
28232         * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
28233         which is equivalent to searching for this in clones chain.
28234         * symtab.c (symtab_node::verify_base): Similarly compare ASM
28235         names with a neighbour and special case first node in a chain.
28237 2019-01-25  Jason Merrill  <jason@redhat.com>
28239         PR c++/80916 - spurious "static but not defined" warning.
28240         * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
28241         for an internal symbol with DECL_EXTERNAL.
28243 2019-04-07  Richard Biener  <rguenther@suse.de>
28245         PR middle-end/89618
28246         * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
28247         * tree-inline.c (copy_loops): Simplify.
28249 2019-03-07  Martin Liska  <mliska@suse.cz>
28251         * dwarf2out.c (add_AT_vms_delta): Revert function removal.
28253 2019-03-07  Richard Biener  <rguenther@suse.de>
28255         PR tree-optimization/89595
28256         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
28257         stmt iterator as reference, take boolean output parameter to
28258         indicate whether the stmt was removed and thus the iterator
28259         already advanced.
28260         (dom_opt_dom_walker::before_dom_children): Re-iterate over
28261         stmts created by folding.
28263 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
28265         PR c++/89585
28266         * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
28267         at toplevel.
28269 2019-03-06  Peter Bergner  <bergner@linux.ibm.com>
28271         PR rtl-optimization/88845
28272         * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
28273         LRA.
28274         * lra.c (remove_scratches_1): New function.
28275         (remove_scratches): Use it.
28276         (lra_emit_move): Likewise.
28278 2019-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
28280         * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
28281         unaligned_access variable.
28282         * config/arc/arc.c (arc_override_options): Set unaligned access
28283         default on for HS CPUs.
28284         * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
28286 2019-03-06  Martin Liska  <mliska@suse.cz>
28288         PR gcov-profile/89577
28289         * doc/gcov.texi: Prefer to use --coverage.
28290         * doc/sourcebuild.texi: Likewise.
28292 2019-03-02  Jason Merrill  <jason@redhat.com>
28294         PR c++/86485 - -Wmaybe-unused with empty class ?:
28295         * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
28297 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
28299         PR target/89587
28300         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
28301         if_multiarch.
28303         PR middle-end/89590
28304         * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
28305         exactly one argument.
28307 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
28308             Richard Sandiford  <richard.sandiford@arm.com>
28310         PR tree-optimization/89570
28311         * match.pd (vec_cond into cond_op simplification): Don't use
28312         get_conditional_internal_fn, use as_internal_fn (cond_op).
28314 2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
28316         PR target/89222
28317         * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
28318         to decide when to split off a non-zero offset from a symbol.
28319         * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
28320         in function symbols.
28322 2019-03-05  Richard Biener  <rguenther@suse.de>
28324         PR tree-optimization/89594
28325         * tree-if-conv.c (pass_if_conversion::execute): Handle
28326         case where .LOOP_VECTORIZED_FUNCTION was removed.
28328 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
28330         PR bootstrap/89560
28331         * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
28332         instead alloca it only when needed with the needed size.
28334         PR tree-optimization/89570
28335         * match.pd (vec_cond into cond_op simplification): Guard with
28336         vectorized_internal_fn_supported_p test and #if GIMPLE.
28338         PR tree-optimization/89566
28339         * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
28340         Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
28341         Punt if get_user_idx_format succeeds, but idx_format argument is
28342         not provided or doesn't have pointer type, or if idx_args is above
28343         number of provided arguments.
28345 2019-03-04  Wilco Dijkstra  <wdijkstr@arm.com>
28347         PR tree-optimization/89437
28348         * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
28350 2019-03-04  Richard Biener  <rguenther@suse.de>
28352         PR middle-end/89572
28353         * tree-scalar-evolution.c: (get_loop_exit_condition): Use
28354         safe_dyn_cast.
28356 2019-03-04  Bin Cheng  <bin.cheng@linux.alibaba.com>
28358         PR tree-optimization/89487
28359         * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
28360         (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
28361         (distribute_loop): Don't do runtime alias check if there is non-
28362         addressable data reference.
28363         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
28364         is a register variable.
28366 2019-03-02  Jakub Jelinek  <jakub@redhat.com>
28368         PR target/89506
28369         * config/arm/arm.md (cmpsi2_addneg): Use
28370         trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
28371         If operands[2] is 0 or INT_MIN, force use of subs.
28372         (*compare_scc splitter): Use gen_int_mode.
28373         (*negscc): Likewise.
28374         * config/arm/thumb2.md (*thumb2_negscc): Likewise.
28376 2019-03-01  Kito Cheng  <kito.cheng@gmail.com>
28377             Monk Chiang  <sh.chiang04@gmail.com>
28379         * common/config/riscv/riscv-common.c: Include sstream.
28380         (riscv_subset_list::to_string): New.
28381         (riscv_arch_str): Likewise.
28382         * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
28383         * config.in: Regen.
28384         * config/riscv/riscv-protos.h (riscv_arch_str): New.
28385         * config/riscv/riscv.c (INCLUDE_STRING): Defined.
28386         (riscv_emit_attribute): New.
28387         (riscv_file_start): Emit attribute if needed.
28388         (riscv_option_override): Init riscv_emit_attribute_p.
28389         * config/riscv/riscv.opt (mriscv-attribute): New option.
28390         * configure.ac (riscv*-*-*): Check binutils is supporting ELF
28391         * configure: Regen.
28392         * doc/install.texi: Document --with-riscv-attribute.
28393         * doc/invoke.texi: Document -mriscv-attribute.
28395         * common/config/riscv/riscv-common.c:
28396         Include config/riscv/riscv-protos.h.
28397         (INCLUDE_STRING): Defined.
28398         (RISCV_DONT_CARE_VERSION): Defined.
28399         (riscv_subset_t): Declare.
28400         (riscv_subset_t::riscv_subset_t): New.
28401         (riscv_subset_list): Declare.
28402         (riscv_subset_list::riscv_subset_list): New.
28403         (riscv_subset_list::~riscv_subset_list): Likewise.
28404         (riscv_subset_list::parsing_subset_version): Likewise.
28405         (riscv_subset_list::parse_std_ext): Likewise.
28406         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
28407         (riscv_subset_list::add): Likewise.
28408         (riscv_subset_list::lookup): Likewise.
28409         (riscv_subset_list::xlen): Likewise.
28410         (riscv_subset_list::parse): Likewise.
28411         (riscv_supported_std_ext): Likewise.
28412         (current_subset_list): Likewise.
28413         (riscv_parse_arch_string): Using riscv_subset_list::parse to
28414         parse.
28416 2019-03-01  Segher Boessenkool  <segher@kernel.crashing.org>
28418         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
28419         rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
28420         * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
28422 2019-03-01  Alexander Monakov  <amonakov@ispras.ru>
28424         PR rtl-optimization/85899
28425         * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
28426         fallthru edges leading to the exit block.
28428 2019-03-01  Tamar Christina  <tamar.christina@arm.com>
28430         PR target/89517
28431         * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
28432         rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
28434 2019-03-01  Richard Sandiford  <richard.sandiford@arm.com>
28436         PR tree-optimization/89535
28437         * tree-vect-stmts.c (vectorizable_call): Record the vector types
28438         for each operand.  Calculate the fallback choice for mask operands
28439         and pass it to vect_get_vec_def_for_operand.
28441 2019-03-01  Richard Biener  <rguenther@suse.de>
28443         PR middle-end/89541
28444         * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
28445         get virtual operands.
28446         (get_expr_operands): Handle CONST_DECL like other decls.
28448 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
28450         PR middle-end/89503
28451         * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
28452         on DECL_P and EXPR_P.
28454 2019-03-01  Richard Biener  <rguenther@suse.de>
28456         PR middle-end/89497
28457         * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
28458         argument, defaulted to zero.
28459         * passes.c (execute_function_todo): Pass down SSA update flags
28460         to cleanup_tree_cfg.
28461         * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
28462         (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
28463         form if requested.
28464         (cleanup_tree_cfg): Get and pass down SSA update flags.
28466 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
28468         PR bootstrap/89539
28469         * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
28470         early_lto_debug argument.
28472 2019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
28474         PR tree-optimization/89536
28475         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
28476         only whether bit #0 of the value is 0 instead of the entire value.
28478 2019-02-28  Marek Polacek  <polacek@redhat.com>
28480         PR c++/87068 - missing diagnostic with fallthrough statement.
28481         * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
28482         at the end of a seq, save its location to walk_stmt_info.
28483         (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
28484         a switch.
28486 2019-02-28  Jan Hubicka  <hubicka@ucw.cz>
28488         PR lto/88585
28489         * tree.c (find_atomic_core_type): Move ahead in file.
28490         (check_base_type): Correctly compare alignments of atomic types.
28492 2019-02-28  H.J. Lu  <hongjiu.lu@intel.com>
28494         PR target/89455
28495         * config/i386/i386.c (get_builtin_code_for_version): Identify
28496         Westmere from PCLMUL, instead of AES.
28498 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
28500         PR target/89434
28501         * config/arm/arm.md (*subsi3_carryin_compare_const): Use
28502         trunc_int_for_mode (-INTVAL (...), SImode), just instead of
28503         -UINTVAL (...).
28505 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
28507         PR target/88530
28508         * config/aarch64/aarch64-option-extensions.def: Document it.
28509         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
28510         if empty hwcaps.
28512 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
28514         PR c/89520
28515         * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
28516         builtins if they don't have a single scalar floating point argument.
28517         Formatting fixes.
28519 2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28521         PR rtl-optimization/89490
28522         * varasm.c (get_block_for_section): Bail out for mergeable sections.
28523         (default_use_anchors_for_symbol_p, output_object_block): Assert the
28524         block section is not mergeable.
28526 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
28528         PR target/70341
28529         * config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
28530         old define_insn to ...
28531         (*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
28532         * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
28533         Rename old define_insn to ...
28534         (*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
28535         (thumb2_casesi_internal_pic): New define_expand.  Rename old
28536         define_insn to ...
28537         (*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
28538         * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
28539         MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
28541 2019-02-27  Richard Biener  <rguenther@suse.de>
28543         PR debug/88878
28544         * dwarf2out.c (use_debug_types): Disable when in_lto_p.
28546 2019-02-27  Richard Biener  <rguenther@suse.de>
28548         * passes.c (should_skip_pass_p): Do not skip cgraph-edge
28549         building.
28551 2019-02-27  Richard Biener  <rguenther@suse.de>
28553         PR debug/88878
28554         * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
28555         parameter, prefix section name with .gnu.debuglto_ if true.
28556         (dwarf2out_finish): Pass false to output_comdat_type_unit.
28557         (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
28559 2019-02-27  Richard Biener  <rguenther@suse.de>
28561         PR debug/89514
28562         * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
28563         rather than on use_debug_types, doing what output_die does.
28564         (value_format): Likewise.
28566 2019-02-27  Martin Jambor  <mjambor@suse.cz>
28567             Martin Sebor  <msebor@redhat.com>
28569         * doc/invoke.texi (Warning Options): Reword description of
28570         -Wno-absolute-value.
28572 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
28574         PR tree-optimization/89280
28575         * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
28576         builtin_setjmp_setup_bb): New functions.
28577         (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
28578         When visiting __builtin_setjmp_setup block, queue in special
28579         setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
28580         __builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
28581         from visited after the loop if they don't have any visited successor
28582         blocks.
28584 2018-02-26  Steve Ellcey  <sellcey@marvell.com>
28586         * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
28587         New function.
28588         (TARGET_GET_MULTILIB_ABI_NAME): New macro.
28590 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
28592         PR c++/89507
28593         * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
28594         with types other than sizetype/ssizetype.
28596 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
28598         * config/sparc/sparc-opts.h (enum processor_type): Rename to...
28599         (enum sparc_processor_type): ...this.
28600         (enum sparc_code_model_type): New enumeration type.
28601         (enum sparc_memory_model_type): Tweak comments.
28602         * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
28603         (mtune): Likewise.
28604         (mcmodel): Use sparc_code_model enumeration and variable.
28605         (sparc_code_model): New enumeration.
28606         (mdebug): Add Undocumented marker.
28607         * config/sparc/sparc.h (enum cmodel): Delete.
28608         (sparc_cmodel): Likewise.
28609         (TARGET_CM_MEDLOW): Adjust to above renaming.
28610         (TARGET_CM_MEDMID): Likewise.
28611         (TARGET_CM_MEDANY): Likewise.
28612         (TARGET_CM_EMBMEDANY): Likewise.
28613         * config/sparc/sparc.c (sparc_cmodel): Delete.
28614         (sparc_option_override): Remove string/value mapping support for the
28615         code model.  Move code and memory model support to after the handling
28616         of target flags.  Do private machine setup last.
28617         (sparc_emit_set_symbolic_const64): Use sparc_code_model.
28618         (sparc_legitimize_reload_address): Likewise.
28619         (sparc_output_mi_thunk): Likewise.
28620         * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
28622 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
28624         PR tree-optimization/89500
28625         * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
28626         (handle_builtin_strlen): Remove noncst_bound variable.  Always
28627         optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
28628         cst if the first cst bytes starting at x are known to be non-zero,
28629         even if the string is not zero terminated.  Don't try to modify
28630         *si for strnlen.  Update strlen_to_stridx only for strlen or if
28631         we can prove strnlen returns the same value as strlen would.
28633 2019-02-26  Martin Liska  <mliska@suse.cz>
28635         * alloc-pool.h (struct pool_usage): Remove extra
28636         print_dash_line.
28637         * bitmap.h (struct bitmap_usage): Likewise.
28638         * ggc-common.c (struct ggc_usage): Likewise.
28639         * mem-stats.h (struct mem_usage): Likewise.
28640         (mem_alloc_description::dump): Print dash lines
28641         here and repeat header at the end of a table report.
28642         It's then more readable.
28643         * tree-phinodes.c (phinodes_print_statistics): Make
28644         horizontal alignment.
28645         * tree-ssanames.c (ssanames_print_statistics): Likewise.
28646         * vec.c (struct vec_usage): Remove extra print_dash_line.
28647         * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
28649 2019-02-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
28651         * doc/extend.texi (__builtin_object_size):
28652         Use @pxref instead of @xref inside parenthesis.
28653         (__builtin_has_attribute): Add missing comma after @xref.
28654         (__builtin_object_size): Ditto.
28655         * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
28657 2019-02-26  Jeff Law  <law@redhat.com>
28659         PR rtl-optimization/87761
28660         * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
28661         detect obviously dead insns and delete them.
28663 2019-02-26  Richard Biener  <rguenther@suse.de>
28665         PR tree-optimization/89505
28666         * tree-ssa-structalias.c (compute_dependence_clique): Make sure
28667         to handle restrict pointed-to vars with multiple subvars
28668         correctly.
28670 2019-02-26  Richard Biener  <rguenther@suse.de>
28672         PR tree-optimization/89489
28673         * tree-parloops.c (create_loop_fn): Copy over last_clique.
28675 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
28677         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
28678         and move around comment.
28679         <BIT_AND_EXPR>: Likewise.
28680         <BIT_NOT_EXPR>: Add specific handling for boolean types.
28682 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
28684         PR target/89474
28685         * config/i386/i386.c (remove_partial_avx_dependency): Call
28686         df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
28687         after changing possibly many instructions to use that pseudo.  Fix up
28688         insertion of v4sf_const0 setter at the start of bb.
28690 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
28692         PR c/80409
28693         * doc/extend.texi (Variadic Pointer Args): New section.
28695 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
28696             Martin Sebor  <msebor@gmail.com>
28698         * common.opt (Wattribute-alias): Likewise.
28699         * doc/invoke.texi (Option Summary): List general form of
28700         -Wattribute-alias=.  List positive form of -Wmissing-attributes.
28701         (-Wmissing-attributes): Invert entry, rewrite and correct default.
28702         Add cross-references.
28703         (-Wattribute-alias): Rewrite and correct default.  Mention
28704         considered attributes (same as for -Wmissing-attributes).
28706 2019-02-25  Paul A. Clarke  <pc@us.ibm.com>
28708         * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
28709         (_mm_cvtpd_ps): Likewise.
28710         (_mm_cvttpd_epi32): Likewise.
28712         PR target/89338
28713         * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
28714         (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
28716         PR target/89339
28717         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
28719 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
28721         PR target/88530
28722         * common/config/aarch64/aarch64-common.c
28723         (struct aarch64_option_extension): Add is_synthetic.
28724         (all_extensions): Use it.
28725         (TARGET_OPTION_INIT_STRUCT): Define hook.
28726         (struct gcc_targetm_common): Moved to end.
28727         (all_extensions_by_on): New.
28728         (opt_ext_cmp, typedef opt_ext): New.
28729         (aarch64_option_init_struct): New.
28730         (aarch64_contains_opt): New.
28731         (aarch64_get_extension_string_for_isa_flags): Output smallest set.
28732         * config/aarch64/aarch64-option-extensions.def
28733         (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
28734         (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
28735         sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
28736         Set is_synthetic to false.
28737         (crypto): Set is_synthetic to true.
28738         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
28739         SYNTHETIC.
28741 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
28743         * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
28744         vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
28745         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
28746         vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
28747         vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
28748         vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
28749         vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
28750         vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
28751         Rename ...
28752         (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
28753         vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
28754         vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
28755         vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
28756         vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
28757         vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
28758         vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
28759         vfmlsl_laneq_high_f16): ... To this.
28760         * config/arm/neon.md: Update comments.
28762 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
28764         * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
28765         vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
28766         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
28767         vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
28768         vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
28769         vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
28770         vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
28771         vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
28772         Rename ...
28773         (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
28774         vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
28775         vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
28776         vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
28777         vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
28778         vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
28779         vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
28780         vfmlslq_laneq_high_f16): ... To this.
28782 2019-02-25  Alexander Monakov  <amonakov@ispras.ru>
28784         PR rtl-optimization/86096
28785         * df-scan.c (df_mw_compare): Do not check mw_reg fields when
28786         comparing mw_order values.
28788 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
28790         PR target/89434
28791         * config/arm/arm.md (*subsi3_carryin_const): Use
28792         arm_neg_immediate_operand predicate instead of
28793         arm_not_immediate_operand, "L" constraint instead of "K" and
28794         print it using %n2 instead of %B2.
28795         (*subsi3_carryin_const0): New define_insn.
28796         (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
28797         instead of arm_not_operand and "I" constraint instead of "K" and
28798         print it using %n3 instead of %B2.  Instead of using match_dup 2 add
28799         another match_operand and in the condition check that it is negation
28800         of operands[2].
28801         (*subsi3_carryin_compare_const0): New define_ins.
28802         (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
28803         *subsi3_carryin_const.
28804         (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
28805         split into *subsi3_carryin_compare_const0 if the highpart is zero.
28807         PR target/89438
28808         * config/arm.vfp.md (*negdf2_vfp): Use
28809         gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
28810         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
28812 2019-02-24  Jakub Jelinek  <jakub@redhat.com>
28814         PR rtl-optimization/89445
28815         * simplify-rtx.c (simplify_ternary_operation): Don't use
28816         simplify_merge_mask on operands that may trap.
28817         * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
28818         SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
28819         second operand is CONST_VECTOR, check if any element could be zero.
28820         Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
28821         their operands can trap.
28823 2019-02-23  Martin Sebor  <msebor@redhat.com>
28825         * gimple-ssa-sprintf.c (target_strtol): Rename...
28826         (target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
28827         (parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
28828         check for range error.
28830 2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>
28832         PR driver/69471
28833         * opts-common.c (prune_options): Also prune joined switches
28834         with Negative and RejectNegative.
28835         * config/i386/i386.opt (march=): Add Negative(march=).
28836         (mtune=): Add Negative(mtune=).
28837         * doc/options.texi: Document Negative used together with Joined
28838         and RejectNegative.
28840 2019-02-22  Martin Sebor  <msebor@redhat.com>
28842         * doc/extend.texi (Other Builtins): Add
28843         __builtin_is_constant_evaluated.
28845 2019-02-22  Richard Biener  <rguenther@suse.de>
28847         PR tree-optimization/87609
28848         * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
28850 2019-02-22  Jeff Law  <law@redhat.com>
28852         PR rtl-optimization/87761
28853         * config/mips/mips.md: Add new combiner pattern to recognize
28854         a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
28856 2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
28858         PR target/89324
28859         * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
28860         destination register in peepholes generating patterns for ADDS/SUBS.
28861         (add<mode>3_compare0,
28862         *addsi3_compare0_uxtw, add<mode>3_compareC,
28863         add<mode>3_compareV_imm, add<mode>3_compareV,
28864         *adds_<optab><ALLX:mode>_<GPI:mode>,
28865         *subs_<optab><ALLX:mode>_<GPI:mode>,
28866         *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
28867         *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
28868         *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
28869         *sub<mode>3_compare0, *subsi3_compare0_uxtw,
28870         sub<mode>3_compare1): Allow stack pointer for source register.
28871         * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
28873 2019-02-22  Martin Sebor  <msebor@redhat.com>
28875         PR tree-optimization/88993
28876         PR tree-optimization/88853
28877         * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
28878         New helper.
28879         (sprintf_dom_walker::call_info::is_string_func): New helper.
28880         (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
28881         for formatted string functions.
28882         (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
28884 2019-02-22  Martin Sebor  <msebor@redhat.com>
28886         PR c/89425
28887         * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
28888         unreachable subexpressions.
28890 2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
28891             Hongtao Liu  <hongtao.liu@intel.com>
28892             Sunil K Pandey  <sunil.k.pandey@intel.com>
28894         PR target/87007
28895         * config/i386/i386-passes.def: Add
28896         pass_remove_partial_avx_dependency.
28897         * config/i386/i386-protos.h
28898         (make_pass_remove_partial_avx_dependency): New.
28899         * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
28900         New function.
28901         (pass_data_remove_partial_avx_dependency): New.
28902         (pass_remove_partial_avx_dependency): Likewise.
28903         (make_pass_remove_partial_avx_dependency): Likewise.
28904         * config/i386/i386.md (avx_partial_xmm_update): New attribute.
28905         (*extendsfdf2): Add avx_partial_xmm_update.
28906         (truncdfsf2): Likewise.
28907         (*float<SWI48:mode><MODEF:mode>2): Likewise.
28908         (SF/DF conversion splitters): Disabled for TARGET_AVX.
28910 2019-02-22  Aldy Hernandez  <aldyh@redhat.com>
28912         PR middle-end/85598
28913         * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
28914         analysis for pass.
28916 2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
28918         PR target/89444
28919         * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
28920         (PTA_SKYLAKE): Add PTA_AES.
28921         (PTA_GOLDMONT): Likewise.
28923 2019-02-22  Sudakshina Das  <sudi.das@arm.com>
28925         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
28926         instruction if enabled.
28927         (aarch64_override_options): Remove reference to return address key.
28929 2019-02-22  Richard Biener  <rguenther@suse.de>
28931         PR tree-optimization/89440
28932         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
28933         not necessary assert.
28935 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
28937         PR fortran/72741
28938         * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
28939         (oacc_replace_fn_attrib_attr): ... this new function.
28940         * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
28941         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
28943 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28945         * config/arm/arm-cpus.in (ares): Rename to...
28946         (neoverse-n1): ... This.  Add ares as alias.
28947         * config/arm/arm-tables.opt: Regenerate.
28948         * config/arm/arm-tune.md: Likewise.
28949         * doc/invoke.txt (ARM Options): Document neoverse-n1.
28951 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28953         * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
28954         * config/aarch64/aarch64-tune.md: Regenerate.
28955         * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
28957 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28959         * config/aarch64/aarch64.c (ares_tunings): Rename to...
28960         (neoversen1_tunings): ... This.
28961         * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
28962         (neoverse-n1): New CPU.
28963         * config/aarch64/aarch64-tune.md: Regenerate.
28964         * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
28966 2019-02-22  Richard Biener  <rguenther@suse.de>
28968         PR middle-end/87609
28969         * cfghooks.h (dependence_hash): New typedef.
28970         (struct copy_bb_data): New type.
28971         (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
28972         (duplicate_block): Likewise.
28973         * cfghooks.c (duplicate_block): Pass down copy_bb_data.
28974         (copy_bbs): Create and pass down copy_bb_data.
28975         * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
28976         (rtl_duplicate_bb): Likewise.
28977         * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
28978         remap dependence info.
28980 2019-02-22  Richard Biener  <rguenther@suse.de>
28982         PR tree-optimization/87609
28983         * tree-core.h (tree_base): Document special clique values.
28984         * tree-inline.c (remap_dependence_clique): Do not use the
28985         special clique value of one.
28986         (maybe_set_dependence_info): Use clique one.
28987         (clear_dependence_clique): New callback.
28988         (compute_dependence_clique): Clear clique one from all refs
28989         before assigning it (again).
28991 2019-02-21  Martin Sebor  <msebor@redhat.com>
28993         * doc/extend.texi (__clear_cache): Correct signature.
28995 2019-02-21  Ian Lance Taylor  <iant@golang.org>
28997         PR go/89170
28998         * varasm.c (decode_addr_const): Call lookup_constant_def rather
28999         than output_constant_def.
29000         (add_constant_to_table): New static function.
29001         (output_constant_def): Call add_constant_to_table.
29002         (tree_output_constant_def): Likewise.
29004 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
29006         PR c++/89285
29007         * builtins.c (fold_builtin_arith_overflow): If first two args are
29008         INTEGER_CSTs, set intres and ovfres to constants rather than calls
29009         to ifn.
29011 2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>
29013         PR target/87412
29014         * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
29015         error for -mindirect-branch/-mfunction-return with incompatible
29016         -fcf-protection.
29018 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
29020         PR bootstrap/88714
29021         * constraints.md (q): Remove.
29022         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
29023         instead of q.
29025 2019-02-21  Martin Jambor  <mjambor@suse.cz>
29027         PR hsa/89302
29028         * omp-general.c (omp_extract_for_data): Removed a duplicate call
29029         to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
29030         (omp_adjust_for_condition): ...here.  Added necessary parameters.
29031         * omp-general.h (omp_adjust_for_condition): Updated declaration.
29032         * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
29033         proper values to new parameters of omp_adjust_for_condition.
29035 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
29037         PR middle-end/89412
29038         * expr.c (expand_assignment): If result is a MEM, use change_address
29039         instead of simplify_gen_subreg.
29041 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
29042             David Malcolm  <dmalcolm@redhat.com>
29044         PR middle-end/89091
29045         * fold-const.c (decode_field_reference): Return NULL_TREE if
29046         lang_hooks.types.type_for_size returns NULL.  Check it before
29047         overwriting *exp_.  Use return NULL_TREE instead of return 0.
29049 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
29051         PR middle-end/88074
29052         PR middle-end/89415
29053         * toplev.c (do_compile): Double the emin/emax exponents to workaround
29054         buggy mpc_norm.
29056 2019-02-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29058         PR target/89397
29059         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
29060         TARGET_SSE in addition to TARGET_SSE_MATH.
29062         (ix86_excess_precision): Ditto.
29063         (ix86_float_exceptions_rounding_supported_p): Ditto.
29064         (use_rsqrt_p): Ditto.
29065         * config/i386/sse.md (rsqrt<mode>2): Ditto.
29067 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
29069         PR c/89410
29070         * diagnostic-show-locus.c (layout::calculate_line_spans): Use
29071         linenum_arith_t when determining if two adjacent line spans are
29072         close enough to merge.
29073         (diagnostic_show_locus): Use linenum_arith_t when iterating over
29074         lines within each line_span.
29076 2019-02-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
29078         PR target/86487
29079         * lra-constraints.c(uses_hard_regs_p): Fix handling of
29080         paradoxical SUBREGS.
29082 2019-02-20  Li Jia He  <helijia@linux.ibm.com>
29084         PR target/88100
29085         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
29086         <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
29087         ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
29088         range checking it.
29090 2019-02-19  Jonathan Wakely  <jwakely@redhat.com>
29092         * config/gcn/gcn.c (print_operand): Fix typo.
29094 2019-02-19  Richard Biener  <rguenther@suse.de>
29096         PR middle-end/88074
29097         * toplev.c (do_compile): Initialize mpfr's exponent range
29098         based on available float modes.
29100 2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
29102         * rtlanal.c (get_initial_register_offset): Fall back to the estimate
29103         as long as the epilogue isn't completed.
29105 2019-02-18  Martin Sebor  <msebor@redhat.com>
29107         * doc/cpp.texi (Conditional syntax): Add __has_attribute,
29108         __has_cpp_attribute, and __has_include.
29110 2019-02-18  Martin Sebor  <msebor@redhat.com>
29112         * doc/invoke.texi (-Wreturn-type): Correct and expand.
29114 2019-02-18  Martin Sebor  <msebor@redhat.com>
29116         PR middle-end/89294
29117         * tree.c (valid_constant_size_p): Avoid assuming size is a constant
29118         expression.
29119         * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
29121 2019-02-18  Richard Biener  <rguenther@suse.de>
29123         PR tree-optimization/89296
29124         * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
29125         of no-warning flag to cases that might emit the bogus warning.
29127 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
29129         PR bootstrap/88714
29130         * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
29131         "q" constraint.
29132         * config/arm/vfp.md (*movdi_vfp): Likewise.
29133         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
29134         "q" constraint for operands[0].
29136         PR target/89369
29137         * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
29138         *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
29139         pattern in a temporary buffer.
29140         (*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
29141         than 64-operands[2].
29143         PR target/89361
29144         * config/s390/s390.c (s390_indirect_branch_attrvalue,
29145         s390_indirect_branch_settings): Define unconditionally.
29146         (s390_set_current_function): Likewise, but guard the whole body except
29147         the s390_indirect_branch_settings call with
29148         #if S390_USE_TARGET_ATTRIBUTE.
29149         (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
29151         * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
29152         *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
29153         Use HOST_WIDE_INT_M1U instead of ~(0ULL).
29154         (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
29155         HOST_WIDE_INT_1U instead of 1ULL.
29156         (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
29157         to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
29158         (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
29159         z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
29160         instead of 1UL.
29161         (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
29162         instead of 1ul.
29164 2019-02-18  Martin Jambor  <mjambor@suse.cz>
29166         PR tree-optimization/89209
29167         * tree-sra.c (create_access_replacement): New optional parameter
29168         reg_tree.  Use it as a type if non-NULL and access type is not of
29169         a register type.
29170         (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
29171         to create_access_replacement.
29172         (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
29173         Check lacc is non-NULL before attempting to re-create it on the RHS.
29175 2019-02-18  Martin Liska  <mliska@suse.cz>
29177         PR ipa/89306
29178         * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
29179         by default.
29180         (symbol_table::free_edge): Recycle m_summary_id.
29181         * cgraph.h (get_summary_id): New.
29182         (symbol_table::release_symbol): Set m_summary_id to -1
29183         by default.
29184         (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
29185         * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
29186         function_summary to fast_function_summary.
29187         * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
29188         * ipa-pure-const.c (class funct_state_summary_t):
29189         Switch from function_summary to fast_function_summary.
29190         * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
29191         (class ipa_ref_opt_summary_t): Switch from function_summary
29192         to fast_function_summary.
29193         * symbol-summary.h (class function_summary_base): New class
29194         that is created from base of former function_summary.
29195         (function_summary_base::unregister_hooks): New.
29196         (class function_summary): Inherit from function_summary_base.
29197         (class call_summary_base): New class
29198         that is created from base of former call_summary.
29199         (class call_summary): Inherit from call_summary_base.
29200         (struct is_same): New.
29201         (class fast_function_summary): New summary class.
29202         (class fast_call_summary): New summary class.
29203         * vec.h (vec_safe_grow_cleared): New function.
29205 2019-02-18  Martin Liska  <mliska@suse.cz>
29207         * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
29208         (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
29209         * doc/tm.texi: Document new target hook.
29210         * doc/tm.texi.in: Likewise.
29211         * target.def: Add new target macro.
29212         * gcc.c (find_fortran_preinclude_file): Do not search multilib
29213         suffixes.
29215 2019-02-17  Alan Modra  <amodra@gmail.com>
29217         PR target/89271
29218         * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
29219         output reg on add insn.
29220         (<bd>tf_<mode> split): Likewise.  Match predicates with insn.
29222 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
29224         PR target/89372
29225         * config/i386/sse.md (ssedoublemode): Remove V4HI.
29226         (PMULHRSW): Likewise.
29227         (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
29228         TARGET_AVX2.
29229         (ssse3_pmulhrswv4hi3): New expander.
29231 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
29233         * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
29234         MMX.  Add isa attribute.
29236 2019-02-16  Jakub Jelinek  <jakub@redhat.com>
29238         PR rtl-optimization/66152
29239         * builtins.h (c_readstr): Declare.
29240         * builtins.c (c_readstr): Remove forward declaration.  Add
29241         null_terminated_p argument, if false, read all bytes from the
29242         string instead of stopping after '\0'.
29243         * expr.c (string_cst_read_str): New function.
29244         (store_expr): Use string_cst_read_str instead of
29245         builtin_strncpy_read_str.  Try to store by pieces the whole
29246         exp_len first, and only if that fails, split it up into
29247         store by pieces followed by clear_storage.  Formatting fix.
29249         * config/i386/i386.md (*movqi_internal): Remove static from
29250         buf variable.  Use output_asm_insn (buf, operands); return "";
29251         instead of return buf;.
29252         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
29253         *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
29254         *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
29256 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
29258         * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
29259         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
29260         * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
29261         (CC1_SPEC): Likewise.
29262         * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
29264 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
29266         * asan.c (asan_emit_stack_protection): Use full-sized mask to align
29267         the base address on 64-bit strict-alignment platforms.
29269 2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>
29271         * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
29273 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29275         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
29277 2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>
29279         PR rtl-optimization/88308
29280         * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
29281         on copied instruction.
29283 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
29285         * final.c (insn_current_reference_address): Replace test on JUMP_P
29286         with test on jump_to_label_p.
29287         * config/visium/visium-passes.def: New file.
29288         * config/visium/t-visium (PASSES_EXTRA): Define.
29289         * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
29290         * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
29291         (TRAMPOLINE_ALIGNMENT): Define.
29292         * config/visium/visium.c (visium_option_override): Do not register
29293         the machine-specific reorg pass here.
29294         (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
29295         for the GR6.
29296         (output_branch): Adjust threshold for long branch instruction.
29297         * config/visium/visium.md (cpu): Move around.
29298         (length): Adjust for the GR6.
29300 2019-02-15  Richard Biener  <rguenther@suse.de>
29301             Jakub Jelinek  <jakub@redhat.com>
29303         PR tree-optimization/89278
29304         * tree-loop-distribution.c: Include tree-eh.h.
29305         (generate_memset_builtin, generate_memcpy_builtin): Call
29306         rewrite_to_non_trapping_overflow on builtin->size before passing it
29307         to force_gimple_operand_gsi.
29309 2019-02-15  Jakub Jelinek  <jakub@redhat.com>
29311         PR other/89342
29312         * optc-save-gen.awk: Handle optimize_fast like optimize_size or
29313         optimize_debug.
29314         * opth-gen.awk: Likewise.
29316 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29318         * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
29319         Enable MMX, SSE and SSE2 by default.
29320         * config/i386/i386.c (ix86_option_override_internal): Do not
29321         explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
29323 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
29325         PR rtl-optimization/89354
29326         * combine.c (make_extraction): Punt if extraction_mode is narrower
29327         than len bits.
29329 2019-02-14  Maya Rashish  <coypu@sdf.org>
29331         * config.gcc (*-*-netbsd*): Add netbsd-d.o.
29332         * config/netbsd-d.c: New file.
29333         * config/t-netbsd: Add netbsd-d.o
29335 2018-02-14  Steve Ellcey  <sellcey@marvell.com>
29337         * config/aarch64/aarch64.c (aarch64_attribute_table): Change
29338         affects_type_identity to true for aarch64_vector_pcs.
29339         (aarch64_comp_type_attributes): New function.
29340         (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
29342 2019-02-14  Tamar Christina  <tamar.christina@arm.com>
29344         PR target/88850
29345         * config/arm/iterators.md (ANY64): Add V4HF.
29347 2019-02-14  Martin Liska  <mliska@suse.cz>
29349         PR rtl-optimization/89242
29350         * dce.c (delete_unmarked_insns): Call free_dominance_info we
29351         process a transformation.
29353 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
29355         PR tree-optimization/89314
29356         * fold-const.c (fold_binary_loc): Cast strlen argument to
29357         const char * before dereferencing it.  Formatting fixes.
29359         PR middle-end/89284
29360         * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
29362 2019-02-13  Ian Lance Taylor  <iant@golang.org>
29364         * optc-save-gen.awk: Set var_opt_hash for initial optimizations
29365         and set current index for other optimizations.
29367 2019-02-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29369         * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
29370         nonimmediate_operand as operand 2 predicate.
29371         (vec_set<VF2_512_256:mode>_0): Ditto.
29372         (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
29373         (*vec_concatv2si): Remove alternative 2.
29374         (*vec_concatv4si_0): Use vm constraint for alternative 0.
29375         (*vec_concatv4si_0): Remove preferred_for_speed attribute.
29376         (vec_concatv2di): Split alternatives 4,5,6 to ...
29377         (*vec_concatv2di_0) ... new pattern.
29379 2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
29381         PR target/89190
29382         * config/arm/arm.c (ldm_stm_operation_p) Set
29383         addr_reg_in_reglist correctly for first register.
29384         (load_multiple_sequence): Remove dead base check.
29385         (gen_ldm_seq): Correctly set write_back for Thumb-1.
29387 2019-02-13  Tamar Christina  <tamar.christina@arm.com>
29389         PR target/88847
29390         * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
29391         Expose as @aarch64_pred_mov.
29392         * config/aarch64/aarch64.c (aarch64_classify_address):
29393         Use expand_insn which legitimizes operands.
29395 2019-02-13  Martin Liska  <mliska@suse.cz>
29397         * builtins.h (expand_builtin_with_bounds): Remove declaration.
29398         * calls.c (struct arg_data): Remove special_slot, pointer_arg
29399         and pointer_offset fields.
29400         (initialize_argument_information): Remove usage of dead
29401         fields.
29402         * cgraph.h (struct cgraph_thunk_info): Remove
29403         add_pointer_bounds_args.
29404         * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
29405         fields.
29406         (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
29407         fields.
29408         * config/i386/i386.c (ix86_function_arg_advance): Remove
29409         unrelated comment.
29410         (struct builtin_isa): Remove leaf_p and nothrow_p fields.
29411         (def_builtin): Remove usage of dead fields.
29412         (ix86_add_new_builtins): Likewise.
29413         * ipa-fnsummary.c (compute_fn_summary): Likewise.
29414         * ipa-icf.c (sem_function::equals_wpa): Likewise.
29415         (sem_function::init): Likewise.
29416         (sem_variable::merge): Likewise.
29417         * ipa-visibility.c (function_and_variable_visibility): Likewise.
29418         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
29419         * lto-cgraph.c (lto_output_node): Likewise.
29420         (lto_output_varpool_node): Likewise.
29421         (input_node): Likewise.
29422         (input_varpool_node): Likewise.
29423         * lto-streamer-out.c (lto_output): Likewise.
29424         * tree-inline.c (expand_call_inline): Remove usage of
29425         assign_stmts.
29426         * tree-inline.h (struct copy_body_data): Likewise.
29427         * varpool.c (varpool_node::dump): Likewise.
29429 2019-02-13  Jakub Jelinek  <jakub@redhat.com>
29431         PR middle-end/89303
29432         * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
29433         into pt->vars_contains_escaped_heap instead of setting
29434         pt->vars_contains_escaped_heap to it.
29436         PR middle-end/89281
29437         * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
29438         INTVAL (size), compare it to GET_MODE_MASK instead of
29439         1 << GET_MODE_BITSIZE.
29441         PR target/89290
29442         * config/i386/predicates.md (x86_64_immediate_operand): Allow
29443         TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
29444         -mcmodel=large.
29446 2019-02-13  Martin Liska  <mliska@suse.cz>
29448         PR lto/88858
29449         * cfgrtl.c (remove_barriers_from_footer): New function.
29450         (try_redirect_by_replacing_jump): Use it.
29451         (cfg_layout_redirect_edge_and_branch): Likewise.
29453 2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
29455         * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
29456         vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
29457         * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
29458         (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
29459         * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
29460         (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
29461         New BU_CRYPTO_2.
29462         * config/rs6000/rs6000.c (builtin_function_type)
29463         <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
29464         CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
29465         CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
29466         * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
29467         vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
29469 2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>
29471         * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
29472         -maltivec. Delete -maltivec=be and -maltivec=le documentation.
29474 2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>
29476         PR target/89229
29477         * config/i386/i386.md (*movoi_internal_avx): Revert revision
29478         268678 and revision 268657.
29479         (*movti_internal): Likewise.
29481 2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>
29483         PR target/89233
29484         * config/s390/s390.c (s390_decompose_address): Update comment.
29485         (s390_check_qrst_address): Reject invalid address forms after
29486         LRA.
29488 2019-02-12  Martin Liska  <mliska@suse.cz>
29490         PR lto/88876
29491         * ipa-pure-const.c (propagate_pure_const): Revert hunk as
29492         we need default values of funct_state for a function that
29493         is not optimized.
29495 2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>
29497         * asan.c (asan_expand_mark_ifn): Take into account the alignment of
29498         the object to pick the size of stores on strict-alignment platforms.
29500         * config/sparc/sparc.md (*movsi_insn): Minor tweak.
29501         (*movdi_insn_sp32): Likewise.
29502         (*movdi_insn_sp64): Likewise.
29504 2019-02-12  Jan Hubicka  <hubicka@ucw.cz>
29506         PR lto/88677
29507         * cgraphunit.c (analyze_functions): Clear READONLY flag for external
29508         types that needs constructiong.
29509         * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
29511 2019-02-12  Richard Biener  <rguenther@suse.de>
29513         PR tree-optimization/89253
29514         * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
29515         duplicate the loop.
29517 2019-02-11  David Malcolm  <dmalcolm@redhat.com>
29519         PR lto/88147
29520         * input.c (selftest::test_line_offset_overflow): New selftest.
29521         (selftest::input_c_tests): Call it.
29523 2019-02-11  Martin Sebor  <msebor@redhat.com>
29525         PR tree-optimization/88771
29526         * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
29527         when -Wstringop-overflow is set.
29528         (builtin_memref::builtin_memref): Adjust excessive upper bound
29529         only when lower bound is not excessive.
29530         (maybe_diag_overlap): Detect and diagnose excessive bounds via
29531         -Wstringop-ovefflow.
29532         (maybe_diag_offset_bounds): Rename...
29533         (maybe_diag_access_bounds): ...to this.
29534         (check_bounds_or_overlap): Adjust for name change above.
29536 2019-02-11  Martin Sebor  <msebor@redhat.com>
29538         PR c++/87996
29539         * builtins.c (max_object_size): Move from here...
29540         * builtins.h (max_object_size): ...and here...
29541         * tree.c (max_object_size): ...to here...
29542         * tree.h (max_object_size): ...and here.
29544 2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
29546         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
29547         and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
29548         for correct semantics.
29550 2019-02-11  Alan Modra  <amodra@gmail.com>
29552         * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
29553         -mlongcall and -mpltseq.
29554         (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
29555         (RS/6000 and PowerPC Options <-mpltseq>): Document.
29556         * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
29557         * config/rs6000/sysv4.opt (mpltseq): New option.
29558         * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
29559         (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
29560         support is lacking.  Don't allow -mpltseq with -mbss-plt.
29561         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
29562         -mpltseq given for ELFv1.
29563         * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
29564         Only use UNSPEC_PLTSEQ for inline PLT calls.
29565         (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
29566         use UNSPEC_PLTSEQ for inline PLT calls.
29567         (rs6000_indirect_call_template_1, rs6000_longcall_ref),
29568         (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
29569         uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
29570         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
29571         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
29572         (pltseq_mtctr_<mode>): Likewise.
29574 2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29576         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
29577         Solaris ld.
29578         * configure: Regenerate.
29580 2019-02-11  Jakub Jelinek  <jakub@redhat.com>
29582         PR bootstrap/88714
29583         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
29584         instead of r.
29586 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
29588         * function.c (assign_parm_setup_block): Use the stored
29589         size, not the passed size, when allocating stack-space,
29590         also for a parameter with alignment larger than
29591         MAX_SUPPORTED_STACK_ALIGNMENT.
29593 2019-02-11  Martin Liska  <mliska@suse.cz>
29595         PR ipa/89009
29596         * ipa-cp.c (build_toporder_info): Remove usage of a param.
29597         * ipa-inline.c (inline_small_functions): Likewise.
29598         * ipa-pure-const.c (propagate_pure_const): Likewise.
29599         (propagate_nothrow): Likewise.
29600         * ipa-reference.c (propagate): Likewise.
29601         * ipa-utils.c (struct searchc_env): Remove unused field.
29602         (searchc): Always search across AVAIL_INTERPOSABLE.
29603         (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
29604         the only called IPA pure const can properly not propagate
29605         across interposable boundary.
29606         * ipa-utils.h (ipa_reduced_postorder): Remove param.
29608 2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>
29610         * config/nds32/nds32.md (call_internal, call_value_internal,
29611         sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
29613 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
29615         * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
29616         typo.
29618 2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>
29620         * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
29621         in comments
29623 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
29625         * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
29627 2019-02-10  Jakub Jelinek  <jakub@redhat.com>
29629         PR tree-optimization/89268
29630         * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
29631         if preds is non-NULL.
29633 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
29635         PR lto/89272
29636         * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
29637         polymorphic types.
29639 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
29641         * config/nds32/nds32.md (trap): New pattern.
29643 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
29645         * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
29646         dwarf span.
29648 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
29650         * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
29651         to split POST_INC.
29653 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
29655         * ipa-visibility.c (localize_node): Also do not localize
29656         LDPR_PREVAILING_DEF_IRONLY_EXP.
29658 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
29660         PR lto/87957
29661         * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
29662         instead of type_with_linkage.
29664 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
29666         PR ipa/88755
29667         * params.def (uninlined-function-insns, uninlined-function-time,
29668         uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
29669         bound so we don't get overflows.
29671 2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
29673         * config/rs6000/rs6000-string.c (expand_compare_loop,
29674         expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
29675         memcmp/strncmp.
29677 2019-02-09  Jakub Jelinek  <jakub@redhat.com>
29679         PR middle-end/89246
29680         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29681         If !node->definition and TYPE_ARG_TYPES is non-NULL, use
29682         TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
29684 2019-02-09  Alan Modra  <amodra@gmail.com>
29686         PR target/88343
29687         * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
29688         case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
29689         setup.
29691 2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>
29693         PR middle-end/88560
29694         * lra-constraints.c (process_alt_operands): Don't increase reject
29695         for memory when offset memory is required.
29697 2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>
29699         * config/s390/vector.md: Implement vector copysign.
29701 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
29703         * expr.c (expand_constructor): Correct indentations.
29705 2019-02-08  Richard Biener  <rguenther@suse.de>
29707         PR tree-optimization/89247
29708         * tree-if-conv.c: Include tree-cfgcleanup.h.
29709         (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
29710         (tree_if_conversion): Pass through predicate vector.
29711         (pass_if_conversion::execute): Do CFG cleanup and SSA update
29712         inline, see if any if-converted loops we refrece in
29713         LOOP_VECTORIZED calls vanished and fixup.
29714         * tree-if-conv.h (tree_if_conversion): Adjust prototype.
29716 2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>
29718         * config/s390/constraints.md (jdd): New constraint.
29720 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
29722         PR target/89229
29723         * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
29724         upper 16 vector registers without TARGET_AVX512VL.
29725         (*movti_internal): Likewise.
29727 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
29729         PR rtl-optimization/89234
29730         * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
29731         is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
29732         (copy_reg_eh_region_note_backward): Likewise.
29734 2019-02-08  Richard Biener  <rguenther@suse.de>
29736         PR middle-end/89223
29737         * tree-data-ref.c (initialize_matrix_A): Fail if constant
29738         doesn't fit in HWI.
29739         (analyze_subscript_affine_affine): Handle failure from
29740         initialize_matrix_A.
29742 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
29744         * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
29745         cfun everywhere.
29747 2019-02-07  David Malcolm  <dmalcolm@redhat.com>
29749         PR tree-optimization/86637
29750         PR tree-optimization/89235
29751         * tree-vect-loop.c (optimize_mask_stores): Add an
29752         auto_purge_vect_location sentinel to ensure that vect_location is
29753         purged on exit.
29754         * tree-vectorizer.c
29755         (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
29756         (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
29757         to ensure that vect_location is purged on exit.
29758         (pass_slp_vectorize::execute): Likewise, replacing the manual
29759         reset.
29760         * tree-vectorizer.h (class auto_purge_vect_location): New class.
29762 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29764         * config/aarch64/iterators.md (max_opp): New code_attr.
29765         (USMAX): New code iterator.
29766         * config/aarch64/predicates.md (aarch64_smin): New predicate.
29767         (aarch64_smax): Likewise.
29768         * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
29769         (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
29770         MINUS (MAX MIN).
29772 2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>
29774         PR target/89229
29775         * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
29776         for TARGET_AVX512VL.
29777         (*movti_internal): Set mode to TI for TARGET_AVX512VL.
29779 2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
29781         * config/s390/s390-builtin-types.def: Add new types.
29782         * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
29783         (s390_vec_xlw4): Make the memory operand into a const pointer.
29784         (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
29785         float.
29786         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
29787         a new vector type with the alignment of the scalar memory operand.
29789 2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
29790             Jakub Jelinek  <jakub@redhat.com>
29792         PR bootstrap/88714
29793         * config/arm/arm-protos.h (valid_operands_ldrd_strd,
29794         arm_count_ldrdstrd_insns): New declarations.
29795         * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
29796         MINUS.
29797         (valid_operands_ldrd_strd): New function.
29798         (arm_count_ldrdstrd_insns): New function.
29799         * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
29800         sets instead of single DImode set and define new insns to match this.
29802 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
29804         * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
29805         Make it a C initializer.
29807 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
29809         PR/target 88850
29810         * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
29812 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29814         * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
29815         Use neon_dot<q> for type.
29816         (neon_<sup>dot_lane<vsi2qi>): Likewise.
29818 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29820         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
29821         Use neon_dot<q> for type.
29822         (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
29823         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
29825 2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29827         PR rtl-optimization/89225
29828         * lra-constaints.c (simplify_operand_subreg): Add subreg mode
29829         sizes check.
29831 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29833         * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
29834         after restoring registers saved to allocate the frame on Windows.
29836 2019-02-06  Richard Biener  <rguenther@suse.de>
29838         PR tree-optimization/89182
29839         * graphite.h (cached_scalar_evolution_in_region): Declare.
29840         * graphite.c (struct seir_cache_key): New.
29841         (struct sese_scev_hash): Likewise.
29842         (seir_cache): New global.
29843         (cached_scalar_evolution_in_region): New function.
29844         (graphite_transform_loops): Allocate and release seir_cache.
29845         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
29846         cached_scalar_evolution_in_region.
29847         * graphite-scop-detection.c (scop_detection::can_represent_loop):
29848         Simplify.
29849         (scop_detection::graphite_can_represent_expr: Use
29850         cached_scalar_evolution_in_region.
29851         (scop_detection::stmt_simple_for_scop_p): Likewise.
29852         (find_params_in_bb): Likewise.
29853         (gather_bbs::before_dom_children): Likewise.
29854         * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
29855         (add_loop_constraints): Likewise.
29857 2019-02-06  Jakub Jelinek  <jakub@redhat.com>
29859         PR middle-end/89210
29860         * fold-const-call.c (fold_const_vec_convert): Pass true as last
29861         operand to new_unary_operation only if both element types are integral
29862         and it isn't a widening conversion.  Return NULL_TREE if
29863         new_unary_operation failed.
29865 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
29867         PR target/88856
29868         * config/s390/s390.md: Remove load and test FP splitter.
29870 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
29872         PR target/89112
29873         * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
29874         expand_compare_loop, expand_block_compare_gpr,
29875         expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
29876         REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
29877         #include "profile-count.h" and "predict.h" for types and functions
29878         needed to work with REG_BR_PROB notes.
29880 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
29882         PR target/89112
29883         * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
29884         for the long branch case.
29886 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
29888         PR target/89188
29889         * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
29890         can throw, non-call exceptions are enabled and we can't delete
29891         dead exceptions or alter cfg.  Set must_clean if
29892         delete_insn_and_edges returns true, don't set it blindly for calls.
29893         Assert that delete_unreachable_blocks is called only if can_alter_cfg.
29895         PR rtl-optimization/89195
29896         * combine.c (make_extraction): For MEMs, don't extract bytes outside
29897         of the original MEM.
29899 2019-02-05  Martin Liska  <mliska@suse.cz>
29901         PR gcov-profile/89000
29902         * gcov.c (function_summary): Remove argument.
29903         (file_summary): New function.
29904         (print_usage): Replace tabs with spaces.
29905         (generate_results): Use new function file_summary.
29907 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
29909         PR target/89186
29910         * optabs.c (prepare_cmp_insn): Pass x and y to
29911         emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
29913 2019-02-05  Richard Biener  <rguenther@suse.de>
29915         PR middle-end/89150
29916         * bitmap.h (struct bitmap_obstack): Do not mark GTY.
29917         (struct bitmap_element): Drop chain_prev so we properly recurse on
29918         the prev member, supporting tree views.
29919         (struct bitmap_head): GTY skip the obstack member.
29921 2019-02-04  Alexander Monakov  <amonakov@ispras.ru>
29923         PR c/88698
29924         * doc/extend.texi (Vector Extensions): Add an example of using vector
29925         types together with x86 intrinsics.
29927 2019-02-04  Alan Modra  <amodra@gmail.com>
29929         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
29930         str[] size to 160, and comment.
29932 2019-02-04  Alan Modra  <amodra@gmail.com>
29934         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
29935         (rs6000_pltseq_template): Guard output of TLS markers with
29936         TARGET_TLS_MARKERS.
29937         (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
29938         (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
29939         to use inline PLT sequences.
29940         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
29941         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
29942         (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
29944 2019-02-04  Martin Liska  <mliska@suse.cz>
29946         PR ipa/88985
29947         * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
29948         out when ipa_fn_summaries does not contain entry for callee.
29950 2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29952         * config/sparc/sparc.h: Remove superfluous blank lines.
29953         * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
29954         (got_register_rtx): ...this.
29955         (sparc_got): Adjust to above renaming.
29956         (sparc_tls_got): Likewise.
29957         (sparc_delegitimize_address): Likewise.
29958         (sparc_output_mi_thunk): Likewise.
29959         (sparc_init_pic_reg): Likewise.
29960         (save_local_or_in_reg_p): Fix test on the GOT register.
29961         (USE_HIDDEN_LINKONCE): Move around.
29962         (get_pc_thunk_name): Likewise.
29963         (gen_load_pcrel_sym): Likewise.
29964         (load_got_register): Likewise.
29966 2019-02-04  Kito Cheng  <kito.cheng@gmail.com>
29968         * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
29969         of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
29971 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29973         * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
29974         into consideration.
29976 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
29978         * config.gcc (with_nds32_lib, glibc):
29979         Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
29980         * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
29981         (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
29983 2019-02-03  UroÅ¡ Bizjak  <ubizjak@gmail.com>
29985         PR target/89071
29986         * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
29987         Do not prefer (v,v) alternative for non-AVX targets and (m,v)
29988         alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
29989         (*rcpsf2_sse): Ditto.
29990         (*rsqrtsf2_sse): Ditto.
29991         (sse4_1_round<mode<2): Ditto.
29993 2019-02-03  Richard Biener  <rguenther@suse.de>
29995         PR debug/87295
29996         * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
29997         orig.
29999 2019-02-02  Jakub Jelinek  <jakub@redhat.com>
30001         PR middle-end/87887
30002         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
30003         Punt with warning on aggregate return or argument types.  Ignore
30004         type/mode checking for uniform arguments.
30006 2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
30008         * combine.c (try_combine): Do not print "Can't combine" messages unless
30009         printing failed combination attempts.
30011 2019-02-01  Martin Jambor  <mjambor@suse.cz>
30013         PR hsa/87863
30014         * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
30015         segment and global segment variables before making them static.
30017 2019-02-01  Martin Jambor  <mjambor@suse.cz>
30019         * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
30020         missed optimization dump with dump_enabled_p.
30022 2019-02-01  Richard Biener  <rguenther@suse.de>
30024         PR middle-end/88597
30025         * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
30026         the instantiate cache.
30027         (instantiate_scev_binary): Elide second operand procesing
30028         if equal to the first.
30029         * tree-chrec.c (chrec_contains_symbols): Add visited set.
30030         (chrec_contains_undetermined): Likewise.
30031         (tree_contains_chrecs): Likewise.
30033 2019-02-01  Jan Hubicka  <hubicka@ucw.cz>
30035         * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
30037 2019-02-01  Jakub Jelinek  <jakub@redhat.com>
30039         PR tree-optimization/89143
30040         * wide-int-range.h (wide_int_range_absu): Declare.
30041         * wide-int-range.cc (wide_int_range_absu): New function.
30042         * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
30044         PR tree-optimization/88107
30045         * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
30046         instead of assertion that eh_region_outermost is non-NULL, if it
30047         is NULL, set *ALL to true and return NULL.
30048         (move_sese_region_to_fn): Adjust caller, if all is set, call
30049         duplicate_eh_regions with NULL region.
30051 2019-02-01  Richard Biener  <rguenth@suse.de>
30053         PR rtl-optimization/88593
30054         * mode-switching.c (optimize_mode_switching): Free dominators before
30055         calling cleanup_cfg.
30057 2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
30059         PR tree-optimization/88932
30060         * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
30062 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
30064         PR middle-end/89137
30065         * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
30066         bogus clang warning.
30068 2019-01-31  UroÅ¡ Bizjak  <ubizjak@gmail.com>
30070         PR target/89071
30071         * config/i386/i386.md (*extendsfdf2): Split out reg->reg
30072         alternative to avoid partial SSE register stall for TARGET_AVX.
30073         (truncdfsf2): Ditto.
30074         (sse4_1_round<mode>2): Ditto.
30076 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
30078         PR tree-optimization/89008
30079         * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
30080         process anything of the form X * 0.
30082 2019-01-31  Richard Biener  <rguenther@suse.de>
30084         PR tree-optimization/89135
30085         * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
30086         with abnormal preds.
30088 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
30090         PR sanitizer/89124
30091         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
30092         always_inline callees into no_sanitize_address callers.
30094 2019-01-31  Richard Biener  <rguenther@suse.de>
30096         PR rtl-optimization/89115
30097         * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
30099 2019-01-30  Martin Sebor  <msebor@redhat.com>
30101         PR other/89106
30102         * doc/extend.texi (cast to a union): Correct and expand.
30104 2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30106         PR rtl-optimization/87246
30107         * lra-constraints.c (simplify_operand_subreg): Reload memory
30108         in subreg if the address became invalid.
30110 2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
30112         PR target/87064
30113         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
30114         Disable for little-endian.
30116 2019-01-30  Richard Biener  <rguenther@suse.de>
30118         PR rtl-optimization/89115
30119         * opts.c (default_options_optimization): Reduce
30120         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
30121         Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
30122         to the default.
30124 2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30126         * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
30127         Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
30128         type of vector element when vec_extract is implemented by direct
30129         move.
30131 2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>
30133         * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
30135 2019-01-30  Richard Biener  <rguenther@suse.de>
30137         PR tree-optimization/89111
30138         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
30139         canonicalization to appropriately sized access types.
30141 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
30143         PR c++/89105
30144         * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
30145         for arguments to functions that are TU-local and shouldn't be
30146         referenced by assembly.
30148 2019-01-30  Ulrich Drepper  <drepper@redhat.com>
30150         * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
30151         after '='.
30153 2019-01-29  Martin Sebor  <msebor@redhat.com>
30155         PR c/88956
30156         * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
30158 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
30160         PR c++/66676
30161         PR ipa/89104
30162         * omp-simd-clone.c (simd_clone_clauses_extract)
30163         <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
30164         OMP_CLAUSE_ALIGNED_ALIGNMENT.
30166 2019-01-29  Vineet Gupta  <vgupta@synopsys.com>
30168         * config.gcc: Force .init_array for ARC.
30170 2019-01-29  Richard Biener  <rguenther@suse.de>
30172         PR debug/87295
30173         * dwarf2out.c (collect_skeleton_dies): New helper.
30174         (copy_decls_for_unworthy_types): Call it.
30175         (build_abbrev_table): Assert we do not try to replace
30176         DW_AT_signature refs with local refs.
30178 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
30180         PR middle-end/89002
30181         * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
30182         for lastprivate/linear IV, push gimplify context around gimplify_assign
30183         and, if it needed any temporaries, pop it into a gimple bind around the
30184         sequence.
30186 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30188         * common.opt (-Wattribute-alias): Remove "no-" from name.
30189         Make -Wattribute-alias command line option and
30190         #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
30192 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
30194         PR target/89073
30195         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
30196         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
30197         x86 ISA options.
30198         (bmi2): Add missing @opindex.
30199         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
30200         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
30201         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
30202         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
30203         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
30204         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
30205         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
30206         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
30207         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
30208         xsavec, xsaveopt and xsaves options.
30210 2019-01-28  Richard Biener  <rguenther@suse.de>
30212         PR debug/89076
30213         * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
30214         support removal.
30216 2019-01-28  Richard Biener  <rguenther@suse.de>
30218         PR tree-optimization/88739
30219         * tree-cfg.c (verify_types_in_gimple_reference): Verify
30220         BIT_FIELD_REFs only are applied to mode-precision operands
30221         when they are integral.
30222         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
30223         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
30224         BIT_FIELD_REFs of non-mode-precision integral operands.
30226 2019-01-27  Jakub Jelinek  <jakub@redhat.com>
30228         PR target/87214
30229         * config/i386/sse.md
30230         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
30231         avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
30232         first constants in pairs are multiples of 2.  Formatting fixes.
30233         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
30234         avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
30235         first constants in each quadruple are multiples of 4.  Formatting fixes.
30237 2019-01-26  Martin Jambor  <mjambor@suse.cz>
30239         PR ipa/88933
30240         * tree-inline.c: Include tree-cfgcleanup.h.
30241         (delete_unreachable_blocks_update_callgraph): Move...
30242         * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
30243         ...here, make externally visible, make second argument bool, adjust
30244         all callers.
30245         * tree-cfgcleanup.c: Include cgraph.h.
30246         * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
30247         Declare.
30248         * ipa-prop.c: Include tree-cfgcleanup.h.
30249         (ipcp_transform_function): Call
30250         delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
30252 2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>
30254         PR rtl-optimization/88846
30255         * ira.c (process_set_for_memref_referenced_p): New.
30256         (memref_referenced_p): Add new param.  Use
30257         process_set_for_memref_referenced_p.  Add new switch cases.
30258         (memref_used_between_p): Pass new arg to memref_referenced_p.
30260 2019-01-25  Richard Earnshaw  <rearnsha@arm.com>
30262         PR target/88469
30263         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
30264         argument ABI_BREAK.  Set to true if the calculated alignment has
30265         changed in gcc-9.  Check bit-fields for their base type alignment.
30266         (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
30267         (aarch64_function_arg_boundary): Likewise.
30268         (aarch64_gimplify_va_arg_expr): Likewise.
30270 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
30272         PR middle-end/89037
30273         * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
30274         instead of accessing TREE_INT_CST_ELT directly.
30276 2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
30278         * doc/sourcebuild.texi (Environment attributes): Add fenv and
30279         fenv_exceptions description.
30281 2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>
30283         PR rtl-optimization/87763
30284         * config/aarch64/aarch64.c (aarch64_select_cc_mode):
30285         Allow SUBREG when matching CC_NZmode compare.
30287 2019-01-25  Richard Biener  <rguenther@suse.de>
30289         PR tree-optimization/89049
30290         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
30291         Look at the pattern stmt to determine if the stmt is vectorized.
30293 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
30295         * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
30296         (pred_mov<mode>): Handle all-register forms using both a new
30297         alternative and a split.
30299 2019-01-25  Richard Biener  <rguenther@suse.de>
30301         PR tree-optimization/86865
30302         * graphite-scop-detection.c (scop_detection::can_represent_loop):
30303         Reject non-do-while loops.
30305 2019-01-24  Peter Bergner  <bergner@linux.ibm.com>
30307         * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
30308         * config/rs6000/constraints.md (Q constraint): Use REG_P.
30309         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
30310         * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
30311         SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
30312         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
30313         * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
30314         vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
30315         vlogical_operand, gpc_reg_operand, int_reg_operand,
30316         int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
30317         (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
30318         cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
30319         (save_world_operation, restore_world_operation, lmw_operation,
30320         stmw_operation): Use MEM_P and REG_P.
30321         (tie_operand): Use MEM_P.
30322         (vrsave_operation, crsave_operation): Use REG_P.
30323         (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
30324         (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
30325         (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
30326         (call_operand): Use HARD_REGISTER_P.
30327         (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
30328         Use CONST_INT_P.
30329         (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
30330         * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
30331         quad_aligned_load_p, replace_swapped_aligned_store,
30332         recombine_lvx_pattern, replace_swapped_aligned_load,
30333         recombine_stvx_pattern): Use MEM_P.
30334         (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
30335         Use MEM_P and SYMBOL_REF_P.
30336         (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
30337         (insn_is_swappable_p): Use REG_P and MEM_P.
30338         (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
30339         * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
30340         Use CONST_INT_P.
30341         * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
30342         Use CONST_DOUBLE_P.
30343         (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
30344         CONST_WIDE_INT_P.
30345         (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
30346         CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
30347         (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
30348         HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
30349         reg_or_subregno:
30350         (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
30351         (easy_altivec_constant, rs6000_legitimate_offset_address_p,
30352         rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
30353         rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
30354         rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
30355         rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
30356         rs6000_split_logical_di): Use CONST_INT_P.
30357         (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
30358         REG_P and SYMBOL_REF_P.
30359         (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
30360         (print_operand): Use CONST_INT_P, MEM_P and REG_P.
30361         (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
30362         mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
30363         (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
30364         (small_data_operand, print_operand_address): Use CONST_INT_P and
30365         SYMBOL_REF_P.
30366         (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
30367         (rs6000_init_hard_regno_mode_ok, direct_move_p):
30368         Use HARD_REGISTER_NUM_P.
30369         (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
30370         (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
30371         SUBREG_P and SYMBOL_REF_P.
30372         (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
30373         and HARD_REGISTER_NUM_P.
30374         (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
30375         reg_or_subregno.
30376         (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
30377         (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
30378         MEM_P and REG_P.
30379         (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
30380         registers_ok_for_quad_peep, rs6000_output_function_epilogue,
30381         find_addr_reg): Use REG_P.
30382         (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
30383         (rs6000_emit_le_vsx_move): Use SUBREG_P.
30384         (offsettable_ok_by_alignment, constant_pool_expr_p,
30385         legitimate_small_data_p, rs6000_output_dwarf_dtprel,
30386         rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
30387         rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
30388         rs6000_assemble_integer, create_TOC_reference,
30389         rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
30390         rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
30391         (rs6000_split_vec_extract_var): Use reg_or_subregno.
30392         * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
30393         CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
30394         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
30395         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
30396         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
30397         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
30398         (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
30399         (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
30400         * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
30401         and cbranch<mode>4): Use CONST_INT_P.
30402         (multiple define_splits): Use REG_P and SUBREG_P.
30403         (define_expands call, call_value): Use MEM_P.
30404         (define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
30405         (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
30406         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
30407         *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
30408         and HARD_REGISTER_NUM_P.
30409         (multiple define_splits): Use HARD_REGISTER_NUM_P.
30411 2019-01-24  UroÅ¡ Bizjak  <ubizjak@gmail.com>
30413         PR rtl-optimization/88948
30414         * rtl.h (prepare_copy_insn): New prototype.
30415         * gcse.c (prepare_copy_insn): New function, split out from
30416         process_insert_insn.
30417         (process_insert_insn): Use prepare_copy_insn.
30418         * store-motion.c (replace_store_insn): Use prepare_copy_insn
30419         instead of gen_move_insn.
30421 2019-01-24  Jakub Jelinek  <jakub@redhat.com>
30423         PR debug/89006
30424         * config/i386/i386.c (ix86_pic_register_p): Return true for
30425         UNSPEC_SET_GOT too.
30427         PR tree-optimization/88964
30428         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
30429         punt if HONOR_SNANS (chrec).
30431         PR middle-end/89015
30432         * tree-nested.c (convert_nonlocal_reference_stmt,
30433         convert_local_reference_stmt, convert_tramp_reference_stmt,
30434         convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
30435         gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
30436         or GIMPLE_OMP_TASK.
30438         PR tree-optimization/89027
30439         * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
30440         for "omp simd array" variables.
30442 2019-01-24  Richard Earnshaw  <rearnsha@arm.com>
30444         PR target/88469
30445         * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
30446         force the alignment of m_val.
30448 2019-01-24  Richard Biener  <rguenther@suse.de>
30450         PR lto/87187
30451         * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
30452         When in "legacy" debug mode make sure to reset self-origins.
30454 2019-01-24  Martin Liska  <mliska@suse.cz>
30456         PR gcov-profile/88994
30457         * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
30458         result will be always smaller or equal to the original.
30459         * gcov.c (mangle_name): Fix else branch where we should
30460         also copy to PTR and shift the pointer.
30462 2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
30464         * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
30465         * vr-values.c (find_case_label_ranges): Fix a comment typo.
30467 2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
30469         * common/config/i386/i386-common.c
30470         (OPTION_MASK_ISA_ENQCMD_SET,
30471         OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
30472         (ix86_handle_option): Handle -menqcmd.
30473         * config.gcc (enqcmdintrin.h): New header file.
30474         * config/i386/cpuid.h (bit_ENQCMD): New bit.
30475         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
30476         -menqcmd.
30477         * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
30478         function type.
30479         * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
30480         __builtin_ia32_enqcmds): New builtins.
30481         * config/i386/i386-c.c (__ENQCMD__): New macro.
30482         * config/i386/i386-option.c (ix86_target_string): Add
30483         -menqcmd.
30484         (ix86_valid_target_attribute_inner_p): Likewise.
30485         * config/i386/i386-expand.c
30486         (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
30487         IX86_BUILTIN_ENQCMDS.
30488         * config/i386/i386.h (TARGET_ENQCMD): New.
30489         * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
30490         (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
30491         (movdir64b_<mode>): Parameterize to enable share expansion code
30492         with ENQCMD in function ix86_expand_builtin.
30493         * config/i386/i386.opt: Add -menqcmd.
30494         * config/i386/immintrin.h: Include enqcmdintrin.h.
30495         * config/i386/enqcmdintrin.h: New intrinsic file.
30496         * doc/invoke.texi: Add -menqcmd.
30498 2019-01-23  Bin Cheng  <bin.cheng@arm.com>
30499             Steve Ellcey  <sellcey@marvell.com>
30501         PR target/85711
30502         * recog.c (address_operand): Return false on wrong mode for address.
30503         (constrain_operands): Check for mode with 'p' constraint.
30505 2019-01-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
30507         PR target/88998
30508         * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
30509         Disparage MMX alternative.
30510         (sse2_cvtpd2pi): Ditto.
30511         (sse2_cvttpd2pi): Ditto.
30513 2019-01-23  David Malcolm  <dmalcolm@redhat.com>
30515         PR driver/89014
30516         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
30517         use-after-free of the result of
30518         aarch64_get_extension_string_for_isa_flags.
30520 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
30522         PR c/44715
30523         * doc/extend.texi: Document break and continue behavior in
30524         statement expressions.
30526 2019-01-23  Richard Biener  <rguenther@suse.de>
30528         PR tree-optimization/89008
30529         * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
30530         not leave another stray operand.
30532 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
30534         * BASE-VER: Bump to 9.0.1.
30536 2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>
30538         * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
30539         thunk that returns by reference, use the type of the return object
30540         of the thunk instead of that of the alias to build the dereference.
30542 2019-01-23  Vineet Gupta  <vgupta@synopsys.com>
30544         * config/arc/atomic.md: Add operand to DMB instruction.
30546 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
30548         PR tree-optimization/88964
30549         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
30550         build_zero_cst instead of build_int_cst.  Return false for loop
30551         invariants which honor signed zeros.
30553 2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>
30555         * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
30557 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
30559         PR target/88965
30560         * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
30561         (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
30562         is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
30564         PR middle-end/88968
30565         * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
30566         non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
30568         PR target/87064
30569         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
30570         Disable for little endian.
30572 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
30574         PR target/88469
30575         * config/arm/arm.c (arm_needs_double_word_align): Check
30576         DECL_BIT_FIELD_TYPE.
30578 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
30579             H.J. Lu  <hongjiu.lu@intel.com>
30581         PR target/88909
30582         * config/i386/i386-builtin.def: Add mask2 to all builtin
30583         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
30584         SPECIAL_ARGS.
30585         * config/i386/i386.c (BDESC): Add mask2 to the definition.
30586         (BDESC_FIRST): Likewise.
30587         (define_builtin): Add an argument for mask2.  Updated to handle
30588         both ix86_isa_flags and ix86_isa_flags2.
30589         (define_builtin_const): Likewise.
30590         (define_builtin_pure): Likewise.
30591         (define_builtin2): Deleted.
30592         (define_builtin_const2): Likewise.
30593         (builtin_description): Add a member, mask2.
30594         (bdesc_*): Add mask2 to builtin initializations.
30595         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
30596         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
30597         support.
30598         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
30600 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
30602         PR target/88954
30603         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
30604         noplt attribute.
30606 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
30608         PR target/88469
30609         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
30610         alignment is dominated by a bitfield with 64-bit aligned base type.
30611         (arm_function_arg): Emit a warning if the alignment has changed since
30612         earlier GCC releases.
30613         (arm_function_arg_boundary): Likewise.
30614         (arm_setup_incoming_varargs): Likewise.
30616 2019-01-22  Richard Biener  <rguenther@suse.de>
30618         PR tree-optimization/88862
30619         * graphite-scop-detection.c
30620         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
30622 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
30624         * doc/extend.tex (AMD GCN Function Attributes): New section.
30625         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
30626         * doc/invoke.texi (AMD GCN Options): New section.
30627         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
30629 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
30631         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
30632         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
30634 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
30636         PR tree-optimization/88044
30637         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
30638         is false in the first iteration, but !every_iteration, return false
30639         instead of true with niter->niter zero.
30641         PR rtl-optimization/88904
30642         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
30643         any nonequal registers before processing BB_END (b).
30645         PR target/88905
30646         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
30647         GET_MODE (op0).
30648         (expand_binop_directly, expand_doubleword_clz,
30649         expand_doubleword_popcount, expand_ctz, expand_ffs,
30650         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
30652         PR rtl-optimization/49429
30653         PR target/49454
30654         PR rtl-optimization/86334
30655         PR target/88906
30656         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
30657         addressable from here...
30658         (emit_block_op_via_libcall): ... to here.
30660 2019-01-22  Richard Biener  <rguenther@suse.de>
30662         * tree-vect-loop.c (vect_analyze_loop_operations): Use
30663         auto_vec for cost vector to fix memleak.
30664         (vectorize_fold_left_reduction): Properly gather SLP defs.
30665         (vectorizable_comparison): Do not swap operands to properly
30666         gather SLP defs.
30668 2019-01-22  Alan Modra  <amodra@gmail.com>
30670         PR target/88614
30671         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
30672         stays a reg.  Allow a const_int.
30673         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
30674         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
30675         (IS_NOMARK_TLSGETADDR): Define.
30676         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
30677         (rs6000_output_tlsargs): New function.
30678         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
30679         __tls_get_addr call takes an arg.
30680         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
30681         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
30682         delete split..
30683         (call_value_nonlocal_sysv): ..or here, delete split.
30684         (tls_gdld_nomark): Delete.
30685         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
30686         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
30687         (call_value_nonlocal_sysv): Likewise.
30688         (call_value_nonlocal_sysv_secure): Likewise.
30689         (call_value_nonlocal_aix): Likewise.
30690         (call_value_indirect_aix): Likewise.
30691         (call_value_indirect_elfv2): Likewise.
30692         (call_value_local32, call_value_local64): Disable for no-mark tls.
30693         (call_value_local_aix): Likewise.
30695 2019-01-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
30697         PR target/88938
30698         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
30699         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
30701 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
30703         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
30704         string contents as hash_map keys.
30706 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30708         PR c/88928
30709         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
30710         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
30711         instead of TYPE_ALIGN.
30712         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
30713         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
30714         pointer from TYPE_STUB_DECL.
30716 2019-01-21  Richard Biener  <rguenther@suse.de>
30718         PR tree-optimization/88934
30719         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
30720         at the possibly non-constant operand.
30721         (vect_get_constant_vectors): Adjust.
30723 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
30725         PR target/71659
30726         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
30727         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
30728         instead of _X86INTRIN_H_INCLUDED.
30729         * onfig/i386/clwbintrin.h: Likewise.
30730         * config/i386/pkuintrin.h: Likewise.
30731         * config/i386/prfchwintrin.h: Likewise.
30732         * config/i386/rdseedintrin.h: Likewise.
30733         * config/i386/wbnoinvdintrin.h: Likewise.
30734         * config/i386/xsavecintrin.h: Likewise.
30735         * config/i386/xsavesintrin.h: Likewise.
30736         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
30737         * config/i386/xsaveintrin.h: Likewise.
30738         * config/i386/xsaveoptintrin.h: Likewise.
30739         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
30740         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
30741         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
30742         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
30743         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
30744         * config/i386/immintrin.h: Here.
30746 2019-01-20  Martin Jambor  <mjambor@suse.cz>
30748         PR ipa/87615
30749         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
30750         with aa_walk_budget.
30751         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
30752         aa_walk_budget_p parameter.
30753         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
30754         walk.  Updated all callers.
30755         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
30756         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
30757         unmodified_parm.
30758         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
30759         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
30760         and to unmodified_parm.
30761         (phi_result_unknown_predicate): New parameter fbi, removed parameter
30762         info, updated call to will_be_nonconstant_expr_predicate.
30763         (param_change_prob): New parameter fbi, limit AA walking.
30764         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
30765         calls to various above functions.
30766         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
30767         parameter.  Use it to limit AA walking.
30768         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
30769         fbi, limit AA walk.
30770         (detect_type_change): New parameter fbi, pass it on to
30771         detect_type_change_from_memory_writes.
30772         (detect_type_change_ssa): Likewise.
30773         (aa_overwalked): Removed.
30774         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
30775         accordingly, adjust to the neew AA limiting scheme.
30776         (parm_ref_data_preserved_p): Likewise.
30777         (ipa_compute_jump_functions_for_edge): Adjust call to
30778         get_dynamic_type.
30779         (ipa_analyze_call_uses): Likewise.
30780         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
30781         (ipa_analyze_node): Initialize aa_walk_budget.
30782         (ipcp_transform_function): Likewise.
30783         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
30784         to get_dynamic_type.
30786 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
30788         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
30789         outside of #if CHECKING_P code.
30791 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
30793         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
30794         New function, split out from...
30795         (loop_versioning::analyze_stride): ...here.
30796         (loop_versioning::find_per_loop_multiplication): Use gassign.
30797         (loop_versioning::analyze_term_using_scevs): Return a success code.
30798         (loop_versioning::analyze_arbitrary_term): New function.
30799         (loop_versioning::analyze_address_fragment): Use
30800         analyze_arbitrary_term if all else fails.
30802 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
30804         PR target/88892
30805         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
30806         operands.
30808 2019-01-18  Richard Biener  <rguenther@suse.de>
30810         PR tree-optimization/88903
30811         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
30812         scalar stmts a SLP shift amount is composed of when detecting
30813         shifts by scalars.
30815 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
30817         PR target/88799
30818         * config/arm/arm-cpus.in (mp): New feature.
30819         (sec): New feature.
30820         (fgroup ARMv7ve): Add mp and sec features.
30821         (arch armv7-a): Add options to allow mp and sec extensions.
30822         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
30823         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
30824         extenstions to the base architecture.
30825         (cpu cortex-a8): Add sec extension to the base architecture.
30826         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
30827         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
30828         variants down to the base v7-a varaint.
30829         * config/arm/t-multilib (v7_a_arch_variants): New variable.
30830         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
30831         of permitted extensions for -march=armv7-a and for
30832         -mcpu=generic-armv7-a.
30834 2019-01-18  Martin Liska  <mliska@suse.cz>
30836         * params.def: Fix comment.
30837         * tree-profile.c (gimple_init_gcov_profiler): Bump function
30838         name.
30839         (gimple_gen_ic_func_profiler): Likewise.
30841 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30843         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
30844         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
30845         and put in error checks for stack protector guard options.
30846         (aarch64_stack_protect_guard): New.
30847         (TARGET_STACK_PROTECT_GUARD): Define.
30848         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
30849         (reg_stack_protect_address<mode>): New.
30850         (stack_protect_set): Adjust for SSP_GLOBAL.
30851         (stack_protect_test): Likewise.
30852         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
30853         (-mstack-protector-guard): Likewise.
30854         (-mstack-protector-guard-offset): Likewise.
30856 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
30858         PR tree-optimization/86214
30859         * tree-inline.h (struct copy_body_data): Add
30860         add_clobbers_to_eh_landing_pads member.
30861         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
30862         (copy_edges_for_bb): Call it if EH edge destination is <
30863         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
30864         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
30865         if flag_stack_reuse != SR_NONE and clear it afterwards.
30867 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
30869         PR target/85596
30870         * doc/install.texi (with-multilib-list): Document for aarch64.
30872 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
30874         PR target/88734
30875         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
30876         (("..."))) with ("...").
30878 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30880         * doc/extend.texi (Built-in Functions for Memory Model Aware
30881         Atomic Operations): Document atomic fetch and nand.
30883 2019-01-18  Martin Liska  <mliska@suse.cz>
30884             Richard Biener  <rguenther@suse.de>
30886         PR middle-end/88587
30887         * cgraph.h (create_version_clone_with_body): Add new argument
30888         with attributes.
30889         * cgraphclones.c (cgraph_node::create_version_clone): Add
30890         DECL_ATTRIBUTES to a newly created decl.  And call
30891         valid_attribute_p so that proper cl_target_optimization_node
30892         is set for the newly created declaration.
30893         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
30894         for declaration.
30895         (expand_target_clones): Do not call valid_attribute_p, it must
30896         be already done.
30897         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
30898         vector types.
30900 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
30902         PR target/88734
30903         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
30904         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
30905         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
30907 2019-01-17  Martin Sebor  <msebor@redhat.com>
30909         PR middle-end/88273
30910         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
30911         Handle anti-ranges the same as no range at all.
30913 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
30915         * config/aarch64/aarch64.c (cgraph.h): New include.
30916         (intl.h): New include.
30917         (supported_simd_type): New function.
30918         (currently_supported_simd_type): Ditto.
30919         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
30920         (aarch64_simd_clone_adjust): Ditto.
30921         (aarch64_simd_clone_usable): Ditto.
30922         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
30923         (TARGET_SIMD_CLONE_ADJUST): Ditto.
30924         (TARGET_SIMD_CLONE_USABLE): Ditto.
30925         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
30926         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
30927         call.
30929 2019-01-17  Martin Sebor  <msebor@redhat.com>
30931         PR tree-optimization/88800
30932         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
30933         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
30934         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
30935         redundant argument.  Add new argument and issue diagnostics under
30936         its control.  Detect out-of-bounds access even with warnings
30937         disabled.
30938         (check_bounds_or_overlap): Change return type.  Add argument.
30939         (wrestrict_dom_walker::check_call): Adjust.
30940         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
30941         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
30942         check_bounds_or_overlap's return value.
30943         (handle_builtin_stxncpy): Same.
30944         (handle_builtin_strcat): Same.
30946 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
30947             Kwok Cheung Yeung  <kcy@codesourcery.com>
30948             Julian Brown  <julian@codesourcery.com>
30949             Tom de Vries  <tom@codesourcery.com>
30951         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
30953 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
30955         * doc/sourcebuild.texi: Document dg-require-effective-target
30956         llvm_binutils and offload_gcn.
30958 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
30959             Kwok Cheung Yeung  <kcy@codesourcery.com>
30960             Julian Brown  <julian@codesourcery.com>
30961             Tom de Vries  <tom@codesourcery.com>
30963         * doc/sourcebuild.texi: Document dg-required-effective-target
30964         exceptions.
30966 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
30967             Kwok Cheung Yeung  <kcy@codesourcery.com>
30968             Julian Brown  <julian@codesourcery.com>
30969             Tom de Vries  <tom@codesourcery.com>
30970             Jan Hubicka  <hubicka@ucw.cz>
30971             Martin Jambor  <mjambor@suse.cz>
30973         * config.gcc: Add amdgcn*-*-amdhsa configuration.
30974         * configure.ac: Check for dlopen.
30975         * configure: Regenerate.
30977 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
30978             Kwok Cheung Yeung  <kcy@codesourcery.com>
30979             Julian Brown  <julian@codesourcery.com>
30980             Tom de Vries  <tom@codesourcery.com>
30981             Jan Hubicka  <hubicka@ucw.cz>
30982             Martin Jambor  <mjambor@suse.cz>
30984         * common/config/gcn/gcn-common.c: New file.
30985         * config/gcn/driver-gcn.c: New file.
30986         * config/gcn/gcn-builtins.def: New file.
30987         * config/gcn/gcn-hsa.h: New file.
30988         * config/gcn/gcn-modes.def: New file.
30989         * config/gcn/gcn-opts.h: New file.
30990         * config/gcn/gcn-passes.def: New file.
30991         * config/gcn/gcn-protos.h: New file.
30992         * config/gcn/gcn-run.c: New file.
30993         * config/gcn/gcn-tree.c: New file.
30994         * config/gcn/gcn.c: New file.
30995         * config/gcn/gcn.h: New file.
30996         * config/gcn/gcn.opt: New file.
30997         * config/gcn/t-gcn-hsa: New file.
30999 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
31000             Kwok Cheung Yeung  <kcy@codesourcery.com>
31001             Julian Brown  <julian@codesourcery.com>
31002             Tom de Vries  <tom@codesourcery.com>
31003             Jan Hubicka  <hubicka@ucw.cz>
31004             Martin Jambor  <mjambor@suse.cz>
31006         * config/gcn/constraints.md: New file.
31007         * config/gcn/gcn-valu.md: New file.
31008         * config/gcn/gcn.md: New file.
31009         * config/gcn/predicates.md: New file.
31011 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31013         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
31014         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
31015         (stmt_uses_0_or_null_in_undefined_way): Likewise.
31016         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
31018 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
31020         PR target/88851
31021         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
31022         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
31023         it and document registers.
31025 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31027         * config/aarch64/aarch64.c (ares_tunings): Define.
31028         * config/aarch64/aarch64-cores.def (ares): Use the above.
31030 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
31032         PR target/88794
31033         Revert:
31034         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
31036         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
31037         (_mm512_fixupimm_round_pd): Update parameters and builtin.
31038         (_mm512_maskz_fixupimm_round_pd): Ditto.
31039         (_mm512_fixupimm_round_ps): Ditto.
31040         (_mm512_maskz_fixupimm_round_ps): Ditto.
31041         (_mm_fixupimm_round_sd): Ditto.
31042         (_mm_maskz_fixupimm_round_sd): Ditto.
31043         (_mm_fixupimm_round_ss): Ditto.
31044         (_mm_maskz_fixupimm_round_ss): Ditto.
31045         (_mm512_fixupimm_pd): Ditto.
31046         (_mm512_maskz_fixupimm_pd): Ditto.
31047         (_mm512_fixupimm_ps): Ditto.
31048         (_mm512_maskz_fixupimm_ps): Ditto.
31049         (_mm_fixupimm_sd): Ditto.
31050         (_mm_maskz_fixupimm_sd): Ditto.
31051         (_mm_fixupimm_ss): Ditto.
31052         (_mm_maskz_fixupimm_ss): Ditto.
31053         (_mm512_mask_fixupimm_round_pd): Update builtin.
31054         (_mm512_mask_fixupimm_round_ps): Ditto.
31055         (_mm_mask_fixupimm_round_sd): Ditto.
31056         (_mm_mask_fixupimm_round_ss): Ditto.
31057         (_mm512_mask_fixupimm_pd): Ditto.
31058         (_mm512_mask_fixupimm_ps): Ditto.
31059         (_mm_mask_fixupimm_sd): Ditto.
31060         (_mm_mask_fixupimm_ss): Ditto.
31061         * config/i386/avx512vlintrin.h:
31062         (_mm256_fixupimm_pd): Update parameters and builtin.
31063         (_mm256_maskz_fixupimm_pd): Ditto.
31064         (_mm256_fixupimm_ps): Ditto.
31065         (_mm256_maskz_fixupimm_ps): Ditto.
31066         (_mm_fixupimm_pd): Ditto.
31067         (_mm_maskz_fixupimm_pd): Ditto.
31068         (_mm_fixupimm_ps): Ditto.
31069         (_mm_maskz_fixupimm_ps): Ditto.
31070         (_mm256_mask_fixupimm_pd): Update builtin.
31071         (_mm256_mask_fixupimm_ps): Ditto.
31072         (_mm_mask_fixupimm_pd): Ditto.
31073         (_mm_mask_fixupimm_ps): Ditto.
31074         * config/i386/i386-builtin-types.def: Add new types and remove
31075         useless ones.
31076         * config/i386/i386-builtin.def: Update builtin definitions.
31077         * config/i386/i386.c: Handle new builtin types and remove useless ones.
31078         * config/i386/sse.md: Update VFIXUPIMM* patterns.
31079         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
31080         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
31081         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
31082         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
31083         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
31084         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
31085         * config/i386/subst.md:
31086         (round_saeonly_sd_mask_operand4): Add new subst_attr.
31087         (round_saeonly_sd_mask_op4): Ditto.
31088         (round_saeonly_expand_operand5): Ditto.
31089         (round_saeonly_expand): Update.
31091 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
31093         PR target/88794
31094         Revert:
31095         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
31097         * config/i386/sse.md: Combine VFIXUPIMM* patterns
31098         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
31099         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
31100         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
31101         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
31102         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
31103         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
31105 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
31107         PR target/88794
31108         Revert:
31109         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
31111         PR target/88489
31112         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
31113         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
31114         instead of UNSPEC_FIXUPIMM.
31116 2019-01-17  Richard Biener  <rguenther@suse.de>
31118         PR lto/86736
31119         * dwarf2out.c (want_pubnames): Never generate pubnames sections
31120         and friends for the LTO part of debug info.
31122 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
31124         PR tree-optimization/86214
31125         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
31126         if x == y.
31128         PR rtl-optimization/88870
31129         * dce.c (deletable_insn_p): Never delete const/pure calls that can
31130         throw if we can't alter the cfg or delete dead exceptions.
31131         (mark_insn): Don't call find_call_stack_args for such calls.
31133 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
31135         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
31136         prototypes for vec_st.
31137         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
31138         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
31139         mainly on signed/unsigned long long and double.
31141 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
31143         PR target/88861
31144         * combine.c (delete_noop_moves): Convert to "bool" return,
31145         returning true if any edges are eliminated.
31146         (combine_instructions): Also return true if delete_noop_moves
31147         returns true.
31149 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
31151         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
31152         correct max nunits for endian swap.
31153         (aarch64_expand_fcmla_builtin): Correct subreg code.
31154         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
31155         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
31156         lane endianness.
31158 2019-01-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
31160         * config/alpha/alpha.c (alpha_gimplify_va_arg):
31161         Handle split indirect COMPLEX_TYPE arguments.
31163 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
31165         PR target/86891
31166         * config/aarch64/aarch64-modes.def: Add comment about how the carry
31167         bit is set by add and compare.
31168         (CC_ADC): New CC_MODE.
31169         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
31170         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
31171         comparison.  Add detection for CC_ADCmode.
31172         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
31173         CC_ADCmode.
31174         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
31175         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
31176         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
31177         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
31178         to eliminate the need for zero-extending the operands.
31179         (add<mode>3_compareC_imm): Delete.  Merge into ...
31180         (add<mode>3_compareC): ... this.  Restructure the comparison to
31181         eliminate the need for zero-extending the operands.
31182         (add<mode>3_carryin): Use LTU for the overflow detection.
31183         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
31184         Reexpress comparison for overflow.
31185         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
31186         (add<mode>3_carryinC): Likewise.
31187         (add<mode>3_carryinV): Use LTU for carry between partials.
31188         * config/aarch64/predicates.md (aarch64_carry_operation): Update
31189         handling of CC_Cmode and add CC_ADCmode.
31190         (aarch64_borrow_operation): Likewise.
31192 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
31194         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
31195         Remove patternmode.
31196         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
31197         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
31198         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
31199         Remove endianness conversion.
31201 2019-01-16  Martin Liska  <mliska@suse.cz>
31203         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
31204         for GCC driver.
31205         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
31206         a new argument.
31207         * gcc.c (add_sysrooted_hdrs_prefix): New function.
31208         (path_prefix_reset): Move up in the source file.
31209         (find_fortran_preinclude_file): Make complex search for the
31210         fortran header files.
31212 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
31214         * godump.c (go_output_typedef): When outputting a typedef, refer
31215         to the underlying type by its name and not its structure.
31217 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
31219         PR c++/88795
31220         * tree.c (build_function_type): Assert that arg_types is not
31221         error_mark_node.
31223 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
31225         PR inline-asm/52813
31226         * doc/extend.texi: Document that listing the stack pointer in the
31227         clobber list of an asm is a deprecated feature.
31228         * common.opt (Wdeprecated): Moved from c-family/c.opt.
31229         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
31230         warning instead of an error for clobbers of the stack pointer.
31231         Add a note explaining why.
31233 2019-01-15  Richard Biener  <rguenther@suse.de>
31235         PR debug/88046
31236         * dwarf2out.c (gen_member_die): Do not generate inheritance
31237         DIEs late.
31239 2019-01-15  Richard Biener  <rguenther@suse.de>
31241         PR tree-optimization/88855
31242         * tree-if-conv.c (combine_blocks): Collect
31243         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
31245 2019-01-15  Tom de Vries  <tdevries@suse.de>
31247         PR target/80547
31248         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
31249         lhs == NULL_TREE for gang-level reduction.
31251 2019-01-15  Richard Biener  <rguenther@suse.de>
31252             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31254         PR ipa/88788
31255         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
31256         return true if SSA_NAME is already marked in visited bitmap.
31257         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
31259 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
31261         PR tree-optimization/88775
31262         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
31263         equal == 0 equality pointer comparisons some more if compared in
31264         integral types and either one points to an automatic var and the
31265         other to a global, or we can prove at least one points to the middle
31266         or both point to start or both point to end.
31268 2019-01-14  Andi Kleen  <ak@linux.intel.com>
31270         * Makefile.in: Lower autofdo sampling rate by 10x.
31271         * Makefile.tpl: Dito.
31273 2019-01-14  Tom Honermann  <tom@honermann.net>
31275         * defaults.h: Define CHAR8_TYPE.
31277 2019-01-14  Martin Sebor  <msebor@redhat.com>
31279         PR target/88638
31280         * doc/extend.texi (Darwin Format Checks): Clarify.
31282 2019-01-14  Richard Biener  <rguenther@suse.de>
31284         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
31285         whether we are in (simplify ...) or (match ...) context.
31287 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
31289         PR rtl-optimization/88796
31290         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
31291         * cfgexpand.c (stack_protect_prologue): Initialize
31292         crtl->stack_protect_guard_decl.
31293         * function.c (stack_protect_epilogue): Use it instead of calling
31294         targetm.stack_protect_guard again.
31295         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
31296         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
31297         crtl->stack_protect_guard_decl.
31298         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
31299         on the returned MEM_EXPR.
31301 2019-01-12  Tom de Vries  <tdevries@suse.de>
31303         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
31304         vector length using -fopenacc-dim.
31306 2019-01-12  Tom de Vries  <tdevries@suse.de>
31308         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
31309         lengths into account.
31311 2019-01-12  Svante Signell  <svante.signell@gmail.com>
31313         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
31314         (TARGET_CAN_SPLIT_STACK): Define.
31315         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
31317 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
31319         * params.def (inline-unit-growth): Set to 40.
31321 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
31323         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
31325 2019-01-12  Tom de Vries  <tdevries@suse.de>
31327         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
31328         region calling vector-partitionable routine, set default_vector_length
31329         to WARP_SIZE.
31331 2019-01-12  Tom de Vries  <tdevries@suse.de>
31333         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
31334         variable default_vector_length.
31336 2019-01-12  Tom de Vries  <tdevries@suse.de>
31338         PR middle-end/88703
31339         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
31340         from oacc_default_dims, as oacc_validate_dims would do it, and apply
31341         dimensions limits.
31343 2019-01-12  Tom de Vries  <tdevries@suse.de>
31345         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
31346         (nvptx_goacc_validate_dims): Add used parameter.
31347         * doc/tm.texi: Regenerate.
31348         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
31349         argument to call to targetm.goacc.validate_dims.
31350         (default_goacc_validate_dims): Add used
31351         parameter.
31352         * target.def (validate_dims): Add used parameter in DEFHOOK.
31353         * targhooks.h (default_goacc_validate_dims): Add used parameter.
31355 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
31357         PR middle-end/85956
31358         PR lto/88733
31359         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
31360         field.
31361         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
31362         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
31363         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
31364         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
31366 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
31368         PR rtl-optimization/87305
31369         * lra-assigns.c
31370         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
31371         for little endian pseudos used as paradoxical subreg.
31373 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
31375         PR tree-optimization/88693
31376         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
31377         for STRING_CSTs that don't contain any NUL characters in the first
31378         TREE_STRING_LENGTH bytes.
31380 2019-01-11  Alan Modra  <amodra@gmail.com>
31382         PR 88777
31383         PR 88614
31384         * genattrtab.c (min_fn): Don't translate values.
31385         (min_attr_value): Return INT_MAX when the value can't be calculated.
31386         Return minimum among any values that can be calculated.
31387         (max_attr_value): Adjust.
31389 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
31391         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
31393 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
31395         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
31396         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
31397         (aarch64_return_call_with_max_clobbers): New function.
31398         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
31399         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
31400         argument.
31401         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
31402         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
31403         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
31404         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
31405         * cselib.c (cselib_process_insn): Add argument to
31406         targetm.hard_regno_call_part_clobbered call.
31407         * ira-conflicts.c (ira_build_conflicts): Ditto.
31408         * ira-costs.c (ira_tune_allocno_costs): Ditto.
31409         * lra-constraints.c (inherit_reload_reg): Ditto.
31410         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
31411         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
31412         argument.  Call targetm.return_call_with_max_clobbers.
31413         Add argument to targetm.hard_regno_call_part_clobbered call.
31414         (calls_have_same_clobbers_p): New function.
31415         (process_bb_lives): Add call_insn and last_call_insn variables.
31416         Pass call_insn to check_pseudos_live_through_calls.
31417         Modify if stmt to check targetm.return_call_with_max_clobbers.
31418         Update setting of flush variable.
31419         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
31420         to false.
31421         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
31422         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
31423         targetm.hard_regno_call_part_clobbered call.
31424         * reginfo.c (choose_hard_reg_mode): Ditto.
31425         * regrename.c (check_new_reg_p): Ditto.
31426         * reload.c (find_equiv_reg): Ditto.
31427         * reload1.c (emit_reload_insns): Ditto.
31428         * sched-deps.c (deps_analyze_insn): Ditto.
31429         * sel-sched.c (init_regs_for_mode): Ditto.
31430         (mark_unavailable_hard_regs): Ditto.
31431         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
31432         * target.def (hard_regno_call_part_clobbered): Add insn argument.
31433         (return_call_with_max_clobbers): New target function.
31434         * doc/tm.texi: Regenerate.
31435         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
31436         * hooks.c (hook_bool_uint_mode_false): Change to
31437         hook_bool_insn_uint_mode_false.
31438         * hooks.h (hook_bool_uint_mode_false): Ditto.
31440 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
31442         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
31443         (aarch64_remove_extra_call_preserved_regs): New function.
31444         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
31445         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
31446         * doc/tm.texi: Regenerate.
31447         * final.c (get_call_reg_set_usage): Call new hook.
31448         * target.def (remove_extra_call_preserved_regs): New hook.
31449         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
31450         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
31452 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
31454         PR bootstrap/88714
31455         * passes.c (finish_optimization_passes): Call print_combine_total_stats
31456         inside of pass_combine_1 dump rather than pass_profile_1.
31458 2019-01-11  Tom de Vries  <tdevries@suse.de>
31460         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
31461         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
31462         (PTX_NUM_PER_WORKER_BARRIERS): Define.
31463         (nvptx_apply_dim_limits): Prevent vector_length 64 and
31464         num_workers 16.
31466 2019-01-11  Tom de Vries  <tdevries@suse.de>
31468         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
31470 2019-01-11  Jan Beulich  <jbeulich@suse.com>
31472         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
31473         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
31474         sse2_cvtsi2sd): Add {l}.
31475         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
31476         syntax.
31478 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
31480         PR target/88785
31481         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
31482         define_expand.
31483         (*float<floatunssuffix>v2div2sf2): New define_insn.
31484         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
31485         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
31486         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
31487         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
31488         match_operands with "const0_operand" "C".
31490 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
31492         * config/aarch64/aarch64-builtins.c
31493         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
31494         (aarch64_init_simd_builtins): ...Here
31496 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
31498         PR rtl-optimization/87305
31499         * lra-assigns.c
31500         (setup_live_pseudos_and_spill_after_risky_transforms): Check
31501         allocation for big endian pseudos used as paradoxical subregs and
31502         spill them if it is wrong.
31503         * lra-constraints.c (lra_constraints): Add a comment.
31505 2019-01-10  Richard Biener  <rguenther@suse.de>
31507         PR tree-optimization/88792
31508         * tree-ssa-pre.c (get_representative_for): Do not return a
31509         value-number here.
31511 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
31513         PR middle-end/84877
31514         PR bootstrap/88450
31515         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
31516         (assign_parm_setup_block): Do the argument slot realignment here
31517         instead.
31519 2019-01-10  Stefan Agner  <stefan@agner.ch>
31521         PR target/88648
31522         * config/arm/arm.c (arm_option_override_internal): Force
31523         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
31525 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
31527         PR c/88568
31528         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
31529         DECL_EXTERNAL.
31531 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
31533         * config/arm/arm-builtins.c
31534         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
31535         (MAC_LANE_PAIR_QUALIFIERS): New.
31536         (arm_expand_builtin_args): Use it.
31537         (arm_expand_builtin_1): Likewise.
31538         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
31539         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
31540         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
31541         * config/arm/arm_neon.h:
31542         (vcadd_rot90_f16): New.
31543         (vcaddq_rot90_f16): New.
31544         (vcadd_rot270_f16): New.
31545         (vcaddq_rot270_f16): New.
31546         (vcmla_f16): New.
31547         (vcmlaq_f16): New.
31548         (vcmla_lane_f16): New.
31549         (vcmla_laneq_f16): New.
31550         (vcmlaq_lane_f16): New.
31551         (vcmlaq_laneq_f16): New.
31552         (vcmla_rot90_f16): New.
31553         (vcmlaq_rot90_f16): New.
31554         (vcmla_rot90_lane_f16): New.
31555         (vcmla_rot90_laneq_f16): New.
31556         (vcmlaq_rot90_lane_f16): New.
31557         (vcmlaq_rot90_laneq_f16): New.
31558         (vcmla_rot180_f16): New.
31559         (vcmlaq_rot180_f16): New.
31560         (vcmla_rot180_lane_f16): New.
31561         (vcmla_rot180_laneq_f16): New.
31562         (vcmlaq_rot180_lane_f16): New.
31563         (vcmlaq_rot180_laneq_f16): New.
31564         (vcmla_rot270_f16): New.
31565         (vcmlaq_rot270_f16): New.
31566         (vcmla_rot270_lane_f16): New.
31567         (vcmla_rot270_laneq_f16): New.
31568         (vcmlaq_rot270_lane_f16): New.
31569         (vcmlaq_rot270_laneq_f16): New.
31570         (vcadd_rot90_f32): New.
31571         (vcaddq_rot90_f32): New.
31572         (vcadd_rot270_f32): New.
31573         (vcaddq_rot270_f32): New.
31574         (vcmla_f32): New.
31575         (vcmlaq_f32): New.
31576         (vcmla_lane_f32): New.
31577         (vcmla_laneq_f32): New.
31578         (vcmlaq_lane_f32): New.
31579         (vcmlaq_laneq_f32): New.
31580         (vcmla_rot90_f32): New.
31581         (vcmlaq_rot90_f32): New.
31582         (vcmla_rot90_lane_f32): New.
31583         (vcmla_rot90_laneq_f32): New.
31584         (vcmlaq_rot90_lane_f32): New.
31585         (vcmlaq_rot90_laneq_f32): New.
31586         (vcmla_rot180_f32): New.
31587         (vcmlaq_rot180_f32): New.
31588         (vcmla_rot180_lane_f32): New.
31589         (vcmla_rot180_laneq_f32): New.
31590         (vcmlaq_rot180_lane_f32): New.
31591         (vcmlaq_rot180_laneq_f32): New.
31592         (vcmla_rot270_f32): New.
31593         (vcmlaq_rot270_f32): New.
31594         (vcmla_rot270_lane_f32): New.
31595         (vcmla_rot270_laneq_f32): New.
31596         (vcmlaq_rot270_lane_f32): New.
31597         (vcmlaq_rot270_laneq_f32): New.
31598         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
31599         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
31600         vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
31601         vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
31602         vcmlaq_lane270): New.
31603         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
31604         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
31605         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
31606         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
31607         (arm_option_reconfigure_globals): Use them.
31608         * config/arm/iterators.md (VDF, VQ_HSF): New.
31609         (VCADD, VCMLA): New.
31610         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
31611         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
31612         New.
31613         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
31614         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
31616 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
31618         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
31619         Add qualifier_lane_pair_index.
31620         (emit-rtl.h): Include.
31621         (TYPES_QUADOP_LANE_PAIR): New.
31622         (aarch64_simd_expand_args): Use it.
31623         (aarch64_simd_expand_builtin): Likewise.
31624         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
31625         New.
31626         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
31627         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
31628         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
31629         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
31630         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
31631         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
31632         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
31633         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
31634         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
31635         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
31636         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
31637         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
31638         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
31639         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
31640         Add __ARM_FEATURE_COMPLEX.
31641         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
31642         fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
31643         fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
31644         fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
31645         fcmlaq_lane270): New.
31646         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
31647         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
31648         aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
31649         * config/aarch64/arm_neon.h:
31650         (vcadd_rot90_f16): New.
31651         (vcaddq_rot90_f16): New.
31652         (vcadd_rot270_f16): New.
31653         (vcaddq_rot270_f16): New.
31654         (vcmla_f16): New.
31655         (vcmlaq_f16): New.
31656         (vcmla_lane_f16): New.
31657         (vcmla_laneq_f16): New.
31658         (vcmlaq_lane_f16): New.
31659         (vcmlaq_rot90_lane_f16): New.
31660         (vcmla_rot90_laneq_f16): New.
31661         (vcmla_rot90_lane_f16): New.
31662         (vcmlaq_rot90_f16): New.
31663         (vcmla_rot90_f16): New.
31664         (vcmlaq_laneq_f16): New.
31665         (vcmla_rot180_laneq_f16): New.
31666         (vcmla_rot180_lane_f16): New.
31667         (vcmlaq_rot180_f16): New.
31668         (vcmla_rot180_f16): New.
31669         (vcmlaq_rot90_laneq_f16): New.
31670         (vcmlaq_rot270_laneq_f16): New.
31671         (vcmlaq_rot270_lane_f16): New.
31672         (vcmla_rot270_laneq_f16): New.
31673         (vcmlaq_rot270_f16): New.
31674         (vcmla_rot270_f16): New.
31675         (vcmlaq_rot180_laneq_f16): New.
31676         (vcmlaq_rot180_lane_f16): New.
31677         (vcmla_rot270_lane_f16): New.
31678         (vcadd_rot90_f32): New.
31679         (vcaddq_rot90_f32): New.
31680         (vcaddq_rot90_f64): New.
31681         (vcadd_rot270_f32): New.
31682         (vcaddq_rot270_f32): New.
31683         (vcaddq_rot270_f64): New.
31684         (vcmla_f32): New.
31685         (vcmlaq_f32): New.
31686         (vcmlaq_f64): New.
31687         (vcmla_lane_f32): New.
31688         (vcmla_laneq_f32): New.
31689         (vcmlaq_lane_f32): New.
31690         (vcmlaq_laneq_f32): New.
31691         (vcmla_rot90_f32): New.
31692         (vcmlaq_rot90_f32): New.
31693         (vcmlaq_rot90_f64): New.
31694         (vcmla_rot90_lane_f32): New.
31695         (vcmla_rot90_laneq_f32): New.
31696         (vcmlaq_rot90_lane_f32): New.
31697         (vcmlaq_rot90_laneq_f32): New.
31698         (vcmla_rot180_f32): New.
31699         (vcmlaq_rot180_f32): New.
31700         (vcmlaq_rot180_f64): New.
31701         (vcmla_rot180_lane_f32): New.
31702         (vcmla_rot180_laneq_f32): New.
31703         (vcmlaq_rot180_lane_f32): New.
31704         (vcmlaq_rot180_laneq_f32): New.
31705         (vcmla_rot270_f32): New.
31706         (vcmlaq_rot270_f32): New.
31707         (vcmlaq_rot270_f64): New.
31708         (vcmla_rot270_lane_f32): New.
31709         (vcmla_rot270_laneq_f32): New.
31710         (vcmlaq_rot270_lane_f32): New.
31711         (vcmlaq_rot270_laneq_f32): New.
31712         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
31713         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
31714         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
31715         (FCADD, FCMLA): New.
31716         (rot): New.
31717         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
31719 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
31721         PR other/16615
31723         * config/pa/pa.c: Change "can not" to "cannot".
31724         * gimple-ssa-evrp-analyze.c: Likewise.
31725         * ipa-icf.c: Likewise.
31726         * ipa-polymorphic-call.c: Likewise.
31727         * ipa-pure-const.c: Likewise.
31728         * lra-constraints.c: Likewise.
31729         * lra-remat.c: Likewise.
31730         * reload1.c: Likewise.
31731         * reorg.c: Likewise.
31732         * tree-ssa-uninit.c: Likewise.
31734 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
31736         PR other/16615
31738         * Makefile.in: Mechanically replace "can not" with "cannot".
31739         * alias.c: Likewise.
31740         * builtins.c: Likewise.
31741         * calls.c: Likewise.
31742         * cgraph.c: Likewise.
31743         * cgraph.h: Likewise.
31744         * cgraphclones.c: Likewise.
31745         * cgraphunit.c: Likewise.
31746         * combine-stack-adj.c: Likewise.
31747         * combine.c: Likewise.
31748         * common/config/i386/i386-common.c: Likewise.
31749         * config/aarch64/aarch64.c: Likewise.
31750         * config/alpha/sync.md: Likewise.
31751         * config/arc/arc.c: Likewise.
31752         * config/arc/predicates.md: Likewise.
31753         * config/arm/arm-c.c: Likewise.
31754         * config/arm/arm.c: Likewise.
31755         * config/arm/arm.h: Likewise.
31756         * config/arm/arm.md: Likewise.
31757         * config/arm/cortex-r4f.md: Likewise.
31758         * config/csky/csky.c: Likewise.
31759         * config/csky/csky.h: Likewise.
31760         * config/darwin-f.c: Likewise.
31761         * config/epiphany/epiphany.md: Likewise.
31762         * config/i386/i386.c: Likewise.
31763         * config/i386/sol2.h: Likewise.
31764         * config/m68k/m68k.c: Likewise.
31765         * config/mcore/mcore.h: Likewise.
31766         * config/microblaze/microblaze.md: Likewise.
31767         * config/mips/20kc.md: Likewise.
31768         * config/mips/sb1.md: Likewise.
31769         * config/nds32/nds32.c: Likewise.
31770         * config/nds32/predicates.md: Likewise.
31771         * config/pa/pa.c: Likewise.
31772         * config/rs6000/e300c2c3.md: Likewise.
31773         * config/rs6000/rs6000.c: Likewise.
31774         * config/s390/s390.h: Likewise.
31775         * config/sh/sh.c: Likewise.
31776         * config/sh/sh.md: Likewise.
31777         * config/spu/vmx2spu.h: Likewise.
31778         * cprop.c: Likewise.
31779         * dbxout.c: Likewise.
31780         * df-scan.c: Likewise.
31781         * doc/cfg.texi: Likewise.
31782         * doc/extend.texi: Likewise.
31783         * doc/fragments.texi: Likewise.
31784         * doc/gty.texi: Likewise.
31785         * doc/invoke.texi: Likewise.
31786         * doc/lto.texi: Likewise.
31787         * doc/md.texi: Likewise.
31788         * doc/objc.texi: Likewise.
31789         * doc/rtl.texi: Likewise.
31790         * doc/tm.texi: Likewise.
31791         * dse.c: Likewise.
31792         * emit-rtl.c: Likewise.
31793         * emit-rtl.h: Likewise.
31794         * except.c: Likewise.
31795         * expmed.c: Likewise.
31796         * expr.c: Likewise.
31797         * fold-const.c: Likewise.
31798         * genautomata.c: Likewise.
31799         * gimple-fold.c: Likewise.
31800         * hard-reg-set.h: Likewise.
31801         * ifcvt.c: Likewise.
31802         * ipa-comdats.c: Likewise.
31803         * ipa-cp.c: Likewise.
31804         * ipa-devirt.c: Likewise.
31805         * ipa-fnsummary.c: Likewise.
31806         * ipa-icf.c: Likewise.
31807         * ipa-inline-transform.c: Likewise.
31808         * ipa-inline.c: Likewise.
31809         * ipa-polymorphic-call.c: Likewise.
31810         * ipa-profile.c: Likewise.
31811         * ipa-prop.c: Likewise.
31812         * ipa-pure-const.c: Likewise.
31813         * ipa-reference.c: Likewise.
31814         * ipa-split.c: Likewise.
31815         * ipa-visibility.c: Likewise.
31816         * ipa.c: Likewise.
31817         * ira-build.c: Likewise.
31818         * ira-color.c: Likewise.
31819         * ira-conflicts.c: Likewise.
31820         * ira-costs.c: Likewise.
31821         * ira-int.h: Likewise.
31822         * ira-lives.c: Likewise.
31823         * ira.c: Likewise.
31824         * ira.h: Likewise.
31825         * loop-invariant.c: Likewise.
31826         * loop-unroll.c: Likewise.
31827         * lower-subreg.c: Likewise.
31828         * lra-assigns.c: Likewise.
31829         * lra-constraints.c: Likewise.
31830         * lra-eliminations.c: Likewise.
31831         * lra-lives.c: Likewise.
31832         * lra-remat.c: Likewise.
31833         * lra-spills.c: Likewise.
31834         * lra.c: Likewise.
31835         * lto-cgraph.c: Likewise.
31836         * lto-streamer-out.c: Likewise.
31837         * postreload-gcse.c: Likewise.
31838         * predict.c: Likewise.
31839         * profile-count.h: Likewise.
31840         * profile.c: Likewise.
31841         * recog.c: Likewise.
31842         * ree.c: Likewise.
31843         * reload.c: Likewise.
31844         * reload1.c: Likewise.
31845         * reorg.c: Likewise.
31846         * resource.c: Likewise.
31847         * rtl.def: Likewise.
31848         * rtl.h: Likewise.
31849         * rtlanal.c: Likewise.
31850         * sched-deps.c: Likewise.
31851         * sched-ebb.c: Likewise.
31852         * sched-rgn.c: Likewise.
31853         * sel-sched-ir.c: Likewise.
31854         * sel-sched.c: Likewise.
31855         * shrink-wrap.c: Likewise.
31856         * simplify-rtx.c: Likewise.
31857         * symtab.c: Likewise.
31858         * target.def: Likewise.
31859         * toplev.c: Likewise.
31860         * tree-call-cdce.c: Likewise.
31861         * tree-cfg.c: Likewise.
31862         * tree-complex.c: Likewise.
31863         * tree-core.h: Likewise.
31864         * tree-eh.c: Likewise.
31865         * tree-inline.c: Likewise.
31866         * tree-loop-distribution.c: Likewise.
31867         * tree-nrv.c: Likewise.
31868         * tree-profile.c: Likewise.
31869         * tree-sra.c: Likewise.
31870         * tree-ssa-alias.c: Likewise.
31871         * tree-ssa-dce.c: Likewise.
31872         * tree-ssa-dom.c: Likewise.
31873         * tree-ssa-forwprop.c: Likewise.
31874         * tree-ssa-loop-im.c: Likewise.
31875         * tree-ssa-loop-ivcanon.c: Likewise.
31876         * tree-ssa-loop-ivopts.c: Likewise.
31877         * tree-ssa-loop-niter.c: Likewise.
31878         * tree-ssa-phionlycprop.c: Likewise.
31879         * tree-ssa-phiopt.c: Likewise.
31880         * tree-ssa-propagate.c: Likewise.
31881         * tree-ssa-threadedge.c: Likewise.
31882         * tree-ssa-threadupdate.c: Likewise.
31883         * tree-ssa-uninit.c: Likewise.
31884         * tree-ssanames.c: Likewise.
31885         * tree-streamer-out.c: Likewise.
31886         * tree.c: Likewise.
31887         * tree.h: Likewise.
31888         * vr-values.c: Likewise.
31890 2019-01-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
31892         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
31893         (ix86_split_xorsign): Ditto.
31894         * config/i386/i386.c (ix86_expand_xorsign): New function.
31895         (ix86_split_xorsign): Ditto.
31896         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
31897         (xorsign<mode>3): New expander.
31898         (xorsign<mode>3_1): New insn_and_split pattern.
31899         * config/i386/sse.md (xorsign<mode>3): New expander.
31901 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
31903         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
31904         (*tablejump_sp64): Likewise.
31905         (*tablejump<P:mode>): ...this.
31906         (*call_address_sp32): Merge into...
31907         (*call_address_sp64): Likewise.
31908         (*call_address<P:mode>): ...this.
31909         (*call_symbolic_sp32): Merge into...
31910         (*call_symbolic_sp64): Likewise.
31911         (*call_symbolic<P:mode>): ...this.
31912         (call_value): Remove constraint and add predicate.
31913         (*call_value_address_sp32): Merge into...
31914         (*call_value_address_sp64): Likewise.
31915         (*call_value_address<P:mode>): ...this.
31916         (*call_value_symbolic_sp32): Merge into...
31917         (*call_value_symbolic_sp64): Likewise.
31918         (*call_value_symbolic<P:mode>): ...this.
31919         (*sibcall_symbolic_sp32): Merge into...
31920         (*sibcall_symbolic_sp64): Likewise.
31921         (*sibcall_symbolic<P:mode>): ...this.
31922         (sibcall_value): Remove constraint and add predicate.
31923         (*sibcall_value_symbolic_sp32): Merge into...
31924         (*sibcall_value_symbolic_sp64): Likewise.
31925         (*sibcall_value_symbolic<P:mode>): ...this.
31926         (window_save): Minor tweak.
31927         (*branch_sp32): Merge into...
31928         (*branch_sp64): Likewise.
31929         (*branch<P:mode>): ...this.
31931 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
31932             James Clarke  <jrtc27@jrtc27.com>
31934         PR target/84010
31935         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
31936         consistently in TLS address generation and adjust code to the renaming
31937         of patterns.  Mark calls to __tls_get_addr as const.
31938         * config/sparc/sparc.md (tgd_hi22): Turn into...
31939         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
31940         (tgd_lo10): Turn into...
31941         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
31942         (tgd_add32): Merge into...
31943         (tgd_add64): Likewise.
31944         (tgd_add<P:mode>): ...this and use Pmode throughout.
31945         (tldm_hi22): Turn into...
31946         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
31947         (tldm_lo10): Turn into...
31948         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
31949         (tldm_add32): Merge into...
31950         (tldm_add64): Likewise.
31951         (tldm_add<P:mode>): ...this and use Pmode throughout.
31952         (tldm_call32): Merge into...
31953         (tldm_call64): Likewise.
31954         (tldm_call<P:mode>): ...this and use Pmode throughout.
31955         (tldo_hix22): Turn into...
31956         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
31957         (tldo_lox10): Turn into...
31958         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
31959         (tldo_add32): Merge into...
31960         (tldo_add64): Likewise.
31961         (tldo_add<P:mode>): ...this and use Pmode throughout.
31962         (tie_hi22): Turn into...
31963         (tie_hi22<P:mode>): ...this and use Pmode throughout.
31964         (tie_lo10): Turn into...
31965         (tie_lo10<P:mode>): ...this and use Pmode throughout.
31966         (tie_ld64): Use DImode throughout.
31967         (tie_add32): Merge into...
31968         (tie_add64): Likewise.
31969         (tie_add<P:mode>): ...this and use Pmode throughout.
31970         (tle_hix22_sp32): Merge into...
31971         (tle_hix22_sp64): Likewise.
31972         (tle_hix22<P:mode>): ...this and use Pmode throughout.
31973         (tle_lox22_sp32): Merge into...
31974         (tle_lox22_sp64): Likewise.
31975         (tle_lox22<P:mode>): ...this and use Pmode throughout.
31976         (*tldo_ldub_sp32): Merge into...
31977         (*tldo_ldub_sp64): Likewise.
31978         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
31979         (*tldo_ldub1_sp32): Merge into...
31980         (*tldo_ldub1_sp64): Likewise.
31981         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
31982         (*tldo_ldub2_sp32): Merge into...
31983         (*tldo_ldub2_sp64): Likewise.
31984         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
31985         (*tldo_ldsb1_sp32): Merge into...
31986         (*tldo_ldsb1_sp64): Likewise.
31987         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
31988         (*tldo_ldsb2_sp32): Merge into...
31989         (*tldo_ldsb2_sp64): Likewise.
31990         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
31991         (*tldo_ldub3_sp64): Use DImode throughout.
31992         (*tldo_ldsb3_sp64): Likewise.
31993         (*tldo_lduh_sp32): Merge into...
31994         (*tldo_lduh_sp64): Likewise.
31995         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
31996         (*tldo_lduh1_sp32): Merge into...
31997         (*tldo_lduh1_sp64): Likewise.
31998         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
31999         (*tldo_ldsh1_sp32): Merge into...
32000         (*tldo_ldsh1_sp64): Likewise.
32001         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
32002         (*tldo_lduh2_sp64): Use DImode throughout.
32003         (*tldo_ldsh2_sp64): Likewise.
32004         (*tldo_lduw_sp32): Merge into...
32005         (*tldo_lduw_sp64): Likewise.
32006         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
32007         (*tldo_lduw1_sp64): Use DImode throughout.
32008         (*tldo_ldsw1_sp64): Likewise.
32009         (*tldo_ldx_sp64): Likewise.
32010         (*tldo_stb_sp32): Merge into...
32011         (*tldo_stb_sp64): Likewise.
32012         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
32013         (*tldo_sth_sp32): Merge into...
32014         (*tldo_sth_sp64): Likewise.
32015         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
32016         (*tldo_stw_sp32): Merge into...
32017         (*tldo_stw_sp64): Likewise.
32018         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
32019         (*tldo_stx_sp64): Use DImode throughout.
32021 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32023         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
32024         check configure option to set BTI and Return Address Signing.
32025         * configure.ac: Add --enable-standard-branch-protection and
32026         --disable-standard-branch-protection.
32027         * configure: Regenerated.
32028         * doc/install.texi: Document the same.
32030 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32031             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32033         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
32034         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
32035         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
32036         if bti is enabled.
32037         * config/aarch64/aarch64-bti-insert.c: New file.
32038         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
32039         pass.
32040         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
32041         new bti pass.
32042         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
32043         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
32044         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
32045         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
32047 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32049         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
32050         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
32051         Disable bti for -mbranch-protection=none.
32052         (aarch64_handle_standard_branch_protection): Enable bti for
32053         -mbranch-protection=standard.
32054         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
32055         -mbranch-protection.
32056         (aarch64_bti_enabled): Check if bti is enabled.
32057         * config/aarch64/aarch64.opt: Declare target variable.
32058         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
32060 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32062         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
32063         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
32064         (aarch64_expand_epilogue): Likewise.
32065         (aarch64_output_mi_thunk): Likewise.
32066         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
32067         TAILCALL_ADDR_REGS to x16 and x17.
32068         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
32070 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32072         * config/aarch64/aarch64-option-extensions.def: Define
32073         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
32074         * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
32075         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
32076         (AARCH64_FL_PREDRES): New.
32077         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
32078         AARCH64_FL_PREDRES by default.
32079         * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
32081 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
32083         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
32084         ARMv8.5-A.
32085         * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
32086         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
32087         * doc/invoke.texi: Document ARMv8.5-A.
32089 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
32091         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
32092         (xorsign<mode>3): Likewise.
32094 2019-01-09  Jelinek  <jakub@redhat.com>
32096         PR middle-end/88758
32097         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
32098         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
32100         PR rtl-optimization/88331
32101         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
32102         not currently_expanding_to_rtl.
32104 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
32106         * doc/invoke.texi (-Os): Remove trailing spaces.
32107         (-finline-functions): Remove reference to -O2.
32109 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
32111         PR rtl-optimization/79593
32112         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
32114         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
32115         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
32117 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
32119         PR bootstrap/88721
32120         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
32121         to -1 on entry.
32123         PR debug/88723
32124         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
32125         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
32127 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
32129         PR target/88717
32130         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
32131         ix86_avx_u128_mode_entry.
32133 2019-01-08  Martin Liska  <mliska@suse.cz>
32135         PR tree-optimization/88753
32136         * tree-switch-conversion.c (switch_conversion::build_one_array):
32137         Come up with local variable constructor.  Convert first to
32138         type of constructor values.
32140 2019-01-08  Richard Biener  <rguenther@suse.de>
32142         PR tree-optimization/86554
32143         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
32144         rpo_avail): Move earlier.
32145         (visit_nary_op): When value-numbering to expressions
32146         with different overflow behavior make sure there's an
32147         available expression on the path.
32149 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
32151         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
32152         aarch64_parse_branch_protection,
32153         struct aarch64_branch_protect_type,
32154         aarch64_handle_no_branch_protection,
32155         aarch64_handle_standard_branch_protection,
32156         aarch64_validate_mbranch_protection,
32157         aarch64_handle_pac_ret_protection,
32158         aarch64_handle_attr_branch_protection,
32159         accepted_branch_protection_string,
32160         aarch64_pac_ret_subtypes,
32161         aarch64_branch_protect_types,
32162         aarch64_handle_pac_ret_leaf): Define.
32163         (aarch64_override_options_after_change_1, aarch64_override_options):
32164         Add check for accepted_branch_protection_string.
32165         (aarch64_option_save): Save accepted_branch_protection_string.
32166         (aarch64_option_restore): Save accepted_branch_protection_string.
32167         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
32168         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
32169         msign-return-address.
32170         * doc/invoke.texi: Add mbranch-protection.
32172 2019-01-08  Alan Modra  <amodra@gmail.com>
32174         PR target/88614
32175         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
32176         Delete "unknownp" parameter.  Adjust callers.  Handle
32177         CONST_INT, PLUS, MINUS, and MULT.
32178         (attr_value_aligned): Renamed from or_attr_value.
32179         (min_attr_value): Return INT_MIN for unhandled rtl case..
32180         (min_fn): ..and translate to INT_MAX here.
32181         (write_length_unit_log): Modify to cope without "unknown".
32182         (write_attr_value): Handle IF_THEN_ELSE.
32184 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
32186         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
32187         optimization for masked stores.
32189 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
32191         PR middle-end/88567
32192         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
32193         output vector directly to duplicate_and_interleave instead of
32194         going through a temporary.  Postpone insertion of ctor_seq to
32195         the end of the loop.
32197 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
32199         PR target/86891
32200         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
32201         unsigned_p.  Handle signed and unsigned overflow correction as
32202         required.
32203         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
32204         prototype.
32205         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
32206         for operand 2.
32207         (add<mode>3_compareV_imm): Make this callable for expanding.
32208         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
32209         aarch64_plus_operand for operand 2.
32210         (subv<GPI:mode>_insn): New insn pattern.
32211         (subv<GPI:mode>_imm): Likewise.
32212         (negv<GPI:mode>3): New expand pattern.
32213         (negv<GPI:mode>_insn): New insn pattern.
32214         (negv<GPI:mode>_cmp_only): Likewise.
32215         (cmpv<GPI:mode>_insn): Likewise.
32216         (subvti4): Use register_operand for operand 1.  Update call to
32217         aarch64_expand_subvti.
32218         (usubvti4): Likewise.
32219         (negvti3): New expand pattern.
32220         (negdi_carryout): New insn pattern.
32221         (negvdi_carryinV): New insn pattern.
32222         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
32223         version the named version.
32224         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
32225         operands.
32226         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
32227         patterns.
32228         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
32229         patterns.
32230         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
32231         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
32232         (sub<mode>3_carryinCV): Delete.
32233         (sub<GPI:mode>3_carryinV): New expand pattern.
32234         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
32236 2019-01-07  Richard Biener  <rguenther@suse.de>
32238         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
32239         of tree_operand_hash.
32241 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
32243         PR tree-optimization/88598
32244         * tree.h (single_nonzero_element): Declare.
32245         * tree.c (single_nonzero_element): New function.
32246         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
32247         if I is the only nonzero element of CST.
32249 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
32251         PR tree-optimization/88598
32252         * tree.h (initializer_each_zero_or_onep): Declare.
32253         * tree.c (initializer_each_zero_or_onep): New function.
32254         (signed_or_unsigned_type_for): Handle float types too.
32255         (unsigned_type_for, signed_type_for): Update comments accordingly.
32256         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
32257         x & { 0 or -1, 0 or -1, ... }.
32259 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
32261         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
32262         with x86_64-pc-linux-gnu.
32264 2019-01-07  Tom de Vries  <tdevries@suse.de>
32266         PR target/85486
32267         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
32268         function.
32269         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
32270         routines.
32272 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
32274         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
32275         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
32276         TARGET_AVX512F as condition.
32278         PR debug/88723
32279         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
32280         const_not_ok_for_debug_p target hook.
32281         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
32282         on UNSPEC and subexpressions thereof if all subexpressions of the
32283         UNSPEC are CONSTANT_P.
32285         PR tree-optimization/88676
32286         * tree-ssa-phiopt.c (two_value_replacement): New function.
32287         (tree_ssa_phiopt_worker): Call it.
32289         PR sanitizer/88619
32290         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
32291         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
32293         PR c++/85052
32294         * tree-vect-generic.c: Include insn-config.h and recog.h.
32295         (expand_vector_piecewise): Add defaulted ret_type argument,
32296         if non-NULL, use that in preference to type for the result type.
32297         (expand_vector_parallel): Formatting fix.
32298         (do_vec_conversion, do_vec_narrowing_conversion,
32299         expand_vector_conversion): New functions.
32300         (expand_vector_operations_1): Call expand_vector_conversion
32301         for VEC_CONVERT ifn calls.
32302         * internal-fn.def (VEC_CONVERT): New internal function.
32303         * internal-fn.c (expand_VEC_CONVERT): New function.
32304         * fold-const-call.c (fold_const_vec_convert): New function.
32305         (fold_const_call): Use it for CFN_VEC_CONVERT.
32306         * doc/extend.texi (__builtin_convertvector): Document.
32308 2019-01-07  Tom de Vries  <tdevries@suse.de>
32310         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
32311         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
32312         vector_red_partition, vector_red_sym): New global variables.
32313         (nvptx_option_override): Initialize vector_red_sym.
32314         (nvptx_declare_function_name): Restore red_partition register.
32315         (nvptx_file_end): Emit code to declare the vector reduction variables.
32316         (nvptx_output_red_partition): New function.
32317         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
32318         large vector reductions.
32319         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
32320         (nvptx_init_builtins): Add VECTOR_ADDR.
32321         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
32322         Handle nvptx_expand_shared_addr.
32323         (nvptx_get_shared_red_addr): Add vector argument and handle large
32324         vectors.
32325         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
32326         large vectors.
32327         (nvptx_goacc_reduction_init): Likewise.
32328         (nvptx_goacc_reduction_fini): Likewise.
32329         (nvptx_goacc_reduction_teardown): Likewise.
32330         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
32331         init,fini,teardown}.
32332         (nvptx_init_axis_predicate): Initialize vector_red_partition.
32333         (nvptx_set_current_function): Init vector_red_partition.
32334         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
32335         (nvptx_red_partition): New insn.
32336         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
32338 2019-01-07  Tom de Vries  <tdevries@suse.de>
32340         PR target/85381
32341         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
32342         empty loops.
32344 2019-01-07  Tom de Vries  <tdevries@suse.de>
32346         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
32347         (nvptx_option_override): Init oacc_bcast_partition.
32348         (nvptx_init_oacc_workers): New function.
32349         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
32350         (nvptx_needs_shared_bcast): New function.
32351         (nvptx_find_par): Generalize to enable vectors to use shared-memory
32352         to propagate state.
32353         (nvptx_shared_propagate): Initialize vector bcast partition and
32354         synchronization state.
32355         (nvptx_single): Generalize to enable vectors to use shared-memory
32356         to propagate state.
32357         (nvptx_process_pars): Likewise.
32358         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
32359         * config/nvptx/nvptx.h (struct machine_function): Add
32360         bcast_partition and sync_bar members.
32362 2019-01-07  Tom de Vries  <tdevries@suse.de>
32364         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
32365         (nvptx_apply_dim_limits): New function.
32366         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
32367         PTX_WARP_SIZE.
32369 2019-01-07  Tom de Vries  <tdevries@suse.de>
32371         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
32372         as late as possible.
32374 2019-01-07  Tom de Vries  <tdevries@suse.de>
32376         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
32377         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
32378         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
32379         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
32380         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
32382 2019-01-07  Tom de Vries  <tdevries@suse.de>
32384         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
32386 2019-01-07  Tom de Vries  <tdevries@suse.de>
32388         * omp-offload.c (oacc_get_min_dim): New function.
32389         * omp-offload.h (oacc_get_min_dim): Declare.
32391 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
32393         PR target/88521
32394         * config/i386/i386.c (function_value_ms_64): Return small sturct in
32395         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
32397 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
32399         PR tree-opt/86020
32400         Revert:
32401         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
32403         * ipa-inline.c (edge_badness): Use inlined_time instead of
32404         inline_summaries->get.
32406 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
32408         * opts.c (enable_fdo_optimizations): Enable
32409         version-loops-for-strides, loop-interchange, unrol-and-jam
32410         and tree-loop-distribution.
32411         * invoke.texi: Document newly enabled options.
32413 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
32415         * doc/invoke.texi (max-inline-insns-small): New parameters.
32416         * ipa-inline.c (want_early_inline_function_p): simplify.
32417         (want_inline_small_function_p): Fix pasto from previous patch;
32418         use max-inline-insns-small bound.
32419         * params.def (max-inline-insns-small): New param.
32420         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
32421         variables correctly.
32423 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
32425         * doc/invoke.texi: Document max-inline-insns-size,
32426         uninlined-function-insns, uninlined-function-time,
32427         uninlined-thunk-insns and uninlined-thunk-time.
32428         * params.def: Add max-inline-insns-size,
32429         uninlined-function-insns, uninlined-function-time,
32430         uninlined-thunk-insns and uninlined-thunk-time.
32431         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
32432         new parameters.
32433         * ipa-inline.c (can_inline_edge_by_limits_p,
32434         want_inline_small_function_p): Use new parameters.
32436 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
32438         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
32440 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
32442         PR middle-end/82564
32443         PR target/88620
32444         * expr.c (expand_assignment): For calls returning VLA structures
32445         if to_rtx is not a MEM, force it into a stack temporary.
32447         PR debug/88635
32448         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
32449         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
32450         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
32451         subexpressions of both operands.
32452         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
32453         subrtxes are CONSTANT_P.
32454         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
32455         2018-11-09 changes.
32457 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
32459         * params.def (hot-bb-count-ws-permille): Set to 990.
32461 2019-01-04  Martin Sebor  <msebor@redhat.com>
32463         PR c/88546
32464         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
32465         leaf.
32467 2019-01-04  Martin Sebor  <msebor@redhat.com>
32469         PR c/88363
32470         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
32472 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
32474         * gdbinit.in: Turn off pagination for the skip commands, restore
32475         it to previous state afterwards.
32477 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
32479         PR target/88594
32480         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
32481         of GET_MODE (opN) as modes of the libcall arguments.
32483 2019-01-04  Jan Beulich  <jbeulich@suse.com>
32485         * config/i386/sse.md
32486         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
32487         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
32488         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
32489         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
32490         avx512f_vmcmp<mode>3<round_saeonly_name>,
32491         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
32492         avx512f_maskcmp<mode>3,
32493         <avx512>_cvt<ssemodesuffix>2mask<mode>,
32494         <avx512>_cvt<ssemodesuffix>2mask<mode>,
32495         *<avx512>_cvtmask2<ssemodesuffix><mode>,
32496         *<avx512>_cvtmask2<ssemodesuffix><mode>,
32497         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
32498         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
32499         <avx512>_gt<mode>3<mask_scalar_merge_name>,
32500         <avx512>_gt<mode>3<mask_scalar_merge_name>,
32501         <avx512>_testm<mode>3<mask_scalar_merge_name>,
32502         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
32503         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
32504         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
32505         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
32506         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
32507         avx512cd_maskb_vec_dup<mode>,
32508         avx512cd_maskw_vec_dup<mode>,
32509         avx512dq_fpclass<mode><mask_scalar_merge_name>,
32510         avx512dq_vmfpclass<mode>,
32511         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
32512         instead of =Yk.
32514 2019-01-03  Martin Sebor  <msebor@redhat.com>
32516         PR tree-optimization/88659
32517         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
32519 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
32521         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
32522         unaligned vsx and avoid lxvd2x/stxvd2x.
32523         (gen_lvx_v4si_move): New function.
32525 2019-01-03  Tom de Vries  <tdevries@suse.de>
32527         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
32528         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
32529         function.
32530         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
32532 2019-01-03  Tom de Vries  <tdevries@suse.de>
32534         * config/nvptx/nvptx.c (struct offload_attrs): New.
32535         (populate_offload_attrs): New function.  Factor mask extraction out of
32536         nvptx_reorg.  Add extraction of dimensions.
32537         (nvptx_reorg): Use populate_offload_attrs.
32539 2019-01-03  Tom de Vries  <tdevries@suse.de>
32541         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
32542         cases for oacc_min_dims_p and routine_p.  Add asserts for
32543         oacc_default_dims_p and offload_region_p.
32545 2019-01-03  Tom de Vries  <tdevries@suse.de>
32547         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
32548         factored out of ...
32549         (nvptx_goacc_validate_dims): ... here.
32551 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
32553         PR tree-optimization/85574
32554         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
32555         structure.
32556         (struct ssa_equip_hash_traits): Declare.
32557         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
32559 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
32561         PR debug/88644
32562         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
32563         change it to qualified_type.
32565 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
32567         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
32568         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
32570 2019-01-02  Martin Sebor  <msebor@redhat.com>
32571             Jeff Law  <law@redhat.com>
32573         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
32574         (get_range_strlen_tree): Update appropriately.
32575         (get_range_strlen)
32576         * gimple-fold.h (get_range_strlen): Drop unused last argument.
32578         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
32579         rather than set_range_info.
32580         * tree-ssa-strlen.c (set_strlen_range): Extracted from
32581         maybe_set_strlen_range.  Handle potentially boundary crossing
32582         cases more conservatively.
32583         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
32584         Call set_strlen_range.
32585         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
32587         PR middle-end/88663
32588         * gimple-fold.c (get_range_strlen): Update prototype to no longer
32589         need the flexp argument.
32590         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
32591         from calls to get_range_strlen.  Update comments.  Just update
32592         VAL for an unterminated const char array and let the reset of the
32593         code handle it normally.  No longer try to set *flexp.  Adjust
32594         return value.
32595         (get_range_strlen): Update for the new get_range_strlen API.
32596         (get_maxval_strlen): Similarly.
32597         (gimple_fold_builtin_strlen): Handle update meaning of return value
32598         from get_range_strlen.
32599         * gimple-ssa-sprintf.c (get_string_length): Update for the new
32600         get_range_strlen API.
32602 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
32604         PR lto/88130
32605         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
32606         false at WPA time when body was removed.
32608 2019-01-02  Martin Liska  <mliska@suse.cz>
32610         PR tree-optimization/88650
32611         * predict.c (set_even_probabilities): Calculate probability
32612         remainer only when really used.
32614 2019-01-02  Richard Biener  <rguenther@suse.de>
32616         PR middle-end/88651
32617         * tree-data-ref.c (analyze_subscript_affine_affine): Use
32618         widest_ints when mangling max_stmt_execution results.
32620 2019-01-02  Richard Biener  <rguenther@suse.de>
32622         PR tree-optimization/88621
32623         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
32624         bitfields when canoncalizing.
32626 2019-01-02  Richard Biener  <rguenther@suse.de>
32628         PR target/87545
32629         * config/i386/x86-tune-costs.h (intel_cost): Adjust
32630         cost of cheap SSE instruction.
32632 2019-01-02  Richard Biener  <rguenther@suse.de>
32634         PR ipa/85574
32635         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
32636         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
32637         function.
32638         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
32639         set after UIDs before splitting them.
32641 2019-01-01  Martin Sebor  <msebor@redhat.com>
32642             Jeff Law  <law@redhat.com>
32644         * gimple-fold.c (get_range_strlen_tree): Record if the computed
32645         length is optimistic.  If it is, then arrange to compute the
32646         conservative length as well.
32648         * gimple-fold.h (get_range_strlen): Update prototype.
32649         * builtins.c (check_access): Update call to get_range_strlen to use
32650         c_strlen_data pointer.   Change various variable accesses to instead
32651         pull data from the c_strlen_data structure.
32652         (check_strncat_sizes, expand_builtin_strncat): Likewise.
32653         * calls.c (maybe_warn_nonstring_arg): Likewise.
32654         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
32655         minimum length if maximum lengh is unknown.
32656         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
32657         that used c_strlen, it's no longer needed.  Restructure slightly.
32658         (format_string): Set unlikely range appropriately.
32659         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
32660         formatting issues.
32661         (get_range_strlen): Accept c_strlen_data pointer for external
32662         call sites as well.  Pass through to call to internal get_range_strlen.
32663         Adjust minlen, maxlen and maxbound as needed.
32664         (get_maxval_strlen): Update comments.
32665         (gimple_fold_builtin_strlen): Update call to get_range_strlen
32666         to use c_strlen_data pointer.  Change variable accesses to instead
32667         use c_strlen_data data members.
32669         * gimple-fold.c (get_range_strlen): Update prototype.
32670         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
32671         local variables.  Use pdata to return information to caller.
32672         Update calls to get_range_strlen.  Update pdata->maxbound.
32673         (get_range_strlen -- static version): Similarly.
32674         (get_range_strlen -- extern version): Update for internal
32675         get_range_strlen API change.  Convert to external data format.
32676         (get_maxval_strlen): Similarly.
32678 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
32680         * coverage.c (get_coverage_counts): Use current_function_decl.
32681         * profile.c (read_thunk_profile): New function.
32682         (branch_prob): Add THUNK parameter.
32683         * tree-profile.c (tree_profiling): Handle thunks.
32684         * value-prof.c (init_node_map): Handle thunks.
32685         * value-prof.h (branch_prob): Upate prototype.
32686         (read_thunk_profile): Declare.
32688 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
32690         Update copyright years.
32692         * gcc.c (process_command): Update copyright notice dates.
32693         * gcov-dump.c (print_version): Ditto.
32694         * gcov.c (print_version): Ditto.
32695         * gcov-tool.c (print_version): Ditto.
32696         * gengtype.c (create_file): Ditto.
32697         * doc/cpp.texi: Bump @copying's copyright year.
32698         * doc/cppinternals.texi: Ditto.
32699         * doc/gcc.texi: Ditto.
32700         * doc/gccint.texi: Ditto.
32701         * doc/gcov.texi: Ditto.
32702         * doc/install.texi: Ditto.
32703         * doc/invoke.texi: Ditto.
32705 Copyright (C) 2019 Free Software Foundation, Inc.
32707 Copying and distribution of this file, with or without modification,
32708 are permitted in any medium without royalty provided the copyright
32709 notice and this notice are preserved.