Widening optab cleanup
[official-gcc.git] / gcc / ChangeLog
blob3843db847a8f41ca7cf557ae5d83ff685a7af65a
1 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
2             Alan Hayward  <alan.hayward@arm.com>
3             David Sherwood  <david.sherwood@arm.com>
5         * optabs-query.h (convert_optab_p): New function, split out from...
6         (convert_optab_handler): ...here.
7         (widening_optab_handler): Delete.
8         (find_widening_optab_handler): Remove permit_non_widening parameter.
9         (find_widening_optab_handler_and_mode): Likewise.  Provide an
10         override that operates on mode class wrappers.
11         * optabs-query.c (widening_optab_handler): Delete.
12         (find_widening_optab_handler_and_mode): Remove permit_non_widening
13         parameter.  Assert that the two modes are the same class and that
14         the "from" mode is narrower than the "to" mode.  Use
15         convert_optab_handler instead of widening_optab_handler.
16         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
17         instead of widening_optab_handler.
18         * expr.c (expand_expr_real_2): Update calls to
19         find_widening_optab_handler.
20         * optabs.c (expand_widen_pattern_expr): Likewise.
21         (expand_binop_directly): Take the insn_code as a parameter.
22         (expand_binop): Only call find_widening_optab_handler for
23         conversion optabs; use optab_handler otherwise.  Update calls
24         to find_widening_optab_handler and expand_binop_directly.
25         Use convert_optab_handler instead of widening_optab_handler.
26         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
27         find_widening_optab_handler and use scalar_mode rather than
28         machine_mode.
29         (convert_plusminus_to_widen): Likewise.
31 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
32             Alan Hayward  <alan.hayward@arm.com>
33             David Sherwood  <david.sherwood@arm.com>
35         * machmode.h (fixed_size_mode): New class.
36         * rtl.h (get_pool_mode): Return fixed_size_mode.
37         * gengtype.c (main): Add fixed_size_mode.
38         * target.def (get_raw_result_mode): Return a fixed_size_mode.
39         (get_raw_arg_mode): Likewise.
40         * doc/tm.texi: Regenerate.
41         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
42         * targhooks.c (default_get_reg_raw_mode): Likewise.
43         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
44         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
45         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
46         (msp430_get_raw_result_mode): Likewise.
47         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
48         * dbxout.c (dbxout_parms): Require fixed-size modes.
49         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
50         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
51         * omp-low.c (lower_oacc_reductions): Likewise.
52         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
53         (simplify_subreg): Update accordingly.
54         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
55         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
56         that aren't fixed-size.
57         (get_pool_mode): Return a fixed_size_mode.
58         (output_constant_pool_2): Take a fixed_size_mode.
60 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
61             Alan Hayward  <alan.hayward@arm.com>
62             David Sherwood  <david.sherwood@arm.com>
64         * doc/rtl.texi (vec_series): Document.
65         (const): Say that the operand can be a vec_series.
66         * rtl.def (VEC_SERIES): New rtx code.
67         * rtl.h (const_vec_series_p_1): Declare.
68         (const_vec_series_p): New function.
69         * emit-rtl.h (gen_const_vec_series): Declare.
70         (gen_vec_series): Likewise.
71         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
72         (gen_vec_series): Likewise.
73         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
74         * simplify-rtx.c (simplify_unary_operation): Handle negations
75         of vector series.
76         (simplify_binary_operation_series): New function.
77         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
78         (test_vector_ops_series): New function.
79         (test_vector_ops): Call it.
80         * config/powerpcspe/altivec.md (altivec_lvsl): Use
81         gen_const_vec_series.
82         (altivec_lvsr): Likewise.
83         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
85 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
86             Alan Hayward  <alan.hayward@arm.com>
87             David Sherwood  <david.sherwood@arm.com>
89         * doc/rtl.texi (const): Update description of address constants.
90         Say that vector constants are allowed too.
91         * common.md (E, F): Use CONSTANT_P instead of checking for
92         CONST_VECTOR.
93         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
94         checking for CONST_VECTOR.
95         * expmed.c (make_tree): Use build_vector_from_val for a CONST
96         VEC_DUPLICATE.
97         * expr.c (expand_expr_real_2): Check for vector modes instead
98         of checking for CONST_VECTOR.
99         * rtl.h (const_vec_p): New function.
100         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
101         (unwrap_const_vec_duplicate): Handle them here too.
103 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
104             David Malcolm  <dmalcolm@redhat.com>
105             Alan Hayward  <alan.hayward@arm.com>
106             David Sherwood  <david.sherwood@arm.com>
108         * rtl.h (vec_duplicate_p): New function.
109         * selftest-rtl.c (assert_rtx_eq_at): New function.
110         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
111         (assert_rtx_eq_at): Declare.
112         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
113         * selftest-run-tests.c (selftest::run_tests): Call it.
114         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
115         (simplify_unary_operation_1): Recursively handle vector duplicates.
116         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
117         vector duplicates.
118         (simplify_subreg): Handle subregs of vector duplicates.
119         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
120         (selftest::simplify_rtx_c_tests): New functions.
122 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
123             Alan Hayward  <alan.hayward@arm.com>
124             David Sherwood  <david.sherwood@arm.com>
126         * emit-rtl.h (gen_const_vec_duplicate): Declare.
127         (gen_vec_duplicate): Likewise.
128         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
129         out from...
130         (gen_const_vector): ...here.
131         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
132         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
133         whose elements are all equal.
134         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
135         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
136         (simplify_relational_operation): Likewise.
137         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
138         Likewise.
139         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
140         (aarch64_expand_vector_init): Likewise.
141         * config/arm/arm.c (neon_vdup_constant): Likewise.
142         (neon_expand_vector_init): Likewise.
143         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
144         (arm_block_set_unaligned_vect): Likewise.
145         (arm_block_set_aligned_vect): Likewise.
146         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
147         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
148         (expand_vec_perm_even_odd_pack): Likewise.
149         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
150         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
151         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
152         gen_const_vec_duplicate.
153         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
154         * config/mips/mips.c (mips_gen_const_int_vector): Use
155         gen_const_vec_duplicate.
156         (mips_expand_vector_init): Use CONST0_RTX.
157         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
158         (define_split): Use gen_const_vec_duplicate.
159         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
160         (define_split): Use gen_const_vec_duplicate.
161         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
162         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
163         * config/spu/spu.c (spu_const): Likewise.
165 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
166             Alan Hayward  <alan.hayward@arm.com>
167             David Sherwood  <david.sherwood@arm.com>
169         * combine.c (can_change_dest_mode): Reject changes in
170         REGMODE_NATURAL_SIZE.
172 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
174         * configure.ac (--enable-libssp): New.
175         (gcc_cv_libc_provides_ssp): Check for explicit setting before
176         trying to determine target-specific default.  Adjust indentation.
177         * configure: Regenerated.
178         * doc/install.texi (Configuration): Expand --disable-libssp
179         documentation.
181 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
183         config/i386/i386.c (ix86_expand_epilogue): Correct stack
184         calculation.
186 2017-10-31  Martin Jambor  <mjambor@suse.cz>
188         PR c++/81702
189         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
191 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
193         * auto-profile.c (autofdo_source_profile::read): Use
194         UNKNOWN_LOCATION rather than 0.
195         * diagnostic-core.h (warning_at_rich_loc): Rename to...
196         (warning_at): ...this overload.
197         (warning_at_rich_loc_n): Rename to...
198         (warning_n): ...this overload.
199         (error_at_rich_loc): Rename to...
200         (error_at): ...this overload.
201         (pedwarn_at_rich_loc): Rename to...
202         (pedwarn): ...this overload.
203         (permerror_at_rich_loc): Rename to...
204         (permerror): ...this overload.
205         (inform_at_rich_loc): Rename to...
206         (inform): ...this overload.
207         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
208         (diagnostic_n_impl_richloc): Rename to...
209         (diagnostic_n_impl): ...this rich_location *-based decl.
210         (inform_at_rich_loc): Rename to...
211         (inform): ...this, and add an assertion.
212         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
213         (warning_at_rich_loc): Rename to...
214         (warning_at): ...this, and add an assertion.
215         (warning_at_rich_loc_n): Rename to...
216         (warning_n): ...this, and add an assertion.
217         (warning_n): Update location_t-based implementation for removal of
218         location_t-based diagnostic_n_impl.
219         (pedwarn_at_rich_loc): Rename to...
220         (pedwarn): ...this, and add an assertion.
221         (permerror_at_rich_loc): Rename to...
222         (permerror): ...this, and add an assertion.
223         (error_n): Update for removal of location_t-based diagnostic_n_impl.
224         (error_at_rich_loc): Rename to...
225         (error_at): ...this, and add an assertion.
226         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
227         (driver::do_spec_on_infiles): Likewise.
228         * substring-locations.c (format_warning_va): Update for renaming
229         of inform_at_rich_loc.
231 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
233         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
234         _Float<N>X built-in functions so that the variant without the
235         "__builtin_" prefix is only enabled for the GNU C and Objective C
236         languages when they are in non-strict ANSI/ISO mode.
237         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
238         * target.def (floatn_builtin_p): Add a target hook to control
239         whether _Float<N> and _Float<N>X built-in functions without the
240         "__builtin_" prefix are enabled, and return true for C and
241         Objective C in the default hook.  Include langhooks.h in
242         targhooks.c.
243         * targhooks.h (default_floatn_builtin_p): Likewise.
244         * targhooks.c (default_floatn_builtin_p): Likewise.
245         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
246         floatn_builtin_p target hook.
247         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
249 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
250             Eric Botcazou  <ebotcazou@adacore.com>
252         PR rtl-optimization/81803
253         * lra-constraints.c (curr_insn_transform): Also reload the whole
254         register for a strict subreg no wider than a word if this is for
255         a WORD_REGISTER_OPERATIONS target.
257 2017-10-31  Jason Merrill  <jason@redhat.com>
259         * gdbinit.in: Skip over inlines from timevar.h.
261 2017-10-31  Martin Liska  <mliska@suse.cz>
263         * doc/gcov.texi: Document new option.
264         * gcov.c (print_usage): Likewise print it.
265         (process_args): Support the argument.
266         (format_count): New function.
267         (format_gcov): Use the function.
269 2017-10-31  Martin Liska  <mliska@suse.cz>
271         * gcov.c (struct name_map): do not use typedef.
272         Define operator== and operator<.
273         (name_search): Remove.
274         (name_sort): Remove.
275         (main): Do not allocate names.
276         (process_file): Add vertical space.
277         (generate_results): Use std::find.
278         (release_structures): Do not release memory.
279         (find_source): Use std::find.
281 2017-10-31  Martin Liska  <mliska@suse.cz>
283         * gcov.c (struct line_info): Remove it's typedef.
284         (line_info::line_info): Add proper ctor.
285         (line_info::has_block): Do not use a typedef.
286         (struct source_info): Do not use typedef.
287         (circuit): Likewise.
288         (get_cycles_count): Likewise.
289         (output_intermediate_file): Iterate via vector iterator.
290         (add_line_counts): Use std::vector methods.
291         (accumulate_line_counts): Likewise.
292         (output_lines): Likewise.
294 2017-10-31  Martin Liska  <mliska@suse.cz>
296         * gcov.c (struct source_info): Remove typedef.
297         (source_info::source_info): Add proper ctor.
298         (accumulate_line_counts): Use struct, not it's typedef.
299         (output_gcov_file): Likewise.
300         (output_lines): Likewise.
301         (main): Do not allocate an array.
302         (output_intermediate_file): Use size of vector container.
303         (process_file): Resize the vector.
304         (generate_results): Do not preallocate, use newly added vector
305         lines.
306         (release_structures): Do not release sources.
307         (find_source): Use vector methods.
308         (add_line_counts): Do not use typedef.
310 2017-10-31  Martin Liska  <mliska@suse.cz>
312         * doc/gcov.texi: Document that.
313         * gcov.c (add_line_counts): Mark lines with a non-executed
314         statement.
315         (output_line_beginning): Handle such lines.
316         (output_lines): Pass new argument.
317         (output_intermediate_file): Print it in intermediate format.
319 2017-10-31  Martin Liska  <mliska@suse.cz>
321         * color-macros.h: New file.
322         * diagnostic-color.c: Factor out color related to macros to
323         color-macros.h.
324         * doc/gcov.texi: Document -k option.
325         * gcov.c (INCLUDE_STRING): Include string.h.
326         (print_usage): Add -k option.
327         (process_args): Parse it.
328         (pad_count_string): New function.
329         (output_line_beginning): Likewise.
330         (DEFAULT_LINE_START): New macro.
331         (output_lines): Support color output.
333 2017-10-31  Martin Liska  <mliska@suse.cz>
335         PR gcov-profile/82633
336         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
337         their interaction with GCOV infrastructure.
338         * configure.ac: Add -fkeep-{inline,static}-functions to
339         coverage_flags.
340         * configure: Regenerate.
342 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
344         PR target/82772
345         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
347 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
349         PR target/82674
350         * config/rs6000/rs6000.md (allocate_stack): Force update interval
351         into a register if it does not fit into an immediate offset field.
353 2017-10-31  Olivier Hainque  <hainque@adacore.com>
355         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
357 2017-10-31  Julia Koval  <julia.koval@intel.com>
359         * config.gcc: Add gfniintrin.h.
360         * config/i386/gfniintrin.h: New.
361         * config/i386/i386-builtin-types.def
362         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
363         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
364         __builtin_ia32_vgf2p8affineinvqb_v32qi,
365         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
366         __builtin_ia32_vgf2p8affineinvqb_v16qi,
367         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
368         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
369         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
370         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
371         V64QI_FTYPE_V64QI_V64QI_INT): New types.
372         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
373         * config/i386/immintrin.h: Include gfniintrin.h.
374         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
376 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
378         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
380 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
382         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
383         (arm_ashldi3_1bit): Remove pattern.
384         (ashrdi3): Remove shift by 1 expansion.
385         (arm_ashrdi3_1bit): Remove pattern.
386         (lshrdi3): Remove shift by 1 expansion.
387         (arm_lshrdi3_1bit): Remove pattern.
388         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
389         cost of ashldi3 by 1.
390         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
391         (<shift>di3_neon): Likewise.
393 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
395         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
396         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
397         and (*aarch64_simd_mov<VQ:mode>).
398         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
399         pattern alternative.
400         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
401         attributes to match pattern alternative.
403 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
405         * config.gcc (powerpc*-*-*): Add emmintrin.h.
406         * config/rs6000/emmintrin.h: New file.
407         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
409 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
411         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
412         * (movdi_vfp_cortexa8): Remove pattern.
414 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
416         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
417         etc. reference.
418         (Specific, alpha*-dec-osf5.1): Remove.
419         (Specific, mips-sgi-irix5): Remove.
420         (Specific, mips-sgi-irix6): Remove.
422 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
424         PR middle-end/22141
425         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
426         arguments to clear_bit_region_be.
428 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
430         * gimplify.c: Include memmodel.h.
432 2017-10-30  Martin Jambor  <mjambor@suse.cz>
434         * omp-grid.c (grid_attempt_target_gridification): Also insert a
435         condition whether loop should be executed at all.
437 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
439         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
440         gimple folding of vec_madd() intrinsics.
441         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
442         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
443         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
445 2017-10-30  Richard Biener  <rguenther@suse.de>
447         PR tree-optimization/82762
448         Revert
449         2017-10-23  Richard Biener  <rguenther@suse.de>
451         PR tree-optimization/82129
452         Revert
453         2017-08-01  Richard Biener  <rguenther@suse.de>
455         PR tree-optimization/81181
456         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
457         (compute_antic): ... end of iteration here.
459 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
461         * doc/invoke.texi (C Dialect Options): Document -std=c17,
462         -std=iso9899:2017 and -std=gnu17.
463         * doc/standards.texi (C Language): Document C17 support.
464         * doc/cpp.texi (Overview): Mention -std=c17.
465         (Standard Predefined Macros): Document C11 and C17 values of
466         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
467         * doc/extend.texi (Inline): Do not list individual options for
468         standards newer than C99.
469         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
470         "GNU C17".
471         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
472         language name.
474 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
476         * asan.c (asan_finish_file): Align asan globals array by shadow
477         granularity.
479 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
481         PR middle-end/22141
482         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
483         (struct store_immediate_info): Add bitregion_start and bitregion_end
484         fields.
485         (store_immediate_info::store_immediate_info): Add brs and bre
486         arguments and initialize bitregion_{start,end} from those.
487         (struct merged_store_group): Add bitregion_start, bitregion_end,
488         align_base and mask fields.  Drop unnecessary struct keyword from
489         struct store_immediate_info.  Add do_merge method.
490         (clear_bit_region_be): Use memset instead of loop storing zeros.
491         (merged_store_group::do_merge): New method.
492         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
493         stores as long as the surrounding bitregions have no gaps.
494         (merged_store_group::merge_overlapping): Use do_merge.
495         (merged_store_group::apply_stores): Test that bitregion_{start,end}
496         is byte aligned, rather than requiring that start and width are
497         byte aligned.  Drop unnecessary struct keyword from
498         struct store_immediate_info.  Allocate and populate also mask array.
499         Make start of the arrays relative to bitregion_start rather than
500         start and size them according to bitregion_{end,start} difference.
501         (struct imm_store_chain_info): Drop unnecessary struct keyword from
502         struct store_immediate_info.
503         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
504         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
505         struct keyword from struct store_immediate_info.
506         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
507         between stores as long as the surrounding bitregions have no gaps.
508         Formatting fixes.
509         (struct split_store): Add orig non-static data member.
510         (split_store::split_store): Initialize orig to false.
511         (find_constituent_stmts): Return store_immediate_info *, non-NULL
512         if there is exactly a single original stmt.  Change stmts argument
513         to pointer from reference, if NULL, don't push anything to it.  Add
514         first argument, use it to optimize skipping over orig stmts that
515         are known to be before bitpos already.  Simplify.
516         (split_group): Return unsigned int count how many stores are or
517         would be needed rather than a bool.  Add allow_unaligned argument.
518         Change split_stores argument from reference to pointer, if NULL,
519         only do a dry run computing how many stores would be produced.
520         Rewritten algorithm to use both alignment and misalign if
521         !allow_unaligned and handle bitfield stores with gaps.
522         (imm_store_chain_info::output_merged_store): Set start_byte_pos
523         from bitregion_start instead of start.  Compute allow_unaligned
524         here, if true, do 2 split_group dry runs to compute which one
525         produces fewer stores and prefer aligned if equal.  Punt if
526         new count is bigger or equal than original before emitting any
527         statements, rather than during that.  Remove no longer needed
528         new_ssa_names tracking.  Replace num_stmts with
529         split_stores.length ().  Use 32-bit stack allocated entries
530         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
531         if possible.  Handle bitfields with gaps.
532         (pass_store_merging::execute): Ignore bitsize == 0 stores.
533         Compute bitregion_{start,end} for the stores and construct
534         store_immediate_info with that.  Formatting fixes.
536 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
538         PR target/82725
539         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
540         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
542 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
544         * gimplify.c: Include tm_p.h.
546         * common.opt (gcoff): Re-add as ignored option.
547         (gcoff1, gcoff2, gcoff3): Likewise.
549         * Makefile.in (OBJS): Delete sdbout.o.
550         (GTFILES): Delete $(srcdir)/sdbout.c.
551         * debug.h: Delete sdb_debug_hooks.
552         * final.c: Delete sdbout.h include.
553         (final_scan_insn): Delete SDB_DEBUG check.
554         (rest_of_clean_state): Likewise.
555         * output.h: Delete sdb_begin_function_line.
556         * sdbout.c: Delete.
557         * sdbout.h: Delete.
558         * toplev.c: Delete sdbout.h include.
559         (process_options): Delete SDB_DEBUG check.
560         * tree-core.h (tree_type_common): Delete pointer field of
561         tree_type_symtab.
562         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
563         TYPE_SYMTAB_POINTER.
564         * tree.h (TYPE_SYMTAB_POINTER): Delete.
565         (TYPE_SYMTAB_IS_POINTER): Delete.
566         (TYPE_SYMTAB_IS_DIE): Renumber.
567         * xcoffout.c: Refer to former sdbout.c file.
568         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
570         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
571         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
572         (Debugging Options): Delete -gcoff.
573         (-gstabs): Delete SDB reference.
574         (-gcoff): Delete.
575         (-gcoff@var{level}): Delete.
576         * doc/passes.texi (Debugging information output): Delete SDB and
577         sdbout.c references.
578         * doc/tm.texi: Regenerate.
579         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
580         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
581         references.
582         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
583         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
584         (SDB_DEBUGGING_INFO): Delete.
585         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
586         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
587         * target.def (output_source_filename): Delete COFF reference.
589         * common.opt (gcoff): Delete.
590         (gxcoff+): Update Negative chain.
591         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
592         SDB_DEBUG.
593         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
594         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
595         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
596         and SDB references.
597         (expand_function_start): Change sdb reference to past tense.
598         (expand_function_end): Change sdb reference to past tense.
599         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
600         * opts.c (debug_type_names): Delete coff entry.
601         (common_handle_option): Delete OPT_gcoff case.
602         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
604         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
605         * config/cris/cris.h: Delete SDB reference in comment.
606         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
607         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
608         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
609         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
610         to past tense.
611         (ix86_expand_prologue): Likewise.
612         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
613         * config/ia64/ia64.h: Likewise.
614         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
615         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
616         support.
617         * config/mmix/mmix.h: Likewise.
618         * config/nds32/nds32.c: Likewise.
619         * config/stormy/storym16.h: Likewise.
620         * config/visium/visium.h: Likewise.
621         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
623 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
625         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
626         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
627         FRAME_POINTER_REGNUM point at high end of local var area.
629 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
631         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
632         Move comment around.  Do not reset best_edge for a copiable
633         destination if the copy would cause a partition change.
634         (better_edge_p): Remove redundant check.
636 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
638         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
640 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
642         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
643         for math functions that have _Float<N> and _Float<N>X variants.
644         (mathfn_built_in_2): Add support for math functions that have
645         _Float<N> and _Float<N>X variants.
646         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
647         (expand_builtin_mathfn_ternary): Add support for fma with
648         _Float<N> and _Float<N>X variants.
649         (expand_builtin): Likewise.
650         (fold_builtin_3): Likewise.
651         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
652         create math function _Float<N> and _Float<N>X variants as external
653         library builtins.
654         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
655         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
656         the __builtin_ prefix and if not strict ansi, without the prefix.
657         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
658         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
659         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
660         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
661         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
662         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
663         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
664         function signatures for fma _Float<N> and _Float<N>X variants.
665         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
666         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
667         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
668         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
669         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
670         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
671         * gencfn-macros.c (print_case_cfn): Add support for math functions
672         that have _Float<N> and _Float<N>X variants.
673         (print_define_operator_list): Likewise.
674         (fltfn_suffixes): Likewise.
675         (main): Likewise.
676         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
677         for math functions that have _Float<N> and _Float<N>X variants.
678         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
679         and _Float<N>X variants.
680         (COPYSIGN): Likewise.
681         (FMIN): Likewise.
682         (FMAX): Likewise.
683         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
684         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
685         variants.
686         (integer_valued_read_call_p): Likewise.
687         * fold-const-call.c (fold_const_call_ss): Likewise.
688         (fold_const_call_sss): Add support for copysign, fmin, and fmax
689         _Float<N> and _Float<N>X variants.
690         (fold_const_call_ssss): Add support for fma _Float<N> and
691         _Float<N>X variants.
692         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
693         support for copysign and fma _Float<N> and _Float<N>X variants.
694         (backprop::process_builtin_call_use): Likewise.
695         * tree-call-cdce.c (can_test_argument_range); Add support for
696         sqrt _Float<N> and _Float<N>X variants.
697         (edom_only_function): Likewise.
698         (get_no_error_domain): Likewise.
699         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
700         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
701         copysign _Float<N> and _Float<N>X variants.
702         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
703         handled by machine independent code.
704         (FMAF128): Likewise.
705         * doc/cpp.texi (Common Predefined Macros): Document defining
706         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
707         fma _Float<N> and _Float<N>X variants.
709 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
711         PR target/82692
712         * config/i386/i386-modes.def (CCFPU): Remove definition.
713         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
714         (ix86_cc_modes_compatible): Ditto.
715         (ix86_expand_carry_flag_compare): Ditto.
716         (ix86_expand_int_movcc): Ditto.
717         (ix86_expand_int_addcc): Ditto.
718         (ix86_reverse_condition): Ditto.
719         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
720         Return true/false for unordered/ordered fp comparisons.
721         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
722         (ix86_prepare_fp_compare_args): Update for rename.
723         (ix86_expand_fp_compare): Update for rename.  Generate unordered
724         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
725         (ix86_expand_sse_compare_and_jump): Ditto.
726         * config/i386/predicates.md (fcmov_comparison_operator):
727         Remove CCFPU mode handling.
728         (ix86_comparison_operator): Ditto.
729         (ix86_carry_flag_operator): Ditto.
730         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
731         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
732         (*cmpu<mode>_cc_i387): Ditto.
733         (FPCMP): Remove mode iterator.
734         (unord): Remove mode attribute.
735         (unord_subst): New define_subst transformation
736         (unord): New define_subst attribute.
737         (unordered): Ditto.
738         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
739         (*cmpi<unord>xf_i387): Ditto.
740         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
741         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
742         using unord_subst transformation.
743         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
744         (round_saeonly): Also handle CCFP mode.
745         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
746         Remove UNSPEC_SAHF unspec handling.
748 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
750         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
752 2017-10-27  Jeff Law  <law@redhat.com>
754         * gimple-ssa-sprintf.c: Include domwalk.h.
755         (class sprintf_dom_walker): New class, derived from dom_walker.
756         (sprintf_dom_walker::before_dom_children): New function.
757         (struct call_info): Moved into sprintf_dom_walker class
758         (compute_formath_length, handle_gimple_call): Likewise.
759         (sprintf_length::execute): Call the dominator walker rather
760         than walking the statements.
762         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
763         gimple statement locations.
764         (check_array_bounds): Corresponding changes.  Get the statement's
765         location directly from wi->stmt.
767 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
769         PR target/82717
770         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
772 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
774         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
775         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
777 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
779         PR target/82703
780         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
781         * config/i386/i386.c (maybe_get_pool_constant): Removed.
782         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
783         maybe_get_pool_constant.
784         * config/i386/predicates.md (zero_extended_scalar_load_operand):
785         Likewise.
787 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
789         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
790         2.26 caveat.  Update gas and gld versions.
791         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
792         reference.
794 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
796         * cgraph.h (set_malloc_flag): Declare.
797         * cgraph.c (set_malloc_flag_1): New function.
798         (set_malloc_flag): Likewise.
799         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
800         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
801         false.
802         (read_ipa_call_summary): Add support for reading is_return_callee.
803         (write_ipa_call_summary): Stream is_return_callee.
804         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
805         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
806         ipa-prop.h, ipa-fnsummary.h.
807         (pure_const_names): Change to static.
808         (malloc_state_e): Define.
809         (malloc_state_names): Define.
810         (funct_state_d): Add field malloc_state.
811         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
812         (check_retval_uses): New function.
813         (malloc_candidate_p): Likewise.
814         (analyze_function): Add support for malloc attribute.
815         (pure_const_write_summary): Stream malloc_state.
816         (pure_const_read_summary): Add support for reading malloc_state.
817         (dump_malloc_lattice): New function.
818         (propagate_malloc): New function.
819         (warn_function_malloc): New function.
820         (ipa_pure_const::execute): Call propagate_malloc and
821         ipa_free_fn_summary.
822         (pass_local_pure_const::execute): Add support for malloc attribute.
823         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
824         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
826 2017-10-27  Martin Liska  <mliska@suse.cz>
828         PR gcov-profile/82457
829         * doc/invoke.texi: Document that one needs a non-strict ISO mode
830         for fork-like functions to be properly instrumented.
832 2017-10-27  Richard Biener  <rguenther@suse.de>
834         PR middle-end/81659
835         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
836         info when we redirected EH.
838 2017-10-26  Michael Collison  <michael.collison@arm.com>
840         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
841         New pattern.
842         (<optab>_trunchf<GPI:mode>2: New pattern.
843         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
844         * config/aarch64/iterators.md (wv): New mode attribute.
845         (vf, VF): New mode attributes.
846         (vgp, VGP): New mode attributes.
847         (s): Update attribute with SImode and DImode prefixes.
849 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
851         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
852         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
853         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
854         (nios2_option_overide): Initialize it.  Don't allow R0-relative
855         addressing with PIC.
856         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
857         (nios2_symbolic_constant_p): Likewise.
858         (nios2_legitimate_address_p): Likewise.
859         (nios2_r0rel_section_name_p): New.
860         (nios2_symbol_ref_in_r0rel_data_p): New.
861         (nios2_emit_move_sequence): Handle r0rel_constant_p.
862         (r0rel_constant_p): New.
863         (nios2_print_operand_address): Handle r0rel_constant_p.
864         (nios2_cdx_narrow_form_p): Likewise.
865         * config/nios2/nios2.opt (mr0rel-sec=): New option.
866         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
867         (Nios II Options): Document -mr0rel-sec.
869 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
871         * config/nios2/nios2.c: Include xregex.h.
872         (nios2_gprel_sec_regex): New.
873         (nios2_option_overide): Initialize it.  Don't allow GP-relative
874         addressing with PIC.
875         (nios2_small_section_name_p): Check for regex match.
876         * config/nios2/nios2.opt (mgprel-sec=): New option.
877         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
878         (Nios II Options): Document -mgprel-sec.
880 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
882         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
884 2017-10-26  Tom de Vries  <tom@codesourcery.com>
886         PR tree-optimization/82707
887         * gimple.c (gimple_copy): Fix unsharing of
888         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
890 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
892         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
893         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
894         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
895         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
896         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
897         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
898         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
899         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
900         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
901         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
902         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
903         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
904         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
905         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
906         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
907         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
908         _mm512_mask_cmpunord_ps_mask): New intrinsics.
910 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
912         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
913         default to IBM.
914         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
915         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
916         warning to rs6000.c.  Remove the Undocumented flag, since it has
917         been documented.
918         (-mabi=ibmlongdouble): Likewise.
919         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
920         already set, set the default format for long double.
921         (rs6000_debug_reg_global): Print whether long double is IBM or
922         IEEE.
923         (rs6000_option_override_internal): Rework setting long double
924         format.  Only warn if the user is changing the long double default
925         and they did not use -Wno-psabi.
926         * doc/invoke.texi (PowerPC options): Update the documentation for
927         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
929 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
930             Alan Hayward  <alan.hayward@arm.com>
931             David Sherwood  <david.sherwood@arm.com>
933         * rtl.h (wider_subreg_mode): New function.
934         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
935         rather than an unsigned int *.
936         * ira-color.c (regno_max_ref_width): Replace with...
937         (regno_max_ref_mode): ...this new variable.
938         (coalesced_pseudo_reg_slot_compare): Update accordingly.
939         Use wider_subreg_mode.
940         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
941         rather than an unsigned int *.
942         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
943         (process_alt_operands): Likewise.
944         (invariant_p): Likewise.
945         * lra-spills.c (assign_mem_slot): Likewise.
946         (add_pseudo_to_slot): Likewise.
947         * lra.c (collect_non_operand_hard_regs): Likewise.
948         (add_regs_to_insn_regno_info): Likewise.
949         * reload1.c (regno_max_ref_width): Replace with...
950         (regno_max_ref_mode): ...this new variable.
951         (reload): Update accordingly.  Update call to
952         ira_sort_regnos_for_alter_reg.
953         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
954         (init_eliminable_invariants): Update to use regno_max_ref_mode.
955         (scan_paradoxical_subregs): Likewise.
957 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
959         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
960         (aarch64_frame): Add emit_frame_chain boolean.
961         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
962         Move eh_return case to aarch64_layout_frame.
963         (aarch64_layout_frame): Initialize emit_frame_chain.
964         (aarch64_expand_prologue): Use emit_frame_chain.
966 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
968         * config/aarch64/aarch64.c (aarch64_layout_frame):
969         Ensure LR is always stored at the bottom of the callee-saves.
970         Remove rarely used frame layout which saves callee-saves at top of
971         frame, so the store of LR can be used as a valid probe in all cases.
973 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
975         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
976         Improve unaligned TImode/TFmode base/offset split.
978 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
979             Alan Hayward  <alan.hayward@arm.com>
980             David Sherwood  <david.sherwood@arm.com>
982         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
983         * combine.c (find_single_use_1): Likewise.
984         (expand_field_assignment): Likewise.
985         (move_deaths): Likewise.
986         * lra-constraints.c (simplify_operand_subreg): Likewise.
987         (curr_insn_transform): Likewise.
988         * lra.c (collect_non_operand_hard_regs): Likewise.
989         (add_regs_to_insn_regno_info): Likewise.
990         * rtlanal.c (reg_referenced_p): Likewise.
991         (covers_regno_no_parallel_p): Likewise.
993 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
995         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
996         Don't print any bits outside the precision of the value.
997         * wide-int.cc (test_printing): Add some new tests.
999 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1001         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
1002         supports -xbrace_comment option.
1003         * configure: Regenerate.
1004         * config.in: Regenerate.
1005         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
1006         (ASM_CPU_SPEC): Use it.
1008 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
1010         * target.def (static_rtx_alignment): New hook.
1011         * targhooks.h (default_static_rtx_alignment): Declare.
1012         * targhooks.c (default_static_rtx_alignment): New function.
1013         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
1014         * doc/tm.texi: Regenerate.
1015         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
1016         instead of targetm.constant_alignment.  Remove call to
1017         set_mem_attributes.
1018         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
1019         (cris_preferred_mininum_alignment): New function, split out from...
1020         (cris_constant_alignment): ...here.
1021         (cris_static_rtx_alignment): New function.
1022         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
1023         split out from...
1024         (ix86_constant_alignment): ...here.
1025         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
1026         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
1027         (mmix_static_rtx_alignment): New function.
1028         * config/spu/spu.c (spu_static_rtx_alignment): New function.
1029         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
1031 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
1033         PR target/81800
1034         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
1035         Add flag_trapping_math and flag_fp_int_builtin_inexact.
1037 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
1039         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
1040         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
1041         mark as a sign-extending load.
1042         (local_pic_load_u): Define.
1044 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1046         PR middle-end/82062
1047         * fold-const.c (operand_equal_for_comparison_p): Also return true
1048         if ARG0 is a simple variant of ARG1 with narrower precision.
1049         (fold_ternary_loc): Always pass unstripped operands to the predicate.
1051 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
1053         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
1054         cost correctly.
1055         * i386.h (processor_costs): Add gather_static, gather_per_elt,
1056         scatter_static, scatter_per_elt.
1057         * x86-tune-costs.h: Add new cost entries.
1059 2017-10-25  Richard Biener  <rguenther@suse.de>
1061         * tree-ssa-sccvn.h (vn_eliminate): Declare.
1062         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
1063         class pass_fre): Move to ...
1064         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
1065         class pass_fre): ... here and adjust for statistics.
1067 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
1069         PR libstdc++/81706
1070         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
1071         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
1072         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
1073         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
1074         declarations.
1076 2017-10-25  Richard Biener  <rguenther@suse.de>
1078         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
1079         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
1080         eliminate_push_avail, eliminate_insert): Move inside...
1081         (class eliminate_dom_walker): ... this class in preparation
1082         of move.
1083         (fini_eliminate): Remove by merging with ...
1084         (eliminate): ... this function.  Adjust for class changes.
1085         (pass_pre::execute): Remove fini_eliminate call.
1086         (pass_fre::execute): Likewise.
1088 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
1090         PR target/82460
1091         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
1092         (VPERMI2, VPERMI2I): New mode iterators.
1093         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
1094         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
1095         patterns.
1096         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
1097         mode iterator.  Remove 3 old define_insn patterns.
1098         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
1099         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
1100         VPERMI2 mode iterator, remove the other two expanders.
1101         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
1102         to use VPERMI2 mode iterator, add another alternative for vpermi2*
1103         instructions, remove the other two patterns.
1104         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
1105         mode iterator, remove the other two patterns.
1106         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
1107         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
1108         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
1109         and adjust argument order accordingly.
1110         (ix86_expand_vec_perm): Adjust caller.
1111         (expand_vec_perm_1): Likewise.
1112         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
1113         (expand_vec_perm_vpermt2_vpshub2): ... this.
1114         (ix86_expand_vec_perm_const_1): Adjust caller.
1115         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
1117         PR target/82370
1118         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
1119         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
1120         (vec_shl_<mode>): Remove unused expander.
1121         (avx512bw_<shift_insn><mode>3): New define_insn.
1122         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
1123         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
1125 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
1127         PR c++/82466
1128         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
1129         description.
1131 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
1133         PR rtl-optimization/82396
1134         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
1135         (autopref_multipass_init): Simplify initialization.
1136         (autopref_rank_data): Simplify sort order.
1137         * gcc/sched-int.h (autopref_multipass_data_): Remove
1138         multi_mem_insn_p, min_offset and max_offset.
1140 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
1142         PR middle-end/60580
1143         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
1144         Check special value of flag_omit_frame_pointer.
1145         (aarch64_can_eliminate): Likewise.
1146         (aarch64_override_options_after_change_1): Simplify handling of
1147         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
1149 2017-10-24  Richard Biener  <rguenther@suse.de>
1151         PR tree-optimization/82697
1152         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
1153         zero for conditional load and unconditional store.
1155 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
1157         * doc/install.texi: Document bootstrap-cet.
1159 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
1161         PR target/82659
1162         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
1163         ENDBR instruction at function entrance if function is only
1164         called directly.
1166 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
1168         PR target/82628
1169         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
1170         patterns to better describe from which operation the CF is computed.
1171         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
1172         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
1173         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
1174         is 0, use _0 suffixed expanders instead of emitting a comparison
1175         before it.
1177 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
1179         * config/i386/i386.md(*movsf_internal, *movdf_internal):
1180         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
1182 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
1184         PR middle-end/82569
1185         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
1186         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
1187         * loop-iv.c (iv_get_reaching_def): Likewise.
1188         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
1189         variable is promoted and the partition contains undefined values.
1191 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
1193         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
1194         reflect reality.
1195         (nios2_address_cost): Define.
1196         (nios2_legitimize_address): Recognize (exp + constant) directly.
1197         (TARGET_ADDRESS_COST): Define.
1199 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
1201         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
1202         (nios2_symbolic_memory_operand_p): Declare.
1203         (nios2_split_large_constant): Declare.
1204         (nios2_split_symbolic_memory_operand): Declare.
1205         * config/nios2/nios2.c: Adjust includes.
1206         (nios2_symbolic_constant_allowed): New.
1207         (nios2_symbolic_constant_p): New.
1208         (nios2_plus_symbolic_constant_p): New.
1209         (nios2_valid_addr_expr_p): Recognize addresses involving
1210         symbolic constants.
1211         (nios2_legitimate_address_p): Likewise, also LO_SUM.
1212         (nios2_symbolic_memory_operand_p): New.
1213         (nios2_large_constant_p): New.
1214         (nios2_split_large_constant): New.
1215         (nios2_split_plus_large_constant): New.
1216         (nios2_split_symbolic_memory_operand): New.
1217         (nios2_legitimize_address): Code refactoring.  Handle addresses
1218         involving symbolic constants.
1219         (nios2_emit_move_sequence): Likewise.
1220         (nios2_print_operand): Improve error output.
1221         (nios2_print_operand_address): Handle LO_SUM.
1222         (nios2_cdx_narrow_form_p): Likewise.
1223         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
1224         operands involving symbolic constants.
1225         (movhi_internal, movsi_internal): Likewise.
1226         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
1227         (extendhisi2, extendqi<mode>2): Likewise.
1229 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
1231         * tree-pass.h (PROP_rtl_split_insns): Define.
1232         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
1234 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
1236         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
1238 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
1240         PR debug/82630
1241         * target.def (const_not_ok_for_debug_p): Default to
1242         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
1243         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
1244         * targhooks.c (default_const_not_ok_for_debug_p): New function.
1245         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
1246         which targetm.const_not_ok_for_debug_p returned true.
1247         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
1248         for UNSPECs.
1249         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
1250         Likewise.
1251         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
1252         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
1253         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
1254         if !base_term_p.
1255         (ix86_const_not_ok_for_debug_p): New function.
1256         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
1257         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
1259 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
1261         PR bootstrap/82610
1262         * system.h: Conditionally include "unique-ptr.h" if
1263         INCLUDE_UNIQUE_PTR is defined.
1264         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
1265         of defining INCLUDE_UNIQUE_PTR before including "system.h".
1267 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
1269         * config/rl78/rl78.md: New define_expand "subdi3".
1271 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
1273         PR target/82673
1274         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
1275         DF_REF_INSN if DF_REF_INSN_INFO is false.
1277 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
1279         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
1280         xmm_move instead of sse_move.
1281         (sse_store_index): New function.
1282         (ix86_register_move_cost): Be more sensible about mismatch stall;
1283         model AVX moves correctly; make difference between sse->integer and
1284         integer->sse.
1285         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
1286         moves; make difference between SSE and AVX.
1287         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
1288         and zmm_move. Increase size of sse load and store tables;
1289         add unaligned load and store tables; add ssemmx_to_integer.
1290         * x86-tune-costs.h: Update all entries according to real
1291         move latencies from Agner Fog's manual and chip documentation.
1293 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
1295         PR target/82628
1296         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
1297         * config/i386/constraints.md (Wf): New constraint.
1298         * config/i386/i386.md (UNSPEC_SBB): New unspec.
1299         (cmp<dwi>_doubleword): Removed.
1300         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
1301         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
1302         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
1303         expand with cmp<dwi>_doubleword.  For LTU and GEU use
1304         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
1306         * common.opt (gcolumn-info): Enable by default.
1307         * doc/invoke.texi (gcolumn-info): Document new default.
1309 2017-10-23  Richard Biener  <rguenther@suse.de>
1311         PR tree-optimization/82672
1312         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
1313         Fold the stmt if we propagated into it.
1315 2017-10-23  Richard Biener  <rguenther@suse.de>
1317         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
1318         (bitmap_remove_expr_from_set): ... this.  All callers call this
1319         for non-constant values.
1320         (bitmap_set_subtract): Rename to...
1321         (bitmap_set_subtract_expressions): ... this.  Adjust and
1322         optimize.
1323         (bitmap_set_contains_value): Remove superfluous check.
1324         (bitmap_set_replace_value): Inline into single caller ...
1325         (bitmap_value_replace_in_set): ... here and simplify.
1326         (dependent_clean): Merge into ...
1327         (clean): ... this using an overload.  Adjust.
1328         (prune_clobbered_mems): Adjust.
1329         (compute_antic_aux): Likewise.
1330         (compute_partial_antic_aux): Likewise.
1332 2017-10-23  Richard Biener  <rguenther@suse.de>
1334         PR tree-optimization/82129
1335         Revert
1336         2017-08-01  Richard Biener  <rguenther@suse.de>
1338         PR tree-optimization/81181
1339         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
1340         (compute_antic): ... end of iteration here.
1342 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
1344         * target.def (starting_frame_offset): New hook.
1345         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
1346         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
1347         * doc/tm.texi.in: Regenerate.
1348         * hooks.h (hook_hwi_void_0): Declare.
1349         * hooks.c (hook_hwi_void_0): New function.
1350         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
1351         STARTING_FRAME_OFFSET.
1352         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
1353         * reload1.c (reload): Likewise.
1354         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
1355         instead of STARTING_FRAME_OFFSET.
1356         * function.c (try_fit_stack_local): Likewise.
1357         (assign_stack_local_1): Likewise
1358         (instantiate_virtual_regs): Likewise.
1359         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
1360         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
1361         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
1362         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
1363         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
1364         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
1365         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
1366         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
1367         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
1368         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
1369         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
1370         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
1371         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
1372         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
1373         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
1374         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
1375         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
1376         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
1377         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
1378         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
1379         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
1380         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
1381         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
1382         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
1383         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
1384         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
1385         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
1386         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
1387         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
1388         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
1389         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
1390         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
1391         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
1392         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
1393         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
1394         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
1395         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
1396         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
1397         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
1398         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
1399         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
1400         * config/avr/avr.c (avr_starting_frame_offset): Make static and
1401         return a HOST_WIDE_INT.
1402         (avr_builtin_setjmp_frame_value): Use it instead of
1403         STARTING_FRAME_OFFSET.
1404         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1405         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
1406         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
1407         New function.
1408         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1409         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
1410         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
1411         (TARGET_CONSTANT_ALIGNMENT): Redefine.
1412         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
1413         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
1414         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1415         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
1416         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
1417         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1418         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
1419         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
1420         New function.
1421         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1422         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
1423         * config/mips/mips.c (mips_compute_frame_info): Refer to
1424         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
1425         (mips_starting_frame_offset): New function.
1426         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1427         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
1428         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
1429         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
1430         and return a HOST_WIDE_INT.
1431         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1432         (mmix_initial_elimination_offset): Refer to
1433         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
1434         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
1435         * config/pa/pa.c (pa_starting_frame_offset): New function.
1436         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
1437         (pa_expand_prologue): Likewise.
1438         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1439         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
1440         !FRAME_GROWS_DOWNWARD handling to...
1441         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1442         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
1443         !FRAME_GROWS_DOWNWARD handling to...
1444         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1445         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
1446         !FRAME_GROWS_DOWNWARD handling to...
1447         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1448         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
1449         Redefine.
1450         (rs6000_starting_frame_offset): New function.
1451         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
1452         !FRAME_GROWS_DOWNWARD handling to...
1453         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1454         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
1455         !FRAME_GROWS_DOWNWARD handling to...
1456         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1457         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
1458         !FRAME_GROWS_DOWNWARD handling to...
1459         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
1460         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
1461         (rs6000_starting_frame_offset): New function.
1462         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
1463         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
1464         * config/vax/vax.c (vax_starting_frame_offset): New function.
1465         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
1466         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1467         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
1468         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
1469         (TARGET_STARTING_FRAME_OFFSET): Redefine.
1470         * system.h (STARTING_FRAME_OFFSET): Poison.
1472 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
1474         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1475         SCALAR_TYPE_MODE instead of TYPE_MODE.
1477 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
1478             Alan Hayward  <alan.hayward@arm.com>
1479             David Sherwood  <david.sherwood@arm.com>
1481         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
1483 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
1484             Alan Hayward  <alan.hayward@arm.com>
1485             David Sherwood  <david.sherwood@arm.com>
1487         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
1489 2017-10-23  Richard Biener  <rguenther@suse.de>
1491         PR tree-optimization/82129
1492         * tree-ssa-pre.c (bitmap_set_and): Remove.
1493         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
1494         canonicalizing expressions in the set to those with lowest
1495         ID rather than taking that from the first edge.
1497 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
1499         * combine.c (rtx_equal_for_field_assignment_p): Use
1500         byte_lowpart_offset.
1502 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1503             Alan Hayward  <alan.hayward@arm.com>
1504             David Sherwood  <david.sherwood@arm.com>
1506         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
1507         to a SUBREG_PROMOTED_VAR.
1509 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1510             Alan Hayward  <alan.hayward@arm.com>
1511             David Sherwood  <david.sherwood@arm.com>
1513         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
1514         (expand_debug_source_expr): Likewise.
1515         * combine.c (combine_simplify_rtx): Likewise.
1516         * cse.c (fold_rtx): Likewise.
1517         * optabs.c (expand_float): Likewise.
1518         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1519         (simplify_binary_operation_1): Likewise.
1521 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1522             Alan Hayward  <alan.hayward@arm.com>
1523             David Sherwood  <david.sherwood@arm.com>
1525         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
1526         (record_promoted_value): Likewise.
1527         * expr.c (expand_expr_real_2): Likewise.
1528         * ree.c (update_reg_equal_equiv_notes): Likewise.
1529         (combine_set_extension): Likewise.
1530         * rtlanal.c (low_bitmask_len): Likewise.
1531         * simplify-rtx.c (neg_const_int): Likewise.
1532         (simplify_binary_operation_1): Likewise.
1534 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1535             Alan Hayward  <alan.hayward@arm.com>
1536             David Sherwood  <david.sherwood@arm.com>
1538         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
1539         * regcprop.c (maybe_mode_change): Likewise.
1540         * reload1.c (alter_reg): Likewise.
1542 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1544         * inchash.h (inchash::hash::add_wide_int): New function.
1545         * lto-streamer-out.c (hash_tree): Use it.
1547 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
1549         * inchash.h (inchash::hash::add_wide_int): Rename to...
1550         (inchash::hash::add_hwi): ...this.
1551         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
1552         (polymorphic_call_target_hasher::hash): Likewise.
1553         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
1554         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
1555         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
1556         * lto-streamer-out.c (hash_tree): Likewise.
1557         * optc-save-gen.awk: Likewise.
1558         * tree.c (add_expr): Likewise.
1560 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
1562         PR target/52451
1563         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
1564         for ordered inequality comparisons even with TARGET_IEEE_FP.
1566 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
1568         PR target/82628
1569         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
1570         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
1571         Expand with cmp<dwi>_doubleword.
1573 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1575         * extend.texi: Add x86 specific to 'nocf_check' attribute.
1576         List CET intrinsics.
1577         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
1578         specific to -fcf-protection option.
1580 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1582         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
1583         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
1584         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
1585         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
1586         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
1587         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
1588         (extra_objs): Add cet.o for Linux/x86 targets.
1589         (tmake_file): Add i386/t-cet for Linux/x86 targets.
1590         * config/i386/cet.c: New file.
1591         * config/i386/cetintrin.h: Likewise.
1592         * config/i386/t-cet: Likewise.
1593         * config/i386/cpuid.h (bit_SHSTK): New.
1594         (bit_IBT): Likewise.
1595         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
1596         pass IBT and SHSTK bits.
1597         * config/i386/i386-builtin-types.def
1598         (VOID_FTYPE_UNSIGNED_PVOID): New.
1599         (VOID_FTYPE_UINT64_PVOID): Likewise.
1600         * config/i386/i386-builtin.def: Add CET intrinsics.
1601         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1602         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
1603         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
1604         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
1605         prototype.
1606         * config/i386/i386.c (rest_of_insert_endbranch): New.
1607         (pass_data_insert_endbranch): Likewise.
1608         (pass_insert_endbranch): Likewise.
1609         (make_pass_insert_endbranch): Likewise.
1610         (ix86_notrack_prefixed_insn_p): Likewise.
1611         (ix86_target_string): Add -mibt, -mshstk flags.
1612         (ix86_option_override_internal): Add flag_cf_protection
1613         processing.
1614         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
1615         (ix86_print_operand): Add 'notrack' prefix output.
1616         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
1617         (ix86_expand_builtin): Expand CET intrinsics.
1618         (x86_output_mi_thunk): Add 'endbranch' instruction.
1619         * config/i386/i386.h (TARGET_IBT): New.
1620         (TARGET_IBT_P): Likewise.
1621         (TARGET_SHSTK): Likewise.
1622         (TARGET_SHSTK_P): Likewise.
1623         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
1624         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
1625         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
1626         (builtin_setjmp_setup): New pattern.
1627         (builtin_longjmp): Likewise.
1628         (rdssp<mode>): Likewise.
1629         (incssp<mode>): Likewise.
1630         (saveprevssp): Likewise.
1631         (rstorssp): Likewise.
1632         (wrss<mode>): Likewise.
1633         (wruss<mode>): Likewise.
1634         (setssbsy): Likewise.
1635         (clrssbsy): Likewise.
1636         (nop_endbr): Likewise.
1637         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
1638         options.
1639         * config/i386/immintrin.h: Include <cetintrin.h>.
1640         * config/i386/linux-common.h
1641         (file_end_indicate_exec_stack_and_cet): New prototype.
1642         (TARGET_ASM_FILE_END): New.
1644 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
1646         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
1647         latencies instead of having separate table; make difference between
1648         integer and float costs.
1649         * i386.h (processor_costs): Remove scalar_stmt_cost,
1650         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
1651         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
1652         vec_store_cost.
1653         * x86-tune-costs.h: Remove entries which has been removed in
1654         procesor_costs from all tables; make cond_taken_branch_cost
1655         and cond_not_taken_branch_cost COST_N_INSNS based.
1657 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
1659         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
1661 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
1663         * config/i386/i386.md (isa): Remove fma_avx512f.
1664         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
1665         <avx512>_fmadd_<mode>_mask3<round_name>,
1666         <avx512>_fmsub_<mode>_mask<round_name>,
1667         <avx512>_fmsub_<mode>_mask3<round_name>,
1668         <avx512>_fnmadd_<mode>_mask<round_name>,
1669         <avx512>_fnmadd_<mode>_mask3<round_name>,
1670         <avx512>_fnmsub_<mode>_mask<round_name>,
1671         <avx512>_fnmsub_<mode>_mask3<round_name>,
1672         <avx512>_fmaddsub_<mode>_mask<round_name>,
1673         <avx512>_fmaddsub_<mode>_mask3<round_name>,
1674         <avx512>_fmsubadd_<mode>_mask<round_name>,
1675         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
1676         (*vec_widen_umult_even_v16si<mask_name>,
1677         *vec_widen_smult_even_v16si<mask_name>): Likewise.
1678         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
1680 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1682         * extend.texi: Add 'nocf_check' documentation.
1683         * gimple.texi: Add second parameter to
1684         gimple_build_call_from_tree.
1685         * invoke.texi: Add -fcf-protection documentation.
1686         * rtl.texi: Add REG_CALL_NOTRACK documenation.
1688 2017-10-20  Richard Biener  <rguenther@suse.de>
1690         PR tree-optimization/82473
1691         * tree-vect-loop.c (vectorizable_reduction): Properly get at
1692         the largest input type.
1694 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
1696         * c-attribs.c (handle_nocf_check_attribute): New function.
1697         (c_common_attribute_table): Add 'nocf_check' handling.
1698         * gimple-parser.c: Add second argument NULL to
1699         gimple_build_call_from_tree.
1700         * attrib.c (comp_type_attributes): Check nocf_check attribute.
1701         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
1702         call insn.
1703         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
1704         * common.opt: Add fcf-protection flag.
1705         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
1706         * flag-types.h: Add enum cf_protection_level.
1707         * gimple.c (gimple_build_call_from_tree): Add second parameter.
1708         Add 'nocf_check' attribute propagation to gimple call.
1709         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
1710         (gimple_build_call_from_tree): Update prototype.
1711         (gimple_call_nocf_check_p): New function.
1712         (gimple_call_set_nocf_check): Likewise.
1713         * gimplify.c: Add second argument to gimple_build_call_from_tree.
1714         * ipa-icf.c: Add nocf_check attribute in statement hash.
1715         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
1716         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
1717         * toplev.c (process_options): Add flag_cf_protection handling.
1719 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
1721         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
1723 2017-10-20  Richard Biener  <rguenther@suse.de>
1725         PR tree-optimization/82603
1726         * tree-if-conv.c (predicate_mem_writes): Make sure to only
1727         remove false predicated stores.
1729 2017-10-20  Richard Biener  <rguenther@suse.de>
1731         * graphite-isl-ast-to-gimple.c
1732         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
1733         Remove return value and simplify, dump copied stmt after lhs
1734         adjustment.
1735         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
1736         Reduce dump verbosity.
1737         (gsi_insert_earliest): Likewise.
1738         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
1739         * graphite.c (print_global_statistics): Adjust dumping.
1740         (print_graphite_scop_statistics): Likewise.
1741         (print_graphite_statistics): Do not dump loops here.
1742         (graphite_transform_loops): But here.
1744 2017-10-20  Nicolas Roche  <roche@adacore.com>
1746         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
1747         * configure: Regenerate.
1749 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
1751         PR target/82158
1752         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
1753         functions when optimizing replace GIMPLE_RETURN stmts with
1754         calls to __builtin_unreachable ().
1756         PR sanitizer/82595
1757         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
1758         for -fsanitize=thread link of executables.
1759         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
1760         link of executables.
1762         PR target/82370
1763         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
1764         New mode iterators.
1765         (<shift_insn><mode>3<mask_name>): Change the last of the 3
1766         define_insns for logical vector shifts to use VI248_AVX512BW
1767         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
1768         condition, useless isa and prefix attributes.  Change the first
1769         2 of these define_insns to ...
1770         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
1771         define_insn for avx512vl.
1772         (<shift_insn><mode>3): ... and this, new define_insn without
1773         masking for non-avx512vl.
1775         PR target/82370
1776         * config/i386/sse.md (*andnot<mode>3,
1777         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
1778         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
1779         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
1780         not applied use empty suffix even for TARGET_AVX512VL.
1781         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
1782         is applied, supply evex,evex or evex,evex,evex instead of just
1783         evex.
1785 2017-10-20  Julia Koval  <julia.koval@intel.com>
1787         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
1788         (OPTION_MASK_ISA_GFNI_UNSET): New.
1789         (ix86_handle_option): Handle OPT_mgfni.
1790         * config/i386/cpuid.h (bit_GFNI): New.
1791         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
1792         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
1793         * config/i386/i386.c (ix86_target_string): Add -mgfni.
1794         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
1795         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
1796         * config/i386/i386.opt: Add mgfni.
1798 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
1800         * config/msp430/msp430.c (msp430_option_override): Disable
1801         -fdelete-null-pointer-checks.
1802         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
1804 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
1806         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
1807         of x87 and SSE instructions.
1809 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
1811         * asan.c (create_cond_insert_point): Do not update edge count.
1812         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
1813         (afdo_propagate_circuit): Likewise.
1814         (afdo_calculate_branch_prob): Likewise.
1815         (afdo_annotate_cfg): Likewise.
1816         * basic-block.h (struct edge_def): Remove count.
1817         (edge_def::count): New accessor.
1818         * bb-reorder.c (rotate_loop): Update.
1819         (find_traces_1_round): Update.
1820         (connect_traces): Update.
1821         (sanitize_hot_paths): Update.
1822         * cfg.c (unchecked_make_edge): Update.
1823         (make_single_succ_edge): Update.
1824         (check_bb_profile): Update.
1825         (dump_edge_info): Update.
1826         (update_bb_profile_for_threading): Update.
1827         (scale_bbs_frequencies_int): Update.
1828         (scale_bbs_frequencies_gcov_type): Update.
1829         (scale_bbs_frequencies_profile_count): Update.
1830         (scale_bbs_frequencies): Update.
1831         * cfganal.c (connect_infinite_loops_to_exit): Update.
1832         * cfgbuild.c (compute_outgoing_frequencies): Update.
1833         (find_many_sub_basic_blocks): Update.
1834         * cfgcleanup.c (try_forward_edges): Update.
1835         (try_crossjump_to_edge): Update
1836         * cfgexpand.c (expand_gimple_cond): Update
1837         (expand_gimple_tailcall): Update
1838         (construct_exit_block): Update
1839         * cfghooks.c (verify_flow_info): Update
1840         (redirect_edge_succ_nodup): Update
1841         (split_edge): Update
1842         (make_forwarder_block): Update
1843         (duplicate_block): Update
1844         (account_profile_record): Update
1845         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
1846         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
1847         * cfgloopmanip.c (scale_loop_profile): Update.
1848         (loopify): Update.
1849         (lv_adjust_loop_entry_edge): Update.
1850         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
1851         (force_nonfallthru_and_redirect): Update.
1852         (purge_dead_edges): Update.
1853         (rtl_flow_call_edges_add): Update.
1854         * cgraphunit.c (init_lowered_empty_function): Update.
1855         (cgraph_node::expand_thunk): Update.
1856         * gimple-pretty-print.c (dump_probability): Update.
1857         (dump_edge_probability): Update.
1858         * gimple-ssa-isolate-paths.c (isolate_path): Update.
1859         * haifa-sched.c (sched_create_recovery_edges): Update.
1860         * hsa-gen.c (convert_switch_statements): Update.
1861         * ifcvt.c (dead_or_predicable): Update.
1862         * ipa-inline-transform.c (inline_transform): Update.
1863         * ipa-split.c (split_function): Update.
1864         * ipa-utils.c (ipa_merge_profiles): Update.
1865         * loop-doloop.c (add_test): Update.
1866         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
1867         * lto-streamer-in.c (input_cfg): Update.
1868         (input_function): Update.
1869         * lto-streamer-out.c (output_cfg): Update.
1870         * modulo-sched.c (sms_schedule): Update.
1871         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
1872         * predict.c (maybe_hot_edge_p): Update.
1873         (unlikely_executed_edge_p): Update.
1874         (probably_never_executed_edge_p): Update.
1875         (dump_prediction): Update.
1876         (drop_profile): Update.
1877         (propagate_unlikely_bbs_forward): Update.
1878         (determine_unlikely_bbs): Update.
1879         (force_edge_cold): Update.
1880         * profile.c (compute_branch_probabilities): Update.
1881         * reg-stack.c (better_edge): Update.
1882         * shrink-wrap.c (handle_simple_exit): Update.
1883         * tracer.c (better_p): Update.
1884         * trans-mem.c (expand_transaction): Update.
1885         (split_bb_make_tm_edge): Update.
1886         * tree-call-cdce.c: Update.
1887         * tree-cfg.c (gimple_find_sub_bbs): Update.
1888         (gimple_split_edge): Update.
1889         (gimple_duplicate_sese_region): Update.
1890         (gimple_duplicate_sese_tail): Update.
1891         (gimple_flow_call_edges_add): Update.
1892         (insert_cond_bb): Update.
1893         (execute_fixup_cfg): Update.
1894         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
1895         * tree-complex.c (expand_complex_div_wide): Update.
1896         * tree-eh.c (lower_resx): Update.
1897         (unsplit_eh): Update.
1898         (cleanup_empty_eh_move_lp): Update.
1899         * tree-inline.c (copy_edges_for_bb): Update.
1900         (freqs_to_counts): Update.
1901         (copy_cfg_body): Update.
1902         * tree-ssa-dce.c (remove_dead_stmt): Update.
1903         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
1904         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
1905         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
1906         (unloop_loops): Update.
1907         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
1908         * tree-ssa-loop-split.c (connect_loops): Update.
1909         (split_loop): Update.
1910         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
1911         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
1912         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
1913         * tree-ssa-reassoc.c (branch_fixup): Update.
1914         * tree-ssa-tail-merge.c (replace_block_by): Update.
1915         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
1916         (compute_path_counts): Update.
1917         (update_profile): Update.
1918         (recompute_probabilities): Update.
1919         (update_joiner_offpath_counts): Update.
1920         (estimated_freqs_path): Update.
1921         (freqs_to_counts_path): Update.
1922         (clear_counts_path): Update.
1923         (ssa_fix_duplicate_block_edges): Update.
1924         (duplicate_thread_path): Update.
1925         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
1926         (case_bit_test_cmp): Update.
1927         (collect_switch_conv_info): Update.
1928         (gen_inbound_check): Update.
1929         (do_jump_if_equal): Update.
1930         (emit_cmp_and_jump_insns): Update.
1931         * tree-tailcall.c (decrease_profile): Update.
1932         (eliminate_tail_call): Update.
1933         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
1934         (vect_do_peeling): Update.
1935         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
1936         * ubsan.c (ubsan_expand_null_ifn): Update.
1937         (ubsan_expand_ptr_ifn): Update.
1938         * value-prof.c (gimple_divmod_fixed_value): Update.
1939         (gimple_mod_pow2): Update.
1940         (gimple_mod_subtract): Update.
1941         (gimple_ic): Update.
1942         (gimple_stringop_fixed_value): Update.
1944 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
1946         PR target/82618
1947         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
1949 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
1951         PR rtl-optimization/82395
1952         * ira-color.c (allocno_priority_compare_func): Fix comparison step
1953         based on non_spilled_static_chain_regno_p.
1955 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
1957         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
1958         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
1959         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
1961 2017-10-19  Martin Sebor  <msebor@redhat.com>
1963         PR tree-optimization/82596
1964         * tree.c (array_at_struct_end_p): Handle STRING_CST.
1966 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1968         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
1969         (get_mem_refs_of_builtin_call): Likewise.
1970         * builtins.c (expand_builtin_apply): Adjust call to
1971         allocate_dynamic_stack_space.
1972         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
1973         the third argument to allocate_dynamic_stack_space, otherwise -1.
1974         (expand_builtin): Deal with all alloca variants.
1975         (is_inexpensive_builtin): Likewise.
1976         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
1977         * calls.c (special_function_p): Deal with all alloca variants.
1978         (initialize_argument_information): Adjust call to
1979         allocate_dynamic_stack_space.
1980         (expand_call): Likewise.
1981         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
1982         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
1983         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
1984         use it for the stack usage computation.
1985         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
1986         * function.c (gimplify_parameters): Call build_alloca_call_expr.
1987         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
1988         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
1989         (in_loop_p): Remove first argument and useless check.
1990         (pass_walloca::execute): Remove useless test and adjust call to above.
1991         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
1992         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
1993         (gimplify_call_expr): Deal with all alloca variants.
1994         * hsa-gen.c (gen_hsa_alloca): Likewise.
1995         (gen_hsa_insns_for_call): Likewise.
1996         * ipa-pure-const.c (special_builtin_state): Likewise.
1997         * tree-chkp.c (chkp_build_returned_bound): Likewise.
1998         * tree-object-size.c (alloc_object_size): Likewise.
1999         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2000         (call_may_clobber_ref_p_1): Likewise.
2001         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
2002         (ccp_fold_stmt): Likewise.
2003         (optimize_stack_restore): Likewise.
2004         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2005         (mark_all_reaching_defs_necessary_1): Likewise.
2006         (propagate_necessity): Likewise.
2007         (eliminate_unnecessary_stmts): Likewise.
2008         * tree.c (build_common_builtin_nodes): Build
2009         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
2010         (build_alloca_call_expr): New function.
2011         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
2012         (CASE_BUILT_IN_ALLOCA): Likewise.
2013         (build_alloca_call_expr): Declare.
2014         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
2016 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
2018         PR debug/82509
2019         * dwarf2out.c (new_die_raw): New static inline function.
2020         (new_die): Use it to create the DIE.
2021         (add_AT_external_die_ref): Likewise.
2022         (clone_die): Likewise.
2023         (clone_as_declaration): Likewise.
2024         (dwarf2out_vms_debug_main_pointer): Likewise.
2025         (base_type_die): Likewise.  Remove early return for corner cases.
2026         Do not call add_pubtype on the DIE here.
2027         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
2028         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
2029         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
2030         native order exists for base types, attach the DIE manually and call
2031         add_pubtype on it.  Do not equate a reverse order DIE to the type.
2033 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
2035         * config/arm/arm.c (align_ok_ldrd_strd): New function.
2036         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
2037         the mem into it.
2038         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
2040 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
2042         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
2043         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
2044         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
2045         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
2046         * opts.c (sanitizer_opts): Add builtin.
2047         * ubsan.c (instrument_builtin): New function.
2048         (pass_ubsan::execute): Call it.
2049         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
2050         * doc/invoke.texi: Document -fsanitize=builtin.
2052         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
2053         builtins, store max (log2 (align), 0) into uchar field instead of
2054         align into uptr field.
2055         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
2056         store uchar 0 field instead of uptr 0 field.
2057         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
2058         instead of passing one address of struct with 2 locations pass
2059         two addresses of structs with 1 location each.
2060         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
2061         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
2062         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
2063         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
2064         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
2065         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
2066         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
2067         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
2069 2017-10-19  Martin Liska  <mliska@suse.cz>
2071         PR driver/81829
2072         * file-find.c (remove_prefix): Remove.
2073         * file-find.h (remove_prefix): Likewise.
2074         * gcc-ar.c: Remove smartness of lookup.
2076 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
2078         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
2079         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
2080         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
2082 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
2084         PR target/82580
2085         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
2086         (setcc + and to xor + setcc): New peephole2.
2088 2017-10-19  Tom de Vries  <tom@codesourcery.com>
2090         * doc/sourcebuild.texi (Test Directives, Variants of
2091         dg-require-support): Add dg-require-stack-size.
2093 2017-10-19  Martin Liska  <mliska@suse.cz>
2095         PR sanitizer/82517
2096         * gimplify.c (gimplify_decl_expr): Do not instrument variables
2097         that have a large alignment.
2098         (gimplify_target_expr): Likewise.
2100 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
2102         PR rtl-optimization/82602
2103         * ira.c (rtx_moveable_p): Return false for volatile asm.
2105 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
2107         PR target/82580
2108         * config/i386/i386-modes.def (CCGZ): New CC mode.
2109         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
2110         * config/i386/predicates.md (ix86_comparison_operator):
2111         Handle CCGZmode.
2112         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
2113         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
2114         with double-word subtraction.
2115         (put_condition_code): Handle CCGZmode.
2117 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
2119         * wide-int.cc (debug (const wide_int &)): New.
2120         (debug (const wide_int *)): New.
2121         (debug (const widest_int &)): New.
2122         (debug (const widest_int *)): New.
2124 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
2126         PR middle-end/82556
2127         * lra-constraints.c (curr_insn_transform): Use non-input operand
2128         instead of output one for matched reload.
2130 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
2132         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
2133         (tree-ssa-loop-ivopts.h): New header file.
2134         (struct builtin_info): New fields.
2135         (classify_builtin_1): Compute and record base and offset parts for
2136         memset builtin partition by calling strip_offset.
2137         (offset_cmp, fuse_memset_builtins): New functions.
2138         (finalize_partitions): Fuse adjacent memset partitions by calling
2139         above function.
2140         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
2141         Expose the interface.
2142         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
2144 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
2146         PR tree-optimization/82574
2147         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
2148         that data reference must be executed exactly once per iteration
2149         against the outermost loop in nest.
2150         (classify_partition): Update call to above function.
2152 2017-10-18  Richard Biener  <rguenther@suse.de>
2154         PR tree-optimization/82591
2155         * graphite.c (graphite_transform_loops): Move code gen message
2156         printing ...
2157         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2158         Here.  Handle scop_to_isl_ast failing.
2159         (scop_to_isl_ast): Limit the number of ISL operations.
2161 2017-10-18  Richard Biener  <rguenther@suse.de>
2163         * graphite-isl-ast-to-gimple.c
2164         (translate_isl_ast_to_gimple::set_rename): Simplify.
2165         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
2166         (graphite_copy_stmts_from_block): ... here.
2167         (copy_bb_and_scalar_dependences): Simplify.
2168         (add_parameters_to_ivs_params): Canonicalize.
2169         (generate_entry_out_of_ssa_copies): Simplify.
2170         * graphite-sese-to-poly.c (extract_affine_name): Simplify
2171         by passing in ISL dimension.
2172         (parameter_index_in_region_1): Rename to ...
2173         (parameter_index_in_region): ... this.
2174         (extract_affine): Adjust assert, pass down parameter index.
2175         (add_param_constraints): Use range-info when available.
2176         (build_scop_context): Adjust.
2177         * sese.c (new_sese_info): Adjust.
2178         (free_sese_info): Likewise.
2179         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
2180         Remove unused typedefs.
2181         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
2183 2017-10-18  Martin Liska  <mliska@suse.cz>
2185         * combine.c (simplify_compare_const): Add gcc_fallthrough.
2187 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
2189         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
2190         (s390_sched_init): Do not reset s390_sched_state if we entered the
2191         current basic block via a fallthru edge and all others are unlikely.
2193 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
2195         * config/s390/s390.c (NUM_SIDES): New variable.
2196         (LONGRUNNING_THRESHOLD): New variable.
2197         (LATENCY_FACTOR): New variable.
2198         (s390_sched_score): Decrease score for long-running instructions on
2199         wrong side.
2200         (s390_sched_variable_issue): Perform bookkeeping for long-running
2201         instructions.
2203 2017-10-18  Richard Biener  <rguenther@suse.de>
2205         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
2206         Simplify with removal of the parameter rename map.
2207         (set_rename): Likewise.
2208         (should_copy_to_new_region): Likewise.
2209         (graphite_copy_stmts_from_block): Likewise.
2210         (copy_bb_and_scalar_dependences): Remove initialization of
2211         unused copied_bb_map.
2212         (copy_def): Remove.
2213         (copy_internal_parameters): Likewise.
2214         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
2215         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
2216         Use INTEGRAL_TYPE_P.
2217         (parameter_index_in_region_1): Rename to ...
2218         (assign_parameter_index_in_region): ... this.  Assert we have
2219         a parameter we handle.
2220         (scan_tree_for_params): Adjust.
2221         * sese.h (parameter_rename_map_t): Remove.
2222         (struct sese_info_t): Remove unused parameter_rename_map and
2223         copied_bb_map members.
2224         * sese.c (new_sese_info): Adjust.
2225         (free_sese_info): Likewise.
2227 2017-10-18  Martin Liska  <mliska@suse.cz>
2229         PR sanitizer/82545
2230         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
2231         on an abnormal edge.
2233 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2235         * doc/invoke.texi (ffunction-sections and fdata-sections):
2236         Update.
2238 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
2240         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
2241         the use statement can throw internally.
2243 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
2245         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
2246         any RTX present on the RHS of a SET.
2247         * compare-elim.c (try_eliminate_compare): Restore comment.
2249 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
2251         * langhooks.h (struct lang_hooks): Document that tree_size langhook
2252         may be also called on tcc_type nodes.
2253         * langhooks.c (lhd_tree_size): Likewise.
2255 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
2257         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
2258         format_warning_at_substring.
2259         (maybe_warn): Convert source_range * param to a location_t.  Pass
2260         UNKNOWN_LOCATION rather than NULL to fmtwarn.
2261         (format_directive): Remove code to extract source_ranges and
2262         source_range * in favor of just a location_t.
2263         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
2264         fmtwarn.
2265         * substring-locations.c (format_warning_va): Convert
2266         source_range * param to a location_t.
2267         (format_warning_at_substring): Likewise.
2268         * substring-locations.h (format_warning_va): Likewise.
2269         (format_warning_at_substring): Likewise.
2271 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
2273         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
2274         vec_scatter_store
2275         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
2276         and scatter/gather ops.
2278         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
2279         vec_gather_load and vec_scatter_store.
2280         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
2281         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
2282         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
2283         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
2284         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
2285         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
2287 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
2289         * reg-stack.c (compare_for_stack_reg): Add bool argument.
2290         Detect FTST instruction and handle its register pops.  Only pop
2291         second operand if can_pop_second_op is true.
2292         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
2293         set can_pop_second_op to false in the compare_for_stack_reg call.
2295         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
2296         output_fp_compare for stack register operands.
2297         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
2298         instructions here.  Do not emit stack register pops here.  Assert
2299         that FCOMPP pops next to top stack register.  Rewrite function.
2301 2017-10-17  Nathan Sidwell  <nathan@acm.org>
2303         PR middle-end/82577
2304         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
2305         use DECL_ASSEMBLER_NAME_RAW.
2307         PR middle-end/82546
2308         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
2309         TYPE nodes.
2311 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
2312             Wilco Dijkstra <wilco.dijkstra@arm.com>
2314         * builtins.c (expand_builtin_update_setjmp_buf): Add a
2315         converstion to Pmode from the buf_addr.
2317 2017-10-17  Richard Biener  <rguenther@suse.de>
2319         * graphite-dependences.c (scop_get_reads_and_writes): Change
2320         output parameters to references.
2322 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
2324         PR 71026/tree-optimization
2325         * fold-const.c (distribute_real_division): Removed.
2326         (fold_binary_loc): Remove calls to distribute_real_divison.
2328 2017-10-17  Richard Biener  <rguenther@suse.de>
2330         * graphite-scop-detection.c
2331         (scop_detection::stmt_has_simple_data_refs_p): Always use
2332         the full nest as region.
2333         (try_generate_gimple_bb): Likewise.
2334         * sese.c (scalar_evolution_in_region): Simplify now that
2335         SCEV can handle instantiation in regions.
2336         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
2337         in the non-loop part of a function if requested.
2339 2017-10-17  Richard Biener  <rguenther@suse.de>
2341         PR tree-optimization/82563
2342         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
2343         New function.
2344         (graphite_regenerate_ast_isl): Call it.
2345         * graphite-scop-detection.c (build_scops): Remove entry edge split.
2347 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
2349         PR tree-optimization/82549
2350         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
2351         Formatting fixes.  Instead of calling make_bit_field_ref with negative
2352         bitpos return 0.
2354 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
2356         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
2357         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
2358         _mm_maskz_reduce_ss): New.
2359         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
2360         __builtin_ia32_reducess_mask): Ditto..
2361         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
2362         * config/i386/sse.md (reduces<mode>): Renamed to ...
2363         (reduces<mode><mask_scalar_name>): ... this.
2364         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
2365         Changed to ...
2366         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
2367         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
2369 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
2371         * Makefile.in (OBJS): Add unique-ptr-tests.o.
2372         * selftest-run-tests.c (selftest::run_tests): Call
2373         selftest::unique_ptr_tests_cc_tests.
2374         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
2375         * unique-ptr-tests.cc: New file.
2377 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
2379         PR sanitizer/82353
2380         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2381         locations.
2382         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
2383         (make_hard_regno_born, make_hard_regno_dead): Update
2384         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
2386 2017-10-16  Jeff Law  <law@redhat.com>
2388         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
2390 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
2392         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
2394 2017-10-16  Olivier Hainque  <hainque@adacore.com>
2396         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
2397         with_cpu if we were configured for an e500v2 target cpu name.
2399 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2401         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
2402         * doc/invoke.texi: Document +nodsp as a valid extension for
2403         -mcpu=cortex-m33.
2405 2017-10-16  Martin Liska  <mliska@suse.cz>
2407         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
2408         (test_set_range): Likewise.
2409         (test_range_functions): Rename to ...
2410         (test_bit_in_range): ... this.
2411         (sbitmap_c_tests): Add new test.
2413 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
2415         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
2416         New.
2417         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
2418         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
2420 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
2422         * config/aarch64/aarch64-builtins.c
2423         (aarch64_types_quadopu_lane_qualifiers): New.
2424         (TYPES_QUADOPU_LANE): New.
2425         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
2426         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
2427         (aarch64_<sur>dot_laneq<vsi2qi>): New.
2428         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
2429         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
2430         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
2431         (Vdottype, DOTPROD): New.
2432         (sur): Add SDOT and UDOT.
2434 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
2436         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
2437         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
2438         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
2439         Add TARGET_DOTPROD.
2440         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
2441         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
2442         Enable TARGET_DOTPROD.
2443         (cortex-a75.cortex-a55): Likewise.
2444         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
2446 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
2448         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
2449         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
2450         New.
2451         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
2452         New.
2453         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
2454         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
2455         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
2456         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
2457         * config/arm/types.md (neon_dot, neon_dot_q): New.
2458         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
2460 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
2462         * config/arm/arm.h (TARGET_DOTPROD): New.
2463         * config/arm/arm.c (arm_arch_dotprod): New.
2464         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
2465         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
2466         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
2467         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
2468         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
2469         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
2470         * doc/invoke.texi (armv8.2-a): Document dotprod
2472 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
2474         * i386.c (ix86_vec_cost): New function.
2475         (ix86_rtx_costs): Handle vector operations better.
2476         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
2477         * x86-tune-costs.h: Add new costs to all tables.
2479 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
2481         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
2482         operations.
2483         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
2484         divsd, sqrtss and sqrtsd
2485         * x86-tune-costs.h: Add new entries to all costs.
2486         (znver1_cost): Fix to match real instruction latencies.
2488 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2489             Michael Collison <michael.collison@arm.com>
2491         * compare-elim.c: Include emit-rtl.h.
2492         (can_merge_compare_into_arith): New function.
2493         (try_validate_parallel): Likewise.
2494         (try_merge_compare): Likewise.
2495         (try_eliminate_compare): Call the above when no previous clobber
2496         is available.
2497         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
2498         dataflow problems.
2500 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
2502         PR middle-end/62263
2503         PR middle-end/82498
2504         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
2505         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
2507         PR middle-end/62263
2508         PR middle-end/82498
2509         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
2510         to be any operand_equal_p operands.  For & (B - 1) require
2511         B to be power of 2.  Recognize
2512         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
2514 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
2516         PR bootstrap/82553
2517         * optabs.c (expand_memory_blockage): Fix call of
2518         targetm.have_memory_blockage.
2520 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
2522         PR bootstrap/82548
2523         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
2524         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
2525         objects to extra_objs instead of overwriting it.
2527 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
2529         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
2530         Use any_fp_register_operand as operand[3] predicate.  Simplify
2531         equality test for operands[2] and operands[4] memory location.
2532         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
2533         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
2534         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
2535         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
2536         any_fp_register_operand as operand[1] predicate.  Simplify
2537         equality test for operands[0] and operands[3] memory location.
2538         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
2539         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
2540         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
2542 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
2544         * target-insns.def: Add memory_blockage.
2545         * optabs.c (expand_memory_blockage): New function.
2546         (expand_asm_memory_barrier): Rename ...
2547         (expand_asm_memory_blockage): ... to this.
2548         (expand_mem_thread_fence): Call expand_memory_blockage
2549         instead of expand_asm_memory_barrier.
2550         (expand_mem_singnal_fence): Ditto.
2551         (expand_atomic_load): Ditto.
2552         (expand_atomic_store): Ditto.
2553         * doc/md.texi (Standard Pattern Names For Generation):
2554         Document memory_blockage instruction pattern.
2556 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
2558         * config/rl78/rl78.c (rl78_emit_libcall): New function.
2559         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
2560         * config/rl78/rl78.md: New define_expand "adddi3".
2562 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
2564         * cfghooks.c (verify_flow_info): Disable check that all probabilities
2565         are set correctly.
2567 2017-10-13  Jeff Law  <law@redhat.com>
2569         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
2571 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
2573         PR target/82274
2574         * internal-fn.c (expand_mul_overflow): If both operands have
2575         the same highpart of -1 or 0 and the topmost bit of lowpart
2576         is different, overflow is if res <= 0 rather than res < 0.
2578 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
2580         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
2581         TARGET_P9_VECTOR code for unaligned_load case.
2583 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
2585         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
2587 2017-10-13  Nathan Sidwell  <nathan@acm.org>
2589         * tree-core.h (tree_contains_struct): Make bool.
2590         * tree.c (tree_contains_struct): Likewise.
2591         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
2592         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
2593         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
2594         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
2595         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
2597 2017-10-13  Richard Biener  <rguenther@suse.de>
2599         * graphite-isl-ast-to-gimple.c
2600         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
2601         parameters and dominance check.
2602         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
2603         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
2604         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
2605         Do not update SSA form here or do intermediate IL verification.
2606         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
2607         (graphite_initialize): Remove check on the number of loops in
2608         the function and inline into graphite_transform_loops.
2609         (graphite_finalize): Inline into graphite_transform_loops.
2610         (graphite_transform_loops): Perform SSA update and IL verification
2611         here.
2612         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
2614 2017-10-13  Richard Biener  <rguenther@suse.de>
2616         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
2617         graphite_expression_type_precision): Avoid global constructor
2618         by moving ...
2619         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
2620         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
2621         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
2622         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
2623         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
2624         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
2626 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
2628         PR target/82499
2629         * config/i386/i386.h (ix86_red_zone_size): New.
2630         * config/i386/i386.md (push peephole2s): Replace
2631         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
2633 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
2634             Alan Hayward  <alan.hayward@arm.com>
2635             David Sherwood  <david.sherwood@arm.com>
2637         * combine.c (can_change_dest_mode): Reject changes in
2638         REGMODE_NATURAL_SIZE.
2640 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
2641             Alan Hayward  <alan.hayward@arm.com>
2642             David Sherwood  <david.sherwood@arm.com>
2644         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
2645         (expand_debug_source_expr): Likewise.
2646         * combine.c (combine_simplify_rtx): Likewise.
2647         * cse.c (fold_rtx): Likewise.
2648         * fwprop.c (canonicalize_address): Likewise.
2649         * targhooks.c (default_shift_truncation_mask): Likewise.
2651 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
2652             Alan Hayward  <alan.hayward@arm.com>
2653             David Sherwood  <david.sherwood@arm.com>
2655         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
2656         (widened_mode): Likewise.
2657         (expand_unop): Likewise.
2658         * ree.c (transform_ifelse): Likewise.
2659         (merge_def_and_ext): Likewise.
2660         (combine_reaching_defs): Likewise.
2661         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2663 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
2664             Alan Hayward  <alan.hayward@arm.com>
2665             David Sherwood  <david.sherwood@arm.com>
2667         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
2668         * combine.c (gen_lowpart_for_combine): Likewise.
2669         * dwarf2out.c (rtl_for_decl_location): Likewise.
2670         * final.c (alter_subreg): Likewise.
2671         * rtlhooks.c (gen_lowpart_general): Likewise.
2672         (gen_lowpart_if_possible): Likewise.
2674 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
2675             Alan Hayward  <alan.hayward@arm.com>
2676             David Sherwood  <david.sherwood@arm.com>
2678         * calls.c (expand_call): Use subreg_lowpart_offset.
2679         * cse.c (cse_insn): Likewise.
2680         * regcprop.c (copy_value): Likewise.
2681         (copyprop_hardreg_forward_1): Likewise.
2683 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
2685         PR target/82524
2686         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
2687         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
2688         =Q constraints to +Q and into insn condition add check
2689         that operands[0] and operands[1] are equal.
2690         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
2691         =Q constraints to +Q and into insn condition add check
2692         that operands[0] is equal to either operands[1] or operands[2].
2694         PR target/82498
2695         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
2696         instead of handling MINUS_EXPR twice (once for each argument),
2697         canonicalize operand order and handle just once, use rtype where
2698         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
2700         PR target/82498
2701         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
2702         any values of __C while still being pattern recognizable as a simple
2703         rotate instruction.
2705 2017-10-13  Richard Biener  <rguenther@suse.de>
2707         PR tree-optimization/82451
2708         Revert
2709         2017-10-02  Richard Biener  <rguenther@suse.de>
2711         PR tree-optimization/82355
2712         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
2713         a mapping for the enclosing loop but avoid generating one for
2714         the loop tree root.
2715         (copy_bb_and_scalar_dependences): Remove premature codegen
2716         error on PHIs in blocks duplicated into multiple places.
2717         * graphite-scop-detection.c
2718         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
2719         in the region use it as loop and nest to analyze the DR in.
2720         (try_generate_gimple_bb): Likewise.
2721         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
2722         (add_loop_constraints): For blocks in a loop not in the region
2723         create a dimension with a single iteration.
2724         * sese.h (gbb_loop_at_index): Remove assert.
2726         * cfgloop.c (loop_preheader_edge): For the loop tree root
2727         return the single successor of the entry block.
2728         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2729         Reset the SCEV hashtable and niters.
2730         * graphite-scop-detection.c
2731         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
2732         assert that we only have POLYNOMIAL_CHREC that vary in loops
2733         contained in the region.
2734         (scop_detection::graphite_can_represent_expr): Adjust.
2735         (scop_detection::stmt_has_simple_data_refs_p): For loops
2736         not in the region set loop to NULL.  The nest is now the
2737         entry edge to the region.
2738         (try_generate_gimple_bb): Likewise.
2739         * sese.c (scalar_evolution_in_region): Adjust for
2740         instantiate_scev change.
2741         * tree-data-ref.h (graphite_find_data_references_in_stmt):
2742         Make nest parameter the edge into the region.
2743         (create_data_ref): Likewise.
2744         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
2745         entry edge into a region and adjust instantiate_scev calls.
2746         (create_data_ref): Likewise.
2747         (graphite_find_data_references_in_stmt): Likewise.
2748         (find_data_references_in_stmt): Pass the loop preheader edge
2749         from the nest argument.
2750         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
2751         parameter the edge into the region.
2752         (instantiate_parameters): Use the loop preheader edge as entry.
2753         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
2754         NULL loop.
2755         (get_instantiated_value_entry): Make instantiate_below parameter
2756         the edge into the region.
2757         (instantiate_scev_name): Likewise.  Adjust dominance checks,
2758         when we cannot use loop-based instantiation instantiate by
2759         walking use-def chains.
2760         (instantiate_scev_poly): Adjust.
2761         (instantiate_scev_binary): Likewise.
2762         (instantiate_scev_convert): Likewise.
2763         (instantiate_scev_not): Likewise.
2764         (instantiate_array_ref): Remove.
2765         (instantiate_scev_3): Likewise.
2766         (instantiate_scev_2): Likewise.
2767         (instantiate_scev_1): Likewise.
2768         (instantiate_scev_r): Do not blindly handle N-operand trees.
2769         Do not instantiate array-refs.  Handle all constants and invariants.
2770         (instantiate_scev): Make instantiate_below parameter
2771         the edge into the region.
2772         (resolve_mixers): Use the loop preheader edge for the region
2773         parameter to instantiate_scev_r.
2774         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
2776 2017-10-13  Richard Biener  <rguenther@suse.de>
2778         PR tree-optimization/82525
2779         * graphite-isl-ast-to-gimple.c
2780         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
2781         out from ...
2782         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
2783         Fail code generation when we cannot represent the isl integer.
2784         (binary_op_to_tree): Elide modulo operations that are no-ops
2785         in the type we code generate.  Remove now superfluous code
2786         generation errors.
2788 2017-10-13  Richard Biener  <rguenther@suse.de>
2790         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
2791         (scop_detection::harmful_loop_in_region): Remove premature
2792         IV type restriction.
2793         (scop_detection::graphite_can_represent_scev): We can handle
2794         pointer IVs just fine.
2796 2017-10-13  Alan Modra  <amodra@gmail.com>
2798         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
2799         "Clobbers and Scratch Registers".  Add paragraph on
2800         alternative to clobbers for scratch registers and OpenBLAS
2801         example.
2803 2017-10-13  Alan Modra  <amodra@gmail.com>
2805         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
2806         example of a memory input for a string of known length.  Move
2807         commentary out of table.  Add a number of new examples
2808         covering array memory inputs.
2810 2017-10-12  Martin Liska  <mliska@suse.cz>
2812         PR tree-optimization/82493
2813         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
2814         (test_range_functions): New function.
2815         (sbitmap_c_tests): Likewise.
2816         * selftest-run-tests.c (selftest::run_tests): Run new tests.
2817         * selftest.h (sbitmap_c_tests): New function.
2819         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
2821 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2823         * config/rs6000/amo.h: Fix spacing issue.
2825 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
2827         PR target/82498
2828         * config/i386/i386.md (*ashl<mode>3_mask_1,
2829         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
2830         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
2831         patterns.
2833 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
2835         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
2836         (profile_probability): Set max_probability
2837         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
2838         in temporaries.
2839         * profile-count.c (profile_probability::differs_from_p): Do not
2840         rely on max_probaiblity == 10000
2842 2017-10-12  Jeff Law  <law@redhat.com>
2844         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
2845         negative offsets.
2847 2017-10-12  Martin Sebor  <msebor@redhat.com>
2849         PR other/82301
2850         PR c/82435
2851         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
2852         (handle_alias_pairs): Call it.
2853         * common.opt (-Wattribute-alias): New option.
2854         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
2855         * doc/invoke.texi (-Wattribute-alias): Document.
2857 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
2859         Revert
2860         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
2861         PR sanitizer/82353
2862         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2863         locations.
2864         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
2865         (make_hard_regno_born, make_hard_regno_dead): Update
2866         bb_killed_pseudos and bb_gen_pseudos.
2868 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
2870         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
2872 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
2874         * config/alpha/alpha.c (alpha_split_conditional_move):
2875         Use std::swap instead of manually swapping.
2876         (alpha_stdarg_optimize_hook): Ditto.
2877         (alpha_canonicalize_comparison): Ditto.
2879 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
2881         * tree-loop-distribution.c (struct builtin_info): New struct.
2882         (struct partition): Refactor fields into struct builtin_info.
2883         (partition_free): Free struct builtin_info.
2884         (build_size_arg_loc, build_addr_arg_loc): Delete.
2885         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
2886         information from struct builtin_info.
2887         (find_single_drs): New function refactored from classify_partition.
2888         Also moved builtin validity checks to this function.
2889         (compute_access_range, alloc_builtin): New functions.
2890         (classify_builtin_st, classify_builtin_ldst): New functions.
2891         (classify_partition): Refactor code into functions find_single_drs,
2892         classify_builtin_st and classify_builtin_ldst.
2893         (distribute_loop): Don't do runtime alias check when distributing
2894         loop nest.
2895         (find_seed_stmts_for_distribution): New function.
2896         (pass_loop_distribution::execute): Refactor code finding seed
2897         stmts into above function.  Support distribution for the innermost
2898         two-level loop nest.  Adjust dump information.
2900 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
2902         * tree-loop-distribution.c: Adjust the general comment.
2903         (NUM_PARTITION_THRESHOLD): New macro.
2904         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
2905         (classify_partition): Skip builtin pattern of loop nest's inner loop.
2906         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
2907         in call to build_partition_graph.
2908         (finalize_partitions): New parameter.  Make loop distribution more
2909         conservative by fusing more partitions.
2910         (distribute_loop): Don't do runtime alias check in case of loop nest
2911         distribution.
2912         (find_seed_stmts_for_distribution): New function.
2913         (prepare_perfect_loop_nest): New function.
2914         (pass_loop_distribution::execute): Refactor code finding seed stmts
2915         and loop nest into above functions.  Support loop nest distribution.
2916         Adjust dump information accordingly.
2918 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
2920         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
2921         and set PTYPE_SEQUENTIAL for merged partition.
2923 2017-10-12  Richard Biener  <rguenther@suse.de>
2925         PR tree-optimization/69728
2926         Revert
2927         2017-09-19  Richard Biener  <rguenther@suse.de>
2929         PR tree-optimization/69728
2930         * graphite-sese-to-poly.c (schedule_error): New global.
2931         (add_loop_schedule): Handle empty domain by failing the
2932         schedule.
2933         (build_original_schedule): Handle schedule_error.
2935         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
2936         domain by returning an unchanged schedule.
2938 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
2940         * genrecog.c (validate_pattern): For VEC_SELECT verify that
2941         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
2943 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
2945         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
2946         Handle params.def.
2948 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
2950         PR c++/82159
2951         * expr.c (store_field): Don't optimize away bitsize == 0 store
2952         from CALL_EXPR with addressable return type.
2954 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
2956         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
2957         * config/rs6000/rs6000.md (sel): Delete mode attribute.
2958         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
2959         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
2960         TARGET_ISEL instead of TARGET_ISEL<sel>.
2962 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
2964         * config/rs6000/rs6000.c
2965         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
2967 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
2969         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
2970         Move up in file.
2971         (reg_or_cint_operand): Fix comment.
2972         (reg_or_zero_operand): New predicate.
2973         * config/rs6000/rs6000-protos.h (output_isel): Delete.
2974         * config/rs6000/rs6000.c (output_isel): Delete.
2975         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
2976         instead of reg_or_cint_operand.  Output instruction directly (not via
2977         output_isel).
2978         (isel_unsigned_<mode>): Ditto.
2979         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
2980         gpc_reg_operand.  Add an instruction alternative for this.  Output
2981         instruction directly.
2982         (*isel_reversed_unsigned_<mode>): Ditto.
2984 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
2986         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
2987         (TARGET_CANONICALIZE_COMPARISON): Define.
2989 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
2991         PR target/81422
2992         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2993         Check whether the dest is REG before adding REG_EQUIV note.
2995 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
2997         PR sanitizer/82353
2998         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
2999         locations.
3000         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
3001         (make_hard_regno_born, make_hard_regno_dead): Update
3002         bb_killed_pseudos and bb_gen_pseudos.
3004 2017-10-11  Nathan Sidwell  <nathan@acm.org>
3006         * incpath.h (enum incpath_kind): Name enum, prefix values.
3007         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
3008         * incpath.c (heads, tails): Use INC_MAX.
3009         (add_env_var_paths, add_standard_paths): Use incpath_kind.
3010         (merge_include_chains, split_quote_chain,
3011         register_include_chains): Update incpath_kind names.
3012         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
3013         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
3014         names.
3015         (add_framework_path, darwin_register_objc_includes): Likewise.
3016         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
3018 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
3020         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
3021         Do not use float_operator operator predicate.
3022         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
3023         * config/i386/predicates.md (float_operator): Remove predicate.
3025 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
3027         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
3028         (*jccxf_i387): Ditto.
3029         (*jcc<mode>_i387): Ditto.
3030         (*jccu<mode>_i387): Ditto.
3031         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
3032         (*jcc_*_i387 splitters): Remove.
3033         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
3034         * config/i386/i386.c (ix86_split_fp_branch): Remove.
3035         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
3036         Remove predicate.
3038 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
3040         * profile-count.h (slow_safe_scale_64bit): New function.
3041         (safe_scale_64bit): New inline.
3042         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
3043         * profile-count.c: Include wide-int.h
3044         (slow_safe_scale_64bit): New.
3046 2017-10-11  Nathan Sidwell  <nathan@acm.org>
3048         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
3049         HAS_DECL_ASSEMBLER_NAME_P.
3050         * gimple-expr.c (gimple_decl_printable_name: Check
3051         HAS_DECL_ASSEMBLER_NAME_P too.
3052         * ipa-utils.h (type_in_anonymous_namespace_p): Check
3053         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
3054         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
3055         * passes.c (rest_of_decl_compilation): Check
3056         HAS_DECL_ASSEMBLER_NAME_P too.
3057         * recog.c (verify_changes): Likewise.
3058         * tree-pretty-print.c (dump_decl_name): Likewise.
3059         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
3061         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
3062         (SET_DECL_ASSEMBLER_NAME): Use it.
3063         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
3064         (COPY_DECL_ASSEMBLER_NAME): Likewise.
3065         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
3067 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
3069         * config.gcc (i386, x86_64): Add extra objects.
3070         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
3071         (ix86_min_insn_size): Declare.
3072         (ix86_issue_rate): Declare.
3073         (ix86_adjust_cost): Declare.
3074         (ia32_multipass_dfa_lookahead): Declare.
3075         (ix86_macro_fusion_p): Declare.
3076         (ix86_macro_fusion_pair_p): Declare.
3077         (ix86_bd_has_dispatch): Declare.
3078         (ix86_bd_do_dispatch): Declare.
3079         (ix86_core2i7_init_hooks): Declare.
3080         (ix86_atom_sched_reorder): Declare.
3081         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
3082         (COSTS_N_BYTES): Move to x86-tune-costs.h.
3083         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
3084         (rip_relative_addr_p): Rename to ...
3085         (ix86_rip_relative_addr_p): ... this one; export.
3086         (memory_address_length): Update.
3087         (ix86_issue_rate): Move to x86-tune-sched.c.
3088         (ix86_flags_dependent): Move to x86-tune-sched.c.
3089         (ix86_agi_dependent): Move to x86-tune-sched.c.
3090         (exact_dependency_1): Move to x86-tune-sched.c.
3091         (exact_store_load_dependency): Move to x86-tune-sched.c.
3092         (ix86_adjust_cost): Move to x86-tune-sched.c.
3093         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
3094         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
3095         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
3096         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
3097         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
3098         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
3099         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
3100         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
3101         (min_insn_size): Rename to ...
3102         (ix86_min_insn_size): ... this one; export.
3103         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
3104         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
3105         (core2i7_first_cycle_multipass_backtrack): Move to
3106         x86-tune-sched-core.c.
3107         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
3108         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
3109         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
3110         (ix86_avoid_jump_mispredicts): Update.
3111         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
3112         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
3113         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
3114         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
3115         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
3116         (MAX_INSN): Move to ix86-tune-sched-bd.c.
3117         (MAX_IMM): Move to ix86-tune-sched-bd.c.
3118         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
3119         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
3120         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
3121         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
3122         (MAX_STORE): Move to ix86-tune-sched-bd.c.
3123         (BIG): Move to ix86-tune-sched-bd.c.
3124         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
3125         (enum insn_path): Move to ix86-tune-sched-bd.c.
3126         (get_mem_group): Move to ix86-tune-sched-bd.c.
3127         (is_cmp): Move to ix86-tune-sched-bd.c.
3128         (dispatch_violation): Move to ix86-tune-sched-bd.c.
3129         (is_branch): Move to ix86-tune-sched-bd.c.
3130         (is_prefetch): Move to ix86-tune-sched-bd.c.
3131         (init_window): Move to ix86-tune-sched-bd.c.
3132         (allocate_window): Move to ix86-tune-sched-bd.c.
3133         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
3134         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
3135         (process_end_window): Move to ix86-tune-sched-bd.c.
3136         (allocate_next_window): Move to ix86-tune-sched-bd.c.
3137         (find_constant): Move to ix86-tune-sched-bd.c.
3138         (get_num_immediates): Move to ix86-tune-sched-bd.c.
3139         (has_immediate): Move to ix86-tune-sched-bd.c.
3140         (get_insn_path): Move to ix86-tune-sched-bd.c.
3141         (get_insn_group): Move to ix86-tune-sched-bd.c.
3142         (count_num_restricted): Move to ix86-tune-sched-bd.c.
3143         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
3144         (add_insn_window): Move to ix86-tune-sched-bd.c.
3145         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
3146         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
3147         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
3148         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
3149         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
3150         (do_dispatch): Move to ix86-tune-sched-bd.c.
3151         (has_dispatch): Move to ix86-tune-sched-bd.c.
3152         * config/i386/t-i386: Add new object files.
3153         * config/i386/x86-tune-costs.h: New file.
3154         * config/i386/x86-tune-sched-atom.c: New file.
3155         * config/i386/x86-tune-sched-bd.c: New file.
3156         * config/i386/x86-tune-sched-core.c: New file.
3157         * config/i386/x86-tune-sched.c: New file.
3159 2017-10-11  Liu Hao  <lh_mouse@126.com>
3161         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
3162         the generic version below instead.
3163         (should_colorize): Recognize Windows consoles as terminals
3164         for MinGW targets.
3165         * pretty-print.c [__MINGW32__] (write_all): New function.
3166         [__MINGW32__] (find_esc_head): Likewise.
3167         [__MINGW32__] (find_esc_terminator): Likewise.
3168         [__MINGW32__] (eat_esc_sequence): Likewise.
3169         [__MINGW32__] (mingw_ansi_fputs): New function that handles
3170         ANSI escape codes.
3171         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
3172         for MinGW targets.
3174 2017-10-11  Richard Biener  <rguenther@suse.de>
3176         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
3177         Properly call analyze_scalar_evolution with the loop of the stmt.
3179 2017-10-11  Richard Biener  <rguenther@suse.de>
3181         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
3182         * tree-core.h (tree_base): Add chrec_var union member.
3183         * tree.h (CHREC_VAR): Remove.
3184         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
3185         * tree-chrec.h (build_polynomial_chrec): Adjust.
3186         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
3187         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
3189 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
3191         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
3192         * match.pd: ... here.
3193         ((T) X == (T) Y): Relax condition.
3195 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
3197         PR tree-optimization/82472
3198         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
3199         comment.
3200         (break_alias_scc_partitions): Update postorder number.
3202 2017-10-11  Martin Liska  <mliska@suse.cz>
3204         PR sanitizer/82490
3205         * opts.c (parse_no_sanitize_attribute): Do not use error_value
3206         variable.
3207         * opts.h (parse_no_sanitize_attribute): Remove last argument.
3209 2017-10-11  Martin Liska  <mliska@suse.cz>
3211         * print-rtl.c (print_insn): Move declaration of idbuf
3212         to same scope as name.
3214 2017-10-11  Martin Liska  <mliska@suse.cz>
3216         Revert r253637:
3218         PR sanitizer/82484
3219         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
3220         volatile arguments.
3222 2017-10-11  Martin Liska  <mliska@suse.cz>
3224         PR sanitizer/82484
3225         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
3226         volatile arguments.
3228 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
3230         * config.gcc (default_gnu_indirect_function): Default to yes for
3231         arm*-*-linux* with glibc.
3233 2017-10-11  Richard Biener  <rguenther@suse.de>
3235         * tree-scalar-evolution.c (get_scalar_evolution): Handle
3236         default-defs and types we do not want to analyze.
3237         (interpret_loop_phi): Replace unreachable code with an assert.
3238         (compute_scalar_evolution_in_loop): Remove and inline ...
3239         (analyze_scalar_evolution_1): ... here, replacing condition with
3240         what makes the intent clearer.  Remove handling of cases
3241         get_scalar_evolution now handles.
3243 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
3245         PR rtl-optimization/81434
3246         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
3247         comment for main loop.  In sched_group_found if, also add checks for
3248         pass and min_cost_group.
3250 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
3252         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
3253         (rs6000_insn_cost): New function.
3254         * config/rs6000/rs6000.md (cost): New attribute.
3256 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
3257             H.J. Lu  <hongjiu.lu@intel.com>
3259         PR target/79565
3260         PR target/82483
3261         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
3262         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
3263         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
3264         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
3265         to OPTION_MASK_ISA_AVX512VL - builtins that have both
3266         OPTION_MASK_ISA_MMX and some other bit set require both
3267         mmx and the ISAs without the mmx bit.
3268         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
3269         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
3270         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
3271         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
3272         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
3273         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
3274         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
3275         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
3276         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
3277         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
3278         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
3279         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
3280         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
3281         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
3282         Add OPTION_MASK_ISA_MMX.
3284 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
3286         * config.gcc (armv7*-*-freebsd*): New target.
3287         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
3289 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
3291         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
3292         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
3293         spot in the file.
3295 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
3297         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
3298         a template parameter.
3299         (WIDE_INT_REF_FOR): Update accordingly.
3300         * tree.h (wi::int_traits <const_tree>): Delete.
3301         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
3302         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
3303         (wi::tree_to_wide_ref): New typedef.
3304         (wi::to_wide): New function.
3305         * calls.c (get_size_range): Use wi::to_wide when operating on
3306         trees as wide_ints.
3307         * cgraph.c (cgraph_node::create_thunk): Likewise.
3308         * config/i386/i386.c (ix86_data_alignment): Likewise.
3309         (ix86_local_alignment): Likewise.
3310         * dbxout.c (stabstr_O): Likewise.
3311         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
3312         * expr.c (const_vector_from_tree): Likewise.
3313         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
3314         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
3315         (fold_negate_expr_1, int_const_binop_1, const_binop)
3316         (fold_convert_const_int_from_real, optimize_bit_field_compare)
3317         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
3318         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
3319         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
3320         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
3321         (fold_not_const, round_up_loc): Likewise.
3322         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
3323         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
3324         (alloca_call_type): Likewise.
3325         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
3326         * godump.c (go_output_typedef): Likewise.
3327         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
3328         * internal-fn.c (get_min_precision): Likewise.
3329         * ipa-cp.c (ipcp_store_vr_results): Likewise.
3330         * ipa-polymorphic-call.c
3331         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
3332         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
3333         (ipa_modify_call_arguments): Likewise.
3334         * match.pd: Likewise.
3335         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
3336         * print-tree.c (print_node_brief, print_node): Likewise.
3337         * stmt.c (expand_case): Likewise.
3338         * stor-layout.c (layout_type): Likewise.
3339         * tree-affine.c (tree_to_aff_combination): Likewise.
3340         * tree-cfg.c (group_case_labels_stmt): Likewise.
3341         * tree-data-ref.c (dr_analyze_indices): Likewise.
3342         (prune_runtime_alias_test_list): Likewise.
3343         * tree-dump.c (dequeue_and_dump): Likewise.
3344         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
3345         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
3346         * tree-pretty-print.c (dump_generic_node): Likewise.
3347         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
3348         (simple_iv_with_niters): Likewise.
3349         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3350         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
3351         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
3352         * tree-ssa-loop-niter.c (split_to_var_and_offset)
3353         (refine_value_range_using_guard, number_of_iterations_ne_max)
3354         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
3355         (get_cst_init_from_scev, record_nonwrapping_iv)
3356         (scev_var_range_cant_overflow): Likewise.
3357         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
3358         * tree-ssa-pre.c (compute_avail): Likewise.
3359         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
3360         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
3361         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
3362         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
3363         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
3364         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
3365         (dump_case_nodes, try_switch_expansion): Likewise.
3366         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
3367         (vect_do_peeling): Likewise.
3368         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
3369         * tree-vect-stmts.c (vectorizable_load): Likewise.
3370         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
3371         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
3372         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
3373         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
3374         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
3375         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
3376         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
3377         (evrp_dom_walker::before_dom_children): Likewise.
3378         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
3379         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
3380         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
3381         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
3382         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
3383         (get_range_pos_neg): Likewise.
3384         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
3385         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
3386         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
3387         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
3388         * config/avr/avr.c (avr_fold_builtin): Likewise.
3389         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
3390         * config/msp430/msp430.c (msp430_attr): Likewise.
3391         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
3392         * config/powerpcspe/powerpcspe-c.c
3393         (altivec_resolve_overloaded_builtin): Likewise.
3394         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
3395         (rs6000_expand_ternop_builtin): Likewise.
3396         * config/rs6000/rs6000-c.c
3397         (altivec_resolve_overloaded_builtin): Likewise.
3398         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
3399         (rs6000_expand_ternop_builtin): Likewise.
3400         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
3402 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
3404         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
3405         when copying loop nest with only one inner loop.
3407 2017-10-10  Richard Biener  <rguenther@suse.de>
3409         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
3410         blocks if SCEV is active.
3411         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
3412         dead code.
3413         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
3414         (scev_initialize): Assert we are not yet initialized.
3416 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
3418         * tree-loop-distribution.c (generate_loops_for_partition): Remove
3419         inner loop's exit stmt by making it always exit the loop, otherwise
3420         we would generate an infinite empty loop.
3422 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
3424         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
3425         renaming variables in new preheader if it's deleted.
3427 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
3429         * tree-loop-distribution.c (struct partition): Remove unused field
3430         loops of the structure.
3431         (partition_alloc, partition_free): Ditto.
3432         (build_rdg_partition_for_vertex): Ditto.
3434 2017-10-09  Jeff Law  <law@redhat.com>
3436         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
3437         return type to match prototype and documentation.
3439 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
3441         * config/rs6000/rs6000.c (processor_costs): Move to ...
3442         * config/rs6000/rs6000.h: ... here.
3443         (rs6000_cost): Declare.
3445 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
3447         * except.c (setjmp_fn): New global variable.
3448         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
3449         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
3450         if DONT_USE_BUILTIN_SETJMP is defined.
3452 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
3454         * target.def (insn_cost): New hook.
3455         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
3456         * doc/tm.texi: Regenerate.
3457         * rtlanal.c (insn_cost): Use the new hook.
3459 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
3461         * combine.c (combine_validate_cost): Compute the new insn_cost,
3462         not just pattern_cost.
3463         (try_combine): Adjust comment.
3465 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
3467         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
3468         insn_cost.
3469         * combine.c (uid_insn_cost): Adjust comment.
3470         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
3471         of insn_rtx_cost
3472         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
3473         * dse.c (find_shift_sequence): Ditto.
3474         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
3475         (bb_valid_for_noce_process_p): Use pattern_cost.
3476         * rtl.h (insn_rtx_cost): Delete.
3477         (pattern_cost): New prototype.
3478         (insn_cost): New prototype.
3479         * rtlanal.c (insn_rtx_cost): Rename to...
3480         (pattern_cost): ... this.
3481         (insn_cost): New.
3483 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
3485         * config/i386/i386.md (*jcc_2): Remove insn pattern.
3486         (*jcc<mode>_0_r_i387): Ditto.
3487         (*jccxf_r_i387): Ditto.
3488         (*jcc<mode>_r_i387): Ditto.
3489         (*jccu<mode>_r_i387): Ditto.
3490         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
3491         (*jcc): Rename from *jcc_1.
3493 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3495         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
3496         deferred rescans after the lvx/stvx recombination pre-pass.
3498 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3500         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
3501         memory operation instruction support.
3502         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
3503         (rs6000-ibm-aix[789]*): Likewise.
3504         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
3505         Document new functions.
3507 2017-10-09  Richard Biener  <rguenther@suse.de>
3509         PR tree-optimization/82397
3510         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
3511         equality only for semantically equal trees.
3513 2017-10-09  Richard Biener  <rguenther@suse.de>
3515         PR tree-optimization/82449
3516         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
3517         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
3518         allow constant addresses.
3519         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
3520         are linear.
3522 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3524         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
3525         flags.
3527 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3529         PR target/82463
3530         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
3531         definitions.
3533 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3535         PR target/82465
3536         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
3538 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
3540         PR target/82464
3541         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
3542         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
3544 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
3546         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
3547         (WI_BINARY_PREDICATE_RESULT): Likewise.
3548         (wi::binary_traits::operator_result): New type.
3549         (wi::binary_traits::predicate_result): Likewise.
3550         (generic_wide_int::operator~, unary generic_wide_int::operator-)
3551         (generic_wide_int::operator==, generic_wide_int::operator!=)
3552         (generic_wide_int::operator&, generic_wide_int::and_not)
3553         (generic_wide_int::operator|, generic_wide_int::or_not)
3554         (generic_wide_int::operator^, generic_wide_int::operator+
3555         (binary generic_wide_int::operator-, generic_wide_int::operator*):
3556         Delete.
3557         (operator~, unary operator-, operator==, operator!=, operator&)
3558         (operator|, operator^, operator+, binary operator-, operator*): New
3559         functions.
3560         * expr.c (get_inner_reference): Use wi::bit_and_not.
3561         * fold-const.c (fold_binary_loc): Likewise.
3562         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
3563         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3564         (bit_value_binop): Likewise.
3565         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3566         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
3567         (extract_range_from_binary_expr_1): Likewise.
3568         (masked_increment): Likewise.
3569         (simplify_bit_ops_using_ranges): Likewise.
3571 2017-10-09  Martin Jambor  <mjambor@suse.cz>
3573         PR hsa/82416
3574         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
3575         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
3576         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
3577         COMPLEX types.
3578         (hsa_fixup_mov_insn_type): New function.
3579         (hsa_op_with_type::get_in_type): Use it.
3580         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
3581         immediates in an assert.
3582         (hsa_op_with_type::extend_int_to_32bit): New method.
3583         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
3584         types.  Convert to dest type if necessary.
3585         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
3586         (reg_for_gimple_ssa): Pass false as min32int to
3587         hsa_type_for_scalar_tree_type.
3588         (gen_hsa_addr): Fixup type when creating addresable temporary.
3589         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
3590         (gen_hsa_unary_operation): Extend operands and convert to dest type if
3591         necessary.  Call hsa_fixup_mov_insn_type.
3592         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
3593         extend operands and convert to dest type if necessary.
3594         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
3595         to dest type if necessary.
3596         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
3597         if conversion nt necessary and size matches.
3598         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
3599         to dest type if necessary.
3600         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
3601         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
3602         necessary.
3603         (gen_hsa_clrsb): Likewise.
3604         (gen_hsa_ffs): Likewise.
3605         (gen_hsa_divmod): Extend operands and convert to dest type if
3606         necessary.
3607         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
3609 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
3611         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
3612         Remove empty default arguments.  Use a brace block as output
3613         statement.
3614         (conditional return): Ditto.
3615         (jump): Ditto.
3616         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
3617         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
3618         Ditto.
3619         (group_ending_nop): Ditto.
3620         (doloop_end): Ditto.
3621         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
3622         (splitters for those): Ditto.
3624 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
3626         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
3627         a conditional jump (and the compare for it) so that pc_rtx is the
3628         last operand.
3629         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
3630         for the deleted and renamed ctr<mode>_internal[234] patterns.
3631         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
3632         Delete second conditional return pattern.
3633         (ctr<mode>_internal2): Delete this second bdnz pattern.
3634         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
3635         (ctr<mode>_internal4): Delete this second bdz pattern.
3637 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
3639         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
3640         (always_initialized_rtx_for_ssa_name_p): New predicate.
3641         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
3642         (finish_out_of_ssa): Free new field of SA.
3643         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
3644         * tree-ssa-coalesce.c: Include tree-ssa.h.
3645         (get_parm_default_def_partitions): Remove extern keyword.
3646         (get_undefined_value_partitions): New function.
3647         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
3648         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
3649         uninitialized bits.
3650         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
3652 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
3654         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
3656 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
3658         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
3659         for targets that preffer 128bit.
3661 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
3663         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
3665 2017-10-08  Olivier Hainque  <hainque@adacore.com>
3667         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
3668         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
3669         prevent DSE.
3670         (thumb_set_return_address): Likewise.
3672 2017-10-08  Olivier Hainque  <hainque@adacore.com>
3674         * common/config/arm/arm-common.c (arm_except_unwind_info):
3675         Handle DWARF2_UNWIND_INFO.
3677 2017-10-07  Michael Collison <michael.collison@arm.com>
3679         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
3680         New pattern.
3682 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3684         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
3685         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
3686         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
3687         defined, force the creation of a new block for a dispatch label.
3689 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
3691         * invoke.texi (Wsuggest-attribute=cold): Document.
3692         * common.opt (Wsuggest-attribute=cold): New
3693         * ipa-pure-const.c (warn_function_cold): New function.
3694         * predict.c (compute_function_frequency): Use it.
3695         * predict.h (warn_function_cold): Declare.
3697 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
3699         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
3700         Update profile.
3702 2017-10-06  Martin Liska  <mliska@suse.cz>
3704         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
3705         keyword for member functions.
3706         (struct sanopt_tree_couple): New struct.
3707         (struct sanopt_tree_couple_hash): New function.
3708         (struct sanopt_ctx): Add new hash_map.
3709         (has_dominating_ubsan_ptr_check): New function.
3710         (record_ubsan_ptr_check_stmt): Likewise.
3711         (maybe_optimize_ubsan_ptr_ifn): Likewise.
3712         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
3713         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
3715 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
3717         PR target/82440
3718         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
3719         aarch64_simd_valid_immediate on CONST_VECTORs.
3720         (aarch64_reg_or_bic_imm): Likewise.
3722 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
3724         PR rtl-optimization/82396
3725         * haifa-sched.c (ready_sort_real): Disable qsort checking.
3727 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
3729         * graphite-dependences.c (scop_get_reads): Move code to...
3730         (scop_get_must_writes): Move code to...
3731         (scop_get_may_writes): Move code to...
3732         (scop_get_reads_and_writes): ... here.
3733         (scop_get_dependences): Call scop_get_reads_and_writes.
3735 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
3737         PR tree-optimization/82434
3738         * fold-const.h (can_native_encode_type_p,
3739         can_native_encode_string_p): Remove.
3740         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
3741         don't encode anything, just return what would be otherwise returned.
3742         (native_encode_fixed, native_encode_complex, native_encode_vector):
3743         Likewise.
3744         (native_encode_string): Likewise.  Inline by hand
3745         can_native_encode_string_p.
3746         (can_native_encode_type_p): Remove.
3747         (can_native_encode_string_p): Remove.
3748         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
3749         STRING_CSTs using can_native_encode_string_p, test all
3750         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
3751         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
3752         argument from native_encode_expr.
3753         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
3754         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
3755         but just 2.
3757 2017-10-06  Richard Biener  <rguenther@suse.de>
3759         PR tree-optimization/82397
3760         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
3761         operand_equal_p but rely on data_ref_compare_tree for detecting
3762         equalities.
3763         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
3764         to match up with dr_group_sort_cmp.
3766 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3768         PR target/82322
3769         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
3770         builtin.
3771         * config/s390/s390-builtin-types.def: Regenerate.
3773 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3775         PR target/82317
3776         * config/s390/s390-builtin-types.def: Regenerate.
3777         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
3778         Change flag from B_VXE to B_VX.
3779         (s390_vec_min_dbl): Remove B_VXE flag.
3781 2017-10-06  Richard Biener  <rguenther@suse.de>
3783         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
3784         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
3785         translate_isl_ast_to_gimple::is_valid_rename,
3786         translate_isl_ast_to_gimple::get_rename,
3787         translate_isl_ast_to_gimple::get_def_bb_for_const,
3788         translate_isl_ast_to_gimple::get_new_name,
3789         translate_isl_ast_to_gimple::collect_all_ssa_names,
3790         translate_isl_ast_to_gimple::copy_loop_phi_args,
3791         translate_isl_ast_to_gimple::collect_all_ssa_names,
3792         translate_isl_ast_to_gimple::copy_loop_phi_args,
3793         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
3794         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
3795         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
3796         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
3797         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
3798         translate_isl_ast_to_gimple::copy_cond_phi_args,
3799         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
3800         translate_isl_ast_to_gimple::edge_for_new_close_phis,
3801         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
3802         translate_isl_ast_to_gimple::rename_uses,
3803         translate_isl_ast_to_gimple::rename_all_uses): Remove.
3804         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
3805         (set_rename_for_each_def): Likewise.
3806         (graphite_copy_stmts_from_block): Handle debug stmt resetting
3807         here.  Handle rewriting SCEV analyzable uses here.
3808         (copy_bb_and_scalar_dependences): Generate code for PHI
3809         copy-in/outs.
3810         (graphite_regenerate_ast_isl): Adjust.
3811         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
3812         (add_write, add_read): New functions.
3813         (build_cross_bb_scalars_def): Use it and simplify.
3814         (build_cross_bb_scalars_use): Likewise.
3815         (graphite_find_cross_bb_scalar_vars): Inline into...
3816         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
3817         simulating out-of-SSA.  Compute liveout and add dependencies.
3818         (build_scops): Force an empty entry block.
3819         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
3820         members.
3821         (sese_build_liveouts): Declare.
3822         (sese_trivially_empty_bb_p): Likewise.
3823         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
3824         compute liveout and debug_liveout.
3825         (sese_bad_liveouts_use): Remove.
3826         (sese_reset_debug_liveouts_bb): Likewise.
3827         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
3828         (sese_build_liveouts): Build liveout and debug_liveout and store
3829         it in region.
3830         (new_sese_info): Adjust.
3831         (free_sese_info): Likewise.
3832         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
3833         do not build liveout here.
3834         (move_sese_in_condition): Adjust region entry.
3835         (scev_analyzable_p): Match up with chrec_apply requirements.
3836         (sese_trivially_empty_bb_p): New.
3837         * tree-into-ssa.c (get_reaching_def): Properly support generating
3838         default-defs for incremental rewrite of anonymous names.
3840 2017-10-06  Richard Biener  <rguenther@suse.de>
3842         * graphite-sese-to-poly.c (extract_affine): For casts increasing
3843         precision do not perform modulo reduction.
3845 2017-10-06  Richard Biener  <rguenther@suse.de>
3847         PR tree-optimization/82436
3848         * tree-vect-slp.c (vect_supported_load_permutation_p): More
3849         conservatively choose the vectorization factor when checking
3850         whether we can perform the required load permutation.
3851         (vect_transform_slp_perm_load): Assert when we may not fail.
3853 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
3855         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
3856         message for incompatible -msdata=* and -mcall-* options.
3858 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
3860         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
3861         rate for post-reload scheduling.
3863 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
3865         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
3867 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
3869         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
3870         to improve monte carlo in scimark.
3872 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
3874         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
3875         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
3876         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
3877         pentium4_cost, nocona_cost): Set reassociation width to 1.
3878         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
3879         width to 2 for fp operations and 1 otherwise.
3880         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
3881         for int and fp.
3882         (atom_cost): Set reassociation width to 2.
3883         (slm_cost, generic_cost): Set fp reassociation width
3884         to 2 and 1 otherwise.
3885         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
3886         (core_cost): Set fp reassociation width to 4 and vector to 2.
3887         (ix86_reassociation_width): Rewrite using cost table; special case
3888         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
3889         and TARGET_AVX128_OPTIMAL.
3890         * config/i386/i386.h (processor_costs): Add
3891         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
3892         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
3893         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
3894         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
3895         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
3896         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
3898 2017-10-05  Nathan Sidwell  <nathan@acm.org>
3900         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
3902 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
3904         * config/arm/arm.c (arm_test_fpu_data): New.
3905         (arm_run_selftests): Call arm_test_fpu_data.
3907 2017-10-04  Nathan Sidwell  <nathan@acm.org>
3909         * toplev.c (toplev::main): Remove excess parens on pretty_printer
3910         decl.
3911         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
3913 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
3915         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
3916         check type for aarch64_simd_valid_immediate.
3917         (aarch64_output_simd_mov_immediate): Update prototype.
3918         (aarch64_simd_valid_immediate): Update prototype.
3919         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
3920         support for ORR-immediate.
3921         (and<mode>3): modified pattern to add support for BIC-immediate.
3922         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
3923         now checks for valid immediate for BIC and ORR based on new enum
3924         argument.
3925         (aarch64_output_simd_mov_immediate): Function now used to output
3926         BIC/ORR imm as well based on new enum argument.
3927         * config/aarch64/constraints.md (Do): New vector immediate constraint.
3928         (Db) : Likewise.
3929         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
3930         (aarch64_reg_or_bic_imm): Likewise.
3932 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3934         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
3935         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
3937 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
3939         Revert r253399:
3941         PR rtl-optimization/82396
3942         * haifa-sched.c (autopref_multipass_init): Simplify
3943         initialization.
3944         (autopref_rank_data): Simplify sort order.
3945         * sched-int.h (autopref_multipass_data_): Remove
3946         multi_mem_insn_p, min_offset and max_offset.
3948 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3950         * doc/sourcebuild.texi: Document vect_peeling_profitable.
3952 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3954         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
3955         vect_doubleint_cvt.
3957 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3959         * doc/sourcebuild.texi: Document vect_long_mult.
3961 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
3963         PR tree-optimization/82413
3964         * fold-const.c (build_range_check): Use widest_int when comparing
3965         the maximum ETYPE value with HIGH.
3967 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
3969         PR rtl-optimization/82396
3970         * haifa-sched.c (autopref_multipass_init): Simplify
3971         initialization.
3972         (autopref_rank_data): Simplify sort order.
3973         * sched-int.h (autopref_multipass_data_): Remove
3974         multi_mem_insn_p, min_offset and max_offset.
3976 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
3978         PR tree-optimization/82381
3979         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
3980         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
3981         is not.
3983         PR tree-optimization/82374
3984         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
3985         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
3986         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
3987         current_function_decl to the new decl.
3989 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3991         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
3992         helper macro for IEEE float128 hardware built-in functions.
3993         (SQRTF128_ODD): Add built-in functions with the round-to-odd
3994         semantics.
3995         (TRUNCF128_ODD): Likewise.
3996         (ADDF128_ODD): Likewise.
3997         (SUBF128_ODD): Likewise.
3998         (MULF128_ODD): Likewise.
3999         (DIVF128_ODD): Likewise.
4000         (FMAF128_ODD): Likewise.
4001         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
4002         UNSPEC_TRUNC_ROUND_TO_ODD.
4003         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
4004         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
4005         floating point round to odd instructions.
4006         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
4007         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
4008         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
4009         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
4010         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
4011         (trunc<mode>sf2_hw): Change the truncate with round to odd
4012         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
4013         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
4014         to odd hardware instructions.
4015         (sub<mode>3_odd): Likewise.
4016         (mul<mode>3_odd): Likewise.
4017         (div<mode>3_odd): Likewise.
4018         (sqrt<mode>2_odd): Likewise.
4019         (fma<mode>4_odd): Likewise.
4020         (fms<mode>4_odd): Likewise.
4021         (nfma<mode>4_odd): Likewise.
4022         (nfms<mode>4_odd): Likewise.
4023         (trunc<mode>df2_odd): Change the truncate with round to odd
4024         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
4025         function.
4026         * doc/extend.texi (PowerPC built-in functions): Update documentation
4027         for existing IEEE float128-bit built-in functions.  Add built-in
4028         functions that generate the IEEE 128-bit floating point round to
4029         odd instructions.
4031 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
4033         PR rtl-optimization/77729
4034         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
4035         to (X&(C1&~C2))|C2 transformations.
4037 2017-10-03  Martin Jambor  <mjambor@suse.cz>
4039         PR tree-optimization/82363
4040         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
4041         mismatch, mark lacc written regardless of racc.
4043 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
4045         PR tree-optimization/82381
4046         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
4047         stmt_to_insert nor wheather SSA_NAMEs are default defs.
4048         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
4049         fallthrough into reassoc_stmt_dominates_stmt_p.
4051         PR target/82386
4052         * combine.c (combine_instructions): Don't combine in unreachable
4053         basic blocks.
4055 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
4057         PR target/80210
4058         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
4059         function to not use the have_cpu variable.  Do not set cpu_index,
4060         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
4061         or the default cpu.
4062         (rs6000_valid_attribute_p): Remove duplicate initializations of
4063         old_optimize and func_optimize.
4064         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
4065         (rs6000_activate_target_options): Make global.
4066         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
4067         prototype.
4069 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
4071         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
4072         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
4073         Set *poffset to 0 and *psize and *pmax_size to -1 if
4074         *poffset + *psize overflows in HOST_WIDE_INT.
4076         PR tree-optimization/82387
4077         PR tree-optimization/82388
4078         PR tree-optimization/82389
4079         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
4080         instead of live_bytes non-NULL.
4082 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
4084         PR target/41076
4085         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
4086         alternative.
4088 2017-10-02  Richard Biener  <rguenther@suse.de>
4090         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
4091         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
4092         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
4094 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
4096         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
4097         requested precision matches the type's.
4098         * calls.c (alloc_max_size): Calculate the new candidate size as
4099         a widest_int and use wi::to_widest when comparing it with the
4100         current candidate size.
4101         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
4102         zero rather than integer_zero_node.
4103         * match.pd: Check for a no-op conversion before using wi::add
4104         rather than after.  Use tree_to_uhwi when summing small shift
4105         counts into an unsigned int.
4107 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
4108             Alan Hayward  <alan.hayward@arm.com>
4109             David Sherwood  <david.sherwood@arm.com>
4111         PR target/71307
4112         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
4113         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4114         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
4115         POINTER_AND_FP_REGS.
4117 2017-10-02  Richard Biener  <rguenther@suse.de>
4119         PR tree-optimization/82355
4120         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
4121         a mapping for the enclosing loop but avoid generating one for
4122         the loop tree root.
4123         (copy_bb_and_scalar_dependences): Remove premature codegen
4124         error on PHIs in blocks duplicated into multiple places.
4125         * graphite-scop-detection.c
4126         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
4127         in the region use it as loop and nest to analyze the DR in.
4128         (try_generate_gimple_bb): Likewise.
4129         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
4130         (add_loop_constraints): For blocks in a loop not in the region
4131         create a dimension with a single iteration.
4132         * sese.h (gbb_loop_at_index): Remove assert.
4134 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
4136         * omp-expand.c (adjust_context_scope): New function.
4137         (expand_parallel_call): Call adjust_context_scope.
4139 2017-10-01  Jeff Law  <law@redhat.com>
4141         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
4142         dom_opt_dom_walker class with direct access to private members.
4143         Add comments.  Call test_for_singularity.
4144         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
4145         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
4146         m_dummy_cond anymore.
4147         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
4148         class ctor.
4149         (pass_dominator:execute): Build the dummy_cond here and pass it
4150         to the dom_opt_dom_walker ctor.
4151         (test_for_singularity): New function.
4153 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
4154             Maya Rashish  <coypu@sdf.org>
4156         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
4157         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
4158         (alpha*-*-netbsd*) Use nbsd_tm_file.
4159         (arm*-*-netbsdelf*) Likewise.
4160         (i[34567]86-*-netbsdelf*) Likewise.
4161         (x86_64-*-netbsd*) Likewise.
4162         (mips*-*-netbsd*) Likewise.
4163         (powerpc-*-netbsd*) Likewise.
4164         (sh*-*-netbsd*) Likewise.
4165         (sparc-*-netbsdelf*) Likewise.
4166         (sparc64-*-netbsd*) Likewise.
4167         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
4168         to tm_defines.
4169         (vax-*-netbsdelf*) Likewise.
4170         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
4171         (UINT_FAST8_TYPE) Likewise.
4172         (INT_FAST16_TYPE) Check CHAR_FAST16.
4173         (UINT_FAST16_TYPE) Likewise.
4175 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
4177         PR target/82361
4178         * config/i386/i386.md
4179         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
4180         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
4181         *divmodsi4_zext_2): New define_insn_and_split.
4182         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
4183         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
4184         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
4185         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
4186         New define_insn_and_split.
4187         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
4188         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
4189         operands[1] having DImode when mode is SImode.
4191         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
4192         always SImode for DIV and MOD in REG_EQUAL notes.
4194 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
4196         PR middle-end/82319
4197         * match.pd: Fix handling of NaNs in pattern.
4199 2017-09-29  Jeff Law  <law@redhat.com>
4201         * sbitmap.c (bitmap_bit_in_range_p): New function.
4202         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
4203         * tree-ssa-dse.c (live_bytes_read): New function.
4204         (dse_classify_store): Ignore reads of dead bytes.
4206         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
4207         typos and whitespace errors.
4208         * config/i386/predicates.md (address_no_seg_operand): Likewise.
4209         * config/s390/s390.c (s390_emit_prologue): Likewise.
4211 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
4213         PR target/81481
4214         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
4215         with a symbol for LRA.
4217 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
4219         PR rtl-optimization/82338
4220         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
4222 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
4224         * genmodes.c (calc_wider_mode): Suppress qsort macro.
4225         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
4226         (qsort_chk): Declare.
4227         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
4228         (qsort_chk): New function.
4230 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4232         PR tree-optimization/82337
4233         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
4234         phi definition if the PHI result appears in an abnormal PHI.
4235         (find_basis_for_base_expr): Don't record a basis if the LHS of the
4236         basis appears in an abnormal PHI.
4238 2017-09-29  Richard Biener  <rguenther@suse.de>
4240         * graphite-isl-ast-to-gimple.c
4241         (translate_isl_ast_to_gimple::set_codegen_error): New function.
4242         (binary_op_to_tree): Use it.
4243         (get_rename_from_scev): Likewise.
4244         (copy_loop_phi_nodes): Likewise.
4245         (copy_bb_and_scalar_dependences): Likewise.
4246         (translate_pending_phi_nodes): Likewise.
4248 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
4250         PR target/82339
4251         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
4252         for movabsq $(i32 << shift), r64.
4254 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
4256         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
4257         index when encoding %esp as %rsp to avoid 0x67 prefix.
4259 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4261         * config/i386/i386.md (*movsf_internal, *movdf_internal):
4262         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
4264 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4266         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
4267         Extensions with more than 16 double VFP registers.
4268         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
4269         to_clear_mask and all code related to it.  Replace the remaining
4270         entry by a sbitmap and adapt code accordingly.
4272 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
4274         * brig-builtins.def: Change pure attributes to const.
4276 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
4278         * config.gcc (default_gnu_indirect_function): Default to yes for
4279         sparc*-*-linux* with glibc.
4281 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
4283         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
4284         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
4285         when creating .init_array and .fini_array sections with priority
4286         specified.
4288 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
4290         PR target/71727
4291         * config/aarch64/aarch64.c
4292         (aarch64_builtin_support_vector_misalignment): Always return false
4293         when misalignment is unknown.
4295 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4297         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
4298         this function to return false if the definition used by the swap
4299         instruction is artificial, or if the memory address from which the
4300         constant value is loaded is not represented by a base address held
4301         in a register or if the base address register is a frame or stack
4302         pointer.  Additionally, return false if the base address of the
4303         loaded constant is a SYMBOL_REF but is not considered to be a
4304         constant.
4305         (replace_swapped_load_constant): New function.
4306         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
4307         loaded constant vector with a load of a swapped constant vector.
4309 2017-09-27  Carl Love  <cel@us.ibm.com>
4311         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
4312         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
4313         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
4314         fctiw instruction.
4316 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
4318         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
4319         first, always call autopref_rank_data otherwise.
4321 2017-09-27  Richard Biener  <rguenther@suse.de>
4323         * graphite-scop-detection.c (find_scop_parameters): Move
4324         loop bound handling ...
4325         (gather_bbs::before_dom_children): ... here, avoiding the need
4326         to build scop_info->loop_nest.
4327         (record_loop_in_sese): Remove.
4328         * sese.h (sese_info_t::loop_nest): Remove.
4329         * sese.c (new_sese_info): Do not allocate loop_nest.
4330         (free_sese_info): Do not free loop_nest.
4332 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
4334         PR c++/82159
4335         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
4336         lhs from calls if the lhs has addressable type.
4338 2017-09-27  Richard Biener  <rguenther@suse.de>
4340         * graphite.h (scop::max_alias_set): New member.
4341         * graphite-scop-detection.c: Remove references to non-existing
4342         --param in comments.
4343         (build_alias_sets): Record the maximum alias set used for drs.
4344         (build_scops): Support zero as unlimited for
4345         --param graphite-max-arrays-per-scop.
4346         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
4347         and inline into ...
4348         (build_poly_sr_1): ... here.  Compute alias set based on the
4349         maximum alias set used for drs rather than
4350         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
4352 2017-09-27  Richard Biener  <rguenther@suse.de>
4354         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
4355         --param loop-block-tile-size=0 to disable tiling.
4357 2017-09-27  Richard Biener  <rguenther@suse.de>
4359         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
4360         (graphite-max-nb-scop-params): Document special value zero.
4361         * domwalk.h (dom_walker::STOP): New symbolical constant.
4362         (dom_walker::dom_walker): Add optional parameter for bb to
4363         RPO mapping.
4364         (dom_walker::~dom_walker): Declare.
4365         (dom_walker::before_dom_children): Document STOP return value.
4366         (dom_walker::m_user_bb_to_rpo): New member.
4367         (dom_walker::m_bb_to_rpo): Likewise.
4368         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
4369         mapping here if not provided by the user.
4370         (dom_walker::~dom_walker): Free bb to RPO mapping if not
4371         provided by the user.
4372         (dom_walker::STOP): Define.
4373         (dom_walker::walk): Do not compute bb to RPO mapping here.
4374         Support STOP return value from before_dom_children to stop
4375         walking.
4376         * graphite-optimize-isl.c (optimize_isl): If the schedule
4377         is the same still generate code if -fgraphite-identity
4378         or -floop-parallelize-all are given.
4379         * graphite-scop-detection.c: Include cfganal.h.
4380         (gather_bbs::gather_bbs): Get and pass through bb to RPO
4381         mapping.
4382         (gather_bbs::before_dom_children): Return STOP for BBs
4383         not in the region.
4384         (build_scops): Compute bb to RPO mapping and pass it to
4385         the domwalk.  Treat --param graphite-max-nb-scop-params=0
4386         as not limiting the number of params.
4387         * graphite.c (graphite_initialize): Remove limit on the
4388         number of basic-blocks in a function.
4389         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
4390         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
4391         default value of 10.
4393 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4395         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
4396         Adjust code to eliminate needing to do the shift right 32-bits
4397         operation after XSCVDPSPN.
4399 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4401         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
4402         ((X / Y) != 0 -> X >= Y): Likewise.
4404 2017-09-26  Carl Love  <cel@us.ibm.com>
4406         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
4407         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
4408         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
4409         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
4410         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
4411         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
4412         definitions and overloading.
4413         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
4414         statement for P9V_BUILTIN_XST_LEN_R.
4415         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
4416         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
4417         define_expand and define_insn for the instructions and builtins.
4418         * doc/extend.texi: Update the built-in documentation file for the new
4419         built-in functions.
4420         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
4421         define_insn for the instructions
4423 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
4425         PR target/39570
4426         * gcc/config/netbsd-protos.h: New file.
4427         * gcc/config/netbsd.c: New file.
4428         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
4429         * gcc/config/t-netbsd: New file.
4430         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
4431         (tmake_file) Add t-netbsd.
4432         (extra_objs) Add netbsd.o.
4434 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
4436         PR fortran/82143
4437         PR fortran/82324
4438         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
4440 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4442         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
4443         sign extension from a vector register to a GPR by doing a 32-bit
4444         direct move and then an EXTSW.
4445         (extendsi<mode>2 splitter): Likewise.
4446         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
4447         right or vector extract after doing XSCVDPSPN.  Use
4448         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
4449         the GPRs.
4450         (movdi_from_sf_zero_ext): Likewise.
4451         (reload_gpr_from_vsxsf): Likewise.
4452         (p8_mfvsrd_4_disf): Delete, no longer used.
4453         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
4454         then needing to move the SFmode to a GPR to use the XSCVDPSP
4455         instruction instead of FRSP and XSCVDPSPN.
4456         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
4457         it is adjacent to the other XSCVSPDP insns.
4458         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
4459         SFmode to be in traditional Altivec registers.
4460         (vsx_xscvdpspn): Eliminate useless alternative constraint.
4461         (vsx_xscvspdpn): Likewise.
4462         (vsx_xscvspdpn_scalar): Likewise.
4464 2017-09-26  Martin Jambor  <mjambor@suse.cz>
4466         * tree-sra.c (compare_access_positions): Put integral types first,
4467         stabilize sorting of integral types, remove conditions putting
4468         non-full-precision integers last.
4469         (sort_and_splice_var_accesses): Disable scalarization if a
4470         non-integert would be represented by a non-full-precision integer.
4472 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
4474         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
4475         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
4476         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
4477         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
4478         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
4479         conditionals inside the function instead of around it.  Call
4480         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
4481         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
4483 2017-09-26  Richard Biener  <rguenther@suse.de>
4485         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
4486         fold in ...
4487         (scop_detection::build_scop_breadth): ... this.  Removed.
4488         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
4489         (scop_detection::harmful_stmt_in_bb): Likewise.
4490         (scop_detection::graphite_can_represent_stmt): Likewise.
4491         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
4492         (scop_detection::can_represent_loop): Remove recursion, fold in ...
4493         (scop_detection::can_represent_loop_1): ... this.  Removed.
4494         (scop_detection::harmful_loop_in_region): Simplify after inlining
4495         the above and remove more quadraticness.
4496         (build_scops): Adjust.
4497         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
4498         quadraticness.
4500 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
4502         PR target/82267
4503         * config/i386/i386.c (ix86_print_operand_address_as): Only test
4504         REGNO (base) == SP_REG if base is a REG.
4506         PR middle-end/35691
4507         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
4508         if it is different SSA_NAME.
4509         (optimize_range_tests_cmp_bitwise): New function.
4510         (optimize_range_tests): Call it.
4512 2017-09-26  Richard Biener  <rguenther@suse.de>
4514         PR tree-optimization/82321
4515         * graphite.c (canonicalize_loop_closed_ssa): Properly check
4516         for the def being inside the loop.
4518 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4520         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
4521         assembler output.
4522         * config/s390/s390-builtins.def: Fix constraint on op4.
4524 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4526         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
4527         independent expanders.
4528         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
4529         ("vec_ordered", "vec_unordered"): New expanders.
4531 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4533         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
4534         for SFmode.
4536 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4538         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
4539         vec_unpacks_lo_v16qi.
4540         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
4542 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4544         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
4545         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
4546         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
4548 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4550         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
4551         predicate.
4552         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
4553         and V16QI.
4554         ("*vec_slb<mode>"): New insn pattern.
4555         ("vec_shr_<mode>"): New expander.
4556         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
4557         and force the shift count operand to V16QImode.
4558         ("vec_srb<mode>"): Set shift count mode to V16QI.
4560 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4562         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
4563         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
4564         ("vec_widen_smult_hi_<mode>"): New expander definitions.
4566 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
4568         PR target/82175
4569         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
4571 2017-09-26  Richard Biener  <rguenther@suse.de>
4573         PR tree-optimization/82320
4574         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
4575         isn't a change.
4577 2017-09-25  Jeff Law  <law@redhat.com>
4579         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
4580         prototype for new argument.
4581         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
4582         mostly extracted from rs6000_emit_allocate_stack.
4583         (rs6000_emit_probe_stack_range_stack_clash): New function.
4584         (rs6000_emit_allocate_stack): Call
4585         rs6000_emit_probe_stack_range_stack_clash as needed.
4586         (rs6000_emit_probe_stack_range): Add additional argument
4587         to call to gen_probe_stack_range{si,di}.
4588         (output_probe_stack_range): New.
4589         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
4590         (output_probe_stack_range_stack_clash): New.
4591         (rs6000_emit_prologue): Emit notes into dump file as requested.
4592         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
4593         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
4594         Add additional operand and pass it to output_probe_stack_range.
4596 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
4598         PR tree-optimization/82163
4599         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
4600         (checking_verify_loop_closed_ssa): New parameter.
4601         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
4602         (check_loop_closed_ssa_stmt): Delete.
4603         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
4604         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
4605         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
4606         changed loops.
4608 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
4610         * brig-builtins.def: Treat HSAIL barrier builtins as
4611         setjmp/longjump style functions.
4613 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
4615         * target.def (constant_alignment): New hook.
4616         * defaults.h (CONSTANT_ALIGNMENT): Delete.
4617         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
4618         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
4619         * doc/tm.texi: Regenerate.
4620         * targhooks.h (default_constant_alignment): Declare.
4621         (constant_alignment_word_strings): Likewise.
4622         * targhooks.c (default_constant_alignment): New function.
4623         (constant_alignment_word_strings): Likewise.
4624         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
4625         instead of CONSTANT_ALIGNMENT.
4626         * varasm.c (align_variable, get_variable_align, build_constant_desc)
4627         (force_const_mem): Likewise.
4628         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
4629         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
4630         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
4631         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4632         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
4633         definition.
4634         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
4635         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4636         constant_alignment_word_strings.
4637         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
4638         (CONSTANT_ALIGNMENT): Likewise.
4639         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4640         (arm_constant_alignment): New function.
4641         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
4642         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4643         constant_alignment_word_strings.
4644         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
4645         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4646         constant_alignment_word_strings.
4647         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
4648         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4649         (cris_constant_alignment): New function.
4650         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
4651         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4652         (epiphany_constant_alignment): New function.
4653         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
4654         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4655         constant_alignment_word_strings.
4656         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
4657         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4658         constant_alignment_word_strings.
4659         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
4660         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4661         constant_alignment_word_strings.
4662         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
4663         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
4664         * config/i386/i386.c (ix86_constant_alignment): Make static.
4665         Use the same interface as the target hook.
4666         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4667         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
4668         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4669         constant_alignment_word_strings.
4670         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
4671         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
4672         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4673         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
4674         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4675         constant_alignment_word_strings.
4676         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
4677         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4678         constant_alignment_word_strings.
4679         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
4680         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4681         constant_alignment_word_strings.
4682         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
4683         * config/microblaze/microblaze.c (microblaze_constant_alignment):
4684         New function.
4685         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4686         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
4687         * config/mips/mips.c (mips_constant_alignment): New function.
4688         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4689         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
4690         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
4691         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4692         (mmix_constant_alignment): Make static.  Use the same interface
4693         as the target hook.
4694         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
4695         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4696         constant_alignment_word_strings.
4697         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
4698         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4699         constant_alignment_word_strings.
4700         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
4701         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4702         constant_alignment_word_strings.
4703         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
4704         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4705         (rs6000_constant_alignment): New function.
4706         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
4707         * config/riscv/riscv.c (riscv_constant_alignment): New function.
4708         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4709         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
4710         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4711         (rs6000_constant_alignment): New function.
4712         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
4713         * config/s390/s390.c (s390_constant_alignment): New function.
4714         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4715         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
4716         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4717         constant_alignment_word_strings.
4718         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
4719         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4720         (sparc_constant_alignment): New function.
4721         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
4722         * config/spu/spu.c (spu_constant_alignment): New function.
4723         (TARGET_CONSTANT_ALIGNMENT): Redefine.
4724         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
4725         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4726         constant_alignment_word_strings.
4727         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
4728         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4729         constant_alignment_word_strings.
4730         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
4731         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
4732         constant_alignment_word_strings.
4733         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
4734         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4735         (visium_constant_alignment): New function.
4736         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
4737         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
4738         (xtensa_constant_alignment): New function.
4739         * system.h (CONSTANT_ALIGNMENT): Poison.
4741 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
4743         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4744         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
4745         (rs6000_builtin_valid_without_lhs): New helper function.
4746         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4747         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
4749 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
4751         * target.h (vec_perm_indices): Use unsigned short rather than
4752         unsigned char.
4753         (auto_vec_perm_indices): Likewise.
4754         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
4755         Use unsigned int rather than unsigned char.
4756         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
4758 2017-09-25  Richard Biener  <rguenther@suse.de>
4760         * cfgloop.h (sort_sibling_loops): Declare.
4761         * cfgloop.c (sort_sibling_loops_cmp): New helper.
4762         (sort_sibling_loops): New function sorting the sibling loop list
4763         in RPO order.
4764         * graphite.c (graphite_transform_loops): Sort sibling loops.
4766 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
4768         * target.def (vec_perm_const_ok): Change sel parameter to
4769         vec_perm_indices.
4770         * optabs-query.c (can_vec_perm_p): Update accordingly.
4771         * doc/tm.texi: Regenerate.
4772         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
4773         auto_vec_perm_indices and remove separate nelt field.
4774         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
4775         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
4776         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
4777         (aarch64_expand_vec_perm_const): Update accordingly.
4778         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
4779         to vec_perm_indices.
4780         * config/arm/arm.c (expand_vec_perm_d): Change perm to
4781         auto_vec_perm_indices and remove separate nelt field.
4782         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
4783         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
4784         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
4785         accordingly.
4786         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
4787         to vec_perm_indices.
4788         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
4789         sel to vec_perm_indices.
4790         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
4791         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
4792         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
4793         Likewise.
4794         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
4795         Likewise.
4797 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
4799         PR debug/82155
4800         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
4801         on the FUNCTION_DECL function context if it has a DIE that is a
4802         declaration.
4804 2017-09-25  Richard Biener  <rguenther@suse.de>
4806         PR tree-optimization/82285
4807         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
4808         enumeral types.
4810 2017-09-25  Tom de Vries  <tom@codesourcery.com>
4812         PR target/80035
4813         PR target/81069
4814         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
4815         noreturn function.
4817 2017-09-25  Richard Biener  <rguenther@suse.de>
4819         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
4820         ISL errors other than isl_error_quota happen.  Dump if the
4821         schedule is the same.
4822         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
4823         errors instead of aborting inside ISL.
4825 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
4827         PR target/80556
4828         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
4829         of libgcc_eh for m64.
4830         * config/i386/darwin64.h: Likewise.
4832 2017-09-25  Richard Biener  <rguenther@suse.de>
4834         PR middle-end/82144
4835         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
4836         attribute for incomplete types nor twice for complete ones.
4838 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
4840         PR target/82267
4841         * config/i386/i386.c (ix86_print_operand_address_as): Encode
4842         %esp as %rsp to avoid 0x67 prefix if there is no index or base
4843         register.
4845 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
4847         PR bootstrap/82306
4848         * config/i386/i386.opt (mprefer-avx256): Use
4849         ix86_target_flags variable.
4850         * config/i386/i386.c (ix86_target_string): Move
4851         -mprefer-avx256 to flag2_opts.
4853 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
4855         PR middle-end/35691
4856         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
4857         and x != -1 | y != -1 into (x & y) != -1.
4859 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
4861         * config.gcc: Add new case statement to set
4862         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
4863         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
4864         s390x-*-linux* case statements.   Added aarch64 to the list of
4865         supported architectures.
4867 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
4869         PR tree-optimization/82289
4870         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
4871         STMT_VINFO_RELEVANT_P.
4873 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
4874             Alan Hayward  <alan.hayward@arm.com>
4875             David Sherwood  <david.sherwood@arm.com>
4877         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
4878         for VR_RANGE only; don't allow VR_ANTI_RANGE.
4879         (extract_range_from_binary_expr_1): Don't call
4880         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
4882 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
4883             Alan Hayward  <alan.hayward@arm.com>
4884             David Sherwood  <david.sherwood@arm.com>
4886         * target.def (preferred_vector_alignment): New hook.
4887         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
4888         hook.
4889         * doc/tm.texi: Regenerate.
4890         * targhooks.h (default_preferred_vector_alignment): Declare.
4891         * targhooks.c (default_preferred_vector_alignment): New function.
4892         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
4893         Expand commentary.
4894         (DR_TARGET_ALIGNMENT): New macro.
4895         (aligned_access_p): Update commentary.
4896         (vect_known_alignment_in_bytes): New function.
4897         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
4898         function.
4899         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
4900         Calculate the misalignment based on the target alignment rather than
4901         the vector size.
4902         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
4903         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
4904         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
4905         the target alignment, rather than masking the element misalignment
4906         with the number of elements in a vector.  Also use the target
4907         alignment when calculating the maximum number of peels.
4908         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
4909         instead of TYPE_ALIGN_UNIT.
4910         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
4911         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
4912         (vect_create_addr_base_for_vector_ref): Update call accordingly.
4913         (vect_create_data_ref_ptr): Likewise.
4914         (vect_setup_realignment): Realign by ANDing with
4915         -DR_TARGET_MISALIGNMENT.
4916         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
4917         the number of peels based on DR_TARGET_ALIGNMENT.
4918         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
4919         with the guaranteed alignment boundary when deciding whether
4920         overrun is OK.
4921         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
4922         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
4923         (ensure_base_align): Remove stmt_info parameter.  Get the
4924         target base alignment from DR_TARGET_ALIGNMENT.
4925         (vectorizable_store): Update call accordingly.   Interpret
4926         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
4927         TYPE_ALIGN_UNIT.
4928         (vectorizable_load): Likewise.
4930 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
4931             Alan Hayward  <alan.hayward@arm.com>
4932             David Sherwood  <david.sherwood@arm.com>
4934         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
4935         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
4936         (vect_enhance_data_refs_alignment): Likewise.
4938 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
4940         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
4941         error.  Only quit immediately if parsing is complete.
4942         (BEGIN): Initialize fatal_err and parse_done.
4943         (begin fpu, end fpu): Check number of arguments.
4944         (begin arch, end arch): Likewise.
4945         (begin cpu, end cpu): Likewise.
4946         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
4947         (optalias): Likewise.
4949 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
4951         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
4952         * config/arm/arm-isa.h: Delete.  Move definitions to ...
4953         * arm-cpus.in: ... here.  Use new feature and fgroup values.
4954         * config/arm/arm.c (arm_option_override): Use lower case for feature
4955         bit names.
4956         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
4957         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
4958         * config/arm/parsecpu.awk (END): Add new command 'isa'.
4959         (isa_pfx): Delete.
4960         (print_isa_bits_for): New function.
4961         (gen_isa): New function.
4962         (gen_comm_data): Use print_isa_bits_for.
4963         (define feature): New keyword.
4964         (define fgroup): New keyword.
4965         * config/arm/t-arm (TM_H): Remove.
4966         (GTM_H): Add arm-isa.h.
4967         (arm-isa.h): Add rule to generate file.
4968         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
4969         case for feature bit names.
4971 2017-09-22  Richard Biener  <rguenther@suse.de>
4973         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
4974         single caller.
4975         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
4976         print of no dependency loops ...
4977         * graphite.c (graphite_transform_loops): ... here.
4978         (canonicalize_loop_closed_ssa_form): Work from inner to outer
4979         loops.
4980         (same_close_phi_node, remove_duplicate_close_phi,
4981         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
4982         (canonicalize_loop_closed_ssa): ... here and simplify.
4983         * graphite-optimize-isl.c: Include tree-vectorizer.h.
4984         (optimize_isl): Use dump_printf_loc to tell when we stopped
4985         optimizing because of an ISL timeout.
4987 2017-09-22  Richard Biener  <rguenther@suse.de>
4989         PR tree-optimization/82291
4990         * tree-if-conv.c (predicate_mem_writes): Make sure to
4991         remove writes in blocks predicated with false.
4993 2017-09-22  Richard Biener  <rguenther@suse.de>
4995         * sese.c: Include cfganal.h.
4996         (if_region_set_false_region): Remove.
4997         (create_if_region_on_edge): Likewise.
4998         (move_sese_in_condition): Re-implement without destroying
4999         dominators.
5001 2017-09-22  Richard Biener  <rguenther@suse.de>
5003         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
5004         Verify both BBs contain loop PHI nodes before dispatching to
5005         copy_loop_phi_args.
5006         (graphite_regenerate_ast_isl): Do not recompute dominators,
5007         do not verify three times.  Restructure for clarity.
5008         * graphite-scop-detection.c (same_close_phi_node,
5009         remove_duplicate_close_phi, make_close_phi_nodes_unique,
5010         defined_in_loop_p, canonicalize_loop_closed_ssa,
5011         canonicalize_loop_closed_ssa_form): Simplify, remove excess
5012         checking and SSA rewrite, move to ...
5013         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
5014         (graphite_initialize): Do not pass in ctx, do not reset the
5015         SCEV cache, compute only dominators.
5016         (graphite_transform_loops): Allocate ISL ctx after
5017         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
5018         Maintain post-dominators only around build_scops.
5019         * sese.c (if_region_set_false_region): Make static.  Free
5020         and recompute dominators.
5021         (move_sese_in_condition): Assert we don't get called with
5022         post-dominators computed.
5023         * sese.h (if_region_set_false_region): Remove.
5025 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
5027         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
5028         mode attribute for TARGET_AVX512VL.
5030 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
5032         * config/i386/i386.opt (mprefer-avx256): New option.
5033         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
5034         to flag_opts.
5035         (ix86_preferred_simd_mode): Return 256-bit AVX modes
5036         for TARGET_PREFER_AVX256.
5037         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
5039 2017-09-21  Jeff Law  <law@redhat.com>
5041         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
5042         Fix dump output if the only stack space is for pushed registers.
5044 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5046         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
5047         of insn_cost.
5049 2017-09-21  Martin Sebor  <msebor@redhat.com>
5051         PR c/81882
5052         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
5053         code (in C++) or code that triggers warnings.
5055 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
5057         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
5059 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
5061         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
5062         * sched-rgn.c: Ditto.
5063         * sel-sched-ir.c: Ditto.
5065 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
5067         * toplev.h (set_random_seed): Adjust return type.
5068         * toplev.c (init_local_tick): Move eager initialization of random_seed
5069         to get_random_seed.  Adjust comment.
5070         (init_random_seed): Inline to get_random_seed, delete.
5071         (get_random_seed): Initialize random_seed lazily.
5072         (set_random_seed): Do not return previous value.
5073         (print_switch_value): Do not call get_random_seed.
5075 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
5077         * cgraph.c (delete_function_version): New, broken out from...
5078         (cgraph_node::delete_function_version): ...here.  Rename to
5079         cgraph_node::delete_function_version_by_decl.  Update all uses.
5080         (cgraph_node::remove): Call delete_function_version.
5082 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
5084         PR sanitizer/81715
5085         * tree-inline.c (expand_call_inline): Emit clobber stmts for
5086         VAR_DECLs to which addressable non-volatile parameters are mapped
5087         and for id->retvar after the return value assignment.  Clear
5088         id->retval and id->retbnd after inlining.
5090 2017-09-21  Richard Biener  <rguenther@suse.de>
5092         PR tree-optimization/82276
5093         PR tree-optimization/82244
5094         * tree-vrp.c (build_assert_expr_for): Set
5095         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
5096         has it set.
5097         (remove_range_assertions): Revert earlier change.
5099 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
5101         PR target/71951
5102         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
5104 2017-09-21  Richard Biener  <rguenther@suse.de>
5106         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
5107         Restore valid IL after code generation errors.
5108         * graphite.c (graphite_transform_loops): Diagnose code
5109         generation issues as MSG_MISSED_OPTIMIZATION and continue
5110         with processing SCOPs.
5112 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5113             Alan Hayward  <alan.hayward@arm.com>
5114             David Sherwood  <david.sherwood@arm.com>
5116         * calls.c (compute_argument_addresses): Use simplify_gen_binary
5117         rather than choosing between plus_constant and gen_rtx_<CODE>.
5118         * expr.c (emit_push_insn): Likewise.
5119         (expand_expr_real_2): Likewise.
5121 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5122             Alan Hayward  <alan.hayward@arm.com>
5123             David Sherwood  <david.sherwood@arm.com>
5125         * loop-unroll.c (split_iv): Call copy_rtx on the step.
5127 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5128             Alan Hayward  <alan.hayward@arm.com>
5129             David Sherwood  <david.sherwood@arm.com>
5131         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
5132         calling tree_to_uhwi.
5134 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5135             Alan Hayward  <alan.hayward@arm.com>
5136             David Sherwood  <david.sherwood@arm.com>
5138         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
5139         INTEGER_CST rather than a negative test for ADDR_EXPR.
5141 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
5142             Alan Hayward  <alan.hayward@arm.com>
5143             David Sherwood  <david.sherwood@arm.com>
5145         * tree-vrp.c (extract_range_from_binary_expr_1): Check
5146         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
5148 2017-09-21  Richard Biener  <rguenther@suse.de>
5150         PR tree-optimization/71351
5151         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
5152         graphite_create_new_loop_guard): Remove, fold remaining parts
5153         into caller ...
5154         (translate_isl_ast_node_for): ... here and simplify.
5156 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
5158         PR target/82260
5159         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
5160         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
5161         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
5162         alternative always use QI mode, for -Os imov (=R,R) alternative
5163         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
5164         ignore -Os.
5166 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5167             Jeff Law  <law@redhat.com>
5169         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
5170         (allocate_stack_space): New function, partially extracted from
5171         s390_emit_prologue.
5172         (s390_emit_prologue): Track offset to most recent stack probe.
5173         Code to allocate space moved into allocate_stack_space.
5174         Dump actions when no stack is allocated.
5175         (s390_prologue_plus_offset): New function.
5176         (s390_emit_stack_probe): Likewise.
5178 2017-09-20  Alexandre Oliva <aoliva@redhat.com>
5180         * common.opt (Wa, Wl, Wp, g, gz=): Add
5181         RejectNegative.
5182         (gno-column-info): Remove.
5183         (gcolumn-info): Drop RejectNegative.
5184         (gno-): New prefix.
5185         (gno-record-gcc-switches): Remove.
5186         (grecord-gcc-switches): Drop RejectNegative.
5187         (gno-split-dwarf): Remove.
5188         (gsplit-dwarf): Drop RejectNegative.
5189         (gno-strict-dwarf): Remove.
5190         (gstrict-dwarf): Drop RejectNegative.
5191         * config/darwin.opt (gfull, gused): Add RejectNegative.
5192         * dwarf2out.c (gen_producer_string): Drop
5193         gno-record-gcc-switches handler.
5194         * optc-gen.awk: Add g to prefixes with negative forms.
5195         * opts-common.c (remapping_prefix_p): New.
5196         (find_opt): Check it.
5197         (generate_canonical_option): Test g prefix.
5198         (option_map): Add -gno- mapping.
5199         (add_misspelling_candidates): Check remapping_prefix_p.
5201 2017-09-20  Jeff Law  <law@redhat.com>
5203         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
5204         thinko in stack clash protection support.
5206         * explow.c (compute_stack_clash_protection_loop_data): Use
5207         CONST_INT_P instead of explicit test.  Verify object is a
5208         CONST_INT_P before looking at INTVAL.
5209         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
5210         instead of explicit test.
5212 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
5214         PR target/77687
5215         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
5216         address instead of to r1 and r11.
5218 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
5220         * config.gcc: Support "knm".
5221         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
5222         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
5223         PROCESSOR_KNM.
5224         * config/i386/i386.c (m_KNM): Define.
5225         (processor_target_table): Add "knm".
5226         (PTA_KNM): Define.
5227         (ix86_option_override_internal): Add "knm".
5228         (ix86_issue_rate): Add PROCESSOR_KNM.
5229         (ix86_adjust_cost): Ditto.
5230         (ia32_multipass_dfa_lookahead): Ditto.
5231         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
5232         (fold_builtin_cpu): Add M_INTEL_KNM.
5233         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
5234         (processor_type): Add PROCESSOR_KNM.
5235         * config/i386/x86-tune.def: Add m_KNM.
5236         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
5238 2017-09-20  Richard Biener  <rguenther@suse.de>
5240         PR tree-optimization/80213
5241         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
5242         are allowed in empty BBs as well.
5243         (canonicalize_loop_closed_ssa): Also look for other complex
5244         edges.
5245         (scop_detection::get_sese): Include the loop-closed PHI block
5246         in loop SESEs.
5247         (scop_detection::merge_sese): Remove code adding extra blocks.
5248         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
5249         (build_scops): Assert the final returned scop is invalid.
5251 2017-09-20  Richard Biener  <rguenther@suse.de>
5253         PR tree-optimization/82264
5254         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
5255         for GIMPLE_CONDs.
5256         (vn_phi_lookup): Likewise.
5257         (vn_phi_insert): Likewise.
5259 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
5261         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
5262         that fits into uhwi or shwi, add DW_AT_const_value regardless
5263         of early_dwarf without going through RTL, using add_AT_unsigned
5264         or add_AT_int.
5266         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
5267         (DEBUG_LTO_ABBREV_SECTION): Likewise.
5268         (DEBUG_LTO_MACINFO_SECTION): Likewise.
5269         (DEBUG_MACRO_SECTION): Likewise.
5270         (DEBUG_LTO_MACRO_SECTION): Likewise.
5271         (DEBUG_STR_DWO_SECTION): Likewise.
5272         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
5273         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
5274         (DEBUG_LTO_DWO_LINE_SECTION): Define.
5275         (DEBUG_LTO_LINE_STR_SECTION): Define.
5276         (init_sections_and_labels): Initialize debug_line_str_section
5277         variable.  Initialize debug_loc_section for -gdwarf-5 to
5278         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
5280 2017-09-20  Richard Biener  <rguenther@suse.de>
5282         * graphite-sese-to-poly.c (extract_affine): Properly handle
5283         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
5285 2017-09-20  Richard Biener  <rguenther@suse.de>
5287         PR tree-optimization/81373
5288         * graphite-scop-detection.c (build_cross_bb_scalars_def):
5289         Force SESE live-out defs to be handled even if they are
5290         scev_analyzable_p.
5292 2017-09-19  Jeff Law  <law@redhat.com>
5294         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
5295         nothing for stack adjustments with REG_STACK_CHECK.
5296         * sched-deps.c (parse_add_or_inc): Reject insns with
5297         REG_STACK_CHECK from dependency breaking.
5298         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
5299         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
5300         * reg-notes.def (STACK_CHECK): New note.
5302         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
5303         (ix86_expand_prologue): Dump stack clash info as needed.
5304         Call ix86_adjust_stack_and_probe_stack_clash as needed.
5306         * function.c (dump_stack_clash_frame_info): New function.
5307         * function.h (dump_stack_clash_frame_info): Prototype.
5308         (enum stack_clash_probes): New enum.
5310         * config/alpha/alpha.c (alpha_expand_prologue): Also check
5311         flag_stack_clash_protection.
5312         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
5313         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
5314         (arm_frame_pointer_required): Likewise.
5315         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
5316         (ia64_expand_prologue): Likewise.
5317         * config/mips/mips.c (mips_expand_prologue): Likewise.
5318         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
5319         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5320         (sparc_flat_expand_prologue): Likewise.
5321         * config/spu/spu.c (spu_expand_prologue): Likewise.
5323         * explow.c: Include "params.h".
5324         (anti_adjust_stack_and_probe_stack_clash): New function.
5325         (get_stack_check_protect): Likewise.
5326         (compute_stack_clash_protection_loop_data): Likewise.
5327         (emit_stack_clash_protection_loop_start): Likewise.
5328         (emit_stack_clash_protection_loop_end): Likewise.
5329         (allocate_dynamic_stack_space): Use get_stack_check_protect.
5330         Use anti_adjust_stack_and_probe_stack_clash.
5331         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
5332         (emit_stack_clash_protection_loop_start): Likewise.
5333         (emit_stack_clash_protection_loop_end): Likewise.
5334         * rtl.h (get_stack_check_protect): Prototype.
5335         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
5336         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
5337         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
5338         Prototype.
5339         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
5340         Add @hook.
5341         * doc/tm.texi: Rebuilt.
5342         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
5343         get_stack_check_protect.
5344         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
5345         * config/arm/arm.c (arm_expand_prologue): Likewise.
5346         (arm_frame_pointer_required): Likewise.
5347         * config/i386/i386.c (ix86_expand_prologue): Likewise.
5348         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5349         * config/mips/mips.c (mips_expand_prologue): Likewise.
5350         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
5351         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5352         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5353         (sparc_flat_expand_prologue): Likewise.
5355         * common.opt (-fstack-clash-protection): New option.
5356         * flag-types.h (enum stack_check_type): Note difference between
5357         -fstack-check= and -fstack-clash-protection.
5358         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
5359         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
5360         * toplev.c (process_options): Issue warnings/errors for cases
5361         not handled with -fstack-clash-protection.
5362         * doc/invoke.texi (-fstack-clash-protection): Document new option.
5363         (-fstack-check): Note additional problem with -fstack-check=generic.
5364         Note that -fstack-check is primarily for Ada and refer users
5365         to -fstack-clash-protection for stack-clash-protection.
5366         Document new params for stack clash protection.
5368 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
5370         * config/i386/i386.c (ix86_split_long_move): Do not handle
5371         address used for LEA in a special way.
5373 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
5375         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
5377 2017-09-19  Martin Sebor  <msebor@redhat.com>
5379         PR c/81854
5380         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
5381         of incompatible types.
5383 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
5385         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
5386         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
5387         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5388         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
5390 2017-09-19  Richard Biener  <rguenther@suse.de>
5392         PR tree-optimization/82244
5393         * tree-vrp.c (remove_range_assertions): Do not propagate
5394         a constant to abnormals but replace the assert with a copy.
5396 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
5398         PR rtl-optimization/57878
5399         PR rtl-optimization/68988
5400         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
5401         avoidance test involving non_reload_pseudos.  Move frequency test
5402         below the general fragmentation avoidance test.
5404 2017-09-19  Richard Biener  <rguenther@suse.de>
5406         PR tree-optimization/69728
5407         * graphite-sese-to-poly.c (schedule_error): New global.
5408         (add_loop_schedule): Handle empty domain by failing the
5409         schedule.
5410         (build_original_schedule): Handle schedule_error.
5412 2017-09-19  Richard Biener  <rguenther@suse.de>
5414         * graphite-scop-detection.c (scop_detection::can_represent_loop):
5415         Do not iterate to sibling loops but only to siblings of inner
5416         loops.
5418 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
5420         PR target/81613
5421         * config/m68k/m68k.md (moveq feeding equality comparison): Check
5422         that the registers are different.
5424 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
5426         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
5427         to processor_model and "amdfam17h" to arch_names_table.
5428         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
5430 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
5432         PR c/82234
5433         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
5435 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5436             Alan Hayward  <alan.hayward@arm.com>
5437             David Sherwood  <david.sherwood@arm.com>
5439         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
5440         with a vec_info *.
5441         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
5442         accordingly.
5443         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
5444         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
5445         vect_schedule_slp_instance.
5446         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
5447         Update call to vect_slp_analyze_node_operations.  Simplify return
5448         value.
5449         (vect_slp_analyze_bb_1): Update call accordingly.
5450         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
5451         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
5452         (vect_schedule_slp): Update call accordingly.
5454 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5455             Alan Hayward  <alan.hayward@arm.com>
5456             David Sherwood  <david.sherwood@arm.com>
5458         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
5459         with types that aren't in fact scalar.
5461 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5463         * tree-vect-slp.c (vect_record_max_nunits): New function,
5464         split out from...
5465         (vect_build_slp_tree_1): ...here.
5466         (vect_build_slp_tree_2): Call it for phis too.
5468 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5470         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
5471         to vect_get_vec_def_for_operand when getting the mask operand.
5473 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5474             Alan Hayward  <alan.hayward@arm.com>
5475             David Sherwood  <david.sherwood@arm.com>
5477         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
5478         bitstart.
5480 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5481             Alan Hayward  <alan.hayward@arm.com>
5482             David Sherwood  <david.sherwood@arm.com>
5484         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
5485         calculation for vector booleans.
5487 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
5488             Alan Hayward  <alan.hayward@arm.com>
5489             David Sherwood  <david.sherwood@arm.com>
5491         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
5492         split out from...
5493         (vect_transform_stmt): ...here.
5494         (vect_analyze_stmt): Use it instead of calling
5495         vectorizable_live_operation directly.
5497 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
5499         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
5500         non-SIMT targets in acc vector loops.
5502 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
5504         * configure.ac: Add arc and check if assembler supports gdwarf2.
5505         * configure: Regenerate.
5507 2017-09-18  Richard Biener  <rguenther@suse.de>
5509         PR tree-optimization/82220
5510         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
5511         epilogue niters from the min_profitable_iters compute.
5513 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
5515         PR target/82145
5516         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
5517         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
5518         (ix86_init_pic_reg): Revert 2017-09-01 changes.
5520 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
5522         PR target/81361
5523         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
5524         switching to a new text section.
5526 2017-09-18  Richard Biener  <rguenther@suse.de>
5528         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
5529         Simplify.
5530         (build_alias_set): Reject aliases with no access function.
5532 2017-09-18  Richard Biener  <rguenther@suse.de>
5534         PR tree-optimization/79622
5535         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
5536         handle PHIs.
5537         (build_cross_bb_scalars_use): Likewise.
5539 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
5541         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
5543 2017-09-18  Alan Modra  <amodra@gmail.com>
5545         PR target/81996
5546         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
5547         stack_pointer_rtx for count 0.  Update comments.  Break up
5548         large rtl expression.
5550 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
5552         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
5553         Increase to 20 bytes.
5554         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
5555         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
5556         or avx version of the stub.
5558 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
5560         PR target/82166
5561         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
5562         compute the minimum stack alignment.  Also update preferred stack
5563         boundary for leaf functions.
5565 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
5567         PR tree-optimization/82228
5568         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
5569         of ncopies.
5571 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5573         * common/config/nds32/nds32-common.c
5574         (nds32_option_optimization_table): Refine formatting.
5575         (nds32_option_optimization_table): Use -fsched-pressure and
5576         -fomit-frame-pointer for specific optimization level.
5578 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
5580         * config/nds32/nds32.c: Refine formatting and comments.
5581         * config/nds32/nds32.h: Likewise.
5582         * config/nds32/nds32.md: Likewise.
5583         * config/nds32/nds32-cost.c: Likewise.
5584         * config/nds32/nds32-isr.c: Likewise.
5585         * config/nds32/nds32-md-auxiliary.c: Likewise.
5586         * config/nds32/nds32-multiple.md: Likewise.
5587         * config/nds32/nds32-predicates.c: Likewise.
5589 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
5590             Jakub Jelinek  <jakub@redhat.com>
5592         Add support for -std=c++2a.
5593         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
5594         or -std=gnu+2a.
5595         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
5597 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
5599         PR target/82066
5600         * doc/extend.texi (Common Function Attributes): Add 
5601         references to ARM, AArch64, and S/390 specific attributes.
5602         (Function Specific Option Pragmas): Add AArch64 and S/390
5603         to list of back ends that support the target pragma.
5605 2017-09-15  Nathan Sidwell  <nathan@acm.org>
5607         * doc/standards.texi: Fix C++17 description.  Update URLs for
5608         C++11 & 14.
5610 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5612         * common.opt (Wcast-align=strict): New warning option.
5613         * doc/invoke.texi: Document -Wcast-align=strict. 
5615 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
5617         * cgraph.h (cgraph_thunk_info): Add comments.
5618         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
5619         assert for VIRTUAL_* arguments stricter.
5621 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
5623         PR tree-optimization/71026
5624         * match.pd: Move RDIV patterns from fold-const.c
5625         * fold-const.c (distribute_real_division): Removed.
5626         (fold_binary_loc): Remove calls to distribute_real_divison.
5628 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
5630         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
5631         c++1z and gnu++1z as deprecated.  Change other references to
5632         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
5633         Change -Wc++1z-compat to -Wc++17-compat.
5634         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
5635         * dwarf2out.c (highest_c_language): Handle C++17.
5636         (gen_compile_unit_die): Likewise.
5638 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
5640         PR rtl-optimization/82192
5641         * combine.c (make_extraction): Don't look through non-paradoxical
5642         SUBREGs or TRUNCATE if pos + len is or might be bigger than
5643         inner's mode.
5645 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
5646             Alan Hayward  <alan.hayward@arm.com>
5647             David Sherwood  <david.sherwood@arm.com>
5649         * target.def (function_arg_offset): New hook.
5650         * targhooks.h (default_function_arg_offset): Declare.
5651         * targhooks.c (default_function_arg_offset): New function.
5652         * function.c (locate_and_pad_parm): Use
5653         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
5654         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
5655         (TARGET_FUNCTION_ARG_OFFSET): ...this.
5656         * doc/tm.texi: Regenerate.
5657         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
5658         * config/spu/spu.c (spu_function_arg_offset): New function.
5659         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
5660         * system.h (FUNCTION_ARG_OFFSET): Poison.
5662 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
5663             Alan Hayard  <alan.hayward@arm.com>
5664             David Sherwood  <david.sherwood@arm.com>
5666         * target.def (truly_noop_truncation): New hook.
5667         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
5668         than TRULY_NOOP_TRUNCATION.
5669         * hooks.h (hook_bool_uint_uint_true): Declare.
5670         * hooks.c (hook_bool_uint_uint_true): New function.
5671         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
5672         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
5673         * doc/tm.texi: Regenerate.
5674         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
5675         rather than TRULY_NOOP_TRUNCATION in comments.
5676         (simplify_comparison): Likewise.
5677         (record_truncated_value): Likewise.
5678         * expmed.c (extract_bit_field_1): Likewise.
5679         (extract_split_bit_field): Likewise.
5680         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
5681         instead of TRULY_NOOP_TRUNCATION.
5682         * function.c (assign_parm_setup_block): Likewise.
5683         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
5684         * rtlhooks.c: Include target.h.
5685         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
5686         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
5687         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
5688         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
5689         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
5690         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
5691         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
5692         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
5693         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
5694         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
5695         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
5696         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
5697         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
5698         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
5699         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
5700         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
5701         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
5702         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
5703         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
5704         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
5705         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
5706         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
5707         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
5708         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
5709         * config/mips/mips.c (mips_truly_noop_truncation): New function.
5710         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5711         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5712         rather than TRULY_NOOP_TRUNCATION in comments.
5713         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
5714         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
5715         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
5716         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
5717         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
5718         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
5719         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
5720         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
5721         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
5722         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
5723         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
5724         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5725         rather than TRULY_NOOP_TRUNCATION in comments.
5726         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
5727         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
5728         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
5729         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
5730         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
5731         TRULY_NOOP_TRUNCATION condition.
5732         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5733         (TRULY_NOOP_TRUNCATION): Delete.
5734         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
5735         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
5736         * config/spu/spu.c (spu_truly_noop_truncation): New function.
5737         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5738         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
5739         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
5740         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
5741         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
5742         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
5743         rather than TRULY_NOOP_TRUNCATION in comments.
5744         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
5745         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
5746         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
5747         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
5748         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
5749         * system.h (TRULY_NOOP_TRUNCATION): Poison.
5751 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
5753         PR target/67591
5754         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
5755         (*cmp_ior): Likewise.
5756         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
5757         (*ior_scc_scc_cmp): Likewise.
5758         (*and_scc_scc): Likewise.
5759         (*and_scc_scc_cmp): Likewise.
5761 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
5762             Alan Hayard  <alan.hayward@arm.com>
5763             David Sherwood  <david.sherwood@arm.com>
5765         * target.def (can_change_mode_class): New hook.
5766         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
5767         (hard_regno_nregs): Likewise.
5768         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
5769         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
5770         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
5771         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
5772         (LOAD_EXTEND_OP): Update accordingly.
5773         * doc/tm.texi: Regenerate.
5774         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
5775         CANNOT_CHANGE_MODE_CLASS.
5776         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
5777         (REG_CAN_CHANGE_MODE_P): ...this new macro.
5778         * combine.c (simplify_set): Update accordingly.
5779         * emit-rtl.c (validate_subreg): Likewise.
5780         * recog.c (general_operand): Likewise.
5781         * regcprop.c (mode_change_ok): Likewise.
5782         * reload1.c (choose_reload_regs): Likewise.
5783         (inherit_piecemeal_p): Likewise.
5784         * rtlanal.c (simplify_subreg_regno): Likewise.
5785         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
5786         instead of CANNOT_CHANGE_MODE_CLASS.
5787         (reload_cse_simplify_operands): Likewise.
5788         * reload.c (push_reload): Use targetm.can_change_mode_class
5789         instead of CANNOT_CHANGE_MODE_CLASS.
5790         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
5791         REG_CANNOT_CHANGE_MODE_P.
5792         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5793         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
5794         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5795         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5796         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5797         (arm_can_change_mode_class): New function.
5798         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
5799         than CANNOT_CHANGE_MODE_CLASS in comments.
5800         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5801         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
5802         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
5803         (ix86_can_change_mode_class): ...this new function, inverting the
5804         sense of the return value.
5805         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5806         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5807         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5808         (ia64_can_change_mode_class): New function.
5809         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5810         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
5811         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
5812         (m32c_can_change_mode_class): ...this new function, inverting the
5813         sense of the return value.
5814         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5815         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5816         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
5817         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
5818         (mips_can_change_mode_class): ...this new function, inverting the
5819         sense of the return value.
5820         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5821         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5822         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5823         (msp430_can_change_mode_class): New function.
5824         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5825         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
5826         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5827         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5828         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5829         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
5830         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5831         (pa_cannot_change_mode_class): Replace with...
5832         (pa_can_change_mode_class): ...this new function, inverting the
5833         sense of the return value.
5834         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
5835         than CANNOT_CHANGE_MODE_CLASS in comments.
5836         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5837         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
5838         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5839         (pdp11_cannot_change_mode_class): Replace with...
5840         (pdp11_can_change_mode_class): ...this new function, inverting the
5841         sense of the return value.
5842         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5843         * config/powerpcspe/powerpcspe-protos.h
5844         (rs6000_cannot_change_mode_class_ptr): Delete.
5845         * config/powerpcspe/powerpcspe.c
5846         (rs6000_cannot_change_mode_class_ptr): Delete.
5847         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5848         (rs6000_option_override_internal): Assign to
5849         targetm.can_change_mode_class instead of
5850         rs6000_cannot_change_mode_class_ptr.
5851         (rs6000_cannot_change_mode_class): Replace with...
5852         (rs6000_can_change_mode_class): ...this new function, inverting the
5853         sense of the return value.
5854         (rs6000_debug_cannot_change_mode_class): Replace with...
5855         (rs6000_debug_can_change_mode_class): ...this new function.
5856         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5857         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
5858         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5859         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5860         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
5861         Delete.
5862         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
5863         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5864         (rs6000_option_override_internal): Assign to
5865         targetm.can_change_mode_class instead of
5866         rs6000_cannot_change_mode_class_ptr.
5867         (rs6000_cannot_change_mode_class): Replace with...
5868         (rs6000_can_change_mode_class): ...this new function, inverting the
5869         sense of the return value.
5870         (rs6000_debug_cannot_change_mode_class): Replace with...
5871         (rs6000_debug_can_change_mode_class): ...this new function.
5872         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5873         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
5874         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
5875         (s390_can_change_mode_class): ...this new function, inverting the
5876         sense of the return value.
5877         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5878         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5879         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
5880         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5881         (sh_cannot_change_mode_class): Replace with...
5882         (sh_can_change_mode_class): ...this new function, inverting the
5883         sense of the return value.
5884         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5885         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5886         (sparc_can_change_mode_class): New function.
5887         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5888         * config/spu/spu.c (spu_can_change_mode_class): New function.
5889         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5890         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
5891         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
5892         (visium_can_change_mode_class): New function.
5893         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
5895 2017-09-15  Richard Biener  <rguenther@suse.de>
5897         PR tree-optimization/82217
5898         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
5899         but not undefined case.
5901 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
5903         PR target/82145
5904         * postreload.c (reload_cse_simplify_operands): Skip
5905         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
5907 2017-09-15  Richard Biener  <rguenther@suse.de>
5909         PR tree-optimization/68823
5910         * graphite-scop-detection.c (build_alias_set): If we have a
5911         possible dependence check whether we can handle them by just
5912         looking at the DRs DR_ACCESS_FNs.
5913         (build_scops): If build_alias_set fails, fail the SCOP.
5915 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5917         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
5918         to support float128 built-in functions that require the ISA 3.0
5919         hardware.
5920         (BU_FLOAT128_3_HW): Likewise.
5921         (SQRTF128): Add support for the IEEE 128-bit square root and fma
5922         built-in functions.
5923         (FMAF128): Likewise.
5924         (FMAQ): Likewise.
5925         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
5926         support for built-in functions that need the ISA 3.0 IEEE 128-bit
5927         floating point instructions.
5928         (rs6000_invalid_builtin): Likewise.
5929         (rs6000_builtin_mask_names): Likewise.
5930         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
5931         (RS6000_BTM_FLOAT128_HW): Likewise.
5932         (RS6000_BTM_COMMON): Likewise.
5933         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
5934         function.
5935         * doc/extend.texi (RS/6000 built-in functions): Document the
5936         IEEE 128-bit floating point square root and fused multiply-add
5937         built-in functions.
5939 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
5941         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
5942         reg (r2) isn't in the set of registers defined in the prologue.
5944 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
5945             Alan Hayward  <alan.hayward@arm.com>
5946             David Sherwood  <david.sherwood@arm.com>
5948         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
5949         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
5950         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
5951         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
5952         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
5953         accordingly.
5954         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
5955         max_vectorization_factor.
5956         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
5958 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
5959             Alan Hayward  <alan.hayward@arm.com>
5960             David Sherwood  <david.sherwood@arm.com>
5962         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
5963         (vect_worthwhile_without_simd_p): Declare.
5964         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
5965         (vectorizable_reduction): Use it.
5966         * tree-vect-stmts.c (vectorizable_shift): Likewise.
5967         (vectorizable_operation): Likewise.
5969 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
5970             Alan Hayward  <alan.hayward@arm.com>
5971             David Sherwood  <david.sherwood@arm.com>
5973         * tree-vectorizer.h (vect_get_num_copies): New function.
5974         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
5975         * tree-vect-loop.c (vectorizable_reduction): Likewise.
5976         (vectorizable_induction): Likewise.
5977         (vectorizable_live_operation): Likewise.
5978         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
5979         (vectorizable_bswap): Likewise.
5980         (vectorizable_call): Likewise.
5981         (vectorizable_conversion): Likewise.
5982         (vectorizable_assignment): Likewise.
5983         (vectorizable_shift): Likewise.
5984         (vectorizable_operation): Likewise.
5985         (vectorizable_store): Likewise.
5986         (vectorizable_load): Likewise.
5987         (vectorizable_condition): Likewise.
5988         (vectorizable_comparison): Likewise.
5989         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
5991 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
5992             Alan Hayward  <alan.hayward@arm.com>
5993             David Sherwood  <david.sherwood@arm.com>
5995         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
5996         of vect_init_vector.
5998 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
5999             Alan Hayward  <alan.hayward@arm.com>
6000             David Sherwood  <david.sherwood@arm.com>
6002         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
6003         an inline wrapper that provides a location.
6004         (gimple_build_vector): Likewise.
6005         * gimple-fold.c (gimple_build_vector_from_val): New function.
6006         (gimple_build_vector): Likewise.
6007         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
6008         functions to build the initial value.  Always return a gimple value.
6009         (get_initial_defs_for_reduction): Likewise.  Only compute
6010         neutral_vec once.
6011         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
6012         vect_init_vector on the results from get_initial_def(s)_for_reduction.
6013         (vectorizable_induction): Use gimple_build_vector rather than
6014         vect_init_vector.
6016 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
6017             Alan Hayward  <alan.hayward@arm.com>
6018             David Sherwood  <david.sherwood@arm.com>
6020         * target.h (vec_perm_indices): New typedef.
6021         (auto_vec_perm_indices): Likewise.
6022         * optabs-query.h: Include target.h
6023         (can_vec_perm_p): Take a vec_perm_indices *.
6024         * optabs-query.c (can_vec_perm_p): Likewise.
6025         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
6026         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
6027         * tree-vect-generic.c (lower_vec_perm): Likewise.
6028         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
6029         (vect_grouped_load_supported): Likewise.
6030         (vect_shift_permute_load_chain): Likewise.
6031         (vect_permute_store_chain): Use auto_vec_perm_indices.
6032         (vect_permute_load_chain): Likewise.
6033         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
6034         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
6035         Update uses of can_vec_perm_p.
6036         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
6037         mode with a number of elements.  Take a vec_perm_indices *.
6038         (vect_create_epilog_for_reduction): Update accordingly.
6039         Use auto_vec_perm_indices.
6040         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
6041         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
6042         (vect_transform_slp_perm_load): Likewise.
6043         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
6044         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
6045         (vect_gen_perm_mask_checked): Likewise.
6046         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
6047         (vect_gen_perm_mask_checked): Likewise.
6048         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
6049         (vectorizable_store): Likewise.
6050         (vectorizable_load): Likewise.
6051         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
6052         (vectorizable_bswap): Likewise.
6054 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
6055             Alan Hayward  <alan.hayward@arm.com>
6056             David Sherwood  <david.sherwood@arm.com>
6058         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
6059         * tree.c (build_vector): Likewise.
6060         (build_vector_from_ctor): Update accordingly.
6061         (build_vector_from_val): Likewise.
6062         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
6063         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
6064         * tree-vect-generic.c (add_rshift): Likewise.
6065         (expand_vector_divmod): Likewise.
6066         (optimize_vector_constructor): Likewise.
6067         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6068         (vect_transform_slp_perm_load): Likewise.
6069         (vect_schedule_slp_instance): Likewise.
6070         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
6071         (vectorizable_call): Likewise.
6072         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
6073         * expmed.c (make_tree): Likewise.
6074         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
6075         a vector passed to build_vector.
6076         (fold_convert_const): Likewise.
6077         (exact_inverse): Likewise.
6078         (fold_ternary_loc): Likewise.
6079         (fold_relational_const): Likewise.
6080         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
6081         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
6082         (const_unop): Likewise.  Store the reduction accumulator in a
6083         variable rather than an array.
6084         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
6085         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
6086         the new vector, rather than constructing it after the input arrays.
6087         (native_interpret_vector): Use auto_vec<tree> when building
6088         a vector passed to build_vector.  Add elements in order.
6089         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
6090         auto_vec<tree> when building a vector passed to build_vector.
6091         (vect_create_epilog_for_reduction): Likewise.
6092         (vectorizable_induction): Likewise.
6093         (get_initial_def_for_reduction): Likewise.  Fix indentation of
6094         case statements.
6095         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
6096         to a vec<tree> *.
6097         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
6098         passed to build_vector.
6100 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
6101             Alan Hayward  <alan.hayward@arm.com>
6102             David Sherwood  <david.sherwood@arm.com>
6104         * tree-core.h (tree_base::u): Add an "nelts" field.
6105         (tree_vector): Use VECTOR_CST_NELTS as the length.
6106         * tree.c (tree_size): Likewise.
6107         (make_vector): Initialize VECTOR_CST_NELTS.
6108         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
6109         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
6110         TYPE_VECTOR_SUBPARTS.
6111         * expr.c (const_vector_mask_from_tree): Consistently use "units"
6112         as the number of units, setting it from VECTOR_CST_NELTS.
6113         (const_vector_from_tree): Likewise.
6114         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
6115         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
6116         (fold_negate_expr_1): Likewise.
6117         (fold_convert_const): Likewise.
6118         (const_binop): Likewise.  Differentiate the number of output and
6119         input elements.
6120         (const_unop): Likewise.
6121         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
6122         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
6123         in cases that did the opposite.
6125 2017-09-14  Richard Biener  <rguenther@suse.de>
6127         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
6128         to VN_TOP.
6130 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
6132         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
6134 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
6136         PR target/81325
6137         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
6138         if and where to split a bb, except for splitting before debug insn
6139         sequences followed by non-label real insn.  Delete debug insns
6140         in between basic blocks.
6142         * combine.c (make_compound_operation_int): Formatting fixes.
6144         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
6145         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6146         * config/netbsd.h (LINK_EH_SPEC): Likewise.
6147         * config/sol2.h (LINK_EH_SPEC): Likewise.
6148         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6149         * config/s390/linux.h (LINK_SPEC): Likewise.
6150         * config/freebsd.h (LINK_EH_SPEC): Likewise.
6151         * config/openbsd.h (LINK_EH_SPEC): Likewise.
6152         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6153         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
6154         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
6155         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6156         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
6157         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
6159 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
6161         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
6162         support.
6163         (ENDFILE_LINUX_SPEC): Likewise.
6164         (LINK_EH_SPEC): Likewise.
6165         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
6166         (LINK_OS_LINUX_SPEC32): Likewise.
6167         (LINK_OS_LINUX_SPEC64): Likewise.
6168         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
6169         (LINK_OS_LINUX_SPEC): Likewise.
6171 2017-09-13  Martin Liska  <mliska@suse.cz>
6173         PR middle-end/82154
6174         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
6175         CASE_HIGH is NULL_TREE.
6177 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
6178             Alan Hayward  <alan.hayward@arm.com>
6179             David Sherwood  <david.sherwood@arm.com>
6181         * target.def (secondary_memory_needed): New hook.
6182         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
6183         instead of SECONDARY_MEMORY_NEEDED.
6184         (secondary_memory_needed_mode): Likewise.
6185         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
6186         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
6187         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
6188         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
6189         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
6190         * doc/tm.texi: Regenerate.
6191         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
6192         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
6193         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6194         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
6195         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
6196         * config/i386/i386.c (inline_secondary_memory_needed): Put the
6197         mode argument first and change the reg_class arguments to reg_class_t.
6198         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
6199         Make static.  Update the call to inline_secondary_memory_needed.
6200         (ix86_register_move_cost): Update the call to
6201         inline_secondary_memory_needed.
6202         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6203         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
6204         definition.
6205         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
6206         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
6207         in comment.
6208         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
6209         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
6210         * config/mips/mips.c (mips_secondary_memory_needed): Make static
6211         and match hook interface.  Add comment from mips.h.
6212         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6213         * config/mmix/mmix.md (truncdfsf2): Refer to
6214         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
6215         in comment.
6216         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
6217         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
6218         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6219         (pa_secondary_memory_needed): New function.
6220         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
6221         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
6222         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6223         (pdp11_secondary_memory_needed): Make static and match hook interface.
6224         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
6225         * config/powerpcspe/powerpcspe-protos.h
6226         (rs6000_secondary_memory_needed_ptr): Delete.
6227         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
6228         Delete.
6229         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6230         (rs6000_option_override_internal): Assign to
6231         targetm.secondary_memory_needed rather than
6232         rs6000_secondary_memory_needed_ptr.
6233         (rs6000_secondary_memory_needed): Match hook interface.
6234         (rs6000_debug_secondary_memory_needed): Likewise.
6235         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
6236         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
6237         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
6238         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6239         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
6240         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
6241         Delete.
6242         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
6243         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6244         (rs6000_option_override_internal): Assign to
6245         targetm.secondary_memory_needed rather than
6246         rs6000_secondary_memory_needed_ptr.
6247         (rs6000_secondary_memory_needed): Match hook interface.
6248         (rs6000_debug_secondary_memory_needed): Likewise.
6249         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
6250         * config/s390/s390.c (s390_secondary_memory_needed): New function.
6251         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6252         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
6253         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
6254         (sparc_secondary_memory_needed): New function.
6255         * lra-constraints.c (check_and_process_move): Refer to
6256         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
6257         in comment.
6258         (curr_insn_transform): Likewise.
6259         (process_alt_operands): Use targetm.secondary_memory_needed
6260         instead of TARGET_SECONDARY_MEMORY_NEEDED.
6261         (check_secondary_memory_needed_p): Likewise.
6262         (choose_split_class): Likewise.
6263         * reload.c: Unconditionally include code that was previously
6264         conditional on SECONDARY_MEMORY_NEEDED.
6265         (push_secondary_reload): Use targetm.secondary_memory_needed
6266         instead of TARGET_SECONDARY_MEMORY_NEEDED.
6267         (push_reload): Likewise.
6268         * reload1.c: Unconditionally include code that was previously
6269         conditional on SECONDARY_MEMORY_NEEDED.
6270         (choose_reload_regs): Use targetm.secondary_memory_needed
6271         instead of TARGET_SECONDARY_MEMORY_NEEDED.
6272         (gen_reload): Likewise.
6273         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
6275 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
6276             Alan Hayward  <alan.hayward@arm.com>
6277             David Sherwood  <david.sherwood@arm.com>
6279         * target.def (secondary_memory_needed_mode): New hook:
6280         * targhooks.c (default_secondary_memory_needed_mode): Declare.
6281         * targhooks.h (default_secondary_memory_needed_mode): New function.
6282         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
6283         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
6284         * doc/tm.texi: Regenerate.
6285         * lra-constraints.c (check_and_process_move): Use
6286         targetm.secondary_memory_needed_mode instead of
6287         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
6288         (curr_insn_transform): Likewise.
6289         * reload.c (get_secondary_mem): Likewise.
6290         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
6291         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
6292         function.
6293         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
6294         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
6295         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
6296         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
6297         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
6298         Delete.
6299         * config/powerpcspe/powerpcspe-protos.h
6300         (rs6000_secondary_memory_needed_mode): Delete.
6301         * config/powerpcspe/powerpcspe.c
6302         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
6303         (rs6000_secondary_memory_needed_mode): Make static.
6304         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
6305         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
6306         Delete.
6307         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
6308         Redefine.
6309         (rs6000_secondary_memory_needed_mode): Make static.
6310         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
6311         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
6312         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
6313         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
6314         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
6315         Redefine.
6316         (sparc_secondary_memory_needed_mode): New function.
6317         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
6319 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
6321         * config/aarch64/constraints.md (Umq): New constraint.
6322         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
6323         Change to use Umq.
6324         (mov<mode>): Update condition.
6326 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6328         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
6329         when bitposition is the same.
6331 2017-09-13  Richard Biener  <rguenther@suse.de>
6333         * dwarf2out.c (output_die_symbol): Remove.
6334         (output_die): Do not output a DIEs symbol.
6336 2017-09-13  Richard Biener  <rguenther@suse.de>
6338         PR middle-end/82128
6339         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
6340         default-def to avoid breaking iterator update with the weird
6341         interaction with cgraph_update_edges_for_call_stmt_node.
6343 2017-09-13  Richard Biener  <rguenther@suse.de>
6345         * tree-cfg.c (verify_gimple_assign_binary): Add verification
6346         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
6347         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
6348         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
6350 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
6352         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
6353         Disable pc relative literal load irrespective of
6354         TARGET_FIX_ERR_A53_84341 for default.
6356 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
6358         * config/sparc/sparc.c (output_return): Output the source location of
6359         the insn in the delay slot, if any.
6360         (output_sibcall): Likewise.
6362 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
6364         PR driver/81498
6365         * common.opt (-static-pie): New alias.
6366         (shared): Negate static-pie.
6367         (-no-pie): Update help text.
6368         (-pie): Likewise.
6369         (static-pie): New option.
6370         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
6371         -static-pie support.
6372         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
6373         (LINK_EH_SPEC): Likewise.
6374         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
6375         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
6376         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
6377         * gcc.c (LINK_COMMAND_SPEC): Likewise.
6378         (init_gcc_specs): Likewise.
6379         (init_spec): Likewise.
6380         (display_help): Update help message for -pie.
6381         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
6382         -static-pie.
6384 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
6386         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
6387         (movdi_aarch64): Likewise.
6388         (movti_aarch64): Likewise.
6390 2017-09-12 Simon Wright <simon@pushface.org>
6392         PR target/80204
6393         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
6394         calculation of the minor version, always output as 0.
6396 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
6398         PR target/82112
6399         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
6400         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
6401         on it early, rather than manual conversion late.  For
6402         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
6403         instead of performing manual conversion.
6405 2017-09-12  Carl Love  <cel@us.ibm.com>
6407         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
6408         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
6409         vmulouw, vmulosw.
6410         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
6411         VMULOSW): Add definitions.
6412         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6413         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
6414         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
6415         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
6416         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
6418 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
6420         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
6421         types correctly.
6422         (movti_aarch64): Likewise.
6423         (movdf_aarch64): Likewise.
6424         (movtf_aarch64): Likewise.
6425         (load_pairdi): Likewise.
6426         (store_pairdi): Likewise.
6427         (load_pairdf): Likewise.
6428         (store_pairdf): Likewise.
6429         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
6430         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
6431         (ldr_got_small_<mode>): Likewise.
6432         (ldr_got_small_28k_<mode>): Likewise.
6433         (ldr_got_tiny): Likewise.
6434         * config/aarch64/iterators.md (ldst_sz): New.
6435         (ldpstp_sz): Likewise.
6436         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
6437         to store_16.
6438         (thunderx_load): Split load_8 to load_16.
6439         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
6440         load_8 to load_16.
6441         (thunderx2t99_storepair_basic): Split store_8 to store_16.
6442         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
6443         (xgene1_store_pair): Split store_8 to store_16.
6444         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
6445         (falkor_st_0_st_sd): Split store_8 to store_16.
6447 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
6449         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
6450         and store1/2/3/4 to store_4/8/12/16.
6451         * config/aarch64/aarch64.md: Update for rename.
6452         * config/arm/arm.md: Likewise.: Likewise.
6453         * config/arm/arm.c: Likewise.
6454         * config/arm/thumb1.md: Likewise.
6455         * config/arm/thumb2.md: Likewise.
6456         * config/arm/vfp.md: Likewise.
6457         * config/arm/arm-generic.md: Likewise.
6458         * config/arm/arm1020e.md: Likewise.
6459         * config/arm/arm1026ejs.md: Likewise.
6460         * config/arm/arm1136jfs.md: Likewise.
6461         * config/arm/arm926ejs.md: Likewise.
6462         * config/arm/cortex-a15.md: Likewise.
6463         * config/arm/cortex-a17.md: Likewise.
6464         * config/arm/cortex-a5.md: Likewise.
6465         * config/arm/cortex-a53.md: Likewise.
6466         * config/arm/cortex-a57.md: Likewise.
6467         * config/arm/cortex-a7.md: Likewise.
6468         * config/arm/cortex-a8.md: Likewise.
6469         * config/arm/cortex-a9.md: Likewise.
6470         * config/arm/cortex-m4.md: Likewise.
6471         * config/arm/cortex-m7.md: Likewise.
6472         * config/arm/cortex-r4.md: Likewise.
6473         * config/arm/exynos-m1.md: Likewise.
6474         * config/arm/fa526.md: Likewise.
6475         * config/arm/fa606te.md: Likewise.
6476         * config/arm/fa626te.md: Likewise.
6477         * config/arm/fa726te.md: Likewise.
6478         * config/arm/fmp626.md: Likewise.
6479         * config/arm/iwmmxt.md: Likewise.
6480         * config/arm/ldmstm.md: Likewise.
6481         * config/arm/marvell-pj4.md: Likewise.
6482         * config/arm/xgene1.md: Likewise.
6483         * config/aarch64/thunderx.md: Likewise.
6484         * config/aarch64/thunderx2t99.md: Likewise.
6485         * config/aarch64/falkor.md: Likewise.
6487 2017-09-12  Martin Liska  <mliska@suse.cz>
6489         * attribs.c (private_lookup_attribute): New function.
6490         * attribs.h (private_lookup_attribute): Declared here.
6491         (lookup_attribute): Called from this place.
6493 2017-09-12  Richard Biener  <rguenther@suse.de>
6495         PR tree-optimization/82157
6496         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
6497         stmts with side-effects.
6499 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6500             Alan Hayward  <alan.hayward@arm.com>
6501             David Sherwood <david.sherwood@arm.com>
6503         * target.def (hard_regno_nregs): New hook.
6504         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
6505         * targhooks.h (default_hard_regno_nregs): Declare.
6506         * targhooks.c (default_hard_regno_nregs): New function.
6507         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
6508         (TARGET_HARD_REGNO_NREGS): ...this hook.
6509         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
6510         (CLASS_MAX_NREGS): Likewise.
6511         * doc/tm.texi: Regenerate.
6512         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
6513         instead of HARD_REGNO_NREGS.
6514         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
6515         HARD_REGNO_NREGS in the comment.
6516         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
6517         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
6518         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
6519         Return an unsigned int.
6520         (TARGET_HARD_REGNO_NREGS): Redefine.
6521         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
6522         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
6523         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
6524         (arc_hard_regno_nregs): New function.
6525         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
6526         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
6527         (arm_hard_regno_nregs): New function.
6528         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
6529         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
6530         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
6531         (TARGET_HARD_REGNO_NREGS): Redefine.
6532         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
6533         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
6534         (HARD_REGNO_NREGS): Delete.
6535         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
6536         (cr16_hard_regno_nregs): New function.
6537         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
6538         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
6539         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
6540         (cris_hard_regno_nregs): New function.
6541         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
6542         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
6543         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
6544         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
6545         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
6546         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
6547         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
6548         (frv_hard_regno_nregs): Make static.  Take and return an
6549         unsigned int.
6550         (frv_class_max_nregs): Remove outdated copy of documentation.
6551         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
6552         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
6553         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
6554         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
6555         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
6556         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
6557         (TARGET_HARD_REGNO_NREGS): Redefine.
6558         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
6559         (CLASS_MAX_NREGS): Update comment.
6560         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
6561         (ia64_hard_regno_nregs): New function.
6562         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
6563         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
6564         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
6565         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
6566         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
6567         an unsigned int.
6568         (m32c_hard_regno_nregs): Likewise.  Make static.
6569         (TARGET_HARD_REGNO_NREGS): Redefine.
6570         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
6571         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
6572         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
6573         (m68k_hard_regno_nregs): New function.
6574         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
6575         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
6576         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
6577         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
6578         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
6579         Take and return an unsigned int.
6580         (TARGET_HARD_REGNO_NREGS): Redefine.
6581         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
6582         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
6583         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
6584         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
6585         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
6586         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
6587         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
6588         (msp430_hard_regno_nregs): Make static.  Take and return an
6589         unsigned int.
6590         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
6591         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
6592         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
6593         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
6594         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
6595         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
6596         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
6597         (TARGET_HARD_REGNO_NREGS): Redefine.
6598         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
6599         (PA_HARD_REGNO_NREGS): ...this.
6600         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
6601         (PA_HARD_REGNO_NREGS): ...this.
6602         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
6603         (pa_hard_regno_nregs): New function.
6604         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
6605         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
6606         (pdp11_hard_regno_nregs): New function.
6607         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
6608         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
6609         (rs6000_hard_regno_nregs_hook): New function.
6610         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
6611         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
6612         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
6613         Take and return an unsigned int.  Move earlier in file.
6614         (TARGET_HARD_REGNO_NREGS): Redefine.
6615         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
6616         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
6617         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
6618         (rl78_hard_regno_nregs): Make static.  Take and return an
6619         unsigned int.
6620         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
6621         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
6622         (rs6000_hard_regno_nregs_hook): New function.
6623         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
6624         * config/rx/rx.c (rx_hard_regno_nregs): New function.
6625         (TARGET_HARD_REGNO_NREGS): Redefine.
6626         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
6627         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
6628         instead of HARD_REGNO_NREGS.
6629         (s390_hard_regno_nregs): New function.
6630         (s390_hard_regno_mode_ok): Add comment from s390.h.
6631         (TARGET_HARD_REGNO_NREGS): Redefine.
6632         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
6633         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
6634         (sh_hard_regno_nregs): New function.
6635         (sh_pass_in_reg_p): Use it.
6636         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
6637         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
6638         (sparc_hard_regno_nregs): New function.
6639         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
6640         * config/spu/spu.c (spu_hard_regno_nregs): New function.
6641         (spu_function_arg_advance): Use it, supplying a valid register number.
6642         (TARGET_HARD_REGNO_NREGS): Redefine.
6643         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
6644         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
6645         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
6646         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
6647         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
6648         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
6649         (CLASS_MAX_NREGS): Remove copy of old documentation.
6650         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
6651         (visium_hard_regno_nregs): New function.
6652         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
6653         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
6654         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
6655         xtensa_hard_regno_nregs): New function.
6656         * system.h (HARD_REGNO_NREGS): Poison.
6658 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6660         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
6661         hard_regno_nregs instead of HARD_REGNO_NREGS.
6662         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
6663         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
6664         (c6x_expand_epilogue): Likewise.
6665         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
6666         (frv_read_iacc_argument): Likewise.
6667         * config/sh/sh.c: Include regs.h.
6668         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
6669         (regs_used): Likewise.
6670         (output_stack_adjust): Likewise.
6671         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
6672         * expmed.c: Include regs.h.
6673         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
6674         * ree.c: Include regs.h.
6675         (combine_reaching_defs): Use hard_regno_nregs instead of
6676         HARD_REGNO_NREGS.
6677         (add_removable_extension): Likewise.
6679 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6681         * regs.h (hard_regno_nregs): Turn into a function.
6682         (end_hard_regno): Update accordingly.
6683         * caller-save.c (setup_save_areas): Likewise.
6684         (save_call_clobbered_regs): Likewise.
6685         (replace_reg_with_saved_mem): Likewise.
6686         (insert_restore): Likewise.
6687         (insert_save): Likewise.
6688         * combine.c (can_change_dest_mode): Likewise.
6689         (move_deaths): Likewise.
6690         (distribute_notes): Likewise.
6691         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
6692         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
6693         (rs6000_split_multireg_move): Likewise.
6694         (rs6000_register_move_cost): Likewise.
6695         (rs6000_memory_move_cost): Likewise.
6696         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
6697         (rs6000_split_multireg_move): Likewise.
6698         (rs6000_register_move_cost): Likewise.
6699         (rs6000_memory_move_cost): Likewise.
6700         * cselib.c (cselib_reset_table): Likewise.
6701         (cselib_lookup_1): Likewise.
6702         * emit-rtl.c (set_mode_and_regno): Likewise.
6703         * function.c (aggregate_value_p): Likewise.
6704         * ira-color.c (setup_profitable_hard_regs): Likewise.
6705         (check_hard_reg_p): Likewise.
6706         (calculate_saved_nregs): Likewise.
6707         (assign_hard_reg): Likewise.
6708         (improve_allocation): Likewise.
6709         (calculate_spill_cost): Likewise.
6710         * ira-emit.c (modify_move_list): Likewise.
6711         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
6712         (ira_hard_reg_in_set_p): Likewise.
6713         * ira.c (setup_reg_mode_hard_regset): Likewise.
6714         (clarify_prohibited_class_mode_regs): Likewise.
6715         (check_allocation): Likewise.
6716         * lra-assigns.c (find_hard_regno_for_1): Likewise.
6717         (lra_setup_reg_renumber): Likewise.
6718         (setup_try_hard_regno_pseudos): Likewise.
6719         (spill_for): Likewise.
6720         (assign_hard_regno): Likewise.
6721         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
6722         * lra-constraints.c (in_class_p): Likewise.
6723         (lra_constraint_offset): Likewise.
6724         (simplify_operand_subreg): Likewise.
6725         (lra_constraints): Likewise.
6726         (split_reg): Likewise.
6727         (split_if_necessary): Likewise.
6728         (invariant_p): Likewise.
6729         (inherit_in_ebb): Likewise.
6730         * lra-lives.c (process_bb_lives): Likewise.
6731         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
6732         (get_hard_regs): Likewise.
6733         (do_remat): Likewise.
6734         * lra-spills.c (assign_spill_hard_regs): Likewise.
6735         * mode-switching.c (create_pre_exit): Likewise.
6736         * postreload.c (reload_combine_recognize_pattern): Likewise.
6737         * recog.c (peep2_find_free_register): Likewise.
6738         * regcprop.c (kill_value_regno): Likewise.
6739         (set_value_regno): Likewise.
6740         (copy_value): Likewise.
6741         (maybe_mode_change): Likewise.
6742         (find_oldest_value_reg): Likewise.
6743         (copyprop_hardreg_forward_1): Likewise.
6744         * regrename.c (check_new_reg_p): Likewise.
6745         (regrename_do_replace): Likewise.
6746         * reload.c (push_reload): Likewise.
6747         (combine_reloads): Likewise.
6748         (find_dummy_reload): Likewise.
6749         (operands_match_p): Likewise.
6750         (find_reloads): Likewise.
6751         (find_equiv_reg): Likewise.
6752         (reload_adjust_reg_for_mode): Likewise.
6753         * reload1.c (count_pseudo): Likewise.
6754         (count_spilled_pseudo): Likewise.
6755         (find_reg): Likewise.
6756         (clear_reload_reg_in_use): Likewise.
6757         (free_for_value_p): Likewise.
6758         (allocate_reload_reg): Likewise.
6759         (choose_reload_regs): Likewise.
6760         (reload_adjust_reg_for_temp): Likewise.
6761         (emit_reload_insns): Likewise.
6762         (delete_output_reload): Likewise.
6763         * rtlanal.c (subreg_get_info): Likewise.
6764         * sched-deps.c (sched_analyze_reg): Likewise.
6765         * sel-sched.c (init_regs_for_mode): Likewise.
6766         (mark_unavailable_hard_regs): Likewise.
6767         (choose_best_reg_1): Likewise.
6768         (verify_target_availability): Likewise.
6769         * valtrack.c (dead_debug_insert_temp): Likewise.
6770         * var-tracking.c (track_loc_p): Likewise.
6771         (emit_note_insn_var_location): Likewise.
6772         * varasm.c (make_decl_rtl): Likewise.
6773         * reginfo.c (choose_hard_reg_mode): Likewise.
6774         (init_reg_modes_target): Refer directly to
6775         this_target_regs->x_hard_regno_nregs.
6777 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6779         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
6780         instead of hard_regno_nregs.
6782 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6784         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
6785         end_hard_regno instead of hard_regno_nregs.
6786         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
6787         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
6788         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
6789         * ira-color.c (improve_allocation): Likewise.
6790         * lra-assigns.c (find_hard_regno_for_1): Likewise.
6791         * lra-lives.c (mark_regno_live): Likewise.
6792         (mark_regno_dead): Likewise.
6793         * lra-remat.c (operand_to_remat): Likewise.
6794         * lra.c (collect_non_operand_hard_regs): Likewise.
6795         * postreload.c (reload_combine_note_store): Likewise.
6796         (move2add_valid_value_p): Likewise.
6797         * reload.c (regno_clobbered_p): Likewise.
6799 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6801         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
6802         hard_regno_nregs.
6803         * config/v850/v850.c (v850_reorg): Likewise.
6804         * reload.c (refers_to_regno_for_reload_p): Likewise.
6805         (find_equiv_reg): Likewise.
6806         * reload1.c (reload_reg_reaches_end_p): Likewise.
6808 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6810         * caller-save.c (add_used_regs): Use REG_NREGS instead of
6811         hard_regno_nregs.
6812         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
6813         * config/arm/arm.c (output_move_neon): Likewise.
6814         (arm_attr_length_move_neon): Likewise.
6815         (neon_split_vcombine): Likewise.
6816         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
6817         (c6x_mark_reg_written): Likewise.
6818         (c6x_dwarf_register_span): Likewise.
6819         * config/i386/i386.c (ix86_save_reg): Likewise.
6820         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
6821         (rws_access_reg): Likewise.
6822         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6823         * mode-switching.c (create_pre_exit): Likewise.
6824         * ree.c (combine_reaching_defs): Likewise.
6825         (add_removable_extension): Likewise.
6826         * regcprop.c (find_oldest_value_reg): Likewise.
6827         (copyprop_hardreg_forward_1): Likewise.
6828         * reload.c (reload_inner_reg_of_subreg): Likewise.
6829         (push_reload): Likewise.
6830         (combine_reloads): Likewise.
6831         (find_dummy_reload): Likewise.
6832         (reload_adjust_reg_for_mode): Likewise.
6833         * reload1.c (find_reload_regs): Likewise.
6834         (forget_old_reloads_1): Likewise.
6835         (reload_reg_free_for_value_p): Likewise.
6836         (reload_adjust_reg_for_temp): Likewise.
6837         (emit_reload_insns): Likewise.
6838         (delete_output_reload): Likewise.
6839         * sel-sched.c (choose_best_reg_1): Likewise.
6840         (choose_best_pseudo_reg): Likewise.
6842 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6843             Alan Hayward  <alan.hayward@arm.com>
6844             David Sherwood <david.sherwood@arm.com>
6846         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
6847         * target.def (slow_unaligned_access): New hook.
6848         * targhooks.h (default_slow_unaligned_access): Declare.
6849         * targhooks.c (default_slow_unaligned_access): New function.
6850         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
6851         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
6852         * doc/tm.texi: Regenerate.
6853         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
6854         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
6855         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
6856         definition.
6857         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
6858         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
6859         Redefine.
6860         (rs6000_slow_unaligned_access): New function.
6861         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
6862         (expand_block_compare): Likewise.
6863         (expand_strn_compare): Likewise.
6864         (rs6000_rtx_costs): Likewise.
6865         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
6866         (riscv_slow_unaligned_access): Likewise.
6867         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
6868         (riscv_slow_unaligned_access_p): ...this and make static.
6869         (riscv_option_override): Update accordingly.
6870         (riscv_slow_unaligned_access): New function.
6871         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
6872         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
6873         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
6874         (rs6000_slow_unaligned_access): New function.
6875         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
6876         (rs6000_rtx_costs): Likewise.
6877         * config/rs6000/rs6000-string.c (expand_block_compare)
6878         (expand_strn_compare): Use targetm.slow_unaligned_access instead
6879         of SLOW_UNALIGNED_ACCESS.
6880         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
6881         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
6882         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
6883         of SLOW_UNALIGNED_ACCESS.
6884         * expmed.c (simple_mem_bitfield_p): Likewise.
6885         * expr.c (alignment_for_piecewise_move): Likewise.
6886         (emit_group_load_1): Likewise.
6887         (emit_group_store): Likewise.
6888         (copy_blkmode_from_reg): Likewise.
6889         (emit_push_insn): Likewise.
6890         (expand_assignment): Likewise.
6891         (store_field): Likewise.
6892         (expand_expr_real_1): Likewise.
6893         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
6894         * lra-constraints.c (simplify_operand_subreg): Likewise.
6895         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
6896         * gimple-ssa-store-merging.c: Likewise in block comment at start
6897         of file.
6898         * tree-ssa-strlen.c: Include target.h.
6899         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
6900         of SLOW_UNALIGNED_ACCESS.
6901         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
6903 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
6905         PR rtl-optimization/82185
6906         * expmed.c (emit_store_flag_int): Only test tem if it has been
6907         initialized.
6909 2017-09-12  Richard Biener  <rguenther@suse.de>
6911         PR middle-end/82149
6912         * match.pd ((FTYPE) N CMP CST): Fix typo.
6914 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
6916         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
6917         attribute.
6918         (mips_near_type_p): Add 'short_call' attribute as a synonym
6919         for 'near'.
6920         * doc/extend.texi (short_call): Document new function attribute.
6922 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
6924         PR target/82112
6925         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
6926         assertion check that in the condition.
6927         (get_atomic_generic_size): Likewise.  Before testing if parameter
6928         has pointer type, if it has array type, call for C++
6929         default_conversion to perform array-to-pointer conversion.
6931 2017-09-12  Richard Biener  <rguenther@suse.de>
6933         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
6934         for operations we cannot scalarize.
6936 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
6938         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
6939         vectors heap vectors.  Clean up comments.
6940         Make visited_bbs a reference.
6941         (profitable_jump_thread_path): Make GC
6942         vectors heap vectors.  Clean up comments.
6943         Misc cleanups.
6944         (convert_and_register_jump_thread_path): Make GC vectors heap
6945         vectors.
6946         (check_subpath_and_update_thread_path): Same.  Clean up comments.
6947         Make visited_bbs a reference.
6948         (handle_phi): Abstract common code to to
6949         register_jump_thread_path_if_profitable.
6950         Rename VAR_BB to DEF_BB.
6951         Update comments.
6952         Make GC vectors heap vectors.
6953         Make visited_bbs a reference.
6954         (handle_assignment): Same.
6955         (register_jump_thread_path_if_profitable): New.
6956         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
6957         DEF_BB.
6958         Make GC vectors heap vectors.  Clean up comments.
6959         Make visited_bbs a reference.
6960         (find_jump_threads_backwards): Make visited_bbs live in the stack.
6961         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
6962         comment.
6964 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
6966         PR target/82181
6967         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
6968         words of E_DImode object are reachable by xtensa_uimm8x4 access.
6970 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
6972         Revert r251800 and r251799.
6974 2017-09-11  Martin Jambor  <mjambor@suse.cz>
6976         PR hsa/82119
6977         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
6978         arguments in advance.
6979         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
6980         use it to find predecessor edges.
6981         (naive_outof_ssa): Collect vector of predecessors.
6983 2017-09-08  Jason Merrill  <jason@redhat.com>
6985         PR c++/70029 - ICE with ref-qualifier and -flto
6986         * langhooks.h (struct lang_hooks_for_types): Add
6987         copy_lang_qualifiers.
6988         * attribs.c (build_type_attribute_qual_variant): Use it.
6989         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
6990         NULL.
6991         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
6992         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
6994 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
6996         PR target/81988
6997         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
6998         (*mulsi3_sp64): New instruction.
6999         (mulsi3): New expander.
7001 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
7003         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
7005 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7007         * sancov.c: Include memmodel.h.
7009 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
7011         PR target/80897
7012         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
7013         large offsets.
7015 2017-09-07  Carl Love  <cel@us.ibm.com>
7017         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
7018         the sldi instruction.
7020 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
7022         * sancov.c: Include tm_p.h.
7024 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
7026         PR target/81979
7027         * output.h (switch_to_other_text_partition): New declaration.
7028         * varasm.c (switch_to_other_text_partition): New function.
7029         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
7030         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
7031         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
7032         to the other text partition before emitting LCL label and switch back
7033         after emitting the word after it.
7035 2017-09-07  Richard Biener  <rguenther@suse.de>
7037         * passes.def (pass_split_crit_edges): Remove instance before PRE.
7038         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
7039         critical edges here, after loop init.
7040         (pass_data_pre): Remove PROP_no_crit_edges flags.
7041         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
7042         for valueization of call args to avoid leaking VN_TOP.
7043         (visit_use): Assert we do not visit default defs.
7044         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
7045         Use error_mark_node to more easily detect leaking VN_TOP.
7046         All default-defs are varying, not VN_TOP.  Mark them visited.
7047         (run_scc_vn): Make code match comment.
7049 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
7051         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
7052         OPTION_MASK_FLOAT128_KEYWORD.
7053         (POWERPC_MASKS): Likewise.
7054         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
7055         support for the -mfloat128-type option, and make -mfloat128
7056         default on PowerPC Linux systems.  Define or undefine
7057         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
7058         Define __float128 to be __ieee128 if IEEE 128-bit support is
7059         enabled, or undefine it.
7060         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
7061         Delete defining __FLOAT128_TYPE__.
7062         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
7063         -mfloat128-type option and make -mfloat128 default on PowerPC
7064         Linux systems.
7065         (TARGET_FLOAT128_TYPE): Likewise.
7066         (-mfloat128-type): Likewise.
7067         * config/rs6000/rs6000.c (rs6000_option_override_internal):
7068         Delete the -mfloat128-type option and make -mfloat128 default on
7069         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
7070         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
7071         128-bit floating point is enabled.  Change tests from using
7072         -mfloat128-type to -mfloat128.
7073         (rs6000_mangle_type): Use the correct mangling for the __float128
7074         type even if normal long double is restricted to 64-bits.
7075         (floatn_mode): Enable the _Float128 type by default on VSX Linux
7076         systems.
7077         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
7078         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
7079         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
7080         -mfloat128-type.
7081         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
7082         documentation for -mfloat128.
7084 2017-09-06  Olivier Hainque  <hainque@adacore.com>
7086         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
7088 2017-09-06  Wish Wu  <wishwu007@gmail.com>
7089             Jakub Jelinek  <jakub@redhat.com>
7091         * asan.c (initialize_sanitizer_builtins): Add
7092         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
7093         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
7094         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
7095         BT_FN_VOID_UINT64_PTR variables.
7096         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
7097         (BT_FN_VOID_UINT16_UINT16): Likewise.
7098         (BT_FN_VOID_UINT32_UINT32): Likewise.
7099         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
7100         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
7101         (BT_FN_VOID_UINT64_PTR): Likewise.
7102         * common.opt (flag_sanitize_coverage): New variable.
7103         (fsanitize-coverage=trace-pc): Remove.
7104         (fsanitize-coverage=): Add.
7105         * flag-types.h (enum sanitize_coverage_code): New enum.
7106         * fold-const.c (fold_range_test): Disable non-short-circuit
7107         optimization if flag_sanitize_coverage.
7108         (fold_truth_andor): Likewise.
7109         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
7110         * opts.c (COVERAGE_SANITIZER_OPT): Define.
7111         (coverage_sanitizer_opts): New array.
7112         (get_closest_sanitizer_option): Add OPTS argument, handle also
7113         OPT_fsanitize_coverage_.
7114         (parse_sanitizer_options): Adjusted to also handle
7115         OPT_fsanitize_coverage_.
7116         (common_handle_option): Add OPT_fsanitize_coverage_.
7117         * sancov.c (instrument_comparison, instrument_switch): New function.
7118         (sancov_pass): Add trace-cmp support.
7119         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
7120         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
7121         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
7122         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
7123         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
7124         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
7125         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
7126         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
7127         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
7128         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
7130 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
7132         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
7133         error.  Only quit immediately if parsing is complete.
7134         (BEGIN): Initialize fatal_err and parse_done.
7135         (begin fpu, end fpu): Check number of arguments.
7136         (begin arch, end arch): Likewise.
7137         (begin cpu, end cpu): Likewise.
7138         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
7139         (optalias): Likewise.
7141 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
7143         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
7144         * config/arm/arm-isa.h: Delete.  Move definitions to ...
7145         * arm-cpus.in: ... here.  Use new feature and fgroup values.
7146         * config/arm/arm.c (arm_option_override): Use lower case for feature
7147         bit names.
7148         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
7149         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
7150         * config/arm/parsecpu.awk (END): Add new command 'isa'.
7151         (isa_pfx): Delete.
7152         (print_isa_bits_for): New function.
7153         (gen_isa): New function.
7154         (gen_comm_data): Use print_isa_bits_for.
7155         (define feature): New keyword.
7156         (define fgroup): New keyword.
7157         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
7158         (arm-isa.h): Add rule to generate file.
7159         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
7160         case for feature bit names.
7162 2017-09-06  Richard Biener  <rguenther@suse.de>
7164         * tree-ssa-pre.c (NECESSARY): Remove.
7165         (create_expression_by_pieces): Do not touch pass-local flags.
7166         (insert_into_preds_of_block): Likewise.
7167         (do_pre_regular_insertion): Likewise.
7168         (eliminate_insert): Likewise.
7169         (eliminate_dom_walker::before_dom_children): Likewise.
7170         (fini_eliminate): Do not look at inserted_exprs.
7171         (mark_operand_necessary): Remove.
7172         (remove_dead_inserted_code): Replace with simple work-list
7173         algorithm based on inserted_exprs and SSA uses.
7174         (pass_pre::execute): Re-order fini_eliminate and
7175         remove_dead_inserted_code.
7177 2017-09-06  Olivier Hainque  <hainque@adacore.com>
7179         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
7180         for VxWorks 7.  Adjust surrounding comments.
7182 2017-09-06  Richard Biener  <rguenther@suse.de>
7184         * gimple-ssa-strength-reduction.c
7185         (find_candidates_dom_walker::before_dom_children): Also allow
7186         pointer types.
7188 2017-09-06  Richard Biener  <rguenther@suse.de>
7190         PR tree-optimization/82108
7191         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
7192         for gap in the non-permutation SLP case.
7194 2017-09-06  Martin Jambor  <mjambor@suse.cz>
7196         PR tree-optimization/82078
7197         * tree-sra.c (sort_and_splice_var_accesses): Move call to
7198         add_access_to_work_queue...
7199         (build_accesses_from_assign): ...here.
7200         (propagate_all_subaccesses): Make sure racc is the group
7201         representative, if there is one.
7203 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
7205         PR middle-end/82095
7206         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
7207         NULL DECL_INITIAL.
7209 2017-09-06  Richard Biener  <rguenther@suse.de>
7211         * gimple-ssa-strength-reduction.c
7212         (find_candidates_dom_walker::before_doom_children): Use a
7213         type and not a mode check.
7215 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7217         PR target/77308
7218         * config/arm/predicates.md (arm_general_adddi_operand): Create new
7219         non-vfp predicate.
7220         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
7222 2017-09-05  Jeff Law  <law@redhat.com>
7224         PR tree-optimization/64910
7225         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
7226         cases where we have 3 or more operands.
7228 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
7230         PR middle-end/81768
7231         * omp-low.c (lower_omp_for): Recompute tree invariant if
7232         gimple_omp_for_initial/final is ADDR_EXPR.
7234         PR middle-end/81768
7235         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
7236         into gimple val before gimplification fo the COND_EXPR.
7238 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
7240         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
7241         REGION_COPY argument.
7242         (thread_through_all_blocks): Remove unused argument to
7243         duplicate_thread_path.
7245 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7246             Alan Hayward  <alan.hayward@arm.com>
7247             David Sherwood  <david.sherwood@arm.com>
7249         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
7250         Take a scalar_mode rather than a machine_mode.
7251         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
7252         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
7253         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
7254         (aarch64_gen_adjusted_ldpstp): Likewise.
7255         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
7257 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7258             Alan Hayward  <alan.hayward@arm.com>
7259             David Sherwood  <david.sherwood@arm.com>
7261         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
7262         Take a scalar_int_mode instead of a machine_mode.
7263         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
7264         (aarch64_output_scalar_simd_mov_immediate): Likewise.
7265         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
7266         (aarch64_simd_attr_length_rglist): Delete.
7267         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
7268         a scalar_int_mode instead of a machine_mode.
7269         (aarch64_add_offset): Likewise.
7270         (aarch64_internal_mov_immediate): Likewise
7271         (aarch64_add_constant_internal): Likewise.
7272         (aarch64_add_constant): Likewise.
7273         (aarch64_movw_imm): Likewise.
7274         (aarch64_rtx_arith_op_extract_p): Likewise.
7275         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
7276         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
7277         Remove assert that the mode isn't a vector.
7278         (aarch64_output_scalar_simd_mov_immediate): Likewise.
7279         (aarch64_expand_mov_immediate): Update calls after above changes.
7280         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
7281         (aarch64_and_bitmask_imm): Check for scalar integer modes.
7282         (aarch64_move_imm): Likewise.
7283         (aarch64_can_const_movi_rtx_p): Likewise.
7284         (aarch64_strip_extend): Likewise.
7285         (aarch64_extr_rtx_p): Likewise.
7286         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
7287         a CONST_INT when the mode parameter is VOIDmode.
7288         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
7290 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7292         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
7293         * stor-layout.c (bitwise_mode_for_mode): Likewise.
7294         (bitwise_type_for_mode): Update accordingly.
7296 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7298         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
7299         * stor-layout.c (mode_for_size_tree): Likewise.
7300         (mode_for_array): Update accordingly.
7301         (layout_decl): Likewise.
7302         (compute_record_mode): Likewise.  Only set the mode once.
7304 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7306         * target.def (get_mask_mode): Change return type to opt_mode.
7307         Expand commentary.
7308         * doc/tm.texi: Regenerate.
7309         * targhooks.h (default_get_mask_mode): Return an opt_mode.
7310         * targhooks.c (default_get_mask_mode): Likewise.
7311         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
7312         * optabs-query.c (can_vec_mask_load_store_p): Update use of
7313         targetm.get_mask_mode.
7314         * tree.c (build_truth_vector_type): Likewise.
7316 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7318         * machmode.h (mode_for_vector): Return an opt_mode.
7319         * stor-layout.c (mode_for_vector): Likewise.
7320         (mode_for_int_vector): Update accordingly.
7321         (layout_type): Likewise.
7322         * config/i386/i386.c (emit_memmov): Likewise.
7323         (ix86_expand_set_or_movmem): Likewise.
7324         (ix86_expand_vector_init): Likewise.
7325         (ix86_get_mask_mode): Likewise.
7326         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
7327         Likewise.
7328         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
7329         * expmed.c (extract_bit_field_1): Likewise.
7330         * expr.c (expand_expr_real_2): Likewise.
7331         * optabs-query.c (can_vec_perm_p): Likewise.
7332         (can_vec_mask_load_store_p): Likewise.
7333         * optabs.c (expand_vec_perm): Likewise.
7334         * targhooks.c (default_get_mask_mode): Likewise.
7335         * tree-vect-stmts.c (vectorizable_store): Likewise.
7336         (vectorizable_load): Likewise.
7337         (get_vectype_for_scalar_type_and_size): Likewise.
7339 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7341         * machmode.h (mode_for_int_vector): New function.
7342         * stor-layout.c (mode_for_int_vector): Likewise.
7343         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
7344         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
7345         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
7346         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
7347         (s390_expand_vcond): Likewise.
7349 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7351         * machmode.h (opt_machine_mode): New type.
7352         (opt_mode<T>): Allow construction from anything that can be
7353         converted to a T.
7354         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
7355         (mode_for_size): Return an opt_machine_mode.
7356         * stor-layout.c (mode_for_size): Likewise.
7357         (mode_for_size_tree): Update call accordingly.
7358         (bitwise_mode_for_mode): Likewise.
7359         (make_fract_type): Likewise.
7360         (make_accum_type): Likewise.
7361         * caller-save.c (replace_reg_with_saved_mem): Update call
7362         accordingly.
7363         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7364         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7365         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7366         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
7367         * expmed.c (extract_bit_field_1): Likewise.
7368         * reload.c (get_secondary_mem): Likewise.
7369         * varasm.c (assemble_integer): Likewise.
7370         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
7371         early-out.
7373 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7375         * machmode.h (decimal_float_mode_for_size): New function.
7376         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
7377         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
7378         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
7379         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
7380         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
7381         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
7383 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7385         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
7386         (get_builtin_sync_mode): Likewise.
7387         (expand_ifn_atomic_compare_exchange): Likewise.
7388         (expand_builtin_atomic_clear): Likewise.
7389         (expand_builtin_atomic_test_and_set): Likewise.
7390         (fold_builtin_atomic_always_lock_free): Likewise.
7391         * calls.c (compute_argument_addresses): Likewise.
7392         (emit_library_call_value_1): Likewise.
7393         (store_one_arg): Likewise.
7394         * combine.c (combine_instructions): Likewise.
7395         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
7396         * config/arm/arm.c (arm_function_value): Likewise.
7397         (aapcs_allocate_return_reg): Likewise.
7398         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
7399         * config/i386/i386.c (construct_container): Likewise.
7400         (ix86_gimplify_va_arg): Likewise.
7401         (ix86_expand_sse_cmp): Likewise.
7402         (emit_memmov): Likewise.
7403         (emit_memset): Likewise.
7404         (expand_small_movmem_or_setmem): Likewise.
7405         (ix86_expand_pextr): Likewise.
7406         (ix86_expand_pinsr): Likewise.
7407         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
7408         * config/microblaze/microblaze.c (microblaze_block_move_straight):
7409         Likewise.
7410         * config/mips/mips.c (mips_function_value_1) Likewise.
7411         (mips_block_move_straight): Likewise.
7412         (mips_expand_ins_as_unaligned_store): Likewise.
7413         * config/powerpcspe/powerpcspe.c
7414         (rs6000_darwin64_record_arg_advance_flush): Likewise.
7415         (rs6000_darwin64_record_arg_flush): Likewise.
7416         * config/rs6000/rs6000.c
7417         (rs6000_darwin64_record_arg_advance_flush): Likewise.
7418         (rs6000_darwin64_record_arg_flush): Likewise.
7419         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
7420         (sparc_function_value_1): Likewise.
7421         * config/spu/spu.c (adjust_operand): Likewise.
7422         (spu_emit_branch_or_set): Likewise.
7423         (arith_immediate_p): Likewise.
7424         * emit-rtl.c (gen_lowpart_common): Likewise.
7425         * expr.c (expand_expr_real_1): Likewise.
7426         * function.c (assign_parm_setup_block): Likewise.
7427         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
7428         * reload1.c (alter_reg): Likewise.
7429         * stor-layout.c (mode_for_vector): Likewise.
7430         (layout_type): Likewise.
7432 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
7434         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
7435         (spu_convert_move): Likewise.
7436         * lower-subreg.c (resolve_simple_move): Likewise.
7438 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7440         PR target/81833
7441         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
7442         define_insn to a define_expand.
7443         (altivec_vsum2sws_direct): New define_insn.
7444         (altivec_vsumsws): Convert from a define_insn to a define_expand.
7446 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
7448         * config/arm/arm.c (arm_option_params_internal): Improve setting of
7449         max_insns_skipped.
7451 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
7453         PR target/59501
7454         PR target/81624
7455         PR target/81769
7456         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
7457         realign stack if stack alignment needed is less than incoming
7458         stack boundary.
7460 2017-09-05  Marek Polacek  <polacek@redhat.com>
7462         PR sanitizer/82072
7463         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
7464         check earlier.
7466 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
7468         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
7470 2017-09-05  Richard Biener  <rguenther@suse.de>
7472         PR tree-optimization/82084
7473         * fold-const.c (can_native_encode_string_p): Handle wide characters.
7475 2017-09-05  Richard Biener  <rguenther@suse.de>
7477         PR tree-optimization/82102
7478         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
7480 2017-09-05  Martin Liska  <mliska@suse.cz>
7482         PR tree-optimization/82032
7483         * tree-cfg.c (generate_range_test): New function.
7484         * tree-cfg.h (generate_range_test): Declared here.
7485         * tree-cfgcleanup.c (convert_single_case_switch): New function.
7486         (cleanup_control_expr_graph): Use it.
7487         * tree-switch-conversion.c (try_switch_expansion): Remove
7488         assert.
7489         (emit_case_nodes): Use generate_range_test.
7491 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
7493         PR target/82098
7494         * config/i386/i386.md (*<btsc><mode>_mask): Add
7495         TARGET_USE_BT to insn constraint.
7496         (*btr<mode>_mask): Ditto.
7498 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
7500         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
7501         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
7503 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7505         PR target/77308
7506         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
7507         TARGET_NEON and TARGET_IWMMXT.
7508         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
7509         TARGET_NEON and TARGET_IWMMXT.
7510         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
7512 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
7514         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
7515         (ix86_rewrite_tls_address): Ditto.
7516         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
7517         (ix86_rewrite_tls_address_1): Ditto.
7518         (ix86_rewrite_tls_address): Ditto.
7519         * config/i386/predicates.md (tls_address_pattern): New predicate.
7520         * config/i386/i386.md (TLS address splitter): New splitter.
7522 2017-09-04  Richard Biener  <rguenther@suse.de>
7524         PR tree-optimization/82084
7525         * fold-const.h (can_native_encode_string_p): Declare.
7526         * fold-const.c (can_native_encode_string_p): Factor out from ...
7527         (native_encode_string): ... here.
7528         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
7529         vectorizing stores from constants we later cannot handle.
7531 2017-09-04  Marek Polacek  <polacek@redhat.com>
7533         PR c/81783
7534         * doc/invoke.texi: Update -Wtautological-compare documentation.
7536 2017-09-04  Jeff Law  <law@redhat.com>
7538         PR tree-optimization/64910
7539         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
7540         swap the first and last operand if the last is a constant.
7542 2017-09-04  Marek Polacek  <polacek@redhat.com>
7544         PR sanitizer/82072
7545         * convert.c (do_narrow): When sanitizing signed integer overflows,
7546         bail out for signed types.
7547         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
7549 2017-09-04  Richard Biener  <rguenther@suse.de>
7551         PR tree-optimization/82060
7552         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7553         Move devirtualization after stmt folding and before EH/AB/noreturn
7554         cleanup to get the stmt refs canonicalized.  Use a bool instead
7555         of gimple_modified_p since that doesn't work for NOPs.  Schedule
7556         NOPs generated by folding for removal.
7558 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
7559             Alan Hayward  <alan.hayward@arm.com>
7560             David Sherwood  <david.sherwood@arm.com>
7562         * coretypes.h (pad_direction): New enum.
7563         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
7564         (FUNCTION_ARG_PADDING): Likewise.
7565         * target.def (function_arg_padding): New hook.
7566         * targhooks.h (default_function_arg_padding): Declare.
7567         * targhooks.c (default_function_arg_padding): New function.
7568         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
7569         (TARGET_FUNCTION_ARG_PADDING): ...this.
7570         * doc/tm.texi: Regenerate.
7571         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
7572         instead of direction.
7573         (compute_argument_addresses): Likewise.
7574         (load_register_parameters): Likewise.
7575         (emit_library_call_value_1): Likewise.
7576         (store_one_arg): Use targetm.calls.function_arg_padding instead
7577         of FUNCTION_ARG_PADDING.
7578         (must_pass_in_stack_var_size_or_pad): Likewise.
7579         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
7580         (emit_group_store): Likewise.
7581         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
7582         instead of FUNCTION_ARG_PADDING.
7583         (emit_push_insn): Likewise, and propagate enum change throughout
7584         function.
7585         * function.h (direction): Delete.
7586         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
7587         of direction.
7588         * function.c (assign_parm_find_stack_rtl): Likewise.
7589         (assign_parm_setup_block_p): Likewise.
7590         (assign_parm_setup_block): Likewise.
7591         (gimplify_parameters): Likewise.
7592         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
7593         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
7594         function.
7595         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
7596         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7597         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
7598         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
7599         (aarch64_function_arg_padding): ...this new function.
7600         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
7601         (TARGET_FUNCTION_ARG_PADDING): Redefine.
7602         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
7603         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7604         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
7605         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7606         (arm_pad_arg_upward): Replace with...
7607         (arm_function_arg_padding): ...this new function.
7608         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
7609         of direction.
7610         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
7611         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
7612         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7613         (ia64_hpux_function_arg_padding): Replace with...
7614         (ia64_function_arg_padding): ...this new function.  Use pad_direction
7615         instead of direction.  Check for TARGET_HPUX.
7616         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
7617         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7618         (iq2000_function_arg_padding): New function.
7619         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
7620         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
7621         (mips_function_arg_padding): ...this new function.
7622         (mips_pad_reg_upward): Update accordingly.
7623         (TARGET_FUNCTION_ARG_PADDING): Redefine.
7624         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
7625         targetm.calls.function_arg_padding.
7626         (FUNCTION_ARG_PADDING): Delete.
7627         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
7628         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
7629         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7630         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
7631         (nios2_block_reg_padding): Return pad_direction instead of direction.
7632         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
7633         instead of direction.
7634         (nios2_function_arg_padding): Likewise.  Make static.
7635         (TARGET_FUNCTION_ARG_PADDING): Redefine.
7636         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
7637         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
7638         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
7639         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7640         (pa_function_arg_padding): Make static.  Return pad_direction instead
7641         of direction.
7642         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
7643         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7644         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
7645         instead of direction.  Use targetm.calls.function_arg_padding.
7646         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
7647         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
7648         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
7649         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
7650         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
7651         Redefine.
7652         (function_arg_padding): Rename to...
7653         (rs6000_function_arg_padding): ...this.  Make static.  Return
7654         pad_direction instead of direction.
7655         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
7656         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
7657         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
7658         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
7659         instead of direction.  Use targetm.calls.function_arg_padding.
7660         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
7661         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
7662         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
7663         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
7664         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7665         (function_arg_padding): Rename to...
7666         (rs6000_function_arg_padding): ...this.  Make static.  Return
7667         pad_direction instead of direction.
7668         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
7669         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
7670         * config/s390/s390.c (s390_function_arg_padding): New function.
7671         (TARGET_FUNCTION_ARG_PADDING): Redefine.
7672         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
7673         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
7674         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
7675         (function_arg_padding): Rename to...
7676         (sparc_function_arg_padding): ...this.  Make static.  Return
7677         pad_direction instead of direction.
7678         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
7679         * config/spu/spu.c (spu_function_arg_padding): New function.
7680         (TARGET_FUNCTION_ARG_PADDING): Redefine.
7681         * system.h (FUNCTION_ARG_PADDING): Poison.
7683 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
7684             Alan Hayward  <alan.hayward@arm.com>
7685             David Sherwood  <david.sherwood@arm.com>
7687         * target.def (modes_tieable_p): New hook.
7688         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
7689         (TARGET_MODES_TIEABLE_P): ...this.
7690         * doc/tm.texi.in: Regenerate.
7691         * hooks.h (hook_bool_mode_mode_true): Declare.
7692         * hooks.c (hook_bool_mode_mode_true): New function.
7693         * combine.c (subst): Use targetm.modes_tieable_p instead of
7694         MODES_TIEABLE_P.
7695         * dse.c (find_shift_sequence): Likewise.
7696         * expmed.c (extract_low_bits): Likewise.
7697         * lower-subreg.c: Include target.h.
7698         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
7699         MODES_TIEABLE_P.
7700         * rtlanal.c (rtx_cost): Likewise.
7701         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
7702         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
7703         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
7704         (TARGET_MODES_TIEABLE_P): Redefine.
7705         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
7706         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
7707         (TARGET_MODES_TIEABLE_P): Redefine.
7708         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
7709         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
7710         (arc_modes_tieable_p): New function.
7711         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
7712         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
7713         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
7714         (arm_modes_tieable_p): Make static.
7715         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
7716         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
7717         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
7718         (TARGET_MODES_TIEABLE_P): Redefine.
7719         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
7720         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
7721         (TARGET_MODES_TIEABLE_P): Redefine.
7722         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
7723         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
7724         (cr16_modes_tieable_p): New function.
7725         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
7726         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
7727         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
7728         (TRULY_NOOP_TRUNCATION): Update comment.
7729         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
7730         (TRULY_NOOP_TRUNCATION): Update comment.
7731         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
7732         (frv_modes_tieable_p): New function.
7733         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
7734         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
7735         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
7736         (TARGET_MODES_TIEABLE_P): Redefine.
7737         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
7738         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
7739         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
7740         (TARGET_MODES_TIEABLE_P): Redefine.
7741         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
7742         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
7743         (ia64_modes_tieable_p): New function.
7744         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
7745         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
7746         (iq2000_modes_tieable_p): New function.
7747         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
7748         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
7749         (lm32_modes_tieable_p): New function.
7750         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
7751         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
7752         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
7753         (TARGET_MODES_TIEABLE_P): Redefine.
7754         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
7755         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
7756         (m32r_modes_tieable_p): New function.
7757         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
7758         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
7759         (m68k_modes_tieable_p): New function.
7760         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
7761         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
7762         (mcore_modes_tieable_p): New function.
7763         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
7764         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
7765         function.
7766         (TARGET_MODES_TIEABLE_P): Redefine.
7767         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
7768         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
7769         * config/mips/mips.c (mips_modes_tieable_p): Make static.
7770         (TARGET_MODES_TIEABLE_P): Redefine.
7771         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
7772         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
7773         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
7774         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
7775         (mn10300_modes_tieable_p): ...this and make static.
7776         (TARGET_MODES_TIEABLE_P): Redefine.
7777         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
7778         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
7779         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
7780         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
7781         (msp430_modes_tieable_p): Make static.
7782         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
7783         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
7784         (TARGET_MODES_TIEABLE_P): Redefine.
7785         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
7786         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
7787         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
7788         (TARGET_MODES_TIEABLE_P): Redefine.
7789         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
7790         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
7791         * config/pa/pa.c (pa_modes_tieable_p): Make static.
7792         (TARGET_MODES_TIEABLE_P): Redefine.
7793         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
7794         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
7795         (pdp11_modes_tieable_p): New function.
7796         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
7797         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
7798         (rs6000_modes_tieable_p): New function.
7799         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
7800         * config/powerpcspe/powerpcspe.md: Update comment.
7801         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
7802         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
7803         (TARGET_MODES_TIEABLE_P): Redefine.
7804         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
7805         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
7806         (rl78_modes_tieable_p): New function.
7807         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
7808         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
7809         (rs6000_modes_tieable_p): New function.
7810         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
7811         * config/rs6000/rs6000.md: Update comment.
7812         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
7813         * config/rx/rx.c (rx_modes_tieable_p): New function.
7814         (TARGET_MODES_TIEABLE_P): Redefine.
7815         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
7816         * config/s390/s390.c (s390_modes_tieable_p): New function.
7817         (TARGET_MODES_TIEABLE_P): Redefine.
7818         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
7819         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
7820         (sh_modes_tieable_p): New function.
7821         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
7822         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
7823         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
7824         (sparc_modes_tieable_p): Make static.
7825         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
7826         * config/spu/spu.c (spu_modes_tieable_p): New function.
7827         (TARGET_MODES_TIEABLE_P): Redefine.
7828         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
7829         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
7830         (TARGET_MODES_TIEABLE_P): Redefine.
7831         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
7832         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
7833         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
7834         * config/v850/v850.c (v850_modes_tieable_p): New function.
7835         (TARGET_MODES_TIEABLE_P): Redefine.
7836         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
7837         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
7838         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
7839         (visium_modes_tieable_p): New function.
7840         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
7841         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
7842         (xtensa_modes_tieable_p): New function.
7843         * system.h (MODES_TIEABLE_P): Poison.
7845 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
7846             Alan Hayward  <alan.hayward@arm.com>
7847             David Sherwood  <david.sherwood@arm.com>
7849         * target.def (hard_regno_mode_ok): New hook.
7850         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
7851         (TARGET_HARD_REGNO_MODE_OK): ...this.
7852         * doc/tm.texi.in: Regenerate.
7853         * hooks.h (hook_bool_uint_mode_true): Declare.
7854         * hooks.c (hook_bool_uint_mode_true): New function.
7855         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
7856         HARD_REGNO_MODE_OK.
7857         * genpreds.c (write_insn_preds_c): Add an include of target.h.
7858         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
7859         instead of HARD_REGNO_MODE_OK.
7860         * caller-save.c: Include target.h.
7861         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
7862         HARD_REGNO_MODE_OK.
7863         * combine.c (can_combine_p): Likewise.
7864         (combinable_i3pat): Likewise.
7865         (can_change_dest_mode): Likewise.
7866         * expr.c (init_expr_target): Likewise.
7867         (convert_move): Likewise.
7868         (convert_modes): Likewise.
7869         * ira.c (setup_prohibited_class_mode_regs): Likewise.
7870         (setup_prohibited_mode_move_regs): Likewise.
7871         * ira.h (target_ira): Likewise.
7872         * lra-assigns.c (find_hard_regno_for_1): Likewise.
7873         * lra-constraints.c (process_alt_operands): Likewise.
7874         (split_reg): Likewise.
7875         * recog.c (peep2_find_free_register): Likewise.
7876         * ree.c (combine_reaching_defs): Likewise.
7877         * regcprop.c (maybe_mode_change): Likewise.
7878         * reginfo.c (init_reg_sets_1): Likewise.
7879         (choose_hard_reg_mode): Likewise.
7880         (simplifiable_subregs): Likewise.
7881         * regrename.c (check_new_reg_p): Likewise.
7882         * reload.c (find_valid_class): Likewise.
7883         (find_valid_class_1): Likewise.
7884         (reload_inner_reg_of_subreg): Likewise.
7885         (push_reload): Likewise.
7886         (combine_reloads): Likewise.
7887         (find_dummy_reload): Likewise.
7888         (find_reloads): Likewise.
7889         * reload1.c (find_reg): Likewise.
7890         (set_reload_reg): Likewise.
7891         (allocate_reload_reg): Likewise.
7892         (choose_reload_regs): Likewise.
7893         (reload_adjust_reg_for_temp): Likewise.
7894         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
7895         (simplify_subreg_regno): Likewise.
7896         * sel-sched.c (init_regs_for_mode): Likewise.
7897         * varasm.c (make_decl_rtl): Likewise.
7898         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
7899         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
7900         HARD_REGNO_MODE_OK.
7901         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
7902         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
7903         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7904         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
7905         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
7906         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7907         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
7908         (arc_mode_class): Delete.
7909         (HARD_REGNO_MODE_OK): Delete.
7910         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7911         (arc_hard_regno_mode_ok): Rename old array to...
7912         (arc_hard_regno_mode_ok_modes): ...this.
7913         (arc_conditional_register_usage): Update accordingly.
7914         (arc_mode_class): Make static.
7915         (arc_hard_regno_mode_ok): New function.
7916         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
7917         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
7918         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7919         (arm_hard_regno_mode_ok): Make static.
7920         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
7921         HARD_REGNO_MODE_OK.
7922         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
7923         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
7924         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
7925         return a bool.
7926         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7927         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
7928         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
7929         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
7930         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
7931         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7932         * config/bfin/predicates.md (valid_reg_operand): Use
7933         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
7934         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
7935         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
7936         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7937         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
7938         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
7939         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7940         (cr16_hard_regno_mode_ok): Make static and return a bool.
7941         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
7942         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7943         (cris_hard_regno_mode_ok): New function.
7944         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
7945         (epiphany_mode_class): Delete.
7946         (HARD_REGNO_MODE_OK): Delete.
7947         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
7948         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7949         (hard_regno_mode_ok): Rename to...
7950         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
7951         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
7952         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
7953         HARD_REGNO_MODE_OK.
7954         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
7955         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
7956         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7957         (frv_hard_regno_mode_ok): Make static and return a bool.
7958         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
7959         HARD_REGNO_MODE_OK.
7960         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
7961         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
7962         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
7963         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
7964         and return a bool.
7965         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7966         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
7967         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
7968         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
7969         return a bool.
7970         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7971         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
7972         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7973         (ia64_hard_regno_mode_ok): New function.
7974         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
7975         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7976         (iq2000_hard_regno_mode_ok): New function.
7977         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
7978         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7979         (lm32_hard_regno_mode_ok): New function.
7980         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
7981         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
7982         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
7983         instead of HARD_REGNO_MODE_OK.
7984         (m32c_hard_regno_ok): Rename to...
7985         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
7986         (m32c_cannot_change_mode_class): Update accordingly.
7987         (TARGET_HARD_REGNO_MODE_OK): Redefine.
7988         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
7989         (m32r_mode_class): Delete.
7990         (HARD_REGNO_MODE_OK): Delete.
7991         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7992         (m32r_hard_regno_mode_ok): Rename to...
7993         (m32r_hard_regno_modes): ...this.
7994         (m32r_mode_class): Make static.
7995         (m32r_hard_regno_mode_ok): New function.
7996         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
7997         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
7998         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
7999         (m68k_hard_regno_mode_ok): Make static.
8000         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
8001         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8002         (mcore_hard_regno_mode_ok): New function.
8003         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
8004         (HARD_REGNO_MODE_OK): Delete.
8005         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
8006         Rename to...
8007         (microblaze_hard_regno_mode_ok_p): ...this and make static.
8008         (microblaze_hard_regno_mode_ok): New function.
8009         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8010         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
8011         (mips_hard_regno_mode_ok): Delete.
8012         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
8013         (mips_hard_regno_mode_ok_p): ...this and make static.
8014         (mips_hard_regno_mode_ok_p): Rename to...
8015         (mips_hard_regno_mode_ok_uncached): ...this.
8016         (mips_hard_regno_mode_ok): New function.
8017         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
8018         of HARD_REGNO_MODE_OK.
8019         (mips_option_override): Update after above name changes.
8020         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8021         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
8022         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
8023         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
8024         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
8025         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8026         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
8027         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
8028         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
8029         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8030         (msp430_hard_regno_mode_ok): Make static and return a bool.
8031         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
8032         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
8033         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
8034         and return a bool.
8035         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8036         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
8037         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
8038         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
8039         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
8040         (PA_HARD_REGNO_MODE_OK): ...this
8041         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
8042         (PA_HARD_REGNO_MODE_OK): ...this.
8043         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8044         (pa_hard_regno_mode_ok): New function.
8045         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
8046         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8047         (pdp11_hard_regno_mode_ok): New function.
8048         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
8049         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
8050         Delete.
8051         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
8052         Make static.
8053         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8054         (rs6000_hard_regno_mode_ok): Rename to...
8055         (rs6000_hard_regno_mode_ok_uncached): ...this.
8056         (rs6000_init_hard_regno_mode_ok): Update accordingly.
8057         (rs6000_hard_regno_mode_ok): New function.
8058         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
8059         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
8060         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
8061         (riscv_hard_regno_mode_ok): ...this and make static.
8062         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8063         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
8064         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
8065         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8066         (rl78_hard_regno_mode_ok): Make static and return bool.
8067         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
8068         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
8069         Delete.
8070         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
8071         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8072         (rs6000_hard_regno_mode_ok): Rename to...
8073         (rs6000_hard_regno_mode_ok_uncached): ...this.
8074         (rs6000_init_hard_regno_mode_ok): Update accordingly.
8075         (rs6000_hard_regno_mode_ok): New function.
8076         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
8077         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
8078         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8079         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
8080         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
8081         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
8082         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8083         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
8084         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
8085         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8086         (sh_hard_regno_mode_ok): Make static.
8087         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
8088         instead of HARD_REGNO_MODE_OK.
8089         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
8090         (sparc_mode_class): Delete.
8091         (HARD_REGNO_MODE_OK): Delete.
8092         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8093         (hard_regno_mode_classes): Make static.
8094         (sparc_mode_class): Likewise.
8095         (sparc_hard_regno_mode_ok): New function.
8096         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
8097         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
8098         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
8099         function.
8100         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8101         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
8102         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
8103         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
8104         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
8105         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8106         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
8107         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
8108         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
8109         (visium_hard_regno_mode_ok): New function.
8110         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
8111         instead of HARD_REGNO_MODE_OK.
8112         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
8113         (HARD_REGNO_MODE_OK): Delete.
8114         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
8115         (xtensa_hard_regno_mode_ok_p): ...this and make static.
8116         (xtensa_option_override): Update accordingly.
8117         (TARGET_HARD_REGNO_MODE_OK): Redefine.
8118         (xtensa_hard_regno_mode_ok): New function.
8119         * system.h (HARD_REGNO_MODE_OK): Poison.
8121 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
8122             Alan Hayward  <alan.hayward@arm.com>
8123             David Sherwood  <david.sherwood@arm.com>
8125         * target.def (hard_regno_call_part_clobbered): New hook.
8126         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
8127         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
8128         * doc/tm.texi: Regenerate.
8129         * hooks.h (hook_bool_uint_mode_false): Declare.
8130         * hooks.c (hook_bool_uint_mode_false): New function.
8131         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8132         * cselib.c (cselib_process_insn): Use
8133         targetm.hard_regno_call_part_clobbered instead of
8134         HARD_REGNO_CALL_PART_CLOBBERED.
8135         * ira-conflicts.c (ira_build_conflicts): Likewise.
8136         * ira-costs.c (ira_tune_allocno_costs): Likewise.
8137         * lra-constraints.c (need_for_call_save_p): Likewise.
8138         * lra-lives.c: Include target.h.
8139         (check_pseudos_live_through_calls): Use
8140         targetm.hard_regno_call_part_clobbered instead of
8141         HARD_REGNO_CALL_PART_CLOBBERED.
8142         * regcprop.c: Include target.h.
8143         (copyprop_hardreg_forward_1): Use
8144         targetm.hard_regno_call_part_clobbered instead of
8145         HARD_REGNO_CALL_PART_CLOBBERED.
8146         * reginfo.c (choose_hard_reg_mode): Likewise.
8147         * regrename.c (check_new_reg_p): Likewise.
8148         * reload.c (find_equiv_reg): Likewise.
8149         * reload1.c (emit_reload_insns): Likewise.
8150         * sched-deps.c (deps_analyze_insn): Likewise.
8151         * sel-sched.c (init_regs_for_mode): Likewise.
8152         (mark_unavailable_hard_regs): Likewise.
8153         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
8154         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8155         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
8156         New function.
8157         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8158         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8159         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
8160         Delete.
8161         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
8162         and return a bool.
8163         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8164         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8165         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
8166         function.
8167         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8168         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8169         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
8170         function.
8171         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8172         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
8173         Delete.
8174         * config/powerpcspe/powerpcspe.c
8175         (rs6000_hard_regno_call_part_clobbered): New function.
8176         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8177         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8178         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
8179         New function.
8180         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8181         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8182         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
8183         function.
8184         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
8185         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
8186         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
8188 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
8189             Alan Hayward  <alan.hayward@arm.com>
8190             David Sherwood  <david.sherwood@arm.com>
8192         * rtl.h (subreg_memory_offset): Declare.
8193         * emit-rtl.c (subreg_memory_offset): New function.
8194         * expmed.c (store_bit_field_1): Use it.
8195         * expr.c (undefined_operand_subword_p): Likewise.
8196         * simplify-rtx.c (simplify_subreg): Likewise.
8198 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
8200         PR rtl-optimization/57448
8201         PR target/67458
8202         PR target/81316
8203         * optabs.c (expand_atomic_load): Place compiler memory barriers if
8204         using atomic_load pattern.
8205         (expand_atomic_store): Likewise.
8207 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
8209         PR sanitizer/81981
8210         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
8211         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
8212         handling.  Use replace_call_with_value with NULL instead of
8213         gsi_replace, unlink_stmt_vdef and release_defs.
8215         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
8216         instead of tab.
8218         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
8220 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
8222         PR bootstrap/82045
8223         * rtl.h (emit_library_call_value_1): Declare.
8224         (emit_library_call): Replace declaration with a series of overloads.
8225         Remove the parameter count argument.
8226         (emit_library_call_value): Likewise.
8227         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
8228         with an "rtx_mode_t *".
8229         (emit_library_call_value): Delete.
8230         (emit_library_call): Likewise.
8231         * asan.c (asan_emit_stack_protection): Update calls accordingly.
8232         (asan_emit_allocas_unpoison): Likewise.
8233         * builtins.c (expand_builtin_powi): Likewise.
8234         (expand_asan_emit_allocas_unpoison): Likewise.
8235         * cfgexpand.c (expand_main_function): Likewise.
8236         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
8237         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
8238         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
8239         * config/arm/arm.c (arm_trampoline_init): Likewise.
8240         (arm_call_tls_get_addr): Likewise.
8241         (arm_expand_divmod_libfunc): Likewise.
8242         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
8243         (smulsi3_highpart): Likewise.
8244         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
8245         (c6x_expand_compare): Likewise.
8246         (c6x_expand_movmem): Likewise.
8247         * config/frv/frv.c (frv_trampoline_init): Likewise.
8248         * config/i386/i386.c (ix86_trampoline_init): Likewise.
8249         (ix86_expand_divmod_libfunc): Likewise.
8250         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
8251         (ia64_expand_compare): Likewise.
8252         (ia64_profile_hook): Likewise.
8253         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
8254         (nonlocal_goto): Likewise.
8255         (restore_stack_nonlocal): Likewise.
8256         * config/m32r/m32r.c (block_move_call): Likewise.
8257         (m32r_trampoline_init): Likewise.
8258         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
8259         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
8260         (m68k_call_m68k_read_tp): Likewise.
8261         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
8262         (microblaze_expand_divide): Likewise.
8263         * config/mips/mips.h (mips_args): Likewise.
8264         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
8265         (MIPS_ICACHE_SYNC): Likewise.
8266         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
8267         (nios2_trampoline_init): Likewise.
8268         * config/pa/pa.c (hppa_tls_call): Likewise.
8269         (pa_trampoline_init): Likewise.
8270         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
8271         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
8272         (expand_strn_compare): Likewise.
8273         (rs6000_generate_compare): Likewise.
8274         (rs6000_expand_float128_convert): Likewise.
8275         (output_profile_hook): Likewise.
8276         (rs6000_trampoline_init): Likewise.
8277         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
8278         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
8279         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
8280         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
8281         (rs6000_generate_compare): Likewise.
8282         (rs6000_expand_float128_convert): Likewise.
8283         (output_profile_hook): Likewise.
8284         (rs6000_trampoline_init): Likewise.
8285         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
8286         * config/sh/sh.c (sh_trampoline_init): Likewise.
8287         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
8288         (sparc_emit_float_lib_cmp): Likewise.
8289         (sparc32_initialize_trampoline): Likewise.
8290         (sparc64_initialize_trampoline): Likewise.
8291         (sparc_profile_hook): Likewise.
8292         * config/spu/spu.c (ea_load_store): Likewise.
8293         * config/spu/spu.md (floatunssidf2): Likewise.
8294         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
8295         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
8296         * config/visium/visium.c (expand_block_move_4): Likewise.
8297         (expand_block_move_2): Likewise.
8298         (expand_block_move_1): Likewise.
8299         (expand_block_set_4): Likewise.
8300         (expand_block_set_2): Likewise.
8301         (expand_block_set_1): Likewise.
8302         (visium_trampoline_init): Likewise.
8303         (visium_profile_hook): Likewise.
8304         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
8305         (xtensa_setup_frame_addresses): Likewise.
8306         (xtensa_trampoline_init): Likewise.
8307         * except.c (sjlj_emit_function_enter): Likewise.
8308         (sjlj_emit_function_exit): Likewise.
8309         * explow.c (allocate_dynamic_stack_space): Likewise.
8310         (probe_stack_range): Likewise.
8311         * expr.c (convert_mode_scalar): Likewise.
8312         * optabs.c (expand_binop): Likewise.
8313         (expand_twoval_binop_libfunc): Likewise.
8314         (expand_unop): Likewise.
8315         (prepare_cmp_insn): Likewise.
8316         (prepare_float_lib_cmp): Likewise.
8317         (expand_float): Likewise.
8318         (expand_fix): Likewise.
8319         (expand_fixed_convert): Likewise.
8320         (maybe_emit_sync_lock_test_and_set): Likewise.
8321         (expand_atomic_compare_and_swap): Likewise.
8322         (expand_mem_thread_fence): Likewise.
8323         (expand_atomic_fetch_op): Likewise.
8325 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
8327         * doc/generic.texi (OpenACC): Adjust URL.
8328         * doc/invoke.texi (C Dialect Options): Ditto.
8330 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
8332         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
8333         predicate for operand 1.  Add (m,<S>) constraint.
8334         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
8335         Prevent memory operand 1 with register operand 2.
8337 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
8339         PR rtl-optimization/82024
8340         * combine.c (try_combine): If the combination result is a PARALLEL,
8341         and we only need to retain the SET in there that would be placed
8342         at I2, check that we can place that at I3 instead, before doing so.
8344 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
8346         PR target/81766
8347         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
8348         instead of void.
8349         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
8350         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
8351         and label.
8353 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
8354             Jeff Law  <law@redhat.com>
8356         * varasm.c (bss_initializer_p): Do not put constants into .bss
8357         (categorize_decl_for_section): Handle bss_initializer_p returning
8358         false when DECL_INITIAL is NULL.
8360 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8362         PR target/82012
8363         * config/s390/s390.c (s390_can_inline_p): New function.
8365 2017-09-01  Jeff Law  <law@redhat.com>
8367         PR tree-optimization/82052
8368         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
8369         Always initialize the returned slot after a hash table miss
8370         when INSERT is true.
8372 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
8374         * config/s390/s390.md (mem_signal_fence): Remove.
8375         * doc/md.texi (mem_signal_fence): Remove.
8376         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
8377         Update comments.
8378         * target-insns.def (mem_signal_fence): Remove.
8380 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
8382         PR sanitizer/81902
8383         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
8385         PR sanitizer/81923
8386         * asan.c (create_odr_indicator): Strip name encoding from assembler
8387         name before appending it after __odr_asan_.
8389 2017-09-01  Martin Liska  <mliska@suse.cz>
8391         PR tree-optimization/82059
8392         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
8393         frequency only when an edge is redirected.
8395 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
8397         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
8398         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
8399         (arc_conditional_register_usage): Remove ARC600 lp_count
8400         exception.
8401         (arc_file_start): Emit Tag_ARC_CPU_variation.
8402         (arc_can_use_doloop_p): New conditions to use ZOLs.
8403         (hwloop_fail): New function.
8404         (hwloop_optimize): Likewise.
8405         (hwloop_pattern_reg): Likewise.
8406         (arc_doloop_hooks): New struct, to be used with reorg_loops.
8407         (arc_reorg_loops): New function, calls reorg_loops.
8408         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
8409         (arc600_corereg_hazard): Remove ZOL checking, case handled by
8410         hwloop_optimize.
8411         (arc_loop_hazard): Remove function, functionality moved into
8412         hwloop_optimize.
8413         (arc_hazard): Remove arc_loop_hazard call.
8414         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
8415         into hwloop_optimize.
8416         (arc_label_align): Remove ZOL handling.
8417         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
8418         * config/arc/arc.md (doloop_begin): Remove pattern.
8419         (doloop_begin_i): Likewise.
8420         (doloop_end_i): Likewise.
8421         (doloop_fallback): Likewise.
8422         (doloop_fallback_m): Likewise.
8423         (doloop_end): Reimplement expand.
8424         (arc_lp): New pattern for LP instruction.
8425         (loop_end): New pattern.
8426         (loop_fail): Likewise.
8427         (decrement_and_branch_until_zero): Likewise.
8428         * config/arc/arc.opt (mlpc-width): New option.
8429         * doc/invoke.texi (mlpc-width): Document option.
8431 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
8433         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
8434         (arc_ccfsm_advance): Fix checking for delay slots.
8435         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
8437 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
8439         * config/arc/arc.md (movqi_insn): Add stores to save constant long
8440         immediates.
8441         (movhi_insn): Update store instruction constraint which are saving
8442         6-bit short immediates.
8443         (movsi_insn): Consider also short scaled load operations.
8444         (zero_extendhisi2_i): Use Usd constraint instead of T.
8445         (extendhisi2_i): Add q constraint.
8446         (arc_clzsi2): Add type and length attributes.
8447         (arc_ctzsi2): Likewise.
8448         * config/arc/constraints.md (Usc): Update constraint, the
8449         assembler can parse two relocations for a single instruction.
8451 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
8453         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
8454         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
8456 2017-08-31  Olivier Hainque  <hainque@adacore.com>
8458         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
8459         match as powerpc-wrs-vxworks*.
8461 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
8463         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
8464         register constraint for by-element operand.
8465         (aarch64_mls_elt_merge<mode>): Likewise.
8467 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
8469         * config/arc/arc.c (arc_can_follow_jump): Check for short
8470         branches.
8472 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
8474         * config.gcc: Use g.opt for arc.
8475         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
8476         functionality moved to ...
8477         (legitimate_scaled_address_p): New function, ...here.
8478         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
8479         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
8480         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
8481         condition.
8482         (arc_override_options): Handle G option.
8483         (arc_output_pic_addr_const): Correct function definition.
8484         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
8485         (arc_decl_anon_ns_mem_p): Delete.
8486         (arc_in_small_data_p): Overhaul this function to take into
8487         consideration the value given via G option.
8488         (arc_rewrite_small_data_1): Renamed and corrected old
8489         arc_rewrite_small_data function.
8490         (arc_rewrite_small_data): New function.
8491         (small_data_pattern): Don't use pic_offset_table_rtx.
8492         * config/arc/arc.h (CC1_SPEC): Recognize G option.
8493         * config/arc/simdext.md (movmisalignv2hi): Use
8494         prepare_move_operands function.
8495         (mov*): Likewise.
8496         (movmisalign*): Likewise.
8497         * doc/invoke.texi (ARC options): Document -G option.
8499 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
8501         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
8502         prototype.
8503         * config/arc/arc.c (arc_print_operand): Output scalled address for
8504         sdata whenever is possible.
8505         (arc_in_small_data_p): Allow sdata for 64bit datum when double
8506         load/stores are available.
8507         (compact_sda_memory_operand): Check for the alignment required by
8508         code density instructions.
8509         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
8510         constraint.
8511         * config/arc/constraints.md (Usd): Update constraint.
8512         (Us0): New constraint.
8513         (Usc): Update constraint.
8515 2017-08-31  Richard Biener  <rguenther@suse.de>
8517         PR middle-end/82054
8518         * dwarf2out.c (dwarf2out_early_global_decl): Process each
8519         function only once.
8521 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
8523         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
8524         Resize type_signature.
8526 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
8527             Alan Hayward  <alan.hayward@arm.com>
8528             David Sherwood  <david.sherwood@arm.com>
8530         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
8531         subregs whose inner modes can be stored in GPRs.
8532         (aarch64_classify_index): Likewise.
8534 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
8535             Alan Hayward  <alan.hayward@arm.com>
8536             David Sherwood  <david.sherwood@arm.com>
8538         * config/aarch64/iterators.md (V_cmp_result): Rename to...
8539         (V_INT_EQUIV): ...this.
8540         (v_cmp_result): Rename to...
8541         (v_int_equiv): ...this.
8542         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
8543         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
8544         (copysign<mode>3): Likewise.
8545         (aarch64_simd_bsl<mode>_internal): Likewise.
8546         (aarch64_simd_bsl<mode>): Likewise.
8547         (vec_cmp<mode><mode>): Likewise.
8548         (vcond<mode><mode>): Likewise.
8549         (vcond<v_cmp_mixed><mode>): Likewise.
8550         (vcondu<mode><v_cmp_mixed>): Likewise.
8551         (aarch64_cm<optab><mode>): Likewise.
8552         (aarch64_cmtst<mode>): Likewise.
8553         (aarch64_fac<optab><mode>): Likewise.
8554         (vec_perm_const<mode>): Likewise.
8555         (vcond_mask_<mode><v_cmp_result>): Rename to...
8556         (vcond_mask_<mode><v_int_equiv>): ...this.
8557         (vec_cmp<mode><v_cmp_result>): Rename to...
8558         (vec_cmp<mode><v_int_equiv>): ...this.
8560 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
8561             Alan Hayward  <alan.hayward@arm.com>
8562             David Sherwood  <david.sherwood@arm.com>
8564         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
8565         vector modes.
8566         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
8567         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
8568         (UNSPEC_LD4_DREG): New unspecs.
8569         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
8570         (aarch64_ld2<mode>_dreg_be): Replace with...
8571         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
8572         unspec.
8573         (aarch64_ld3<mode>_dreg_le)
8574         (aarch64_ld3<mode>_dreg_be): Replace with...
8575         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
8576         unspec.
8577         (aarch64_ld4<mode>_dreg_le)
8578         (aarch64_ld4<mode>_dreg_be): Replace with...
8579         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
8580         unspec.
8582 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8584         PR tree-optimization/81987
8585         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
8586         insert an initializer in a location not dominated by the stride
8587         definition.
8589 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
8591         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
8592         on the entire header of the finally block in the fallthru case.
8594 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
8596         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
8598 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
8600         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
8601         rs6000_emit_move_from_cr and call renamed function.
8602         (rs6000_emit_prologue): Call renamed functions.
8603         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
8604         movesi_from_cr, remove volatile CRs.
8606 2017-08-30  Jon Beniston  <jon@beniston.com>
8607             Richard Biener  <rguenther@suse.de>
8609         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
8610         of VECTOR_MODE_P check.
8611         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
8612         element vector types.
8614 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8616         * df.h (df_read_modify_subreg_p): Remove in favor of...
8617         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
8618         const_rtx instead of an rtx.
8619         * cprop.c (local_cprop_find_used_regs): Update accordingly.
8620         * df-problems.c (df_word_lr_mark_ref): Likewise.
8621         * ira-lives.c (mark_pseudo_reg_live): Likewise.
8622         (mark_pseudo_reg_dead): Likewise.
8623         (mark_ref_dead): Likewise.
8624         * reginfo.c (init_subregs_of_mode): Likewise.
8625         * sched-deps.c (sched_analyze_1): Likewise.
8626         * df-scan.c (df_def_record_1): Likewise.
8627         (df_uses_record): Likewise.
8628         (df_read_modify_subreg_p): Remove in favor of...
8629         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
8630         const_rtx instead of an rtx.
8632 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8633             Alan Hayward  <alan.hayward@arm.com>
8634             David Sherwood  <david.sherwood@arm.com>
8636         * rtl.h (partial_subreg_p): New function.
8637         * caller-save.c (save_call_clobbered_regs): Use it.
8638         * calls.c (expand_call): Likewise.
8639         * combine.c (combinable_i3pat): Likewise.
8640         (simplify_set): Likewise.
8641         (make_extraction): Likewise.
8642         (make_compound_operation_int): Likewise.
8643         (gen_lowpart_or_truncate): Likewise.
8644         (force_to_mode): Likewise.
8645         (make_field_assignment): Likewise.
8646         (reg_truncated_to_mode): Likewise.
8647         (record_truncated_value): Likewise.
8648         (move_deaths): Likewise.
8649         * cse.c (record_jump_cond): Likewise.
8650         (cse_insn): Likewise.
8651         * cselib.c (cselib_lookup_1): Likewise.
8652         * expmed.c (extract_bit_field_using_extv): Likewise.
8653         * function.c (assign_parm_setup_reg): Likewise.
8654         * ifcvt.c (noce_convert_multiple_sets): Likewise.
8655         * ira-build.c (create_insn_allocnos): Likewise.
8656         * lra-coalesce.c (merge_pseudos): Likewise.
8657         * lra-constraints.c (match_reload): Likewise.
8658         (simplify_operand_subreg): Likewise.
8659         (curr_insn_transform): Likewise.
8660         * lra-lives.c (process_bb_lives): Likewise.
8661         * lra.c (new_insn_reg): Likewise.
8662         (lra_substitute_pseudo): Likewise.
8663         * regcprop.c (mode_change_ok): Likewise.
8664         (maybe_mode_change): Likewise.
8665         (copyprop_hardreg_forward_1): Likewise.
8666         * reload.c (push_reload): Likewise.
8667         (find_reloads): Likewise.
8668         (find_reloads_subreg_address): Likewise.
8669         * reload1.c (alter_reg): Likewise.
8670         (eliminate_regs_1): Likewise.
8671         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8673 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
8675         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
8676         back to if statements, including unpack.
8678 2017-08-30  Martin Liska  <mliska@suse.cz>
8680         PR inline-asm/82001
8681         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
8682         Rename to ...
8683         (func_checker::compare_asm_inputs_outputs): ... this function.
8684         (func_checker::compare_gimple_asm): Use the function to compare
8685         also ASM constrains.
8686         * ipa-icf-gimple.h: Rename the function.
8688 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8689             Alan Hayward  <alan.hayward@arm.com>
8690             David Sherwood  <david.sherwood@arm.com>
8692         * coretypes.h (complex_mode): New type.
8693         * gdbhooks.py (build_pretty_printer): Handle it.
8694         * machmode.h (complex_mode): New class.
8695         (complex_mode::includes_p): New function.
8696         (is_complex_int_mode): Likewise.
8697         (is_complex_float_mode): Likewise.
8698         * genmodes.c (get_mode_class): Handle complex mode classes.
8699         * function.c (expand_function_end): Use is_complex_int_mode.
8701 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8702             Alan Hayward  <alan.hayward@arm.com>
8703             David Sherwood  <david.sherwood@arm.com>
8705         * coretypes.h (scalar_mode_pod): New typedef.
8706         * gdbhooks.py (build_pretty_printer): Handle it.
8707         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
8708         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
8709         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
8710         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
8711         as_a <scalar_mode>.
8713 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8714             Alan Hayward  <alan.hayward@arm.com>
8715             David Sherwood  <david.sherwood@arm.com>
8717         * machmode.h (mode_for_vector): Take a scalar_mode instead
8718         of a machine_mode.
8719         * stor-layout.c (mode_for_vector): Likewise.
8720         * explow.c (promote_mode): Use as_a <scalar_mode>.
8721         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
8723 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8724             Alan Hayward  <alan.hayward@arm.com>
8725             David Sherwood  <david.sherwood@arm.com>
8727         * target.def (preferred_simd_mode): Take a scalar_mode
8728         instead of a machine_mode.
8729         * targhooks.h (default_preferred_simd_mode): Likewise.
8730         * targhooks.c (default_preferred_simd_mode): Likewise.
8731         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
8732         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
8733         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
8734         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
8735         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
8736         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
8737         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
8738         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
8739         Likewise.
8740         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
8741         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
8742         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
8743         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
8744         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
8745         * doc/tm.texi: Regenerate.
8746         * optabs-query.c (can_vec_mask_load_store_p): Return false for
8747         non-scalar modes.
8749 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8750             Alan Hayward  <alan.hayward@arm.com>
8751             David Sherwood  <david.sherwood@arm.com>
8753         * target.def (scalar_mode_supported_p): Take a scalar_mode
8754         instead of a machine_mode.
8755         * targhooks.h (default_scalar_mode_supported_p): Likewise.
8756         * targhooks.c (default_scalar_mode_supported_p): Likewise.
8757         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
8758         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
8759         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
8760         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
8761         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
8762         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
8763         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
8764         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
8765         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
8766         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
8767         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
8768         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
8769         Likewise.
8770         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
8771         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
8772         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
8773         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
8774         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
8775         Likewise.
8776         * doc/tm.texi: Regenerate.
8778 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8779             Alan Hayward  <alan.hayward@arm.com>
8780             David Sherwood  <david.sherwood@arm.com>
8782         * coretypes.h (opt_scalar_mode): New typedef.
8783         * gdbhooks.py (build_pretty_printers): Handle it.
8784         * machmode.h (mode_iterator::get_2xwider): Add overload for
8785         opt_mode<T>.
8786         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
8787         over scalar modes.
8788         * expr.c (convert_mode_scalar): Likewise.
8789         * omp-low.c (omp_clause_aligned_alignment): Likewise.
8790         * optabs.c (expand_float): Likewise.
8791         (expand_fix): Likewise.
8792         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8794 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8795             Alan Hayward  <alan.hayward@arm.com>
8796             David Sherwood  <david.sherwood@arm.com>
8798         * optabs.c (expand_float): Explicitly check for scalars before
8799         using a branching expansion.
8800         (expand_fix): Likewise.
8802 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8803             Alan Hayward  <alan.hayward@arm.com>
8804             David Sherwood  <david.sherwood@arm.com>
8806         * expr.c (convert_mode): Split scalar handling out into...
8807         (convert_mode_scalar): ...this new function.  Treat the modes
8808         as scalar_modes.
8810 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8811             Alan Hayward  <alan.hayward@arm.com>
8812             David Sherwood  <david.sherwood@arm.com>
8814         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
8815         and scalar_mode.
8816         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
8818 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8819             Alan Hayward  <alan.hayward@arm.com>
8820             David Sherwood  <david.sherwood@arm.com>
8822         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
8823         rather than a machine_mode.
8824         (fixed_from_string): Likewise.
8825         (fixed_convert): Likewise.
8826         (fixed_convert_from_int): Likewise.
8827         (fixed_convert_from_real): Likewise.
8828         (real_convert_from_fixed): Likewise.
8829         * fixed-value.c (fixed_from_double_int): Likewise.
8830         (fixed_from_string): Likewise.
8831         (fixed_convert): Likewise.
8832         (fixed_convert_from_int): Likewise.
8833         (fixed_convert_from_real): Likewise.
8834         (real_convert_from_fixed): Likewise.
8835         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
8837 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8838             Alan Hayward  <alan.hayward@arm.com>
8839             David Sherwood  <david.sherwood@arm.com>
8841         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
8842         of separate mode class checks.  Do not allow vector modes here.
8843         (immed_wide_int_const): Use as_a <scalar_mode>.
8844         * explow.c (trunc_int_for_mode): Likewise.
8845         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
8846         (wi::shwi): Likewise.
8847         (wi::min_value): Likewise.
8848         (wi::max_value): Likewise.
8849         * dwarf2out.c (loc_descriptor): Likewise.
8850         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
8851         for CONST_WIDE_INT.
8853 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8854             Alan Hayward  <alan.hayward@arm.com>
8855             David Sherwood  <david.sherwood@arm.com>
8857         * tree.h (SCALAR_TYPE_MODE): New macro.
8858         * expr.c (expand_expr_addr_expr_1): Use it.
8859         (expand_expr_real_2): Likewise.
8860         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
8861         (fold_convert_const_fixed_from_int): Likewise.
8862         (fold_convert_const_fixed_from_real): Likewise.
8863         (native_encode_fixed): Likewise
8864         (native_encode_complex): Likewise
8865         (native_encode_vector): Likewise.
8866         (native_interpret_fixed): Likewise.
8867         (native_interpret_real): Likewise.
8868         (native_interpret_complex): Likewise.
8869         (native_interpret_vector): Likewise.
8870         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
8871         (simd_clone_adjust_argument_types): Likewise.
8872         (simd_clone_init_simd_arrays): Likewise.
8873         (simd_clone_adjust): Likewise.
8874         * stor-layout.c (layout_type): Likewise.
8875         * tree.c (build_minus_one_cst): Likewise.
8876         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8877         * tree-inline.c (estimate_move_cost): Likewise.
8878         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
8879         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
8880         (vectorizable_reduction): Likewise.
8881         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
8882         (vect_recog_mixed_size_cond_pattern): Likewise.
8883         (check_bool_pattern): Likewise.
8884         (adjust_bool_pattern): Likewise.
8885         (search_type_for_mask_1): Likewise.
8886         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
8887         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8888         (vectorizable_load): Likewise.
8889         (vectorizable_store): Likewise.
8890         * ubsan.c (ubsan_encode_value): Likewise.
8891         * varasm.c (output_constant): Likewise.
8893 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8894             Alan Hayward  <alan.hayward@arm.com>
8895             David Sherwood  <david.sherwood@arm.com>
8897         * coretypes.h (scalar_mode): New class.
8898         * machmode.h (scalar_mode): Likewise.
8899         (scalar_mode::includes_p): New function.
8900         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
8901         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
8902         * genmodes.c (get_mode_class): Handle remaining scalar modes.
8903         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
8904         * expmed.c (store_bit_field_1): Likewise.
8905         (extract_bit_field_1): Likewise.
8906         * expr.c (write_complex_part): Likewise.
8907         (read_complex_part): Likewise.
8908         (emit_move_complex_push): Likewise.
8909         (expand_expr_real_2): Likewise.
8910         * function.c (assign_parm_setup_reg): Likewise.
8911         (assign_parms_unsplit_complex): Likewise.
8912         * optabs.c (expand_binop): Likewise.
8913         * rtlanal.c (subreg_get_info): Likewise.
8914         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8915         * varasm.c (output_constant_pool_2): Likewise.
8917 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8918             Alan Hayward  <alan.hayward@arm.com>
8919             David Sherwood  <david.sherwood@arm.com>
8921         * expmed.c (extract_high_half): Use scalar_int_mode and remove
8922         assertion.
8923         (expmed_mult_highpart_optab): Likewise.
8924         (expmed_mult_highpart): Likewise.
8926 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
8927             Alan Hayward  <alan.hayward@arm.com>
8928             David Sherwood  <david.sherwood@arm.com>
8930         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
8931         instead of a machine_mode.
8932         (builtin_memset_read_str): Likewise.
8933         * builtins.c (c_readstr): Likewise.
8934         (builtin_memcpy_read_str): Likewise.
8935         (builtin_strncpy_read_str): Likewise.
8936         (builtin_memset_read_str): Likewise.
8937         (builtin_memset_gen_str): Likewise.
8938         (expand_builtin_signbit): Use scalar_int_mode for local variables.
8939         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
8940         instead of a machine_mode.
8941         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
8942         variables.
8943         (make_extraction): Likewise.
8944         (try_widen_shift_mode): Take and return scalar_int_modes instead
8945         of machine_modes.
8946         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
8947         a scalar_int_mode instead of a machine_mode.
8948         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
8949         (avr_addr_space_pointer_mode): Likewise.
8950         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
8951         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
8952         (msp430_unwind_word_mode): Likewise.
8953         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
8954         (spu_addr_space_pointer_mode): Likewise.
8955         (spu_addr_space_address_mode): Likewise.
8956         (spu_libgcc_cmp_return_mode): Likewise.
8957         (spu_libgcc_shift_count_mode): Likewise.
8958         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
8959         (rl78_addr_space_pointer_mode): Likewise.
8960         (fl78_unwind_word_mode): Likewise.
8961         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
8962         machine_mode.
8963         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
8964         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
8965         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
8966         (mips_valid_pointer_mode): Likewise.
8967         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
8968         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
8969         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
8970         of a machine_mode.
8971         (ft32_addr_space_address_mode): Likewise.
8972         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
8973         scalar_int_mode instead of a machine_mode.
8974         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
8975         of a machine_mode.
8976         (m32c_addr_space_address_mode): Likewise.
8977         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
8978         (rs6000_eh_return_filter_mode): Likewise.
8979         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
8980         (rs6000_eh_return_filter_mode): Likewise.
8981         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
8982         (s390_libgcc_shift_count_mode): Likewise.
8983         (s390_unwind_word_mode): Likewise.
8984         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
8985         machine_mode.
8986         * target.def (mode_rep_extended): Likewise.
8987         (valid_pointer_mode): Likewise.
8988         (addr_space.valid_pointer_mode): Likewise.
8989         (eh_return_filter_mode): Return a scalar_int_mode rather than
8990         a machine_mode.
8991         (libgcc_cmp_return_mode): Likewise.
8992         (libgcc_shift_count_mode): Likewise.
8993         (unwind_word_mode): Likewise.
8994         (addr_space.pointer_mode): Likewise.
8995         (addr_space.address_mode): Likewise.
8996         * doc/tm.texi: Regenerate.
8997         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
8998         a machine_mode.
8999         (do_jump): Use scalar_int_mode for local variables.
9000         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
9001         rather than a machine_mode.
9002         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
9003         (scompare_loc_descriptor_wide): Likewise.
9004         (scompare_loc_descriptor_narrow): Likewise.
9005         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
9006         variables.
9007         * except.c (sjlj_emit_dispatch_table): Likewise.
9008         (expand_builtin_eh_copy_values): Likewise.
9009         * explow.c (convert_memory_address_addr_space_1): Likewise.
9010         Take a scalar_int_mode rather than a machine_mode.
9011         (convert_memory_address_addr_space): Take a scalar_int_mode rather
9012         than a machine_mode.
9013         (memory_address_addr_space): Use scalar_int_mode for local variables.
9014         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
9015         rather than a machine_mode.
9016         * expmed.c (mask_rtx): Likewise.
9017         (init_expmed_one_conv): Likewise.
9018         (expand_mult_highpart_adjust): Likewise.
9019         (extract_high_half): Likewise.
9020         (expmed_mult_highpart_optab): Likewise.
9021         (expmed_mult_highpart): Likewise.
9022         (expand_smod_pow2): Likewise.
9023         (expand_sdiv_pow2): Likewise.
9024         (emit_store_flag_int): Likewise.
9025         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
9026         variables.
9027         (extract_low_bits): Likewise.
9028         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
9029         a machine_mode.
9030         * expr.c (pieces_addr::adjust):  Likewise.
9031         (can_store_by_pieces): Likewise.
9032         (store_by_pieces): Likewise.
9033         (clear_by_pieces_1): Likewise.
9034         (expand_expr_addr_expr_1): Likewise.
9035         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
9036         (expand_expr_real_1): Likewise.
9037         (try_casesi): Likewise.
9038         * final.c (shorten_branches): Likewise.
9039         * fold-const.c (fold_convert_const_int_from_fixed): Change the
9040         type of "mode" to machine_mode.
9041         * internal-fn.c (expand_arith_overflow_result_store): Take a
9042         scalar_int_mode rather than a machine_mode.
9043         (expand_mul_overflow): Use scalar_int_mode for local variables.
9044         * loop-doloop.c (doloop_modify): Likewise.
9045         (doloop_optimize): Likewise.
9046         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
9047         than a machine_mode.
9048         (expand_doubleword_shift_condmove): Likewise.
9049         (expand_doubleword_shift): Likewise.
9050         (expand_doubleword_clz): Likewise.
9051         (expand_doubleword_popcount): Likewise.
9052         (expand_doubleword_parity): Likewise.
9053         (expand_absneg_bit): Use scalar_int_mode for local variables.
9054         (prepare_float_lib_cmp): Likewise.
9055         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
9056         rather than a machine_mode.
9057         (convert_memory_address_addr_space): Likewise.
9058         (get_mode_bounds): Likewise.
9059         (get_address_mode): Return a scalar_int_mode rather than a
9060         machine_mode.
9061         * rtlanal.c (get_address_mode): Likewise.
9062         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
9063         than a machine_mode.
9064         * targhooks.c (default_mode_rep_extended): Likewise.
9065         (default_valid_pointer_mode): Likewise.
9066         (default_addr_space_valid_pointer_mode): Likewise.
9067         (default_eh_return_filter_mode): Return a scalar_int_mode rather
9068         than a machine_mode.
9069         (default_libgcc_cmp_return_mode): Likewise.
9070         (default_libgcc_shift_count_mode): Likewise.
9071         (default_unwind_word_mode): Likewise.
9072         (default_addr_space_pointer_mode): Likewise.
9073         (default_addr_space_address_mode): Likewise.
9074         * targhooks.h (default_eh_return_filter_mode): Likewise.
9075         (default_libgcc_cmp_return_mode): Likewise.
9076         (default_libgcc_shift_count_mode): Likewise.
9077         (default_unwind_word_mode): Likewise.
9078         (default_addr_space_pointer_mode): Likewise.
9079         (default_addr_space_address_mode): Likewise.
9080         (default_mode_rep_extended): Take a scalar_int_mode rather than
9081         a machine_mode.
9082         (default_valid_pointer_mode): Likewise.
9083         (default_addr_space_valid_pointer_mode): Likewise.
9084         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
9085         local variables.
9086         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
9087         rather than a machine_mode.
9088         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
9089         for local variables.
9090         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9091         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
9092         than a machine_mode.
9094 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9095             Alan Hayward  <alan.hayward@arm.com>
9096             David Sherwood  <david.sherwood@arm.com>
9098         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
9099         the mode argument to scalar_int_mode.
9100         (do_jump_by_parts_zero_rtx): Likewise.
9101         (do_jump_by_parts_equality_rtx): Likewise.
9102         (do_jump_by_parts_greater): Take a mode argument.
9103         (do_jump_by_parts_equality): Likewise.
9104         (do_jump_1): Update calls accordingly.
9106 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9107             Alan Hayward  <alan.hayward@arm.com>
9108             David Sherwood  <david.sherwood@arm.com>
9110         * is-a.h (safe_dyn_cast): New function.
9111         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
9112         (jump_table_for_label): Likewise.
9113         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
9114         instead of an rtx_insn *.
9115         (shorten_branches): Use dyn_cast instead of LABEL_P and
9116         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
9117         rtx_jump_table_data::get_data_mode.
9118         (final_scan_insn): Likewise.
9120 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9121             Alan Hayward  <alan.hayward@arm.com>
9122             David Sherwood  <david.sherwood@arm.com>
9124         * combine.c (try_combine): Use is_a <scalar_int_mode> when
9125         trying to combine a full-register integer set with a subreg
9126         integer set.
9128 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9129             Alan Hayward  <alan.hayward@arm.com>
9130             David Sherwood  <david.sherwood@arm.com>
9132         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
9133         that is always either address_mode or pointer_mode.
9135 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9136             Alan Hayward  <alan.hayward@arm.com>
9137             David Sherwood  <david.sherwood@arm.com>
9139         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
9140         when the two are known to be equal.
9142 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9143             Alan Hayward  <alan.hayward@arm.com>
9144             David Sherwood  <david.sherwood@arm.com>
9146         * simplify-rtx.c (simplify_const_unary_operation): Use
9147         is_a <scalar_int_mode> instead of checking for a nonzero
9148         precision.  Forcibly convert op_mode to a scalar_int_mode
9149         in that case.  More clearly differentiate the operand and
9150         result modes and use the former when deciding what the value
9151         of a count-bits operation should be.  Use is_int_mode instead
9152         of checking for a MODE_INT.  Remove redundant check for whether
9153         this mode has a zero precision.
9155 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9156             Alan Hayward  <alan.hayward@arm.com>
9157             David Sherwood  <david.sherwood@arm.com>
9159         * optabs.c (widen_leading): Change the type of the mode argument
9160         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
9161         (widen_bswap): Likewise.
9162         (expand_parity): Likewise.
9163         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
9164         (expand_ffs): Likewise.
9165         (epand_unop): Check for scalar integer modes before calling the
9166         above routines.
9168 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9169             Alan Hayward  <alan.hayward@arm.com>
9170             David Sherwood  <david.sherwood@arm.com>
9172         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
9173         Expand commentary.
9174         (expand_expr_real_1): Update call accordingly.
9176 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9177             Alan Hayward  <alan.hayward@arm.com>
9178             David Sherwood  <david.sherwood@arm.com>
9180         * expmed.c (store_bit_field_using_insv): Add op0_mode and
9181         value_mode arguments.  Use scalar_int_mode internally.
9182         (store_bit_field_1): Rename the new integer mode from imode
9183         to op0_mode and use it instead of GET_MODE (op0).  Update calls
9184         to store_split_bit_field, store_bit_field_using_insv and
9185         store_fixed_bit_field.
9186         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
9187         Use scalar_int_mode internally.  Use a bit count rather than a mode
9188         when calculating the largest bit size for get_best_mode.
9189         Update calls to store_split_bit_field and store_fixed_bit_field_1.
9190         (store_fixed_bit_field_1): Add mode and value_mode arguments.
9191         Remove assertion that OP0 has a scalar integer mode.
9192         (store_split_bit_field): Add op0_mode and value_mode arguments.
9193         Update calls to extract_fixed_bit_field.
9194         (extract_bit_field_using_extv): Add an op0_mode argument.
9195         Use scalar_int_mode internally.
9196         (extract_bit_field_1): Rename the new integer mode from imode to
9197         op0_mode and use it instead of GET_MODE (op0).  Update calls to
9198         extract_split_bit_field, extract_bit_field_using_extv and
9199         extract_fixed_bit_field.
9200         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
9201         to extract_split_bit_field and extract_fixed_bit_field_1.
9202         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
9203         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
9204         on the target mode.
9205         (extract_split_bit_field): Add an op0_mode argument.  Update call
9206         to extract_fixed_bit_field.
9208 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9209             Alan Hayward  <alan.hayward@arm.com>
9210             David Sherwood  <david.sherwood@arm.com>
9212         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
9213         * explow.c (hard_function_value): Likewise.
9214         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
9215         convert_to_mode call outside the loop.
9216         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
9217         for the mode iterator.  Require the mode specified by max_pieces
9218         to exist.
9219         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
9220         mode iterator.
9221         (copy_blkmode_to_reg): Likewise.
9222         (set_storage_via_setmem): Likewise.
9223         * optabs.c (prepare_cmp_insn): Likewise.
9224         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
9225         * stor-layout.c (finish_bitfield_representative): Likewise.
9227 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9228             Alan Hayward  <alan.hayward@arm.com>
9229             David Sherwood  <david.sherwood@arm.com>
9231         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
9232         * expr.c (convert_move): Use them.
9233         (convert_modes): Likewise.
9234         (store_expr_with_bounds): Likewise.
9236 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9237             Alan Hayward  <alan.hayward@arm.com>
9238             David Sherwood  <david.sherwood@arm.com>
9240         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
9241         parameter for the mode of "x".  Remove the "known_x", "known_mode"
9242         and "known_ret" arguments.  Change the type of the mode argument
9243         to scalar_int_mode.
9244         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
9245         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
9246         (reg_num_sign_bit_copies_for_combine): Likewise.
9247         * rtlanal.c (nonzero_bits1): Likewise.
9248         (num_sign_bit_copies1): Likewise.
9249         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
9250         (reg_num_sign_bit_copies_general): Likewise.
9251         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
9252         (reg_nonzero_bits_general): Likewise.
9254 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9255             Alan Hayward  <alan.hayward@arm.com>
9256             David Sherwood  <david.sherwood@arm.com>
9258         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
9259         than in subroutines.  Return 1 for non-integer modes.
9260         (cached_num_sign_bit_copies): Change the type of the mode parameter
9261         to scalar_int_mode.
9262         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
9263         classes.  Handle CONST_INT_P first and then check whether X also
9264         has a scalar integer mode.  Check the same thing for inner registers
9265         of a SUBREG and for values that are being extended or truncated.
9267 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9268             Alan Hayward  <alan.hayward@arm.com>
9269             David Sherwood  <david.sherwood@arm.com>
9271         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
9272         in subroutines.  Return the mode mask for non-integer modes.
9273         (cached_nonzero_bits): Change the type of the mode parameter
9274         to scalar_int_mode.
9275         (nonzero_bits1): Likewise.  Remove early exit for other mode
9276         classes.  Handle CONST_INT_P first and then check whether X
9277         also has a scalar integer mode.
9279 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9280             Alan Hayward  <alan.hayward@arm.com>
9281             David Sherwood  <david.sherwood@arm.com>
9283         * expr.c (widest_int_mode_for_size): Make the comment match the code.
9284         Return a scalar_int_mode and assert that the size is greater than
9285         one byte.
9286         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
9287         (op_by_pieces_d::op_by_pieces_d): Likewise.
9288         (op_by_pieces_d::run): Likewise.
9289         (can_store_by_pieces): Likewise.
9291 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9292             Alan Hayward  <alan.hayward@arm.com>
9293             David Sherwood  <david.sherwood@arm.com>
9295         * combine.c (extract_left_shift): Add a mode argument and update
9296         recursive calls.
9297         (make_compound_operation_int): Change the type of the mode parameter
9298         to scalar_int_mode and update the call to extract_left_shift.
9300 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9301             Alan Hayward  <alan.hayward@arm.com>
9302             David Sherwood  <david.sherwood@arm.com>
9304         * combine.c (simplify_and_const_int): Change the type of the mode
9305         parameter to scalar_int_mode.
9306         (simplify_and_const_int_1): Likewise.  Update recursive call.
9308 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9309             Alan Hayward  <alan.hayward@arm.com>
9310             David Sherwood  <david.sherwood@arm.com>
9312         * combine.c (simplify_compare_const): Check that the mode is a
9313         scalar_int_mode (rather than VOIDmode) before testing its
9314         precision.
9315         (simplify_comparison): Move COMPARISON_P handling out of the
9316         loop and restrict the latter part of the loop to scalar_int_modes.
9317         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
9318         and when considering SUBREG_REGs.  Use is_int_mode instead of
9319         checking GET_MODE_CLASS against MODE_INT.
9321 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9322             Alan Hayward  <alan.hayward@arm.com>
9323             David Sherwood  <david.sherwood@arm.com>
9325         * combine.c (try_widen_shift_mode): Move check for equal modes to...
9326         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
9327         shift_unit_mode and for modes involved in scalar shifts.
9329 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9330             Alan Hayward  <alan.hayward@arm.com>
9331             David Sherwood  <david.sherwood@arm.com>
9333         * combine.c (force_int_to_mode): New function, split out from...
9334         (force_to_mode): ...here.  Keep xmode up-to-date and use it
9335         instead of GET_MODE (x).
9337 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9338             Alan Hayward  <alan.hayward@arm.com>
9339             David Sherwood  <david.sherwood@arm.com>
9341         * optabs-query.h (extraction_insn::struct_mode): Change type to
9342         opt_scalar_int_mode and update comment.
9343         (extraction_insn::field_mode): Change type to scalar_int_mode.
9344         (extraction_insn::pos_mode): Likewise.
9345         * combine.c (make_extraction): Update accordingly.
9346         * optabs-query.c (get_traditional_extraction_insn): Likewise.
9347         (get_optab_extraction_insn): Likewise.
9348         * recog.c (simplify_while_replacing): Likewise.
9349         * expmed.c (narrow_bit_field_mem): Change the type of the mode
9350         parameter to opt_scalar_int_mode.
9352 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9353             Alan Hayward  <alan.hayward@arm.com>
9354             David Sherwood  <david.sherwood@arm.com>
9356         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
9357         to a scalar_int_mode instead of a machine_mode.
9358         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
9359         (get_best_mode): Return a boolean and use a pointer argument to store
9360         the selected mode.  Replace the limit mode parameter with a bit limit.
9361         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
9362         for the values returned by bit_field_mode_iterator::next_mode.
9363         (store_bit_field): Update call to get_best_mode.
9364         (store_fixed_bit_field): Likewise.
9365         (extract_fixed_bit_field): Likewise.
9366         * expr.c (optimize_bitfield_assignment_op): Likewise.
9367         * fold-const.c (optimize_bit_field_compare): Likewise.
9368         (fold_truth_andor_1): Likewise.
9369         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
9370         Update for new type of m_mode.
9371         (get_best_mode): As above.
9373 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9374             Alan Hayward  <alan.hayward@arm.com>
9375             David Sherwood  <david.sherwood@arm.com>
9377         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
9378         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
9379         (store_bit_field): Check is_a <scalar_int_mode> before calling
9380         strict_volatile_bitfield_p.
9381         (extract_bit_field): Likewise.
9383 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9384             Alan Hayward  <alan.hayward@arm.com>
9385             David Sherwood  <david.sherwood@arm.com>
9387         * target.def (cstore_mode): Return a scalar_int_mode.
9388         * doc/tm.texi: Regenerate.
9389         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
9390         * targhooks.h (default_cstore_mode): Likewise.
9391         * targhooks.c (default_cstore_mode): Likewise, using a forced
9392         conversion.
9393         * expmed.c (emit_cstore): Expect the target of the cstore to be
9394         a scalar_int_mode.
9396 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9397             Alan Hayward  <alan.hayward@arm.com>
9398             David Sherwood  <david.sherwood@arm.com>
9400         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
9401         scalar_int_mode.
9402         (niter_desc): Likewise mode.
9403         (iv_analyze): Add a mode parameter.
9404         (biv_p): Likewise.
9405         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
9406         and change its type to scalar_int_mode.
9407         * loop-iv.c: Update commentary at head of file.
9408         (iv_constant): Pass the mode paraeter before the rtx it describes
9409         and change its type to scalar_int_mode.  Remove VOIDmode handling.
9410         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
9411         (iv_extend): Likewise.
9412         (shorten_into_mode): Likewise.
9413         (iv_add): Use scalar_int_mode.
9414         (iv_mult): Likewise.
9415         (iv_shift): Likewise.
9416         (canonicalize_iv_subregs): Likewise.
9417         (get_biv_step_1): Pass the outer_mode parameter before the rtx
9418         it describes and change its mode to scalar_int_mode.   Also change
9419         the type of the returned inner_mode to scalar_int_mode.
9420         (get_biv_step): Likewise, turning outer_mode from a pointer
9421         into a direct parameter.  Update call to get_biv_step_1.
9422         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
9423         iv_constant and get_biv_step.
9424         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
9425         and change its type to scalar_int_mode.  Don't initialise iv->mode
9426         to VOIDmode and remove later checks for its still being VOIDmode.
9427         Update calls to iv_analyze_op and iv_analyze_expr.  Check
9428         is_a <scalar_int_mode> when changing the mode under consideration.
9429         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
9430         Update call to iv_analyze_expr.
9431         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
9432         inner register is not also a scalar_int_mode.  Update call to
9433         iv_analyze_biv.
9434         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
9435         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
9436         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
9437         separate mode class checks.  Update calls to iv_analyze.  Remove
9438         fix-up of VOIDmodes after iv_analyze_biv.
9439         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
9440         don't have a scalar_int_mode.  Update call to biv_p.
9442 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9443             Alan Hayward  <alan.hayward@arm.com>
9444             David Sherwood  <david.sherwood@arm.com>
9446         * cfgexpand.c (convert_debug_memory_address): Use
9447         as_a <scalar_int_mode>.
9448         * combine.c (expand_compound_operation): Likewise.
9449         (make_extraction): Likewise.
9450         (change_zero_ext): Likewise.
9451         (simplify_comparison): Likewise.
9452         * cse.c (cse_insn): Likewise.
9453         * dwarf2out.c (minmax_loc_descriptor): Likewise.
9454         (mem_loc_descriptor): Likewise.
9455         (loc_descriptor): Likewise.
9456         * expmed.c (init_expmed_one_mode): Likewise.
9457         (synth_mult): Likewise.
9458         (emit_store_flag_1): Likewise.
9459         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
9460         of a comparison with size.
9461         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
9462         (reduce_to_bit_field_precision): Likewise.
9463         * function.c (expand_function_end): Likewise.
9464         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
9465         * loop-doloop.c (doloop_modify): Likewise.
9466         * optabs.c (expand_binop): Likewise.
9467         (expand_unop): Likewise.
9468         (expand_copysign_absneg): Likewise.
9469         (prepare_cmp_insn): Likewise.
9470         (maybe_legitimize_operand): Likewise.
9471         * recog.c (const_scalar_int_operand): Likewise.
9472         * rtlanal.c (get_address_mode): Likewise.
9473         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9474         (simplify_cond_clz_ctz): Likewise.
9475         * tree-nested.c (get_nl_goto_field): Likewise.
9476         * tree.c (build_vector_type_for_mode): Likewise.
9477         * var-tracking.c (use_narrower_mode): Likewise.
9479 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9480             Alan Hayward  <alan.hayward@arm.com>
9481             David Sherwood  <david.sherwood@arm.com>
9483         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
9484         * builtins.c (expand_builtin_signbit): Use it.
9485         * cfgexpand.c (expand_debug_expr): Likewise.
9486         * dojump.c (do_jump): Likewise.
9487         (do_compare_and_jump): Likewise.
9488         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
9489         * expmed.c (make_tree): Likewise.
9490         * expr.c (expand_expr_real_2): Likewise.
9491         (expand_expr_real_1): Likewise.
9492         (try_casesi): Likewise.
9493         * fold-const-call.c (fold_const_call_ss): Likewise.
9494         * fold-const.c (unextend): Likewise.
9495         (extract_muldiv_1): Likewise.
9496         (fold_single_bit_test): Likewise.
9497         (native_encode_int): Likewise.
9498         (native_encode_string): Likewise.
9499         (native_interpret_int): Likewise.
9500         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
9501         * internal-fn.c (expand_addsub_overflow): Likewise.
9502         (expand_neg_overflow): Likewise.
9503         (expand_mul_overflow): Likewise.
9504         (expand_arith_overflow): Likewise.
9505         * match.pd: Likewise.
9506         * stor-layout.c (layout_type): Likewise.
9507         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
9508         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
9509         * tree-ssanames.c (get_range_info): Likewise.
9510         * tree-switch-conversion.c (array_value_type) Likewise.
9511         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
9512         (vect_recog_divmod_pattern): Likewise.
9513         (vect_recog_mixed_size_cond_pattern): Likewise.
9514         * tree-vrp.c (extract_range_basic): Likewise.
9515         (simplify_float_conversion_using_ranges): Likewise.
9516         * tree.c (int_fits_type_p): Likewise.
9517         * ubsan.c (instrument_bool_enum_load): Likewise.
9518         * varasm.c (mergeable_string_section): Likewise.
9519         (narrowing_initializer_constant_valid_p): Likewise.
9520         (output_constant): Likewise.
9522 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9523             Alan Hayward  <alan.hayward@arm.com>
9524             David Sherwood  <david.sherwood@arm.com>
9526         * machmode.h (NARROWEST_INT_MODE): New macro.
9527         * expr.c (alignment_for_piecewise_move): Use it instead of
9528         GET_CLASS_NARROWEST_MODE (MODE_INT).
9529         (push_block): Likewise.
9530         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
9531         Likewise.
9532         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9534 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9535             Alan Hayward  <alan.hayward@arm.com>
9536             David Sherwood  <david.sherwood@arm.com>
9538         * postreload.c (move2add_valid_value_p): Change the type of the
9539         mode parameter to scalar_int_mode.
9540         (move2add_use_add2_insn): Add a mode parameter and use it instead
9541         of GET_MODE (reg).
9542         (move2add_use_add3_insn): Likewise.
9543         (reload_cse_move2add): Update accordingly.
9545 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9546             Alan Hayward  <alan.hayward@arm.com>
9547             David Sherwood  <david.sherwood@arm.com>
9549         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
9550         double-word mode.
9551         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
9552         * optabs.c (expand_unop): Likewise.
9554 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9555             Alan Hayward  <alan.hayward@arm.com>
9556             David Sherwood  <david.sherwood@arm.com>
9558         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
9559         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
9560         (popcount_loc_descriptor): Likewise.
9561         (bswap_loc_descriptor): Likewise.
9562         (rotate_loc_descriptor): Likewise.
9563         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
9564         calling the functions above.
9566 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9567             Alan Hayward  <alan.hayward@arm.com>
9568             David Sherwood  <david.sherwood@arm.com>
9570         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
9571         checks.
9572         (try_combine): Likewise.
9573         (simplify_if_then_else): Likewise.
9574         * cse.c (cse_insn): Likewise.
9575         * dwarf2out.c (mem_loc_descriptor): Likewise.
9576         * emit-rtl.c (gen_lowpart_common): Likewise.
9577         * simplify-rtx.c (simplify_truncation): Likewise.
9578         (simplify_binary_operation_1): Likewise.
9579         (simplify_const_relational_operation): Likewise.
9580         (simplify_ternary_operation): Likewise.
9581         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
9583 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9584             Alan Hayward  <alan.hayward@arm.com>
9585             David Sherwood  <david.sherwood@arm.com>
9587         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
9588         * reload.c (push_reload): Likewise.
9589         (find_reloads): Likewise.
9591 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9592             Alan Hayward  <alan.hayward@arm.com>
9593             David Sherwood  <david.sherwood@arm.com>
9595         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
9596         (make_compound_operation_int): Likewise.
9597         (change_zero_ext): Likewise.
9598         * expr.c (convert_move): Likewise.
9599         (convert_modes): Likewise.
9600         * fwprop.c (forward_propagate_subreg): Likewise.
9601         * loop-iv.c (get_biv_step_1): Likewise.
9602         * optabs.c (widen_operand): Likewise.
9603         * postreload.c (move2add_valid_value_p): Likewise.
9604         * recog.c (simplify_while_replacing): Likewise.
9605         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9606         (simplify_binary_operation_1): Likewise.  Remove redundant
9607         mode equality check.
9609 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9610             Alan Hayward  <alan.hayward@arm.com>
9611             David Sherwood  <david.sherwood@arm.com>
9613         * combine.c (combine_simplify_rtx): Add checks for
9614         is_a <scalar_int_mode>.
9615         (simplify_if_then_else): Likewise.
9616         (make_field_assignment): Likewise.
9617         (simplify_comparison): Likewise.
9618         * ifcvt.c (noce_try_bitop): Likewise.
9619         * loop-invariant.c (canonicalize_address_mult): Likewise.
9620         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9622 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9623             Alan Hayward  <alan.hayward@arm.com>
9624             David Sherwood  <david.sherwood@arm.com>
9626         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
9627         is_a <scalar_int_mode> instead of != BLKmode.
9629 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9630             Alan Hayward  <alan.hayward@arm.com>
9631             David Sherwood  <david.sherwood@arm.com>
9633         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
9634         instead of != VOIDmode.
9635         * combine.c (if_then_else_cond): Likewise.
9636         (change_zero_ext): Likewise.
9637         * dwarf2out.c (mem_loc_descriptor): Likewise.
9638         (loc_descriptor): Likewise.
9639         * rtlanal.c (canonicalize_condition): Likewise.
9640         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
9642 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9643             Alan Hayward  <alan.hayward@arm.com>
9644             David Sherwood  <david.sherwood@arm.com>
9646         * simplify-rtx.c (simplify_binary_operation_1): Use
9647         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
9649 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9650             Alan Hayward  <alan.hayward@arm.com>
9651             David Sherwood  <david.sherwood@arm.com>
9653         * wide-int.h (int_traits<unsigned char>) New class.
9654         (int_traits<unsigned short>) Likewise.
9655         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
9656         Use GET_MODE_UNIT_PRECISION and remove redundant test for
9657         SCALAR_INT_MODE_P.
9658         * combine.c (set_nonzero_bits_and_sign_copies): Use
9659         is_a <scalar_int_mode>.
9660         (find_split_point): Likewise.
9661         (combine_simplify_rtx): Likewise.
9662         (simplify_logical): Likewise.
9663         (expand_compound_operation): Likewise.
9664         (expand_field_assignment): Likewise.
9665         (make_compound_operation): Likewise.
9666         (extended_count): Likewise.
9667         (change_zero_ext): Likewise.
9668         (simplify_comparison): Likewise.
9669         * dwarf2out.c (scompare_loc_descriptor): Likewise.
9670         (ucompare_loc_descriptor): Likewise.
9671         (minmax_loc_descriptor): Likewise.
9672         (mem_loc_descriptor): Likewise.
9673         (loc_descriptor): Likewise.
9674         * expmed.c (init_expmed_one_mode): Likewise.
9675         * lra-constraints.c (lra_constraint_offset): Likewise.
9676         * optabs.c (prepare_libcall_arg): Likewise.
9677         * postreload.c (move2add_note_store): Likewise.
9678         * reload.c (operands_match_p): Likewise.
9679         * rtl.h (load_extend_op): Likewise.
9680         * rtlhooks.c (gen_lowpart_general): Likewise.
9681         * simplify-rtx.c (simplify_truncation): Likewise.
9682         (simplify_unary_operation_1): Likewise.
9683         (simplify_binary_operation_1): Likewise.
9684         (simplify_const_binary_operation): Likewise.
9685         (simplify_const_relational_operation): Likewise.
9686         (simplify_subreg): Likewise.
9687         * stor-layout.c (bitwise_mode_for_mode): Likewise.
9688         * var-tracking.c (adjust_mems): Likewise.
9689         (prepare_call_arguments): Likewise.
9691 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9692             Alan Hayward  <alan.hayward@arm.com>
9693             David Sherwood  <david.sherwood@arm.com>
9695         * machmode.h (is_int_mode): New fuction.
9696         * combine.c (find_split_point): Use it.
9697         (combine_simplify_rtx): Likewise.
9698         (simplify_if_then_else): Likewise.
9699         (simplify_set): Likewise.
9700         (simplify_shift_const_1): Likewise.
9701         (simplify_comparison): Likewise.
9702         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
9703         * cse.c (notreg_cost): Likewise.
9704         (cse_insn): Likewise.
9705         * cselib.c (cselib_lookup_1): Likewise.
9706         * dojump.c (do_jump_1): Likewise.
9707         (do_compare_rtx_and_jump): Likewise.
9708         * dse.c (get_call_args): Likewise.
9709         * dwarf2out.c (rtl_for_decl_init): Likewise.
9710         (native_encode_initializer): Likewise.
9711         * expmed.c (emit_store_flag_1): Likewise.
9712         (emit_store_flag): Likewise.
9713         * expr.c (convert_modes): Likewise.
9714         (store_field): Likewise.
9715         (expand_expr_real_1): Likewise.
9716         * fold-const.c (fold_read_from_constant_string): Likewise.
9717         * gimple-ssa-sprintf.c (get_format_string): Likewise.
9718         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
9719         * optabs.c (expand_binop): Likewise.
9720         (expand_unop): Likewise.
9721         (expand_abs_nojump): Likewise.
9722         (expand_one_cmpl_abs_nojump): Likewise.
9723         * simplify-rtx.c (mode_signbit_p): Likewise.
9724         (val_signbit_p): Likewise.
9725         (val_signbit_known_set_p): Likewise.
9726         (val_signbit_known_clear_p): Likewise.
9727         (simplify_relational_operation_1): Likewise.
9728         * tree.c (vector_type_mode): Likewise.
9730 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9731             Alan Hayward  <alan.hayward@arm.com>
9732             David Sherwood  <david.sherwood@arm.com>
9734         * machmode.h (smallest_mode_for_size): Fix formatting.
9735         (smallest_int_mode_for_size): New function.
9736         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
9737         instead of smallest_mode_for_size.
9738         * combine.c (make_extraction): Likewise.
9739         * config/arc/arc.c (arc_expand_movmem): Likewise.
9740         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
9741         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
9742         * config/s390/s390.c (s390_expand_insv): Likewise.
9743         * config/sparc/sparc.c (assign_int_registers): Likewise.
9744         * config/spu/spu.c (spu_function_value): Likewise.
9745         (spu_function_arg): Likewise.
9746         * coverage.c (get_gcov_type): Likewise.
9747         (get_gcov_unsigned_t): Likewise.
9748         * dse.c (find_shift_sequence): Likewise.
9749         * expmed.c (store_bit_field_1): Likewise.
9750         * expr.c (convert_move): Likewise.
9751         (store_field): Likewise.
9752         * internal-fn.c (expand_arith_overflow): Likewise.
9753         * optabs-query.c (get_best_extraction_insn): Likewise.
9754         * optabs.c (expand_twoval_binop_libfunc): Likewise.
9755         * stor-layout.c (layout_type): Likewise.
9756         (initialize_sizetypes): Likewise.
9757         * targhooks.c (default_get_mask_mode): Likewise.
9758         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
9760 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9761             Alan Hayward  <alan.hayward@arm.com>
9762             David Sherwood  <david.sherwood@arm.com>
9764         * machmode.h (opt_mode::else_blk): New function.
9765         (int_mode_for_mode): Declare.
9766         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
9767         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
9768         return type.
9769         * cfgexpand.c (expand_debug_expr): Likewise.
9770         * combine.c (gen_lowpart_or_truncate): Likewise.
9771         (gen_lowpart_for_combine): Likewise.
9772         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
9773         * config/avr/avr.c (avr_to_int_mode): Likewise.
9774         (avr_out_plus_1): Likewise.
9775         (avr_out_plus): Likewise.
9776         (avr_out_round): Likewise.
9777         * config/i386/i386.c (ix86_split_to_parts): Likewise.
9778         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
9779         (s390_expand_vcond): Likewise.
9780         * config/spu/spu.c (spu_split_immediate): Likewise.
9781         (spu_expand_mov): Likewise.
9782         * dse.c (get_stored_val): Likewise.
9783         * expmed.c (store_bit_field_1): Likewise.
9784         (convert_extracted_bit_field): Use int_mode_for_mode instead of
9785         int_mode_for_size.
9786         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
9787         (extract_low_bits): Likewise.
9788         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
9789         handling rather than repeating the check.
9790         (emit_group_store): Likewise.
9791         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
9792         * optabs.c (expand_absneg_bit): Likewise.
9793         (expand_copysign_absneg): Likewise.
9794         (expand_copysign_bit): Likewise.
9795         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
9796         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
9797         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
9798         * var-tracking.c (prepare_call_arguments):  Likewise.
9799         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
9800         int_mode_for_mode instead of mode_for_size.
9801         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
9803 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9804             Alan Hayward  <alan.hayward@arm.com>
9805             David Sherwood  <david.sherwood@arm.com>
9807         * machmode.h (int_mode_for_size): New function.
9808         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
9809         instead of mode_for_size.
9810         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
9811         explicit.
9812         * combine.c (expand_field_assignment): Use int_mode_for_size
9813         instead of mode_for_size.
9814         (make_extraction): Likewise.
9815         (simplify_shift_const_1): Likewise.
9816         (simplify_comparison): Likewise.
9817         * dojump.c (do_jump): Likewise.
9818         * dwarf2out.c (mem_loc_descriptor): Likewise.
9819         * emit-rtl.c (init_derived_machine_modes): Likewise.
9820         * expmed.c (flip_storage_order): Likewise.
9821         (convert_extracted_bit_field): Likewise.
9822         * expr.c (copy_blkmode_from_reg): Likewise.
9823         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
9824         * internal-fn.c (expand_mul_overflow): Likewise.
9825         * lower-subreg.c (simple_move): Likewise.
9826         * optabs-libfuncs.c (init_optabs): Likewise.
9827         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
9828         * tree.c (vector_type_mode): Likewise.
9829         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
9830         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
9831         * tree-vect-generic.c (expand_vector_parallel): Likewise.
9832         * tree-vect-stmts.c (vectorizable_load): Likewise.
9833         (vectorizable_store): Likewise.
9835 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9836             Alan Hayward  <alan.hayward@arm.com>
9837             David Sherwood  <david.sherwood@arm.com>
9839         * coretypes.h (pod_mode): New type.
9840         (scalar_int_mode_pod): New typedef.
9841         * machmode.h (pod_mode): New class.
9842         (int_n_data_t::m): Change type to scalar_int_mode_pod.
9843         * genmodes.c (emit_mode_int_n): Update accordingly.
9844         * lower-subreg.h (target_lower_subreg): Change type to
9845         scalar_int_mode_pod.
9846         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
9847         scalar_int_mode_pod.
9849 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9850             Alan Hayward  <alan.hayward@arm.com>
9851             David Sherwood  <david.sherwood@arm.com>
9853         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
9854         machine_mode to scalar_int_mode.
9855         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
9856         (rs6000_option_override_internal): Remove cast to int.
9857         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
9858         machine_mode to scalar_int_mode.
9859         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
9860         (rs6000_option_override_internal): Remove cast to int.
9861         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
9862         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
9863         to machine_mode.
9864         * config/s390/s390.c (s390_expand_builtin): Likewise.
9865         * coretypes.h (scalar_int_mode): New type.
9866         (opt_scalar_int_mode): New typedef.
9867         * machmode.h (scalar_int_mode): New class.
9868         (scalar_int_mode::includes_p): New function.
9869         (byte_mode): Change type to scalar_int_mode.
9870         (word_mode): Likewise.
9871         (ptr_mode): Likewise.
9872         * emit-rtl.c (byte_mode): Likewise.
9873         (word_mode): Likewise.
9874         (ptr_mode): Likewise.
9875         (init_derived_machine_modes): Update accordingly.
9876         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
9877         and MODE_PARTIAL_INT.
9878         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
9879         opt_scalar_int_mode.
9881 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9882             Alan Hayward  <alan.hayward@arm.com>
9883             David Sherwood  <david.sherwood@arm.com>
9885         * target.def (libgcc_floating_mode_supported_p): Take a
9886         scalar_float_mode.
9887         * doc/tm.texi: Regenerate.
9888         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
9889         scalar_float_mode.
9890         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
9891         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
9892         Likewise.
9894 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9895             Alan Hayward  <alan.hayward@arm.com>
9896             David Sherwood  <david.sherwood@arm.com>
9898         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
9899         * doc/tm.texi: Regenerate.
9900         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
9901         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
9902         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
9903         * targhooks.h (default_floatn_mode): Likewise.
9904         * targhooks.c (default_floatn_mode): Likewise.
9905         * tree.c (build_common_tree_nodes): Update accordingly.
9907 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9908             Alan Hayward  <alan.hayward@arm.com>
9909             David Sherwood  <david.sherwood@arm.com>
9911         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
9912         (mode_iterator::iterate_p): Likewise.
9913         (mode_iterator::get_wider): Likewise.
9914         * expr.c (init_expr_target): Use opt_scalar_float_mode.
9916 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9917             Alan Hayward  <alan.hayward@arm.com>
9918             David Sherwood  <david.sherwood@arm.com>
9920         * coretypes.h (opt_scalar_float_mode): New typedef.
9921         * machmode.h (float_mode_for_size): New function.
9922         * emit-rtl.c (double_mode): Delete.
9923         (init_emit_once): Use float_mode_for_size.
9924         * stor-layout.c (layout_type): Likewise.
9925         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
9927 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9928             Alan Hayward  <alan.hayward@arm.com>
9929             David Sherwood  <david.sherwood@arm.com>
9931         * output.h (assemble_real): Take a scalar_float_mode.
9932         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
9933         * config/arm/arm.md (consttable_4): Likewise.
9934         (consttable_8): Likewise.
9935         (consttable_16): Likewise.
9936         * config/mips/mips.md (consttable_float): Likewise.
9937         * config/s390/s390.c (s390_output_pool_entry): Likewise.
9938         * varasm.c (assemble_real): Take a scalar_float_mode.
9939         (output_constant_pool_2): Update accordingly.
9940         (output_constant): Likewise.
9942 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9943             Alan Hayward  <alan.hayward@arm.com>
9944             David Sherwood  <david.sherwood@arm.com>
9946         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
9947         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
9948         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
9949         (native_encode_real): Likewise.
9950         (native_interpret_real): Likewise.
9951         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
9952         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
9954 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9955             Alan Hayward  <alan.hayward@arm.com>
9956             David Sherwood  <david.sherwood@arm.com>
9958         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
9959         <scalar_float_mode>.  Simplify.
9960         (gen_extend_conv_libfunc): Likewise.
9962 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9963             Alan Hayward  <alan.hayward@arm.com>
9964             David Sherwood  <david.sherwood@arm.com>
9966         * coretypes.h (scalar_float_mode): New type.
9967         * machmode.h (mode_traits::from_int): Use machine_mode if
9968         USE_ENUM_MODES is defined.
9969         (is_a): New function.
9970         (as_a): Likewise.
9971         (dyn_cast): Likewise.
9972         (scalar_float_mode): New class.
9973         (scalar_float_mode::includes_p): New function.
9974         (is_float_mode): Likewise.
9975         * gdbhooks.py (MachineModePrinter): New class.
9976         (build_pretty_printer): Use it for scalar_float_mode.
9977         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
9978         (format_helper::format_helper): Turn into a template.
9979         * genmodes.c (get_mode_class): New function.
9980         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
9981         or machine_mode if none.
9982         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
9983         as_a <scalar_float_mode>.
9984         * dwarf2out.c (mem_loc_descriptor): Likewise.
9985         (insert_float): Likewise.
9986         (add_const_value_attribute): Likewise.
9987         * simplify-rtx.c (simplify_immed_subreg): Likewise.
9988         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
9989         (expand_unop): Update accordingly.
9990         (expand_abs_nojump): Likewise.
9991         (expand_copysign_absneg): Take a scalar_float_mode.
9992         (expand_copysign_bit): Likewise.
9993         (expand_copysign): Update accordingly.
9995 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
9996             Alan Hayward  <alan.hayward@arm.com>
9997             David Sherwood  <david.sherwood@arm.com>
9999         * coretypes.h (opt_mode): New class.
10000         * machmode.h (opt_mode): Likewise.
10001         (opt_mode::else_void): New function.
10002         (opt_mode::require): Likewise.
10003         (opt_mode::exists): Likewise.
10004         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
10005         (GET_MODE_2XWIDER_MODE): Likewise.
10006         (mode_iterator::get_wider): Update accordingly.
10007         (mode_iterator::get_2xwider): Likewise.
10008         (mode_iterator::get_known_wider): Likewise, turning into a template.
10009         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
10010         forcing a wider mode to exist.
10011         * config/cr16/cr16.h (LONG_REG_P): Likewise.
10012         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
10013         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
10014         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
10015         * lower-subreg.c (init_lower_subreg): Likewise.
10016         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
10017         on the final iteration.
10018         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
10019         a wider mode exists before asking for a move pattern.
10020         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
10021         forcing a wider mode to exist.
10022         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
10023         returning false if no such mode exists.
10024         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
10025         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
10026         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
10027         Avoid checking for a MODE_INT if we already know the mode is not a
10028         SCALAR_INT_MODE_P.
10029         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
10030         forcing a wider mode to exist.
10031         (expmed_mult_highpart_optab): Likewise.
10032         (expmed_mult_highpart): Likewise.
10033         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
10034         using else_void.
10035         * lto-streamer-in.c (lto_input_mode_table): Likewise.
10036         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
10037         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
10038         * internal-fn.c (expand_mul_overflow): Update use of
10039         GET_MODE_2XWIDER_MODE.
10040         * omp-low.c (omp_clause_aligned_alignment): Likewise.
10041         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
10042         GET_MODE_WIDER_MODE.
10043         (convert_plusminus_to_widen): Likewise.
10044         * tree-switch-conversion.c (array_value_type): Likewise.
10045         * var-tracking.c (emit_note_insn_var_location): Likewise.
10046         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
10047         Return false inside rather than outside the loop if no wider mode
10048         exists
10049         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
10050         and GET_MODE_2XWIDER_MODE
10051         (can_compare_p): Use else_void.
10052         * gdbhooks.py (OptMachineModePrinter): New class.
10053         (build_pretty_printer): Use it for opt_mode.
10055 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10056             Alan Hayward  <alan.hayward@arm.com>
10057             David Sherwood  <david.sherwood@arm.com>
10059         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
10060         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
10062 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10063             Alan Hayward  <alan.hayward@arm.com>
10064             David Sherwood  <david.sherwood@arm.com>
10066         * machmode.h (mode_traits): New structure.
10067         (get_narrowest_mode): New function.
10068         (mode_iterator::start): Likewise.
10069         (mode_iterator::iterate_p): Likewise.
10070         (mode_iterator::get_wider): Likewise.
10071         (mode_iterator::get_known_wider): Likewise.
10072         (mode_iterator::get_2xwider): Likewise.
10073         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
10074         (FOR_EACH_MODE): Likewise.
10075         (FOR_EACH_MODE_FROM): Likewise.
10076         (FOR_EACH_MODE_UNTIL): Likewise.
10077         (FOR_EACH_WIDER_MODE): Likewise.
10078         (FOR_EACH_2XWIDER_MODE): Likewise.
10079         * builtins.c (expand_builtin_strlen): Use new mode iterators.
10080         * combine.c (simplify_comparison): Likewise
10081         * config/i386/i386.c (type_natural_mode): Likewise.
10082         * cse.c (cse_insn): Likewise.
10083         * dse.c (find_shift_sequence): Likewise.
10084         * emit-rtl.c (init_derived_machine_modes): Likewise.
10085         (init_emit_once): Likewise.
10086         * explow.c (hard_function_value): Likewise.
10087         * expmed.c (extract_fixed_bit_field_1): Likewise.
10088         (extract_bit_field_1): Likewise.
10089         (expand_divmod): Likewise.
10090         (emit_store_flag_1): Likewise.
10091         * expr.c (init_expr_target): Likewise.
10092         (convert_move): Likewise.
10093         (alignment_for_piecewise_move): Likewise.
10094         (widest_int_mode_for_size): Likewise.
10095         (emit_block_move_via_movmem): Likewise.
10096         (copy_blkmode_to_reg): Likewise.
10097         (set_storage_via_setmem): Likewise.
10098         (compress_float_constant): Likewise.
10099         * omp-low.c (omp_clause_aligned_alignment): Likewise.
10100         * optabs-query.c (get_best_extraction_insn): Likewise.
10101         * optabs.c (expand_binop): Likewise.
10102         (expand_twoval_unop): Likewise.
10103         (expand_twoval_binop): Likewise.
10104         (widen_leading): Likewise.
10105         (widen_bswap): Likewise.
10106         (expand_parity): Likewise.
10107         (expand_unop): Likewise.
10108         (prepare_cmp_insn): Likewise.
10109         (prepare_float_lib_cmp): Likewise.
10110         (expand_float): Likewise.
10111         (expand_fix): Likewise.
10112         (expand_sfix_optab): Likewise.
10113         * postreload.c (move2add_use_add2_insn): Likewise.
10114         * reg-stack.c (reg_to_stack): Likewise.
10115         * reginfo.c (choose_hard_reg_mode): Likewise.
10116         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
10117         * stor-layout.c (mode_for_size): Likewise.
10118         (smallest_mode_for_size): Likewise.
10119         (mode_for_vector): Likewise.
10120         (finish_bitfield_representative): Likewise.
10121         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
10122         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
10123         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
10124         * var-tracking.c (prepare_call_arguments): Likewise.
10126 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10127             Alan Hayward  <alan.hayward@arm.com>
10128             David Sherwood  <david.sherwood@arm.com>
10130         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
10131         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
10132         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
10133         * machmode.h (mode_size): Move earlier in file.
10134         (mode_precision): Likewise.
10135         (mode_inner): Likewise.
10136         (mode_nunits): Likewise.
10137         (mode_unit_size): Likewise.
10138         (unit_unit_precision): Likewise.
10139         (mode_wider): Likewise.
10140         (mode_2xwider): Likewise.
10141         (machine_mode): New class.
10142         (mode_to_bytes): New function.
10143         (mode_to_bits): Likewise.
10144         (mode_to_precision): Likewise.
10145         (mode_to_inner): Likewise.
10146         (mode_to_unit_size): Likewise.
10147         (mode_to_unit_precision): Likewise.
10148         (mode_to_nunits): Likewise.
10149         (GET_MODE_SIZE): Use mode_to_bytes.
10150         (GET_MODE_BITSIZE): Use mode_to_bits.
10151         (GET_MODE_PRECISION): Use mode_to_precision.
10152         (GET_MODE_INNER): Use mode_to_inner.
10153         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
10154         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
10155         (GET_MODE_NUNITS): Use mode_to_nunits.
10156         * system.h (ALWAYS_INLINE): New macro.
10157         * config/powerpcspe/powerpcspe-c.c
10158         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
10159         int for arg1_mode and arg2_mode.
10161 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10162             Alan Hayward  <alan.hayward@arm.com>
10163             David Sherwood  <david.sherwood@arm.com>
10165         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
10166         Prefix mode names with E_ in case statements.
10167         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10168         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
10169         (aarch64_split_simd_move): Likewise.
10170         (aarch64_gen_storewb_pair): Likewise.
10171         (aarch64_gen_loadwb_pair): Likewise.
10172         (aarch64_gen_store_pair): Likewise.
10173         (aarch64_gen_load_pair): Likewise.
10174         (aarch64_get_condition_code_1): Likewise.
10175         (aarch64_constant_pool_reload_icode): Likewise.
10176         (get_rsqrte_type): Likewise.
10177         (get_rsqrts_type): Likewise.
10178         (get_recpe_type): Likewise.
10179         (get_recps_type): Likewise.
10180         (aarch64_gimplify_va_arg_expr): Likewise.
10181         (aarch64_simd_container_mode): Likewise.
10182         (aarch64_emit_load_exclusive): Likewise.
10183         (aarch64_emit_store_exclusive): Likewise.
10184         (aarch64_expand_compare_and_swap): Likewise.
10185         (aarch64_gen_atomic_cas): Likewise.
10186         (aarch64_emit_bic): Likewise.
10187         (aarch64_emit_atomic_swap): Likewise.
10188         (aarch64_emit_atomic_load_op): Likewise.
10189         (aarch64_evpc_trn): Likewise.
10190         (aarch64_evpc_uzp): Likewise.
10191         (aarch64_evpc_zip): Likewise.
10192         (aarch64_evpc_ext): Likewise.
10193         (aarch64_evpc_rev): Likewise.
10194         (aarch64_evpc_dup): Likewise.
10195         (aarch64_gen_ccmp_first): Likewise.
10196         (aarch64_gen_ccmp_next): Likewise.
10197         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
10198         (alpha_emit_xfloating_libcall): Likewise.
10199         (emit_insxl): Likewise.
10200         (alpha_arg_type): Likewise.
10201         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
10202         (arc_preferred_simd_mode): Likewise.
10203         (arc_secondary_reload): Likewise.
10204         (get_arc_condition_code): Likewise.
10205         (arc_print_operand): Likewise.
10206         (arc_legitimate_constant_p): Likewise.
10207         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10208         * config/arc/arc.md (casesi_load): Likewise.
10209         (casesi_compact_jump): Likewise.
10210         * config/arc/predicates.md (proper_comparison_operator): Likewise.
10211         (cc_use_register): Likewise.
10212         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10213         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
10214         (arm_init_iwmmxt_builtins): Likewise.
10215         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
10216         (neon_expand_vector_init): Likewise.
10217         (arm_attr_length_move_neon): Likewise.
10218         (maybe_get_arm_condition_code): Likewise.
10219         (arm_emit_vector_const): Likewise.
10220         (arm_preferred_simd_mode): Likewise.
10221         (arm_output_iwmmxt_tinsr): Likewise.
10222         (thumb1_output_casesi): Likewise.
10223         (thumb2_output_casesi): Likewise.
10224         (arm_emit_load_exclusive): Likewise.
10225         (arm_emit_store_exclusive): Likewise.
10226         (arm_expand_compare_and_swap): Likewise.
10227         (arm_evpc_neon_vuzp): Likewise.
10228         (arm_evpc_neon_vzip): Likewise.
10229         (arm_evpc_neon_vrev): Likewise.
10230         (arm_evpc_neon_vtrn): Likewise.
10231         (arm_evpc_neon_vext): Likewise.
10232         (arm_validize_comparison): Likewise.
10233         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
10234         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
10235         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
10236         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
10237         (c6x_preferred_simd_mode): Likewise.
10238         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
10239         (epiphany_rtx_costs): Likewise.
10240         * config/epiphany/predicates.md (proper_comparison_operator):
10241         Likewise.
10242         * config/frv/frv.c (condexec_memory_operand): Likewise.
10243         (frv_emit_move): Likewise.
10244         (output_move_single): Likewise.
10245         (output_condmove_single): Likewise.
10246         (frv_hard_regno_mode_ok): Likewise.
10247         (frv_matching_accg_mode): Likewise.
10248         * config/h8300/h8300.c (split_adds_subs): Likewise.
10249         (h8300_rtx_costs): Likewise.
10250         (h8300_print_operand): Likewise.
10251         (compute_mov_length): Likewise.
10252         (output_logical_op): Likewise.
10253         (compute_logical_op_length): Likewise.
10254         (compute_logical_op_cc): Likewise.
10255         (h8300_shift_needs_scratch_p): Likewise.
10256         (output_a_shift): Likewise.
10257         (compute_a_shift_length): Likewise.
10258         (compute_a_shift_cc): Likewise.
10259         (expand_a_rotate): Likewise.
10260         (output_a_rotate): Likewise.
10261         * config/i386/i386.c (classify_argument): Likewise.
10262         (function_arg_advance_32): Likewise.
10263         (function_arg_32): Likewise.
10264         (function_arg_64): Likewise.
10265         (function_value_64): Likewise.
10266         (ix86_gimplify_va_arg): Likewise.
10267         (ix86_legitimate_constant_p): Likewise.
10268         (put_condition_code): Likewise.
10269         (split_double_mode): Likewise.
10270         (ix86_avx256_split_vector_move_misalign): Likewise.
10271         (ix86_expand_vector_logical_operator): Likewise.
10272         (ix86_split_idivmod): Likewise.
10273         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
10274         (ix86_build_const_vector): Likewise.
10275         (ix86_build_signbit_mask): Likewise.
10276         (ix86_match_ccmode): Likewise.
10277         (ix86_cc_modes_compatible): Likewise.
10278         (ix86_expand_branch): Likewise.
10279         (ix86_expand_sse_cmp): Likewise.
10280         (ix86_expand_sse_movcc): Likewise.
10281         (ix86_expand_int_sse_cmp): Likewise.
10282         (ix86_expand_vec_perm_vpermi2): Likewise.
10283         (ix86_expand_vec_perm): Likewise.
10284         (ix86_expand_sse_unpack): Likewise.
10285         (ix86_expand_int_addcc): Likewise.
10286         (ix86_split_to_parts): Likewise.
10287         (ix86_vectorize_builtin_gather): Likewise.
10288         (ix86_vectorize_builtin_scatter): Likewise.
10289         (avx_vpermilp_parallel): Likewise.
10290         (inline_memory_move_cost): Likewise.
10291         (ix86_tieable_integer_mode_p): Likewise.
10292         (x86_maybe_negate_const_int): Likewise.
10293         (ix86_expand_vector_init_duplicate): Likewise.
10294         (ix86_expand_vector_init_one_nonzero): Likewise.
10295         (ix86_expand_vector_init_one_var): Likewise.
10296         (ix86_expand_vector_init_concat): Likewise.
10297         (ix86_expand_vector_init_interleave): Likewise.
10298         (ix86_expand_vector_init_general): Likewise.
10299         (ix86_expand_vector_set): Likewise.
10300         (ix86_expand_vector_extract): Likewise.
10301         (emit_reduc_half): Likewise.
10302         (ix86_emit_i387_round): Likewise.
10303         (ix86_mangle_type): Likewise.
10304         (ix86_expand_round_sse4): Likewise.
10305         (expand_vec_perm_blend): Likewise.
10306         (canonicalize_vector_int_perm): Likewise.
10307         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
10308         (expand_vec_perm_1): Likewise.
10309         (expand_vec_perm_interleave3): Likewise.
10310         (expand_vec_perm_even_odd_pack): Likewise.
10311         (expand_vec_perm_even_odd_1): Likewise.
10312         (expand_vec_perm_broadcast_1): Likewise.
10313         (ix86_vectorize_vec_perm_const_ok): Likewise.
10314         (ix86_expand_vecop_qihi): Likewise.
10315         (ix86_expand_mul_widen_hilo): Likewise.
10316         (ix86_expand_sse2_abs): Likewise.
10317         (ix86_expand_pextr): Likewise.
10318         (ix86_expand_pinsr): Likewise.
10319         (ix86_preferred_simd_mode): Likewise.
10320         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
10321         * config/i386/sse.md (*andnot<mode>3): Likewise.
10322         (<mask_codefor><code><mode>3<mask_name>): Likewise.
10323         (*<code><mode>3): Likewise.
10324         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
10325         (ia64_expand_atomic_op): Likewise.
10326         (ia64_arg_type): Likewise.
10327         (ia64_mode_to_int): Likewise.
10328         (ia64_scalar_mode_supported_p): Likewise.
10329         (ia64_vector_mode_supported_p): Likewise.
10330         (expand_vec_perm_broadcast): Likewise.
10331         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
10332         (iq2000_function_arg_advance): Likewise.
10333         (iq2000_function_arg): Likewise.
10334         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
10335         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
10336         (m68k_libcall_value): Likewise.
10337         (m68k_function_value): Likewise.
10338         (sched_attr_op_type): Likewise.
10339         * config/mcore/mcore.c (mcore_output_move): Likewise.
10340         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
10341         Likewise.
10342         (microblaze_function_arg): Likewise.
10343         * config/mips/mips.c (mips16_build_call_stub): Likewise.
10344         (mips_print_operand): Likewise.
10345         (mips_mode_ok_for_mov_fmt_p): Likewise.
10346         (mips_vector_mode_supported_p): Likewise.
10347         (mips_preferred_simd_mode): Likewise.
10348         (mips_expand_vpc_loongson_even_odd): Likewise.
10349         (mips_expand_vec_unpack): Likewise.
10350         (mips_expand_vi_broadcast): Likewise.
10351         (mips_expand_vector_init): Likewise.
10352         (mips_expand_vec_reduc): Likewise.
10353         (mips_expand_msa_cmp): Likewise.
10354         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
10355         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
10356         (cc_flags_for_mode): Likewise.
10357         * config/msp430/msp430.c (msp430_print_operand): Likewise.
10358         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
10359         (nds32_output_casesi_pc_relative): Likewise.
10360         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10361         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
10362         (nvptx_gen_unpack): Likewise.
10363         (nvptx_gen_pack): Likewise.
10364         (nvptx_gen_shuffle): Likewise.
10365         (nvptx_gen_wcast): Likewise.
10366         (nvptx_preferred_simd_mode): Likewise.
10367         * config/pa/pa.c (pa_secondary_reload): Likewise.
10368         * config/pa/predicates.md (base14_operand): Likewise.
10369         * config/powerpcspe/powerpcspe-c.c
10370         (altivec_resolve_overloaded_builtin): Likewise.
10371         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
10372         Likewise.
10373         (rs6000_preferred_simd_mode): Likewise.
10374         (output_vec_const_move): Likewise.
10375         (rs6000_expand_vector_extract): Likewise.
10376         (rs6000_split_vec_extract_var): Likewise.
10377         (reg_offset_addressing_ok_p): Likewise.
10378         (rs6000_legitimate_offset_address_p): Likewise.
10379         (rs6000_legitimize_address): Likewise.
10380         (rs6000_emit_set_const): Likewise.
10381         (rs6000_const_vec): Likewise.
10382         (rs6000_emit_move): Likewise.
10383         (spe_build_register_parallel): Likewise.
10384         (rs6000_darwin64_record_arg_recurse): Likewise.
10385         (swap_selector_for_mode): Likewise.
10386         (spe_init_builtins): Likewise.
10387         (paired_init_builtins): Likewise.
10388         (altivec_init_builtins): Likewise.
10389         (do_load_for_compare): Likewise.
10390         (rs6000_generate_compare): Likewise.
10391         (rs6000_expand_float128_convert): Likewise.
10392         (emit_load_locked): Likewise.
10393         (emit_store_conditional): Likewise.
10394         (rs6000_output_function_epilogue): Likewise.
10395         (rs6000_handle_altivec_attribute): Likewise.
10396         (rs6000_function_value): Likewise.
10397         (emit_fusion_gpr_load): Likewise.
10398         (emit_fusion_p9_load): Likewise.
10399         (emit_fusion_p9_store): Likewise.
10400         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
10401         (fusion_gpr_mem_load): Likewise.
10402         (fusion_addis_mem_combo_load): Likewise.
10403         (fusion_addis_mem_combo_store): Likewise.
10404         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
10405         (fusion_gpr_mem_load): Likewise.
10406         (fusion_addis_mem_combo_load): Likewise.
10407         (fusion_addis_mem_combo_store): Likewise.
10408         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10409         Likewise.
10410         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
10411         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
10412         (rs6000_preferred_simd_mode): Likewise.
10413         (output_vec_const_move): Likewise.
10414         (rs6000_expand_vector_extract): Likewise.
10415         (rs6000_split_vec_extract_var): Likewise.
10416         (reg_offset_addressing_ok_p): Likewise.
10417         (rs6000_legitimate_offset_address_p): Likewise.
10418         (rs6000_legitimize_address): Likewise.
10419         (rs6000_emit_set_const): Likewise.
10420         (rs6000_const_vec): Likewise.
10421         (rs6000_emit_move): Likewise.
10422         (rs6000_darwin64_record_arg_recurse): Likewise.
10423         (swap_selector_for_mode): Likewise.
10424         (paired_init_builtins): Likewise.
10425         (altivec_init_builtins): Likewise.
10426         (rs6000_expand_float128_convert): Likewise.
10427         (emit_load_locked): Likewise.
10428         (emit_store_conditional): Likewise.
10429         (rs6000_output_function_epilogue): Likewise.
10430         (rs6000_handle_altivec_attribute): Likewise.
10431         (rs6000_function_value): Likewise.
10432         (emit_fusion_gpr_load): Likewise.
10433         (emit_fusion_p9_load): Likewise.
10434         (emit_fusion_p9_store): Likewise.
10435         * config/rx/rx.c (rx_gen_move_template): Likewise.
10436         (flags_from_mode): Likewise.
10437         * config/s390/predicates.md (s390_alc_comparison): Likewise.
10438         (s390_slb_comparison): Likewise.
10439         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
10440         (s390_vector_mode_supported_p): Likewise.
10441         (s390_cc_modes_compatible): Likewise.
10442         (s390_match_ccmode_set): Likewise.
10443         (s390_canonicalize_comparison): Likewise.
10444         (s390_emit_compare_and_swap): Likewise.
10445         (s390_branch_condition_mask): Likewise.
10446         (s390_rtx_costs): Likewise.
10447         (s390_secondary_reload): Likewise.
10448         (__SECONDARY_RELOAD_CASE): Likewise.
10449         (s390_expand_cs): Likewise.
10450         (s390_preferred_simd_mode): Likewise.
10451         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
10452         * config/sh/sh.c (sh_print_operand): Likewise.
10453         (dump_table): Likewise.
10454         (sh_secondary_reload): Likewise.
10455         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10456         * config/sh/sh.md (casesi_worker_1): Likewise.
10457         (casesi_worker_2): Likewise.
10458         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
10459         (fcc_comparison_operator): Likewise.
10460         * config/sparc/sparc.c (sparc_expand_move): Likewise.
10461         (emit_soft_tfmode_cvt): Likewise.
10462         (sparc_preferred_simd_mode): Likewise.
10463         (output_cbranch): Likewise.
10464         (sparc_print_operand): Likewise.
10465         (sparc_expand_vec_perm_bmask): Likewise.
10466         (vector_init_bshuffle): Likewise.
10467         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
10468         (spu_vector_mode_supported_p): Likewise.
10469         (spu_expand_insv): Likewise.
10470         (spu_emit_branch_or_set): Likewise.
10471         (spu_handle_vector_attribute): Likewise.
10472         (spu_builtin_splats): Likewise.
10473         (spu_builtin_extract): Likewise.
10474         (spu_builtin_promote): Likewise.
10475         (spu_expand_sign_extend): Likewise.
10476         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
10477         (tilegx_simd_int): Likewise.
10478         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
10479         (tilepro_simd_int): Likewise.
10480         * config/v850/v850.c (const_double_split): Likewise.
10481         (v850_print_operand): Likewise.
10482         (ep_memory_offset): Likewise.
10483         * config/vax/vax.c (vax_rtx_costs): Likewise.
10484         (vax_output_int_move): Likewise.
10485         (vax_output_int_add): Likewise.
10486         (vax_output_int_subtract): Likewise.
10487         * config/visium/predicates.md (visium_branch_operator): Likewise.
10488         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
10489         (visium_print_operand_address): Likewise.
10490         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10491         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
10492         (xtensa_expand_conditional_branch): Likewise.
10493         (xtensa_copy_incoming_a7): Likewise.
10494         (xtensa_output_literal): Likewise.
10495         * dfp.c (decimal_real_maxval): Likewise.
10496         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
10498 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10499             Alan Hayward  <alan.hayward@arm.com>
10500             David Sherwood  <david.sherwood@arm.com>
10502         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
10503         (mode_nunits_inline): Likewise.
10504         (mode_inner_inline): Likewise.
10505         (mode_unit_size_inline): Likewise.
10506         (mode_unit_precision_inline): Likewise.
10507         (emit_insn_modes_h): Likewise.  Also emit a #define of the
10508         unprefixed name.
10509         (emit_mode_wider): Add an E_ prefix to mode names.
10510         (emit_mode_complex): Likewise.
10511         (emit_mode_inner): Likewise.
10512         (emit_mode_adjustments): Likewise.
10513         (emit_mode_int_n): Likewise.
10514         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
10515         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
10516         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
10517         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
10518         (CRC32_BUILTIN, ENTRY): Likewise.
10519         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
10520         (aarch64_pop_regs): Likewise.
10521         (aarch64_process_components): Likewise.
10522         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
10523         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
10524         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
10525         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
10526         * config/arm/arm.c (arm_init_libfuncs): Likewise.
10527         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
10528         Likewise.
10529         * config/i386/i386-builtin.def (pcmpestr): Likewise.
10530         (pcmpistr): Likewise.
10531         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
10532         * config/mmix/mmix.c (mmix_output_condition): Likewise.
10533         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
10534         Likewise.
10535         * config/rl78/rl78.c (mduc_regs): Likewise.
10536         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
10537         (htm_expand_builtin): Likewise.
10538         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
10539         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
10540         * config/xtensa/xtensa.c (print_operand): Likewise.
10541         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
10542         (NUM_MODE_VECTOR_INT): Likewise.
10543         * genoutput.c (null_operand): Likewise.
10544         (output_operand_data): Likewise.
10545         * genrecog.c (print_parameter_value): Likewise.
10546         * lra.c (debug_operand_data): Likewise.
10548 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10550         * dwarf2out.c (scompare_loc_descriptor_wide)
10551         (scompare_loc_descriptor_narrow): New functions, split out from...
10552         (scompare_loc_descriptor): ...here.
10553         * expmed.c (emit_store_flag_int): New function, split out from...
10554         (emit_store_flag): ...here.
10556 2017-08-30  Richard Biener  <rguenther@suse.de>
10558         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
10559         (dwarf2out_early_finish): Move setting of AT_pubnames from
10560         early debug output to early finish.
10562 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
10564         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
10565         and -mdata-region to the assembler.
10567 2017-08-30  Richard Biener  <rguenther@suse.de>
10569         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
10570         attributes.
10571         (gen_subprogram_die): Add DW_AT_object_pointer only early.
10572         (dwarf2out_early_global_decl): Only generate a DIE for the
10573         abstract origin if it doesn't already exist or is a declaration DIE.
10574         (resolve_addr): Do not add the linkage name twice when
10575         generating a stub DIE for the DW_TAG_GNU_call_site target.
10577 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
10579         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10580         Use machine_mode rather than int for arg1_mode.
10582 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
10584         PR target/82015
10585         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
10586         that the second argument of the built-in functions to unpack
10587         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
10588         switch statement instead a lot of if statements.
10589         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
10590         Allow 64-bit values to be in Altivec registers as well as
10591         traditional floating point registers.
10592         (pack<mode>, FMOVE128_VSX iterator): Likewise.
10594 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
10596         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
10597         MAX_REGS_PER_ADDRESS == 1.
10599 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
10601         * config/i386/i386.opt (flag_fentry): Do not init to -1.
10602         * config/i386/i386.c (ix86_option_override_internal): Simplify
10603         setting of opts->x_flag_entry.
10605 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10606             Jakub Jelinek  <jakub@redhat.com>
10607             Richard Biener  <rguenther@suse.de>
10609         PR tree-optimization/81503
10610         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
10611         folded constant fits in the target type; reorder tests for clarity.
10613 2017-08-29  Martin Liska  <mliska@suse.cz>
10615         * passes.def: Include pass_lower_switch.
10616         * stmt.c (dump_case_nodes): Remove and move to
10617         tree-switch-conversion.
10618         (case_values_threshold): Likewise.
10619         (expand_switch_as_decision_tree_p): Likewise.
10620         (emit_case_decision_tree): Likewise.
10621         (expand_case): Likewise.
10622         (balance_case_nodes): Likewise.
10623         (node_has_low_bound): Likewise.
10624         (node_has_high_bound): Likewise.
10625         (node_is_bounded): Likewise.
10626         (emit_case_nodes): Likewise.
10627         (struct simple_case_node): New struct.
10628         (add_case_node): Remove.
10629         (emit_case_dispatch_table): Use vector instead of case_list.
10630         (reset_out_edges_aux): Remove.
10631         (compute_cases_per_edge): Likewise.
10632         (expand_case): Build list of simple_case_node.
10633         (expand_sjlj_dispatch_table): Use it.
10634         * tree-switch-conversion.c (struct case_node): Moved from
10635         stmt.c and adjusted.
10636         (emit_case_nodes): Likewise.
10637         (node_has_low_bound): Likewise.
10638         (node_has_high_bound): Likewise.
10639         (node_is_bounded): Likewise.
10640         (case_values_threshold): Likewise.
10641         (reset_out_edges_aux): Likewise.
10642         (compute_cases_per_edge): Likewise.
10643         (add_case_node): Likewise.
10644         (dump_case_nodes): Likewise.
10645         (balance_case_nodes): Likewise.
10646         (expand_switch_as_decision_tree_p): Likewise.
10647         (emit_jump): Likewise.
10648         (emit_case_decision_tree): Likewise.
10649         (try_switch_expansion): Likewise.
10650         (do_jump_if_equal): Likewise.
10651         (emit_cmp_and_jump_insns): Likewise.
10652         (fix_phi_operands_for_edge): New function.
10653         (record_phi_operand_mapping): Likewise.
10654         (class pass_lower_switch): New pass.
10655         (pass_lower_switch::execute): New function.
10656         (make_pass_lower_switch): Likewise.
10657         (conditional_probability):
10658         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
10659         * tree-pass.h: Add make_pass_lower_switch.
10661 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
10663         PR target/80993
10664         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
10665         handlers as used.
10667 2017-08-29  Richard Biener  <rguenther@suse.de>
10669         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
10670         we do not add a DW_AT_inline attribute twice.
10671         (gen_subprogram_die): Remove code setting DW_AT_inline on
10672         DECL_ABSTRACT_P nodes.
10674 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
10676         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
10677         calls to internal functions.
10678         (gimplify_modify_expr): Likewise.
10679         * tree-call-cdce.c (use_internal_fn): Likewise.
10680         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
10681         (convert_to_divmod): Set the nothrow flag.
10682         * tree-if-conv.c (predicate_mem_writes):  Likewise.
10683         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
10684         (vectorizable_call): Likewise.
10685         (vectorizable_store): Likewise.
10686         (vectorizable_load): Likewise.
10687         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
10688         (vect_recog_mask_conversion_pattern): Likewise.
10690 2017-08-29  Martin Liska  <mliska@suse.cz>
10692         PR other/39851
10693         * gcc.c (driver_handle_option): Add new argument.
10694         * opts-common.c (handle_option): Pass
10695         target_option_override_hook.
10696         * opts-global.c (lang_handle_option): Add new option.
10697         (set_default_handlers):  Add new argument.
10698         (decode_options): Likewise.
10699         * opts.c (target_handle_option): Likewise.
10700         (common_handle_option): Call target_option_override_hook.
10701         * opts.h (struct cl_option_handler_func): Add hook for
10702         target option override.
10703         (struct cl_option_handlers): Likewise.
10704         (set_default_handlers): Add new argument.
10705         (decode_options): Likewise.
10706         (common_handle_option): Likewise.
10707         (target_handle_option): Likewise.
10708         * toplev.c (toplev::main): Pass targetm.target_option.override
10709         hook.
10711 2017-08-29  Richard Biener  <rguenther@suse.de>
10712         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
10714         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
10715         life to the active subtree.
10717 2017-08-28  Jeff Law  <law@redhat.com>
10719         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
10720         derive_equivalences.
10721         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
10722         Code moved into....
10723         (edge_info::derive_equivalences): New private member function
10725         * tree-ssa-dom.c (class edge_info): Changed from a struct
10726         to a class.  Add ctor/dtor, methods and data members.
10727         (edge_info::edge_info): Renamed from allocate_edge_info.
10728         Initialize additional members.
10729         (edge_info::~edge_info): New.
10730         (free_dom_edge_info): Delete the edge info.
10731         (record_edge_info): Use new class & associated member functions.
10732         Tighten forms for testing for edge equivalences.
10733         (record_temporary_equivalences): Iterate over the simple
10734         equivalences rather than assuming there's only one per edge.
10735         (cprop_into_successor_phis): Iterate over the simple
10736         equivalences rather than assuming there's only one per edge.
10737         (optimize_stmt): Use operand_equal_p rather than pointer
10738         equality for mini-DSE code.
10740 2017-08-28  Nathan Sidwell  <nathan@acm.org>
10742         * gcc.c (execute): Fold SIGPIPE handling into switch
10743         statement.  Adjust internal error message.
10745 2017-08-28  Richard Biener  <rguenther@suse.de>
10747         PR debug/81993
10748         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
10749         Do nothing for removed DIEs.
10751 2017-08-28  Richard Biener  <rguenther@suse.de>
10753         PR tree-optimization/81977
10754         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
10755         memcpy.
10757 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
10759         PR target/80640
10760         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
10761         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
10762         using targetm.gen_mem_thread_fence.
10764 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
10766         PR target/81995
10767         * config/i386/i386.md (*<btsc><mode>): Change operand 2
10768         predicate to register_operand.  Reorder operands.
10769         (*btr<mode>): Ditto.
10770         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
10771         (*btr<mode>_mask): Ditto.
10773 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
10775         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
10776         * config/rs6000/xmmintrin.h: New file.
10777         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
10779 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10781         PR target/81504
10782         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
10783         parameter and_insn and return it.
10784         (recombine_lvx_pattern): Insert a copy to ensure availability of
10785         the base register of the copied masking operation at the point of
10786         the instruction replacement.
10787         (recombine_stvx_pattern): Likewise.
10789 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
10791         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
10792         undocumented switches.
10793         (-mpower9-dform-vector): Likewise.
10794         (-mpower9-dform): Likewise.
10795         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
10796         comments to delete references to -mpower9-dform* switches.
10797         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
10798         Delete reference to -mpower9-dform* switches, test for
10799         -mpower9-vector instead.
10800         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
10801         (OTHER_P9_VECTOR_MASKS): Likewise.
10802         (POWERPC_MASKS): Likewise.
10803         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
10804         tests against -mpower9-dform* to -mpower9-vector.  Delete code
10805         that checked for -mpower9-dform* consistancy with other options.
10806         Add test for -mpower9-misc to enable other power9 switches.
10807         (rs6000_init_hard_regno_mode_ok): Likewise.
10808         (rs6000_option_override_internal): Likewise.
10809         (rs6000_emit_prologue): Likewise.
10810         (rs6000_emit_epilogue): Likewise.
10811         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
10812         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
10813         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
10814         -mpower9-vector.
10815         (emit_fusion_p9_store): Likewise.
10816         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
10817         resetting these macros if the assembler does not support ISA 3.0
10818         instructions.
10819         (TARGET_P9_DFORM_VECTOR): Likewise.
10820         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
10821         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
10823 2017-08-25  Alan Modra  <amodra@gmail.com>
10825         PR rtl-optimization/81747
10826         * cse.c (cse_extended_basic_block): Don't attempt to record
10827         equivalences for degenerate conditional branches that branch
10828         to their fall-through.
10830 2017-08-24  Martin Sebor  <msebor@redhat.com>
10832         PR middle-end/81908
10833         * gimple-fold.c (size_must_be_zero_p): New function.
10834         (gimple_fold_builtin_memory_op): Call it.
10836 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
10838         * config/rs6000/mm_malloc.h: New file.
10840 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
10842         PR tree-optimization/81913
10843         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
10844         analysis when either IVs in condition can wrap.
10846 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
10848         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
10849         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
10851 2017-08-24  Richard Biener  <rguenther@suse.de>
10853         PR target/81921
10854         * targhooks.c (default_target_can_inline_p): Properly
10855         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
10856         is present and always compare.
10857         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
10858         infer -mfpmath=sse from TARGET_SSE_P.
10859         (ix86_can_inline_p): Properly use target_option_default_node when
10860         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
10862 2017-08-24  Richard Biener  <rguenther@suse.de>
10864         PR debug/81936
10865         * dwarf2out.c (output_die): Handle flag_generate_offload like
10866         flag_generate_lto.
10867         (output_comp_unit): Likewise.
10868         (gen_array_type_die): Likewise.
10869         (dwarf2out_early_finish): Likewise.
10870         (note_variable_value_in_expr): Likewise.
10871         (dwarf2out_finish): Likewise.  Adjust assert.
10872         * cgraphunit.c (symbol_table::compile): Move setting of
10873         flag_generate_offload earlier ...
10874         (symbol_table::finalize_compilation_unit): ... here, before
10875         early debug finalization.
10877 2017-08-24  Richard Biener  <rguenther@suse.de>
10879         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
10880         and ipa-fnsummary.h.
10881         (ix86_can_inline_p): When ix86_fpmath flags do not match
10882         check whether the callee uses FP math at all.
10884 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
10886         PR middle-end/81931
10887         * tree-ssanames.c (get_nonzero_bits): Use element_precision
10888         instead of TYPE_PRECISION.
10890 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
10891             Alan Hayward  <alan.hayward@arm.com>
10892             David Sherwood  <david.sherwood@arm.com>
10894         * combine.c (make_extraction): Use subreg_offset_from_lsb.
10896 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
10898         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
10899         Remove field.
10900         (ix86_frame::stack_realign_allocate): New field.
10901         (struct machine_frame_state): Modify comments.
10902         (machine_frame_state::sp_realigned_fp_end): New field.
10903         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
10904         layout calculation.
10905         (sp_valid_at): Add assertion to assure no attempt to access invalid
10906         offset of a realigned stack.
10907         (fp_valid_at): Likewise.
10908         (choose_baseaddr): Modify comments.
10909         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
10910         ix86_expand_prologue.
10911         (ix86_expand_prologue): Modify stack realignment and allocation.
10912         (ix86_expand_epilogue): Modify comments.
10913         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
10914         avx2_runtime, avx512f, and avx512f_runtime.
10916 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
10918         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
10919         (mstackrealign): Do not init to -1.
10920         * config/i386/i386.c (ix86_option_override_internal):
10921         Check opts_set, not opts when setting default value of
10922         opts->x_ix86_force_align_arg_pointer.
10924 2017-08-23  Richard Biener  <rguenther@suse.de>
10926         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
10927         lang_hooks.decl_printable_name.
10928         * print-rtl-function.c (print_rtx_function): Likewise.
10929         * tree-pretty-print.c (dump_function_header): Likewise.
10931 2017-08-23  Richard Biener  <rguenther@suse.de>
10933         PR lto/81940
10934         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
10935         -g0 at compile-time.
10937 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
10939         PR middle-end/19706
10940         * doc/sourcebuild.texi (Other hardware attributes):
10941         Document xorsign.
10943 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
10945         PR middle-end/19706
10946         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
10947         Fix single-use check.
10949 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10951         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
10953 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
10955         * doc/install.texi: Modify to add more details on running selected
10956         tests.
10958 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
10960         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
10961         is combined with -mabi=ms.
10962         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
10963         ms_abi.
10965 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10967         PR tree-optimization/81488
10968         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
10969         and cached_basis fields.
10970         (MAX_SPREAD): New constant.
10971         (alloc_cand_and_find_basis): Initialize new fields.
10972         (clear_visited): New function.
10973         (create_phi_basis_1): Rename from create_phi_basis, set visited
10974         and cached_basis fields.
10975         (create_phi_basis): New wrapper function.
10976         (phi_add_costs_1): Rename from phi_add_costs, add spread
10977         parameter, set visited field, short-circuit when limits reached.
10978         (phi_add_costs): New wrapper function.
10979         (record_phi_increments_1): Rename from record_phi_increments, set
10980         visited field.
10981         (record_phi_increments): New wrapper function.
10982         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
10983         (phi_incr_cost): New wrapper function.
10984         (all_phi_incrs_profitable_1): Rename from
10985         all_phi_incrs_profitable, set visited field.
10986         (all_phi_incrs_profitable): New wrapper function.
10988 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
10989             Alan Hayward  <alan.hayward@arm.com>
10990             David Sherwood  <david.sherwood@arm.com>
10992         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
10993         that takes the outer and inner modes.
10994         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
10995         comparison as the canonical test for a paradoxical subreg.
10996         * combine.c (simplify_set): Use paradoxical_subreg_p.
10997         (make_extraction): Likewise.
10998         (force_to_mode): Likewise.
10999         (rtx_equal_for_field_assignment_p): Likewise.
11000         (gen_lowpart_for_combine): Likewise.
11001         (simplify_comparison): Likewise.
11002         * cse.c (equiv_constant): Likewise.
11003         * expmed.c (store_bit_field_1): Likewise.
11004         * final.c (alter_subreg): Likewise.
11005         * fwprop.c (propagate_rtx): Likewise.
11006         (forward_propagate_subreg): Likewise.
11007         * ira-conflicts.c (ira_build_conflicts): Likewise.
11008         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
11009         * lra-constraints.c (curr_insn_transform): Likewise.
11010         (split_reg): Likewise.
11011         * lra-eliminations.c (move_plus_up): Likewise.
11012         (lra_eliminate_regs_1): Likewise.
11013         * recog.c (general_operand): Likewise.
11014         * ree.c (combine_reaching_defs): Likewise.
11015         * reload.c (push_reload): Likewise.
11016         (find_reloads): Likewise.
11017         * reload1.c (elimination_effects): Likewise.
11018         (compute_reload_subreg_offset): Likewise.
11019         (choose_reload_regs): Likewise.
11020         * rtlanal.c (subreg_lsb_1): Likewise.
11021         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11022         (simplify_subreg): Likewise.
11023         * var-tracking.c (track_loc_p): Likewise.
11024         * emit-rtl.c (byte_lowpart_offset): Likewise.
11025         (paradoxical_subreg_p): Delete out-of-line definition.
11027 2017-08-22  Jeff Law  <law@redhat.com>
11029         PR tree-optimization/81741
11030         PR tree-optimization/71947
11031         * tree-ssa-dom.c: Include tree-inline.h.
11032         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
11033         equivalences if one is more expensive to compute than the other.
11034         * tree-ssa-scopedtables.h (class const_or_copies): Make
11035         record_const_or_copy_raw method private.
11036         (class avail_exprs_stack): New method simplify_binary_operation.
11037         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
11038         avail_exprs_stack::simplify_binary_operation as needed.
11039         (avail_exprs_stack::simplify_binary_operation): New function.
11041 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11043         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
11044         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
11045         (DOT_SYMBOLS): Likewise.
11046         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
11047         (RELOCATABLE_NEEDS_FIXUP): Likewise.
11048         (RS6000_ABI_NAME): Likewise.
11049         (TARGET_CMODEL): Likewise.
11050         (TOC_SECTION_ASM_OP): Likewise.
11051         (SET_CMODEL): New macro.
11052         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
11054 2017-08-22  Richard Biener  <rguenther@suse.de>
11056         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
11057         to allow for free-lang-data replacements similar to verify_type_variant.
11059 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
11060             Alan Hayward  <alan.hayward@arm.com>
11061             David Sherwood  <david.sherwood@arm.com>
11063         * config/aarch64/aarch64.md (casesi): Use DImode rather than
11064         VOIDmode for the LABEL_REF.
11066 2017-08-22  Richard Biener  <rguenther@suse.de>
11068         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
11070 2017-08-22  Richard Biener  <rguenther@suse.de>
11072         * common.opt (feliminate-dwarf2-dups): Ignore.
11073         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
11074         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
11075         same_die_p_wrap, compute_section_prefix,
11076         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
11077         (comdat_symbol_id, comdat_symbol_number): Likewise.
11078         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
11079         Likewise.
11080         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
11081         (output_die): Mark unreachable path unreachable.
11082         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
11083         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
11084         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
11085         (dwarf2out_early_finish): Likewise.
11087 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
11089         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
11091 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
11093         PR target/81910
11094         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
11095         not VAR_P. Filter attribute warnings with OPT_Wattributes.
11096         (avr_attribute_table) <io, io_low, address>: Initialize
11097         .decl_required with true.
11099 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
11101         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
11102         undocumented debugging options.
11103         (-mvsx-scalar-double): Likewise.
11104         (-mallow-df-permute): Likewise.
11105         (-mvectorize-builtins): Likewise.
11106         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
11107         (rs6000_builtin_vectorized_function): Likewise.
11108         (rs6000_builtin_md_vectorized_function): Likewise.
11109         (rs6000_opt_vars): Likewise.
11111 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
11113         PR target/46091
11114         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
11115         (*btrq_imm): Rename from *btrq.
11116         (*btcq_imm): Rename from *btcq.
11117         (btsc): New code attribute.
11118         (*<btsc><mode>): New insn pattern.
11119         (*btr<mode>): Ditto.
11120         (*<btsc><mode>_mask): New insn_and_split pattern.
11121         (*btr<mode>_mask): Ditto.
11123 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11124             Alan Hayward  <alan.hayward@arm.com>
11125             David Sherwood  <david.sherwood@arm.com>
11127         * function.c (pad_below): Simplify padding calculation.
11129 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11130             Alan Hayward  <alan.hayward@arm.com>
11131             David Sherwood  <david.sherwood@arm.com>
11133         * target.def (function_prologue): Remove frame size argument.
11134         (function_epilogue): Likewise.
11135         * doc/tm.texi: Regenerate.
11136         * final.c (final_start_function): Update call to function_prologue.
11137         (final_end_function): Update call to function_epilogue.
11138         (default_function_pro_epilogue): Remove frame size argument.
11139         * output.h (default_function_pro_epilogue): Likewise.
11140         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
11141         (arm_output_function_prologue): Likewise.
11142         * config/frv/frv.c (frv_function_prologue): Likewise.
11143         (frv_function_epilogue): Likewise.
11144         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
11145         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
11146         (ia64_output_function_epilogue): Likewise.
11147         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
11148         (m32r_output_function_epilogue): Likewise.
11149         * config/microblaze/microblaze.c (microblaze_function_prologue)
11150         (microblaze_function_epilogue): Likewise.
11151         * config/mips/mips.c (mips_output_function_prologue): Likewise.
11152         (mips_output_function_epilogue): Likewise.
11153         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
11154         (mmix_target_asm_function_epilogue): Likewise.
11155         * config/msp430/msp430.c (msp430_start_function): Likewise.
11156         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
11157         (nds32_asm_function_epilogue): Likewise.
11158         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
11159         * config/pa/pa.c (pa_output_function_prologue): Likewise.
11160         (pa_output_function_epilogue): Likewise.
11161         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
11162         (rs6000_output_function_epilogue): Likewise.
11163         * config/rl78/rl78.c (rl78_start_function): Likewise.
11164         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
11165         (rs6000_output_function_epilogue): Likewise.
11166         * config/rx/rx.c (rx_output_function_prologue): Likewise.
11167         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
11168         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
11169         (sparc_asm_function_epilogue): Likewise.
11171 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11173         * tree.h (type_has_mode_precision_p): New function.
11174         * convert.c (convert_to_integer_1): Use it.
11175         * expr.c (expand_expr_real_2): Likewise.
11176         (expand_expr_real_1): Likewise.
11177         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
11178         * match.pd: Likewise.
11179         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
11180         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
11181         * tree-tailcall.c (process_assignment): Likewise.
11182         * tree-vect-loop.c (vectorizable_reduction): Likewise.
11183         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
11184         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
11185         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
11186         (vectorizable_assignment): Likewise.
11187         (vectorizable_shift): Likewise.
11188         (vectorizable_operation): Likewise.
11189         * tree-vrp.c (register_edge_assert_for_2): Likewise.
11191 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
11193         * match.pd: Add pow (C, x) simplification.
11195 2017-08-21  Richard Biener  <rguenther@suse.de>
11197         PR tree-optimization/81900
11198         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
11199         for blocks with abnormal predecessors.
11200         (compute_antic): Do not set visited flag prematurely.
11202 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
11204         PR target/79883
11205         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
11207 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11209         * stor-layout.h (vector_type_mode): Move to...
11210         * tree.h (vector_type_mode): ...here.
11211         * stor-layout.c (vector_type_mode): Move to...
11212         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
11214 2017-08-21  Richard Biener  <rguenther@suse.de>
11216         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
11217         register_external_die hooks.
11218         (debug_false_tree_charstarstar_uhwistar): Declare.
11219         (debug_nothing_tree_charstar_uhwi): Likewise.
11220         * debug.c (do_nothing_debug_hooks): Adjust.
11221         (debug_false_tree_charstarstar_uhwistar): New do nothing.
11222         (debug_nothing_tree_charstar_uhwi): Likewise.
11223         * dbxout.c (dbx_debug_hooks): Adjust.
11224         (xcoff_debug_hooks): Likewise.
11225         * sdbout.c (sdb_debug_hooks): Likewise.
11226         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11227         * dwarf2out.c (macinfo_label_base): New global.
11228         (dwarf2out_register_external_die): New function for the
11229         register_external_die hook.
11230         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
11231         (dwarf2_debug_hooks): Use them.
11232         (dwarf2_lineno_debug_hooks): Adjust.
11233         (struct die_struct): Add with_offset flag.
11234         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
11235         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
11236         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
11237         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
11238         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
11239         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
11240         defining section names for the early LTO debug variants.
11241         (reset_indirect_string): New helper.
11242         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
11243         (print_dw_val): Add support for offsetted symbol references.
11244         (get_ultimate_context): Split out from is_cxx.
11245         (is_cxx): Use get_ultimate_context.
11246         (is_fortran): Add decl overload.
11247         (compute_comp_unit_symbol): Split out worker from
11248         compute_section_prefix.
11249         (compute_section_prefix): Call compute_comp_unit_symbol and
11250         set comdat_type_p here.
11251         (output_die): Skip DIE symbol output for the LTO added one.
11252         Handle DIE symbol references with offset.
11253         (output_comp_unit): Guard section name mangling properly.
11254         For LTO debug sections emit a symbol at the section beginning
11255         which we use to refer to its DIEs.
11256         (add_abstract_origin_attribute): For DIEs registered via
11257         dwarf2out_register_external_die directly refer to the early
11258         DIE rather than indirectly through the shadow one we created.
11259         Remove obsolete call to dwarf2out_abstract_function for
11260         non-function/block origins.
11261         (gen_array_type_die): When generating early LTO debug do
11262         not emit DW_AT_string_length.
11263         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
11264         late when in LTO.  As suggested place a gcc_unreachable for
11265         the DECL_ABSTRACT_P case.
11266         (gen_subprogram_die): Avoid another specification DIE
11267         for early built declarations/definitions for the late LTO case.
11268         (gen_variable_die): Add type references for late duplicated VLA dies
11269         when in late LTO.
11270         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
11271         we have the abstract instance already.
11272         (process_scope_var): Adjust decl DIE contexts in LTO which
11273         first puts them in limbo.
11274         (gen_decl_die): Do not generate type DIEs late apart from
11275         types for VLAs or for decls we do not yet have a DIE.  Do not
11276         call dwarf2out_abstract_function late.
11277         (dwarf2out_early_global_decl): Make sure to create DIEs
11278         for abstract instances of a decl first.
11279         (dwarf2out_late_global_decl): Adjust comment.
11280         (output_macinfo_op): With multiple macro sections use
11281         macinfo_label_base to distinguish labels.
11282         (output_macinfo): Likewise.  Update macinfo_label_base.
11283         Pass in the line info label.
11284         (note_variable_value_in_expr): When generating LTO resolve
11285         all variable values here by generating DIEs as needed.
11286         (init_sections_and_labels): Add early LTO debug flag parameter
11287         and generate different sections and names if set.  Add generation
11288         counter for the labels so we can have multiple of them.
11289         (reset_dies): Helper to allow DIEs to be output multiple times.
11290         (dwarf2out_finish): When outputting DIEs to the fat part of an
11291         LTO object first reset DIEs.
11292         (dwarf2out_early_finish): Output early DIEs when generating LTO.
11293         (modified_type_die): Check for decl_ultimate_origin being self
11294         before recursing.
11295         (gen_type_die_with_usage): Likewise.
11296         (gen_typedef_die): Allow decl_ultimate_origin being self.
11297         (set_decl_abstract_flags): Remove.
11298         (set_block_abstract_flags): Likewise.
11299         (dwarf2out_abstract_function): Treat the early generated DIEs
11300         as the abstract copy and only add DW_AT_inline and
11301         DW_AT_artificial here and call set_decl_origin_self.
11302         If the DIE has an abstract origin don't do anything.
11303         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
11304         if we have none yet (Go fails to build one, PR78628).
11305         (variably_modified_type_p): Prevent endless recursion for Ada
11306         cyclic pointer types.
11307         * lto-streamer-in.c: Include debug.h.
11308         (dref_queue): New global.
11309         (lto_read_tree_1): Stream in DIE references.
11310         (lto_input_tree): Register DIE references.
11311         (input_function): Stream DECL_DEBUG_ARGS.
11312         * lto-streamer-out.c: Include debug.h.
11313         (lto_write_tree_1): Output DIE references.
11314         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
11315         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
11316         (output_function): Stream DECL_DEBUG_ARGS.
11317         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
11318         Stream DECL_ABSTRACT_ORIGIN.
11319         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
11320         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
11321         DECL_CONTEXT for file-scope decls.
11322         * lto-streamer.h (struct dref_entry): Declare.
11323         (dref_queue): Likewise.
11324         * cfgexpand.c (pass_expand::execute): Do not call the
11325         outlining_inline_function hook here.
11326         * lto-wrapper.c (debug_obj): New global.
11327         (tool_cleanup): Unlink it if required.
11328         (debug_objcopy): New function.
11329         (run_gcc): Handle early debug sections in the IL files by
11330         extracting them to separate files, partially linkin them and
11331         feeding the result back as result to the linker.
11332         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
11333         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
11334         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
11335         sections into a separate segment.
11336         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
11337         segments.
11338         (darwin_asm_dwarf_section): Likewise.
11339         (darwin_asm_output_dwarf_offset): Likewise.
11340         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
11342 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11343             Alan Hayward  <alan.hayward@arm.com>
11344             David Sherwood  <david.sherwood@arm.com>
11346         * read-md.h (md_reader::record_potential_iterator_use): Replace
11347         pointer argument with an rtx and an index.
11348         * read-rtl.c (iterator_group::apply_iterator): Likewise.
11349         (apply_mode_iterator): Likewise.
11350         (apply_code_iterator): Likewise.
11351         (apply_int_iterator): Likewise.
11352         (apply_subst_iterator): Likewise.
11353         (record_iterator_use): Likewise.
11354         (record_attribute_use): Likewise.
11355         (md_reader::record_potential_iterator_use): Likewise.  Update calls
11356         to record_iterator_use and apply_iterator.
11357         (iterator_use): Replace ptr with x and index.
11358         (attribute_use): Likewise.
11359         (apply_attribute_uses): Update calls to apply_iterator.
11360         (apply_iterators): Likewise.  Update initialization of iterator_use.
11361         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
11362         and record_potential_iterator_use.
11363         (rtx_reader::read_rtx_operand): Likewise.
11365 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
11366             Alan Hayward  <alan.hayward@arm.com>
11367             David Sherwood  <david.sherwood@arm.com>
11369         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
11370         CONST_WIDE_INT.
11372 2017-08-21  Richard Biener  <rguenther@suse.de>
11374         PR middle-end/81884
11375         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
11376         at struct end conservatively when comparing common bases.
11378 2017-08-21  Richard Biener  <rguenther@suse.de>
11380         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
11381         (mem_ref_in_stmt): Remove.
11382         (determine_max_movement): Use ref index to get at the reference.
11383         (invariantness_dom_walker::before_dom_children): Deal with
11384         lim data already initialized.
11385         (gather_mem_refs_stmt): Initialize lim data and record ref index.
11387 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
11389         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
11390         (TARGET_ISA_ROUND): Ditto.
11391         (TARGET_ROUND): Ditto.
11392         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
11393         * config/i386/i386.md: Ditto.
11394         * config/i386/sse.md: Ditto.
11395         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
11396         with OPTION_MASK_ISA_SSE4_1.
11398 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
11400         PR target/81894
11401         * doc/extend.texi (x86 Built-in Functions): Correct the name of
11402         __builtin_ia32_lzcnt_u16.
11404 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
11406         PR target/80210
11407         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
11408         (rs6000_set_current_function): Rewrite function to use it.
11410 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
11412         PR c/53037
11413         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
11414         and TYPE_WARN_IF_NOT_ALIGN.
11415         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
11416         (handle_warn_if_not_align): New.
11417         (place_union_field): Call handle_warn_if_not_align.
11418         (place_field): Call handle_warn_if_not_align.
11419         Copy TYPE_WARN_IF_NOT_ALIGN.
11420         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
11421         (layout_type): Likewise.
11422         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
11423         spare to 18.
11424         (tree_decl_common): Add warn_if_not_align.
11425         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
11426         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
11427         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
11428         (DECL_WARN_IF_NOT_ALIGN): Likewise.
11429         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
11430         * doc/extend.texi: Document warn_if_not_aligned attribute.
11431         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
11433 2017-08-17  Martin Liska  <mliska@suse.cz>
11435         PR bootstrap/81864
11436         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
11437         (get_data_dependence): Use it as pointer type.
11438         (distribute_loop): Likewise.
11440 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11442         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
11443         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
11444         (p8_vmrgow_<mode>_direct): New define_insn.
11445         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
11446         handle endianness for vmrgew and vmrgow permute patterns.
11448 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
11450         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
11451         * config/rs6000/rs6000-cpus.def: Remove comment.
11452         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
11453         (POWERPC_MASKS): Likewise.
11454         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
11455         use of TARGET_VSX_TIMODE.
11456         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
11457         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
11458         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
11459         (rs6000_option_override_internal): Remove dead code.
11460         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
11461         (rs6000_legitimize_reload_address): Likewise.
11462         (rs6000_legitimate_address_p): Likewise.
11463         (rs6000_opt_masks): Delete "vsx-timode".
11464         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
11465         from function comment.
11466         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
11467         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
11468         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
11469         condition.
11470         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
11471         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
11472         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
11473         (VSX_TI): Likewise.
11474         (VSX_M): Likewise.
11475         (define_peephole2): Likewise.
11477 2017-08-17  Martin Sebor  <msebor@redhat.com>
11479         PR c/81859
11480         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
11481         past the end of an array.
11482         (test_pp_format): Add test cases.
11484 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
11486         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
11487         missing ECF_NOTHROW flags.
11489 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
11491         PR target/72804
11492         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
11493         operands residing in integer registers.
11494         (*vsx_le_perm_load_<mode>): Likewise.
11495         (*vsx_le_perm_store_<mode>): Likewise.
11496         (define_peephole2): Add peepholes to optimize the above.
11498 2017-08-17  Marek Polacek  <polacek@redhat.com>
11500         PR middle-end/81814
11501         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
11502         to mimic what shorten_compare did.  Change the return type to bool.
11503         (fold_cond_expr_with_comparison): Update call to
11504         operand_equal_for_comparison_p.
11505         (fold_ternary_loc): Likewise.
11507 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
11509         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
11510         register.
11511         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
11513 2017-08-17  Richard Biener  <rguenther@suse.de>
11515         * tree-ssa-structalias.c (solve_graph): When propagating
11516         to successors update the graphs succ edges and avoid duplicate work.
11518 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
11520         PR target/81861
11521         * config/i386/i386.c (ix86_option_override_internal): Save target
11522         specific options after ix86_stack_protector_guard_reg was changed.
11524 2017-08-17  Richard Biener  <rguenther@suse.de>
11526         PR tree-optimization/81827
11527         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
11528         (new_var_info): Initialize it conservatively.
11529         (get_call_vi): Mark register vars.
11530         (new_scalar_tmp_constraint_exp): Likewise.
11531         (handle_rhs_call): Likewise.
11532         (handle_const_call): Likewise.
11533         (create_function_info_for): Likewise.
11534         (solve_constraints): Sort varinfos to separate register from
11535         non-register vars to pack points-to solution bitmaps during
11536         iteration.
11538 2017-08-17  Marek Polacek  <polacek@redhat.com>
11540         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
11542 2017-08-17  Richard Biener  <rguenther@suse.de>
11544         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
11545         to true when overflow is undefined and we saturated the result.
11547 2017-08-17  Alan Modra  <amodra@gmail.com>
11549         PR target/80938
11550         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
11551         Don't use store multiple if only one reg needs saving.
11552         (interesting_frame_related_regno): New function.
11553         (rs6000_frame_related): Don't emit frame info for regs that
11554         don't need saving.
11555         (rs6000_emit_epilogue): Likewise.
11557 2017-08-16  Nathan Sidwell  <nathan@acm.org>
11559         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
11560         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
11561         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
11562         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
11563         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
11564         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
11565         (verify_type): Adjust for TYPE_BINFO move.
11566         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
11567         process TYPE_BINFO directly.
11568         (hash_tree): Likewise.
11569         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
11570         Likewise.
11571         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
11572         Likewise.
11574 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
11576         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
11578 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
11580         PR target/46091
11581         * config/i386/i386.md (*anddi_1_btr): Change predicates of
11582         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
11583         Add ix86_binary_operator_ok to insn constraint.
11584         (*iordi_1_bts): Ditto.
11585         (*xordi_1_btc): Ditto.
11586         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
11587         Update corresponding peephole2 pattern.
11588         (*btrq): Ditto.
11589         (*btcq): Ditto.
11591 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
11593         PR tree-optimization/81832
11594         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
11595         copy loop header which has IFN_LOOP_DIST_ALIAS call.
11597 2017-08-16  Marek Polacek  <polacek@redhat.com>
11599         PR middle/81695
11600         * fold-const.c (fold_indirect_ref_1): Restore original behavior
11601         regarding size_zero_node.
11603 2017-08-16  Martin Liska  <mliska@suse.cz>
11605         PR target/81753
11606         * config.gcc: Respect previously set extra_objs in case
11607         of darwin target.
11609 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
11611         PR tree-optimization/81835
11612         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
11613         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
11614         not depend on the phi.
11616 2017-08-16  Alan Modra  <amodra@gmail.com>
11618         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
11619         dead code.
11621 2017-08-16  Alan Modra  <amodra@gmail.com>
11623         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
11624         (save_reg_p): ..into this.  Update all callers.
11625         (first_reg_to_save): Simplify.
11627 2017-08-16  Alan Modra  <amodra@gmail.com>
11629         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
11630         fixed regs.
11632 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
11634         PR target/78460
11635         PR target/67712
11636         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
11637         constant count if that count is less than 32.
11639 2017-08-15  Nathan Sidwell  <nathan@acm.org>
11641         * gcc.c (execute): Emit friendlier message if inferior is killed
11642         by an external cause.
11644 2017-08-15  Richard Biener  <rguenther@suse.de>
11646         PR tree-optimization/81790
11647         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
11648         CONSTRUCTORs from simplifying and VN.
11650 2017-08-14  Martin Sebor  <msebor@redhat.com>
11652         * builtin-attrs.def: Add comments.
11654 2017-08-14  Martin Sebor  <msebor@redhat.com>
11656         PR c/81117
11657         * doc/extend.texi (attribute nonstring): Document new attribute.
11659 2017-08-14  Martin Sebor  <msebor@redhat.com>
11661         PR c/81117
11662         * tree-diagnostic.c (default_tree_printer): Handle %G.
11663         * gimple-pretty-print.h (percent_G_format): Declare new function.
11664         * gimple-pretty-print.c (percent_G_format): Define.
11665         * tree-pretty-print.c (percent_K_format): Add argument.
11667 2017-08-14  Martin Sebor  <msebor@redhat.com>
11669         PR translation/79998
11670         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
11671         Remove a stray space.
11673 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
11675         PR target/46091
11676         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
11677         (*iordi_1_bts): Ditto.
11678         (*xordi_1_btc): Ditto.
11680 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11682         PR target/79845
11683         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
11684         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11685         Likewise.
11686         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
11687         quoted strings, and make more translator-friendly.
11688         (darwin_rs6000_override_options): Likewise.
11689         (rs6000_option_override_internal): Likewise.
11690         (rs6000_return_in_memory): Fix overlong line.
11691         (init_cmulative_args): Use quoted strings, and make more
11692         translator-friendly.
11693         (rs6000_pass_by_reference): Fix overlong line.
11694         (def_builtin): Use quoted strings.
11695         (altivec_expand_predicate_builtin): Use quoted strings, and make
11696         more translator-friendly.
11697         (htm_expand_builtin): Use quoted strings.
11698         (cpu_expand_builtin): Use quoted strings, and make more
11699         translator-friendly.
11700         (altivec_expand_builtin): Likewise.
11701         (paired_expand_predicate_builtin): Likewise.
11702         (rs6000_invalid_builtin): Likewise.
11703         (builtin_function_type): Use quoted strings.
11704         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
11705         more translator-friendly.
11706         (rs6000_trampoline_init): Likewise.
11707         (rs6000_handle_altivec_attribute): Likewise.
11708         (rs6000_inner_target_options): Use quoted strings.
11709         (rs6000_disable_incompatible_switches): Likewise.
11710         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
11711         strings, and make more translator-friendly.
11712         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
11714 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
11716         PR tree-optimization/81799
11717         * tree-loop-distribution.c (version_loop_by_alias_check): Force
11718         cond_expr to simple gimple operand.
11720 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
11722         PR middle-end/46932
11723         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
11725 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
11727         PR target/81754
11728         PR target/81268
11729         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
11730         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
11731         TARGET_GASISR_PROLOGUES.
11732         * config/avr/avr.c (avr_option_override): Same.
11733         (avr_pass_pre_proep::execute): Same.
11735 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
11737         PR target/81820
11738         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
11739         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
11741 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
11743         * config/i386/i386.md (*load_tp_<mode>): Redefine as
11744         define_insn_and_split.  Split to a memory load from 0 in
11745         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
11746         using PTR mode iterator.
11747         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
11748         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
11749         (*add_tp_<mode>): Redefine as define_insn_and_split.
11750         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
11751         address space.  Merge with *add_tp_x32 using PTR mode iterator.
11752         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
11753         Split to an add with a  memory load from 0 in
11754         DEFAULT_TLS_SEG_REG address space.
11756 2017-08-12  Andrew Pinski  <apinski@cavium.com>
11758         * config/aarch64/aarch64-option-extensions.def (rdma):
11759         Fix feature string to what Linux prints out in /proc/cpuinfo.
11761 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
11763         PR ada/79542
11764         * dwarf2out.c (modified_type_die): For C typedef types that have
11765         an ultimate origin, process the ultimate origin instead of the
11766         input type.
11767         (gen_typedef_die): Assert that input DECLs have no ultimate
11768         origin.
11769         (gen_type_die_with_usage): For typedef variants that have an
11770         ultimate origin, just call gen_decl_die on the original DECL.
11771         (process_scope_var): Avoid creating DIEs for local typedefs and
11772         concrete static variables.
11774 2017-08-12  Alan Modra  <amodra@gmail.com>
11776         PR target/81170
11777         PR target/81295
11778         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
11779         match gnu-user.h startfile.
11780         (ENDFILE_LINUX_SPEC): Similarly.
11782 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
11784         PR lto/81430
11785         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
11786         Remove function.
11787         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
11789 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
11790         * config/aarch64/aarch64.md (mov<mode>): Change.
11791         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
11792         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
11793         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
11795 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
11797         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
11798         for storage order barriers.
11800 2017-08-11  Martin Liska  <mliska@suse.cz>
11802         PR tree-opt/79987
11803         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
11804         variables of void type.
11806 2017-08-11  Martin Liska  <mliska@suse.cz>
11808         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
11809         TARGET_SUPPORTS_ALIASES.
11810         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
11811         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
11812         (optimize_weakref): Likewise.
11813         * symtab.c (symtab_node::noninterposable_alias): Likewise.
11814         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
11815         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
11817 2017-08-11  Martin Liska  <mliska@suse.cz>
11819         PR ipa/81213
11820         * config/i386/i386.c (make_resolver_func): Do complete
11821         refactoring of the function.
11823 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
11825         PR target/81708
11826         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
11827         * config/i386/i386.c (ix86_stack_protect_guard): Use
11828         ix86_stack_protect_guard_symbol_str to generate varible declaration.
11829         * doc/invoke.texi (x86 Options): Document
11830         -mstack-protector-guard-symbol= option.
11832 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
11834         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
11835         * config/i386/i386.c (ix86_split_stack_guard): New function.
11836         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
11837         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
11838         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
11839         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
11840         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
11841         (split_stack_space_check): Call ix86_split_stack_guard.
11843 2017-08-10  Martin Sebor  <msebor@redhat.com>
11845         * print-tree.c (print_node): Print location using the established
11846         format %s:%i%i.
11847         Replace spaces with colons.
11848         (debug_raw, debug): Ditto.
11850 2017-08-10  Martin Sebor  <msebor@redhat.com>
11852         PR c++/81586
11853         * pretty-print.c (pp_format): Correct the handling of %s precision.
11855 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
11857         PR target/81736
11858         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
11859         to ...
11860         (ix86_finalize_stack_frame_flags): This.  Also clear
11861         frame_pointer_needed if -fno-omit-frame-pointer is used without
11862         stack access.
11863         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
11864         with ix86_finalize_stack_frame_flags.
11865         (ix86_expand_epilogue): Likewise.
11866         (ix86_expand_split_stack_prologue): Likewise.
11867         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
11869 2017-08-10  Martin Liska  <mliska@suse.cz>
11871         PR c++/81355
11872         * c-attribs.c (handle_target_attribute):
11873         Report warning for an empty string argument of target attribute.
11875 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
11877         PR c/81687
11878         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
11879         LABEL_DECLs.
11880         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
11881         or DECL_NONLOCAL labels.
11882         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
11883         or DECL_NONLOCAL labels here.
11885 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
11887         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
11888         to indicate when early gimple folding has been disabled.
11889         (rs6000_gimple_fold_builtin): Add debug content.
11890         (rs6000_invalid_builtin): Fix whitespace.
11891         (rs6000_expand_builtin): Fix whitespace.
11892         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
11894 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
11896         PR target/80938
11897         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
11898         SAVE_MULTIPLE if not all the registers that saves, should be saved.
11900 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
11902         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
11903         (qdf24xx): Likewise.
11904         * config/aarch64/aarch64.md: Include falkor.md.
11905         * config/aarch64/falkor.md: New.
11907 2017-08-09  Marek Polacek  <polacek@redhat.com>
11909         PR c/81233
11910         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
11911         * diagnostic.c (emit_diagnostic): Add a comment.
11912         (emit_diagnostic_valist): New function.
11914 2017-08-09  Marek Polacek  <polacek@redhat.com>
11916         PR c/81417
11917         * input.c (make_location): New overload.
11918         * input.h (make_location): Declare.
11920 2017-08-08  Alan Modra  <amodra@gmail.com>
11921             H.J. Lu  <hongjiu.lu@intel.com>
11923         PR driver/81523
11924         * gcc.c (NO_PIE_SPEC): Delete.
11925         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
11926         exclusion..
11927         (LINK_PIE_SPEC): ..to here.
11928         (LINK_COMMAND_SPEC): Support -no-pie.
11929         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
11930         chain of crtbegin*.o selection, update for PIE_SPEC changes and
11931         format.
11932         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
11933         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
11934         (ENDFILE_CRTEND_SPEC): Similarly.
11936 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
11938         PR target/81708
11939         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
11940         (mstack-protector-guard-offset=): Ditto.
11941         * config/i386/i386.c (ix86_option_override): Handle
11942         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
11943         options.
11944         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
11945         ix86_stack_protect_guard_offset variables.
11946         (TARGET_STACK_PROTECT_GUARD): Always define.
11947         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
11948         and -mstack-protector-guard-offset= options.
11950 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
11952         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
11953         boundary case for the last candidate.
11955 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
11957         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
11958         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
11960 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
11962         PR middle-end/19706
11963         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
11964         * config/aarch64/aarch64-builtins.c
11965         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
11966         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
11967         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
11969 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
11970             Andrew Pinski <pinskia@gmail.com>
11972         PR middle-end/19706
11973         * internal-fn.def (XORSIGN): New.
11974         * optabs.def (xorsign_optab): New.
11975         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
11976         (convert_expand_mult_copysign): New.
11977         (pass_optimize_widening_mul::execute): Call
11978         convert_expand_mult_copysign.
11980 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11982         PR tree-optimization/81354
11983         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
11984         Insert on edges rather than explicitly creating landing pads.
11985         (analyze_candidates_and_replace): Commit edge inserts.
11987 2017-08-08  Richard Biener  <rguenther@suse.de>
11989         PR middle-end/81719
11990         * tree-ssa-loop-niter.c: Include tree-dfa.h.
11991         (expand_simple_operations): Also look through ADDR_EXPRs with
11992         MEM_REF bases treating them as POINTER_PLUS_EXPR.
11994 2017-08-08  Richard Biener  <rguenther@suse.de>
11996         PR tree-optimization/81723
11997         * tree-vect-slp.c (struct bst_traits): New hash traits.
11998         (bst_fail): New global.
11999         (vect_build_slp_tree_2): New worker, split out from ...
12000         (vect_build_slp_tree): ... this now wrapping it with using
12001         bst_fail set to cache SLP tree build fails.  Properly handle
12002         max_tree_size.
12003         (vect_analyze_slp_instance): Allocate and free bst_fail.
12005 2017-08-08  Martin Liska  <mliska@suse.cz>
12007         PR tree-opt/81696
12008         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
12009         LABEL_DECLs that can be from a different function.
12011 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
12013         PR tree-optimization/81744
12014         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
12015         loop's number of iterations.
12017 2017-08-08  Martin Liska  <mliska@suse.cz>
12019         * asan.c: Include header files.
12020         * attribs.c (build_decl_attribute_variant): New function moved
12021         from tree.[ch].
12022         (build_type_attribute_qual_variant): Likewise.
12023         (cmp_attrib_identifiers): Likewise.
12024         (simple_cst_list_equal): Likewise.
12025         (omp_declare_simd_clauses_equal): Likewise.
12026         (attribute_value_equal): Likewise.
12027         (comp_type_attributes): Likewise.
12028         (build_type_attribute_variant): Likewise.
12029         (lookup_ident_attribute): Likewise.
12030         (remove_attribute): Likewise.
12031         (merge_attributes): Likewise.
12032         (merge_type_attributes): Likewise.
12033         (merge_decl_attributes): Likewise.
12034         (merge_dllimport_decl_attributes): Likewise.
12035         (handle_dll_attribute): Likewise.
12036         (attribute_list_equal): Likewise.
12037         (attribute_list_contained): Likewise.
12038         * attribs.h (lookup_attribute): New function moved from tree.[ch].
12039         (lookup_attribute_by_prefix): Likewise.
12040         * bb-reorder.c: Include header files.
12041         * builtins.c: Likewise.
12042         * calls.c: Likewise.
12043         * cfgexpand.c: Likewise.
12044         * cgraph.c: Likewise.
12045         * cgraphunit.c: Likewise.
12046         * convert.c: Likewise.
12047         * dwarf2out.c: Likewise.
12048         * final.c: Likewise.
12049         * fold-const.c: Likewise.
12050         * function.c: Likewise.
12051         * gimple-expr.c: Likewise.
12052         * gimple-fold.c: Likewise.
12053         * gimple-pretty-print.c: Likewise.
12054         * gimple.c: Likewise.
12055         * gimplify.c: Likewise.
12056         * hsa-common.c: Likewise.
12057         * hsa-gen.c: Likewise.
12058         * internal-fn.c: Likewise.
12059         * ipa-chkp.c: Likewise.
12060         * ipa-cp.c: Likewise.
12061         * ipa-devirt.c: Likewise.
12062         * ipa-fnsummary.c: Likewise.
12063         * ipa-inline.c: Likewise.
12064         * ipa-visibility.c: Likewise.
12065         * ipa.c: Likewise.
12066         * lto-cgraph.c: Likewise.
12067         * omp-expand.c: Likewise.
12068         * omp-general.c: Likewise.
12069         * omp-low.c: Likewise.
12070         * omp-offload.c: Likewise.
12071         * omp-simd-clone.c: Likewise.
12072         * opts-global.c: Likewise.
12073         * passes.c: Likewise.
12074         * predict.c: Likewise.
12075         * sancov.c: Likewise.
12076         * sanopt.c: Likewise.
12077         * symtab.c: Likewise.
12078         * toplev.c: Likewise.
12079         * trans-mem.c: Likewise.
12080         * tree-chkp.c: Likewise.
12081         * tree-eh.c: Likewise.
12082         * tree-into-ssa.c: Likewise.
12083         * tree-object-size.c: Likewise.
12084         * tree-parloops.c: Likewise.
12085         * tree-profile.c: Likewise.
12086         * tree-ssa-ccp.c: Likewise.
12087         * tree-ssa-live.c: Likewise.
12088         * tree-ssa-loop.c: Likewise.
12089         * tree-ssa-sccvn.c: Likewise.
12090         * tree-ssa-structalias.c: Likewise.
12091         * tree-ssa.c: Likewise.
12092         * tree-streamer-in.c: Likewise.
12093         * tree-vectorizer.c: Likewise.
12094         * tree-vrp.c: Likewise.
12095         * tsan.c: Likewise.
12096         * ubsan.c: Likewise.
12097         * varasm.c: Likewise.
12098         * varpool.c: Likewise.
12099         * tree.c: Remove functions moved to attribs.[ch].
12100         * tree.h: Likewise.
12101         * config/aarch64/aarch64.c: Add attrs.h header file.
12102         * config/alpha/alpha.c: Likewise.
12103         * config/arc/arc.c: Likewise.
12104         * config/arm/arm.c: Likewise.
12105         * config/avr/avr.c: Likewise.
12106         * config/bfin/bfin.c: Likewise.
12107         * config/c6x/c6x.c: Likewise.
12108         * config/cr16/cr16.c: Likewise.
12109         * config/cris/cris.c: Likewise.
12110         * config/darwin.c: Likewise.
12111         * config/epiphany/epiphany.c: Likewise.
12112         * config/fr30/fr30.c: Likewise.
12113         * config/frv/frv.c: Likewise.
12114         * config/ft32/ft32.c: Likewise.
12115         * config/h8300/h8300.c: Likewise.
12116         * config/i386/winnt.c: Likewise.
12117         * config/ia64/ia64.c: Likewise.
12118         * config/iq2000/iq2000.c: Likewise.
12119         * config/lm32/lm32.c: Likewise.
12120         * config/m32c/m32c.c: Likewise.
12121         * config/m32r/m32r.c: Likewise.
12122         * config/m68k/m68k.c: Likewise.
12123         * config/mcore/mcore.c: Likewise.
12124         * config/microblaze/microblaze.c: Likewise.
12125         * config/mips/mips.c: Likewise.
12126         * config/mmix/mmix.c: Likewise.
12127         * config/mn10300/mn10300.c: Likewise.
12128         * config/moxie/moxie.c: Likewise.
12129         * config/msp430/msp430.c: Likewise.
12130         * config/nds32/nds32-isr.c: Likewise.
12131         * config/nds32/nds32.c: Likewise.
12132         * config/nios2/nios2.c: Likewise.
12133         * config/nvptx/nvptx.c: Likewise.
12134         * config/pa/pa.c: Likewise.
12135         * config/pdp11/pdp11.c: Likewise.
12136         * config/powerpcspe/powerpcspe.c: Likewise.
12137         * config/riscv/riscv.c: Likewise.
12138         * config/rl78/rl78.c: Likewise.
12139         * config/rx/rx.c: Likewise.
12140         * config/s390/s390.c: Likewise.
12141         * config/sh/sh.c: Likewise.
12142         * config/sol2.c: Likewise.
12143         * config/sparc/sparc.c: Likewise.
12144         * config/spu/spu.c: Likewise.
12145         * config/stormy16/stormy16.c: Likewise.
12146         * config/tilegx/tilegx.c: Likewise.
12147         * config/tilepro/tilepro.c: Likewise.
12148         * config/v850/v850.c: Likewise.
12149         * config/vax/vax.c: Likewise.
12150         * config/visium/visium.c: Likewise.
12151         * config/xtensa/xtensa.c: Likewise.
12153 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
12155         PR target/81593
12156         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
12157         constraints since the -mupper-regs-* switches have been
12158         eliminated.
12159         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
12160         into a vector from a double word element that was extracted from
12161         another vector, and eliminate extra XXPERMDI instructions.
12162         (vsx_concat_<mode>_2): Likewise.
12163         (vsx_concat_<mode>_3): Likewise.
12164         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
12165         concat to allow optimizing inserts from previous extracts.
12167 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
12169         * config/i386/i386.c (ix86_stack_protect_guard): Generate
12170         memory reference to a SSP offset in TLS address space.
12171         (ix86_print_operand) <case '@'>: Remove.
12172         (ix86_print_operand_punct_valid_p): Remove '@' code.
12173         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
12174         UNSPEC_SP_TLS_TEST.
12175         (stack_tls_protect_set_<mode>): Remove.
12176         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
12177         (stack_tls_protect_test_<mode>): Remove.
12178         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
12180 2017-08-07  Olivier Hainque  <hainque@adacore.com>
12182         PR target/81755
12183         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
12185 2017-08-07  Douglas Rupp  <rupp@adacore.com>
12187         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
12188         variable was referenced as multidir in command.
12190 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
12192         PR c/69389
12193         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
12194         BIT_FIELD_REF.
12196 2017-08-07  Martin Liska  <mliska@suse.cz>
12198         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
12199         * config/rl78/rl78.c: Add include of attribs.h.
12200         * config/sh/sh.c: Likewise.
12201         * config/v850/v850.c: Likewise.
12203 2017-08-07  Tom de Vries  <tom@codesourcery.com>
12205         PR middle-end/78266
12206         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
12208 2017-08-07  Martin Liska  <mliska@suse.cz>
12210         * config/mips/mips.c: Include attribs.h.
12212 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
12214         PR fortran/68829
12215         * doc/invoke.texi: Document change in behvaior for -Ofast for
12216         Fortran.
12218 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
12220         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
12221         Use gen_frame_mem.
12222         (aarch64_pop_regs): Likewise.
12223         (aarch64_gen_load_pair): Likewise.
12224         (aarch64_save_callee_saves): Likewise.
12225         (aarch64_restore_callee_saves): Likewise.
12227 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12229         * config/i386/i386.c: Revert the last change.
12231 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12233         PR target/81736
12234         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
12235         to ...
12236         (ix86_finalize_stack_frame_flags): This.  Also clear
12237         frame_pointer_needed if -fno-omit-frame-pointer is used without
12238         stack access.
12239         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
12240         with ix86_finalize_stack_frame_flags.
12241         (ix86_expand_epilogue): Likewise.
12242         (ix86_expand_split_stack_prologue): Likewise.
12244 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12246         PR target/81743
12247         * config/i386/i386.c (get_builtin_code_for_version): Set priority
12248         to P_AES for Westmere.
12250 2017-08-07  Jonathan Yong  <10walls@gmail.com>
12252         * config/i386/mingw.opt (fset-stack-executable): Removed.
12253         * config/i386/cygming.opt (fset-stack-executable): Moved
12254         from mingw.opt.
12255         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
12257 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
12259         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
12261 2017-08-07  Marek Polacek  <polacek@redhat.com>
12263         PR middle-end/81737
12264         * fold-const.c (fold_indirect_ref_1): Check type_domain.
12266 2017-08-07  Martin Liska  <mliska@suse.cz>
12268         * attribs.h (canonicalize_attr_name): New function.
12269         (cmp_attribs): Move from c-format.c and adjusted.
12270         (is_attribute_p): Moved from tree.h.
12271         * tree-inline.c: Add new includes.
12272         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
12273         (private_is_attribute_p): Remove.
12274         (private_lookup_attribute): Likewise.
12275         (private_lookup_attribute_by_prefix): Simplify.
12276         (remove_attribute): Use is_attribute_p.
12277         * tree.h: Remove removed declarations.
12279 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
12281         PR middle-end/81698
12282         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
12283         instead of computing it in the function.  Formatting fix.
12284         (expand_case): Don't rely on default_edge being the first edge,
12285         clear it if removing it, pass default_edge to
12286         emit_case_dispatch_table.
12287         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
12288         fix.
12290 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
12292         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
12293         insn in the function, emit NOP after the insn.
12295 2017-08-06  Tom de Vries  <tom@codesourcery.com>
12297         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
12298         and element loops.
12300 2017-08-06  Tom de Vries  <tom@codesourcery.com>
12302         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
12303         loop.
12305 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
12307         PR tree-optimization/57371
12308         * match.pd: New pattern.
12310 2017-08-04  Marek Polacek  <polacek@redhat.com>
12312         PR middle-end/81695
12313         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
12314         perform the computation in offset_int.
12316 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
12318         PR tree-optimization/81136
12319         * tree-vectorizer.h: Include tree-hash-traits.h.
12320         (vec_base_alignments): New typedef.
12321         (vec_info): Add a base_alignments field.
12322         (vect_record_base_alignments): Declare.
12323         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
12324         field.
12325         (DR_IS_CONDITIONAL_IN_STMT): New macro.
12326         (create_data_ref): Add an is_conditional_in_stmt argument.
12327         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
12328         the is_conditional_in_stmt field.
12329         (data_ref_loc): Add an is_conditional_in_stmt field.
12330         (get_references_in_stmt): Set the is_conditional_in_stmt field.
12331         (find_data_references_in_stmt): Update call to create_data_ref.
12332         (graphite_find_data_references_in_stmt): Likewise.
12333         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12334         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
12335         (vect_record_base_alignment): New function.
12336         (vect_record_base_alignments): Likewise.
12337         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
12338         for nested statements even if we fail to compute a misalignment.
12339         Use pooled base alignments for unconditional references.
12340         (vect_find_same_alignment_drs): Compare base addresses instead
12341         of base objects.
12342         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
12343         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
12345 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
12347         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
12348         Add an explicit name for the enum.  Use auto_vec for slp_instances
12349         and grouped_stores.
12350         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
12351         for all vectors.
12352         (_bb_vec_info): Add a constructor and destructor.
12353         (vinfo_for_stmt): Return NULL for uids of -1 as well.
12354         (destroy_loop_vec_info): Delete.
12355         (vect_destroy_datarefs): Likewise.
12356         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
12357         (vec_info::vec_info): New function.
12358         (vec_info::~vec_info): Likewise.
12359         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
12360         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
12361         destroy_loop_vec_info.
12362         * tree-vect-loop.c (new_loop_vec_info): Replace with...
12363         (_loop_vec_info::_loop_vec_info): ...this.
12364         (destroy_loop_vec_info): Replace with...
12365         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
12366         the stmt_vec_infos.  Leave handling of vec_info information to its
12367         destructor.  Remove explicit vector releases.
12368         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
12369         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
12370         * tree-vect-slp.c (new_bb_vec_info): Replace with...
12371         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
12372         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
12373         (destroy_bb_vec_info): Replace with...
12374         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
12375         information to its destructor.
12376         (vect_slp_analyze_bb_1): Use new and delete instead of
12377         new_bb_vec_info and destroy_bb_vec_info.
12378         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
12379         single delete.
12381 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
12383         * tree-data-ref.h (subscript): Add access_fn field.
12384         (data_dependence_relation): Add could_be_independent_p.
12385         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
12386         (same_access_functions): Move to tree-data-ref.c.
12387         * tree-data-ref.c (ref_contains_union_access_p): New function.
12388         (access_fn_component_p): Likewise.
12389         (access_fn_components_comparable_p): Likewise.
12390         (dr_analyze_indices): Add a reference to access_fn_component_p.
12391         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
12392         DR_ACCESS_FN.
12393         (constant_access_functions): Likewise.
12394         (add_other_self_distances): Likewise.
12395         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
12396         (initialize_data_dependence_relation): Use XCNEW and remove
12397         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
12398         of access functions that have the same type.  Allow the
12399         subsequence to end with different bases in some circumstances.
12400         Record the chosen access functions in SUB_ACCESS_FN.
12401         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
12402         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
12403         (subscript_dependence_tester_1): Likewise dra and drb.
12404         (build_classic_dist_vector): Update calls accordingly.
12405         (subscript_dependence_tester): Likewise.
12406         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
12407         DDR_COULD_BE_INDEPENDENT_P.
12408         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
12409         comp_alias_ddrs instead of may_alias_ddrs.
12410         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
12411         New function.
12412         (vect_analyze_data_ref_dependence): Use it if
12413         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
12414         distance vectors if that fails.
12415         (dependence_distance_ge_vf): New function.
12416         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
12417         LOOP_VINFO_MAY_ALIAS_DDRS.
12419 2017-08-04  Richard Biener  <rguenther@suse.de>
12421         PR middle-end/81705
12422         * fold-const.c (fold_binary_loc): Properly restrict
12423         minus_var0 && minus_var1 case when associating undefined overflow
12424         entities.
12426 2017-08-04  Tom de Vries  <tom@codesourcery.com>
12428         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
12430 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12432         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12433         Don't start diagnostic messages with a capital letter.
12434         * config/rs6000/rs6000.c (rs6000_option_override_internal):
12435         Likewise.
12436         (rs6000_invalid_builtin): Likewise.
12437         (rs6000_trampoline_init): Likewise.
12439 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
12441         PR target/81621
12442         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
12443         after setting changeable df flags.
12445 2017-08-03  Richard Biener  <rguenther@suse.de>
12447         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
12448         up if the use is in USE - X.
12450 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
12452         * toplev.c (dumpfile.h): New include.
12453         (internal_error_reentered): New static function.  Use it...
12454         (internal_error_function): ...here to handle reentered internal_error.
12456 2017-08-03  Richard Biener  <rguenther@suse.de>
12458         PR middle-end/81148
12459         * fold-const.c (split_tree): Add minus_var and minus_con
12460         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
12461         here but always use minus_*.
12462         (associate_trees): Assert we never associate with MINUS_EXPR
12463         and NULL first operand.  Do not recurse for PLUS_EXPR operands
12464         when associating as MINUS_EXPR either.
12465         (fold_binary_loc): Track minus_var and minus_con.
12467 2017-08-03  Tom de Vries  <tom@codesourcery.com>
12469         PR lto/81430
12470         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
12471         ACCEL_COMPILER, apply finish_options on
12472         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
12474 2017-08-03  Tom de Vries  <tom@codesourcery.com>
12476         PR target/81662
12477         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
12478         function_entry_patch_area_size > 0.
12480 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
12482         PR driver/81650
12483         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
12484         instead of 10??LU, perform unit multiplication in wide_int,
12485         don't change alloc_object_size_limit if the limit is larger
12486         than SSIZE_MAX.
12488         PR tree-optimization/81655
12489         PR tree-optimization/81588
12490         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
12491         the case when ranges[i].low and high are 1 for unsigned type with
12492         precision 1.
12494         PR middle-end/81052
12495         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
12496         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
12498 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12500         * tree-vrp.h: Add include guard.
12502 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
12504         PR target/81644
12505         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
12506         (ud2): New insn pattern.
12507         * config/i386/i386.c (ix86_expand_epilogue):
12508         For naked functions, generate ud2 instead of trap insn.
12510 2017-08-02  Marek Polacek  <polacek@redhat.com>
12512         PR other/81667
12513         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
12515 2017-08-02  Tom de Vries  <tom@codesourcery.com>
12516             Cesar Philippidis  <cesar@codesourcery.com>
12518         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
12519         Add missing edge probabilities.
12521 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
12523         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
12524         Correct endianness.
12526 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
12528         PR middle-end/79499
12529         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
12530         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
12531         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
12532         prologue_seq sequences - if any.
12534 2017-08-02  Richard Biener  <rguenther@suse.de>
12536         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
12537         via vectors if supported, integer extracts via punning if supported
12538         or otherwise vector extracts.
12540 2017-08-02  Richard Biener  <rguenther@suse.de>
12542         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
12543         into ...
12544         (bitmap_insert_into_set): ... this.
12546 2017-08-02  Richard Biener  <rguenther@suse.de>
12548         PR tree-optimization/81633
12549         Revert
12550         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
12552         PR tree-optimization/71752
12553         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
12555 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
12557         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
12558         (machine_function::call_ms2sysv_pad_out): Remove field.
12559         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
12560         (ix86_compute_frame_layout): Likewise.
12562 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
12564         PR target/81654
12565         * config/i386/i386.c (ix86_set_func_type): Disallow naked
12566         attribute with interrupt attribute.
12568 2017-08-01  Andrew Pinski  <apinski@cavium.com>
12570         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
12571         BIT_INSERT_EXPR's operand 1
12572         to see if the types precision matches.
12574 2017-08-01  Martin Liska  <mliska@suse.cz>
12576         PR middle-end/70140
12577         * builtins.c (expand_builtin_memcpy_args): Remove.
12578         (expand_builtin_memcpy): Call newly added function
12579         expand_builtin_memory_copy_args.
12580         (expand_builtin_memcpy_with_bounds): Likewise.
12581         (expand_builtin_mempcpy): Remove last argument.
12582         (expand_builtin_mempcpy_with_bounds): Likewise.
12583         (expand_builtin_memory_copy_args): New function created from
12584         expand_builtin_mempcpy_args with small modifications.
12585         (expand_builtin_mempcpy_args): Remove.
12586         (expand_builtin_stpcpy): Remove unused argument.
12587         (expand_builtin): Likewise.
12588         (expand_builtin_with_bounds): Likewise.
12590 2017-08-01  Martin Liska  <mliska@suse.cz>
12592         Revert r250771
12593         Make mempcpy more optimal (PR middle-end/70140).
12595 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
12597         PR target/81622
12598         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
12599         __builtin_vec_cmpne verify both arguments are compatible vectors
12600         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
12601         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
12602         move computation of aligned to after checking the argument types.
12603         Formatting fixes.
12605         PR target/80846
12606         * config/rs6000/vsx.md (vextract_fp_from_shorth,
12607         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
12608         calls.
12610 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
12611             Doug Rupp  <rupp@adacore.com>
12612             Olivier Hainque  <hainque@adacore.com>
12614         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
12615         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
12616         arm8 (arch v4).
12617         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
12618         for TARGET_OS_CPP_BUILTIN.
12619         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
12620         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
12621         arm_arch7.
12622         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
12623         passing required abi options to the assembler for EABI configurations.
12624         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
12625         of .text.hot and .text.unlikely sections for kernel modules when
12626         using ARM style exceptions.
12627         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
12628         options. Add EXTRA_CC1_SPEC.
12629         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
12630         toolchain options.
12631         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
12632         transition.
12633         (ARM_TARGET2_DWARF_FORMAT): Define.
12634         * config/arm/t-vxworks: Adjust multilib control to removal of the
12635         Diab command line options.
12637 2017-08-01  Martin Liska  <mliska@suse.cz>
12639         PR gcov-profile/81561
12640         * gcov.c (unblock): Make unblocking safe as we need to preserve
12641         index correspondence of blocks and block_lists.
12643 2017-08-01  Richard Biener  <rguenther@suse.de>
12645         PR tree-optimization/81181
12646         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
12647         (compute_antic): ... end of iteration here.
12649 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
12651         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
12652         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
12653         (ftree-slp-vectorize): Likewise.
12654         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
12655         can no longer be set independent of flag_tree_loop_vectorize.
12656         * omp-general.c (emp_max_vf): Likewise.
12657         * opts.c (enable_fdo_optimizations): Remove references to
12658         flag_tree_vectorize, these are now implicit.
12659         (common_handle_option): Remove handling for OPT_ftree_vectorize,
12660         and leave it for the options machinery.
12662 2017-08-01  Martin Liska  <mliska@suse.cz>
12664         PR middle-end/70140
12665         * builtins.c (expand_builtin_memcpy_args): Remove.
12666         (expand_builtin_memcpy): Call newly added function
12667         expand_builtin_memory_copy_args.
12668         (expand_builtin_memcpy_with_bounds): Likewise.
12669         (expand_builtin_mempcpy): Remove last argument.
12670         (expand_builtin_mempcpy_with_bounds): Likewise.
12671         (expand_builtin_memory_copy_args): New function created from
12672         expand_builtin_mempcpy_args with small modifications.
12673         (expand_builtin_mempcpy_args): Remove.
12674         (expand_builtin_stpcpy): Remove unused argument.
12675         (expand_builtin): Likewise.
12676         (expand_builtin_with_bounds): Likewise.
12678 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
12680         PR target/81641
12681         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
12682         print "ds:" only for immediates in generic address space.
12684 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
12686         PR target/81639
12687         * config/i386/i386.c (ix86_funciton_naked): New prototype.
12688         (ix86_function_ok_for_sibcall): Return false for naked functions.
12690 2017-08-01  Richard Biener  <rguenther@suse.de>
12692         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
12693         (compute_antic): Seed worklist with exit block predecessors.
12694         * cfganal.c (dfs_find_deadend): For a cycle return the source
12695         of the edge closing it.
12697 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
12699         * config/aarch64/aarch64.c
12700         (aarch64_can_const_movi_rtx_p): Move 0 check.
12702 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
12704         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
12705         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
12706         above macro.
12707         * match.pd: Ditto in address comparison pattern.
12709 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
12711         PR tree-optimization/81627
12712         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
12713         closed ssa form for store-store chain.
12715 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
12717         PR tree-optimization/81620
12718         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
12719         for store-store chain.
12721 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
12723         PR tree-optimization/81588
12724         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
12725         ranges[i].in_p, invert comparison code ccode.  For >/>=,
12726         swap rhs1 and rhs2 and comparison code unconditionally,
12727         for </<= don't do that.  Don't swap rhs1/rhs2 again if
12728         ranges[i].in_p, instead invert comparison code ccode if
12729         opcode or oe->rank is BIT_IOR_EXPR.
12731         PR target/80846
12732         * optabs.def (vec_extract_optab, vec_init_optab): Change from
12733         a direct optab to conversion optab.
12734         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
12735         with GET_MODE_INNER as last argument instead of optab_handler.
12736         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
12737         vector extraction if possible and optab is available.
12738         * expr.c (store_constructor): Use convert_optab_handler instead
12739         of optab_handler.  Use vector initialization from smaller
12740         vectors if possible and optab is available.
12741         * tree-vect-stmts.c (vectorizable_load): Likewise.
12742         * doc/md.texi (vec_extract, vec_init): Document that the optabs
12743         now have two modes.
12744         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
12745         of vec_init from half-sized vectors with the same element mode.
12746         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
12747         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
12748         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
12749         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
12750         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
12751         after mode in gen_vec_extract* calls.
12752         (vec_extract<mode>): Renamed to ...
12753         (vec_extract<mode><ssescalarmodelower>): ... this.
12754         (vec_extract<mode><ssehalfvecmodelower>): New expander.
12755         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
12756         element mode after mode in gen_vec_init* calls.
12757         (VEC_INIT_HALF_MODE): New mode iterator.
12758         (vec_init<mode>): Renamed to ...
12759         (vec_init<mode><ssescalarmodelower>): ... this.
12760         (vec_init<mode><ssehalfvecmodelower>): New expander.
12761         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
12762         (vec_extractv2sfsf): ... this.
12763         (vec_initv2sf): Renamed to ...
12764         (vec_initv2sfsf): ... this.
12765         (vec_extractv2si): Renamed to ...
12766         (vec_extractv2sisi): ... this.
12767         (vec_initv2si): Renamed to ...
12768         (vec_initv2sisi): ... this.
12769         (vec_extractv4hi): Renamed to ...
12770         (vec_extractv4hihi): ... this.
12771         (vec_initv4hi): Renamed to ...
12772         (vec_initv4hihi): ... this.
12773         (vec_extractv8qi): Renamed to ...
12774         (vec_extractv8qiqi): ... this.
12775         (vec_initv8qi): Renamed to ...
12776         (vec_initv8qiqi): ... this.
12777         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
12778         (vec_init<mode>): Renamed to ...
12779         (vec_init<mode><VEC_base_l>): ... this.
12780         (vec_extract<mode>): Renamed to ...
12781         (vec_extract<mode><VEC_base_l>): ... this.
12782         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
12783         (vec_initv2sfsf): ... this.
12784         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
12785         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
12786         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
12787         element mode after mode in gen_vec_init* calls.
12788         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
12789         (vec_init<mode><Vel>): ... this.
12790         (vec_extract<mode>): Renamed to ...
12791         (vec_extract<mode><Vel>): ... this.
12792         * config/aarch64/iterators.md (Vel): New mode attribute.
12793         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
12794         Add element mode after mode in gen_vec_extract* calls.
12795         * config/s390/vector.md (non_vec_l): New mode attribute.
12796         (vec_extract<mode>): Renamed to ...
12797         (vec_extract<mode><non_vec_l>): ... this.
12798         (vec_init<mode>): Renamed to ...
12799         (vec_init<mode><non_vec_l>): ... this.
12800         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
12801         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
12802         vec_extract mode.
12803         * config/arm/iterators.md (V_elem_l): New mode attribute.
12804         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
12805         (vec_extract<mode><V_elem_l>): ... this.
12806         (vec_extractv2di): Renamed to ...
12807         (vec_extractv2didi): ... this.
12808         (vec_init<mode>): Renamed to ...
12809         (vec_init<mode><V_elem_l>): ... this.
12810         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
12811         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
12812         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
12813         Add element mode after gen_vec_extract* calls.
12814         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
12815         (vec_init<mode><unitmode>): ... this.
12816         (vec_extract<mode>): Renamed to ...
12817         (vec_extract<mode><unitmode>): ... this.
12818         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
12819         (vec_init<mode><unitmode>): ... this.
12820         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
12821         (vec_initv2sfsf): ... this.
12822         (vec_extractv2sf): Renamed to ...
12823         (vec_extractv2sfsf): ... this.
12824         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
12825         Add element mode after gen_vec_extract* calls.
12826         * config/mips/mips.md (unitmode): New mode iterator.
12827         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
12828         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
12829         * config/spu/spu.md (inner_l): New mode attribute.
12830         (vec_init<mode>): Renamed to ...
12831         (vec_init<mode><inner_l>): ... this.
12832         (vec_extract<mode>): Renamed to ...
12833         (vec_extract<mode><inner_l>): ... this.
12834         * config/sparc/sparc.md (veltmode): New mode iterator.
12835         (vec_init<VMALL:mode>): Renamed to ...
12836         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
12837         * config/ia64/vect.md (vec_initv2si): Renamed to ...
12838         (vec_initv2sisi): ... this.
12839         (vec_initv2sf): Renamed to ...
12840         (vec_initv2sfsf): ... this.
12841         (vec_extractv2sf): Renamed to ...
12842         (vec_extractv2sfsf): ... this.
12843         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
12844         (vec_init<mode>): Renamed to ...
12845         (vec_init<mode><VEC_base_l>): ... this.
12846         (vec_extract<mode>): Renamed to ...
12847         (vec_extract<mode><VEC_base_l>): ... this.
12848         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
12849         (vec_initv2sfsf): ... this.
12850         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
12851         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
12852         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
12853         gen_vec_init* calls.
12855 2017-08-01  Richard Biener  <rguenther@suse.de>
12857         PR tree-optimization/81297
12858         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
12859         TREE_OVERFLOW from INTEGER_CSTs.
12861 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
12863         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
12865 2017-07-31  Carl Love  <cel@us.ibm.com>
12867         * config/rs6000/rs6000-c: Add support for built-in functions
12868         vector signed char vec_xl_be (signed long long, signed char *);
12869         vector unsigned char vec_xl_be (signed long long, unsigned char *);
12870         vector signed int vec_xl_be (signed long long, signed int *);
12871         vector unsigned int vec_xl_be (signed long long, unsigned int *);
12872         vector signed long long vec_xl_be (signed long long, signed long long *);
12873         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
12874         vector signed short vec_xl_be (signed long long, signed short *);
12875         vector unsigned short vec_xl_be (signed long long, unsigned short *);
12876         vector double vec_xl_be (signed long long, double *);
12877         vector float vec_xl_be (signed long long, float *);
12878         * config/rs6000/altivec.h (vec_xl_be): Add #define.
12879         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
12880         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
12881         for the builtins.
12882         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
12883         (altivec_expand_builtin): Add switch statement to call
12884         altivec_expand_xl_be for each builtin.
12885         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
12886         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
12887         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
12888         __builtin_vsx_le_be_v16qi.
12889         * doc/extend.texi: Update the built-in documentation file for the
12890         new built-in functions.
12892 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
12894         PR target/25967
12895         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
12896         New function.
12897         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12899 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12901         * config.gcc: Add z14.
12902         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
12903         CPU model numbers for z13s and z14.
12904         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
12905         arch12 with z14.
12906         * config/s390/s390-opts.h (enum processor_type): Rename
12907         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
12908         * config/s390/s390.c (processor_table): Add field for CPU name to
12909         be passed to Binutils.
12910         (s390_asm_output_machine_for_arch): Use the new field in
12911         processor_table for Binutils.
12912         (s390_expand_builtin): Replace arch12 with z14.
12913         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
12914         (s390_get_sched_attrmask): Likewise.
12915         (s390_get_unit_mask): Likewise.
12916         * config/s390/s390.opt: Add z14 to processor_type enum.
12918 2017-07-31  Martin Jambor  <mjambor@suse.cz>
12920         PR hsa/81477
12921         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
12922         regardless of optimization level.
12924 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
12925             Martin Liska  <mliska@suse.cz>
12927         * predict.def: Remove old comment and adjust probability.
12928         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
12929         PREDICT statements.
12931 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
12933         PR target/25967
12934         * config/i386/i386.c (ix86_function_naked): New function.
12935         (ix86_can_use_return_insn_p): Return false for naked functions.
12936         (ix86_expand_prologue): Skip prologue for naked functions.
12937         (ix86_expand_epilogue): Skip epilogue for naked functions
12938         and emit trap instruction.
12939         (ix86_warn_func_return): New function.
12940         (ix86_attribute_table): Add "naked" attribute specification.
12941         (TARGET_WARN_FUNC_RETURN): Define.
12942         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
12944 2017-07-31  Martin Liska  <mliska@suse.cz>
12946         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
12947         (dump_gimple_bb_header): Always dump BB info.
12948         (pp_cfg_jump): Do not append info about BB when dumping a jump.
12950 2017-07-31  Martin Liska  <mliska@suse.cz>
12952         PR sanitize/81530
12953         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
12954         also with current_function_decl non-null equality.
12956 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
12958         PR sanitizer/81604
12959         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
12960         change type to the element type, instead add eltype variable and
12961         use it where we are interested in the element type.
12963         PR tree-optimization/81603
12964         * ipa-polymorphic-call.c
12965         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
12966         offset arithmetic in offset_int, bail out if the resulting bit offset
12967         doesn't fit into shwi.
12969 2017-07-31  Martin Liska  <mliska@suse.cz>
12971         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
12972         (gimplify_save_expr): Fix comment.
12974 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
12976         PR target/79793
12977         * config/i386/i386.c (ix86_function_arg): Update arguments for
12978         exception handler.
12979         (ix86_compute_frame_layout): Set the initial stack offset to
12980         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
12981         INCOMING_FRAME_SP_OFFSET.
12982         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
12983         stack before exception handler returns.
12984         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
12985         the 'ERROR_CODE' for exception handler.
12987 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
12989         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
12990         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
12991         (ASM_OUTPUT_REG_POP): Ditto.
12992         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
12993         instead of asm_fprintf to output pure string.
12995 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
12997         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
12998         to imported_module_or_decl hook.
12999         (debug_nothing_tree_tree_tree_bool): Remove.
13000         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
13001         * debug.c (do_nothing_debug_hooks): Use
13002         debug_nothing_tree_tree_tree_bool_bool instead of
13003         debug_nothing_tree_tree_tree_bool.
13004         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13005         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
13006         * sdbout.c (sdb_debug_hooks): Likewise.
13007         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
13008         (gen_namespace_die): Add DW_AT_export_symbols attribute if
13009         langhook wants it.
13010         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
13011         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
13012         attribute, don't add anything.
13014 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13016         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
13017         (fold_build2_stat_loc): Likewise.
13018         (fold_build3_stat_loc): Likewise.
13019         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
13020         (fold_build1_loc): Remove macro.
13021         (fold_build2_loc): Likewise.
13022         (fold_build3_loc): Likewise.
13024 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13026         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
13027         (gimple_build_debug_bind_source_stat): Likewise.
13028         * gimple.h (gimple_build_debug_bind): Remove macro.
13029         (gimple_build_debug_bind_source): Likewise.
13031 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13033         * bitmap.c (bitmap_alloc): Adjust.
13034         (bitmap_gc_alloc): Likewise.
13035         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
13037 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13039         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
13040         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
13041         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
13042         (bitmap_gc_alloc_stat): Likewise.
13043         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
13045 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13047         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
13048         * rtl.h (shallow_copy_rtx): Remove macro.
13050 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13052         * emit-rtl.c (gen_raw_REG): Adjust.
13053         * gengenrtl.c (gendef): Likewise.
13054         * rtl.c (rtx_alloc_stat): Remove _stat from name.
13055         * rtl.h (rtx_alloc): Remove macro.
13057 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13059         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
13060         (build_tree_list_stat): Likewise.
13061         * tree.h (build_tree_list): Remove macro.
13062         (build_tree_list_vec): Likewise.
13064 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13066         * tree.c (make_vector_stat): Remove _stat from name.
13067         (build_vector_stat): Likewise.
13068         * tree.h (make_vector_stat): Remove macro.
13069         (build_vector_stat): Likewise.
13071 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13073         * tree.h (build_var_debug_value): Remove prototype.
13075 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13077         * tree.c (tree_cons_stat): Remove _stat from name.
13078         * tree.h (tree_cons): Remove macro.
13080 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13082         * tree.c (build_vl_exp_stat): Remove _stat from name.
13083         * tree.h (build_vl_exp): Remove macro.
13085 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13087         * tree.c (build_decl_stat): Remove _stat from name.
13088         * tree.h (build_decl): Remove macro.
13090 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13092         * gimple.c (gimple_build_with_ops_stat): Adjust.
13093         (gimple_alloc_stat): Remove _stat from name.
13094         * gimple.h (gimple_alloc): Remove macro.
13096 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13098         * tree.c (make_tree_vec_stat): Remove _stat from name.
13099         (grow_tree_vec_stat): Likewise.
13100         * tree.h (make_tree_vec_stat): Adjust prototype.
13101         (grow_tree_vec_stat): Likewise.
13102         (make_tree_vec): Remove macro.
13103         (grow_tree_vec): Likewise.
13105 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13107         * fold-const.c (fold_build1_stat_loc): Adjust.
13108         (fold_build2_stat_loc): Likewise.
13109         (fold_build3_stat_loc): Likewise.
13110         * tree.c (build0_stat): Remove _stat from name.
13111         (build1_stat): Likewise.
13112         (build2_stat): Likewise.
13113         (build3_stat): Likewise.
13114         (build4_stat): Likewise.
13115         (build5_stat): Likewise.
13116         * tree.h (build1_loc): Remove macro, and rename _stat function
13117         to this.
13118         (build2_loc): Likewise.
13119         (build3_loc): Likewise.
13120         (build4_loc): Likewise.
13121         (build5_loc): Likewise.
13123 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13125         * tree.c (make_int_cst_stat): Remove _stat from name.
13126         * tree.h (make_int_cst_stat): Adjust prototype.
13127         (make_int_cst): Remove macro.
13129 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13131         * tree.c (make_tre_binfo_stat): Remove _stat from name.
13132         * tree.h (make_tree_binfo_stat): Adjust prototype.
13133         (make_tree_binfo): Remove.
13135 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13137         * tree.c (copy_node_stat): Rename to copy_node.
13138         (build_distinct_type_copy): Adjust.
13139         * tree.h (copy_node_stat): Adjust prototype.
13140         (copy_node): Remove macro.
13142 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13144         * tree.c (make_node_stat): rename to make_node.
13145         (build_tree_list_stat): Adjust.
13146         (build0_stat): Likewise.
13147         (build2_stat): Likewise.
13148         (build3_stat): Likewise.
13149         (build4_stat): Likewise.
13150         (build5_stat): Likewise.
13151         (build_decl_stat): Likewise.
13152         * tree.h (make_node_stat): Adjust prototype.
13153         (make_node): remove macro.
13155 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
13157         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
13158         (PPC_FEATURE2_SCV): Likewise.
13159         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
13161 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
13163         * config/aarch64/aarch64.c
13164         (aarch64_internal_mov_immediate): Add new special pattern.
13165         * config/aarch64/aarch64.md (*movdi_aarch64):
13166         Add reg/32bit const mov case.
13168 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
13169             Richard Sandiford <richard.sandiford@linaro.org>
13171         * config/aarch64/aarch64.md (mov<mode>): Generalize.
13172         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
13173         Add integer and movi cases.
13174         (movi-split-hf-df-sf split, fp16): New.
13175         (enabled): Added TARGET_FP_F16INST.
13176         * config/aarch64/iterators.md (GPF_HF): New.
13177         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
13179 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
13181         * config/aarch64/aarch64.c
13182         (aarch64_simd_container_mode): Add prototype.
13183         (aarch64_expand_mov_immediate): Add HI support.
13184         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
13185         (aarch64_can_const_movi_rtx_p): New.
13186         (aarch64_preferred_reload_class):
13187         Remove restrictions of using FP registers for certain SIMD operations.
13188         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
13189         (aarch64_valid_floating_const): Add integer move validation.
13190         (aarch64_simd_imm_scalar_p): Remove.
13191         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
13192         (aarch64_legitimate_constant_p): Expand list of supported cases.
13193         * config/aarch64/aarch64-protos.h
13194         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
13195         (aarch64_reinterpret_float_as_int): New.
13196         (aarch64_simd_imm_scalar_p): Remove.
13197         * config/aarch64/constraints.md (Uvi): New.
13198         (Dd): Split into Ds and new Dd.
13199         * config/aarch64/aarch64.md (*movsi_aarch64):
13200         Add SIMD mov case.
13201         (*movdi_aarch64): Add SIMD mov case.
13203 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13205         * tree-predcom.c: (struct chain): Handle store-store chain in which
13206         stores for elimination only store loop invariant values.
13207         (execute_pred_commoning_chain): Ditto.
13208         (prepare_initializers_chain_store_elim): Ditto.
13209         (prepare_finalizers): Ditto.
13210         (is_inv_store_elimination_chain): New function.
13211         (initialize_root_vars_store_elim_1): New function.
13213 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13215         * tree-predcom.c: Revise general description of the pass.
13216         (enum chain_type): New enum type for store elimination.
13217         (struct chain): New field supporting store elimination.
13218         (struct component): Ditto.
13219         (dump_chain): Dump store-stores chain.
13220         (release_chain): Release resources.
13221         (split_data_refs_to_components): Compute and create component
13222         contains only stores for elimination.
13223         (get_chain_last_ref_at): New function.
13224         (make_invariant_chain): Initialization.
13225         (make_rooted_chain): Specify chain type in parameter and record it.
13226         (add_looparound_copies): Skip for store-stores chain.
13227         (determine_roots_comp): Compute type of chain and pass it to
13228         make_rooted_chain.
13229         (initialize_root_vars_store_elim_2): New function.
13230         (finalize_eliminated_stores): New function.
13231         (remove_stmt): Handle store for elimination.
13232         (execute_pred_commoning_chain): Execute predictive commoning on
13233         store-store chains.
13234         (determine_unroll_factor): Skip unroll for store-stores chain.
13235         (prepare_initializers_chain_store_elim): New function.
13236         (prepare_initializers_chain): Hanlde store-store chain.
13237         (prepare_finalizers_chain, prepare_finalizers): New function.
13238         (tree_predictive_commoning_loop): Return integer value indicating
13239         if loop is unrolled or lcssa form is corrupted.
13240         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
13242 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13244         * tree-predcom.c (initialize_root): Delete.
13245         (execute_pred_commoning_chain): Initialize root vars and replace
13246         reference of non-combined chain directly, rather than call above
13247         function.
13249 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13251         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
13252         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
13254 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13256         * tree-predcom.c (struct chain): New field init_seq.
13257         (release_chain): Release init_seq.
13258         (prepare_initializers_chain): Record intialization stmts in above
13259         field.
13260         (insert_init_seqs): New function.
13261         (tree_predictive_commoning_loop): Call insert_init_seqs.
13263 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
13265         * tree-predcom.c (determine_roots_comp): Skip trivial components.
13267 2017-07-28  Richard Biener  <rguenther@suse.de>
13269         * match.pd: Remove superfluous :c.
13270         * genmatch.c (simplify::id): Add member.
13271         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
13272         Copy id.
13273         (current_id): New global.
13274         (dt_node::parent): Move from ...
13275         (dt_operand::parent): ... here.  Add for_id member.
13276         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
13277         (decision_tree::find_node): Relax order requirement when
13278         merging DT_TRUE nodes to ones inbetween the current simplify
13279         and the one we try to merge with.  Add diagnostic whenever
13280         we need to enforce pattern order by not merging.
13281         (decision_tree::insert): Set current_id.
13282         (decision_tree::print_node): Dump parent node and for_id.
13283         (parser::last_id): Add member.
13284         (parser::push_simplify): Assign unique id.
13285         (parser::parser): Initialize last_id.
13287 2017-07-28  Martin Liska  <mliska@suse.cz>
13289         PR sanitizer/81340
13290         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
13291         gimple_build_debug_bind.
13293 2017-07-28  Richard Biener  <rguenther@suse.de>
13295         PR tree-optimization/81502
13296         * match.pd: Add pattern combining BIT_INSERT_EXPR with
13297         BIT_FIELD_REF.
13298         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
13299         size/pos operands.
13300         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
13301         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
13302         for BIT_FIELD_REF args.
13303         * fold-const.c (make_bit_field_ref): Likewise.
13304         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
13306 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
13308         PR sanitizer/80998
13309         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
13310         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
13311         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
13312         Or it into SANITIZER_UNDEFINED.
13313         * ubsan.c: Include gimple-fold.h and varasm.h.
13314         (ubsan_expand_ptr_ifn): New function.
13315         (instrument_pointer_overflow): New function.
13316         (maybe_instrument_pointer_overflow): New function.
13317         (instrument_object_size): Formatting fix.
13318         (pass_ubsan::execute): Call instrument_pointer_overflow
13319         and maybe_instrument_pointer_overflow.
13320         * internal-fn.c (expand_UBSAN_PTR): New function.
13321         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
13322         * sanitizer.def (__ubsan_handle_pointer_overflow,
13323         __ubsan_handle_pointer_overflow_abort): New builtins.
13324         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
13325         * internal-fn.def (UBSAN_PTR): New internal function.
13326         * opts.c (sanitizer_opts): Add pointer-overflow.
13327         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
13328         * fold-const.c (build_range_check): Compute pointer range check in
13329         integral type if pointer arithmetics would be needed.  Formatting
13330         fixes.
13332 2017-07-28  Martin Liska  <mliska@suse.cz>
13334         PR sanitizer/81460
13335         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
13336         parameters that are of a variable-length.
13338 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13340         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
13341         rs6000/biarch64.h.
13342         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
13343         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
13344         (CRT_CALL_STATIC_FUNCTION): Likewise.
13345         (ASM_DEFAULT_SPEC): New define.
13346         (ASM_SPEC32): Likewise.
13347         (ASM_SPEC64): Likewise.
13348         (ASM_SPEC_COMMON): Likewise.
13349         (ASM_SPEC): Likewise.
13350         (INVALID_64BIT): Likewise.
13351         (LINK_OS_DEFAULT_SPEC): Likewise.
13352         (LINK_OS_SPEC32): Likewise.
13353         (LINK_OS_SPEC64): Likewise.
13354         (POWERPC_LINUX): Likewise.
13355         (PTRDIFF_TYPE): Likewise.
13356         (RESTORE_FP_PREFIX): Likewise.
13357         (RESTORE_FP_SUFFIX): Likewise.
13358         (SAVE_FP_PREFIX): Likewise.
13359         (SAVE_FP_SUFFIX): Likewise.
13360         (SIZE_TYPE): Likewise.
13361         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13362         (TARGET_64BIT): Likewise.
13363         (TARGET_64BIT): Likewise.
13364         (TARGET_AIX): Likewise.
13365         (WCHAR_TYPE_SIZE): Likewise.
13366         (WCHAR_TYPE): Undefine.
13367         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
13368         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
13369         (CPP_OS_RTEMS_SPEC): Delete.
13370         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
13371         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
13372         link_os_spec64.
13373         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
13375 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
13377         PR tree-optimization/81578
13378         * tree-parloops.c (build_new_reduction): Bail out if
13379         reduction_code isn't one of the standard OpenMP reductions.
13380         Move the details printing after that decision.
13382 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
13384         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
13385         related to reload_in_progress.
13386         (splat_input_operand): Likewise.
13387         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
13388         Delete prototype.
13389         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
13390         field.
13391         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
13392         (TARGET_INSTANTIATE_DECLS): Likewise.
13393         (legitimate_indexed_address_p): Delete reload_in_progress code.
13394         (rs6000_debug_legitimate_address_p): Likewise.
13395         (rs6000_eliminate_indexed_memrefs): Likewise.
13396         (rs6000_emit_le_vsx_store): Likewise.
13397         (rs6000_emit_move_si_sf_subreg): Likewise.
13398         (rs6000_emit_move): Likewise.
13399         (register_to_reg_type): Likewise.
13400         (rs6000_pre_atomic_barrier): Likewise.
13401         (rs6000_machopic_legitimize_pic_address): Likewise.
13402         (rs6000_allocate_stack_temp): Likewise.
13403         (rs6000_address_for_fpconvert): Likewise.
13404         (rs6000_address_for_altivec): Likewise.
13405         (rs6000_secondary_memory_needed_rtx): Delete function.
13406         (rs6000_check_sdmode): Likewise.
13407         (rs6000_alloc_sdmode_stack_slot): Likewise.
13408         (rs6000_instantiate_decls): Likewise.
13409         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13410         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
13411         Delete reload_in_progress.
13412         (*vec_reload_and_plus_<mptrsize>): Likewise.
13413         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
13414         (vsx_div_v2di): Likewise.
13415         (vsx_udiv_v2di): Likewise.
13417 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
13419         * config/rs6000/rs6000.opt (mlra): Replace with stub.
13420         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
13421         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
13422         (rs6000_debug_reg_global): Delete print of LRA status.
13423         (rs6000_option_override_internal): Delete dead LRA related code.
13424         (rs6000_lra_p): Delete function.
13425         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
13427 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13429         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
13430         * config/riscv/rtems.h: New file.
13432 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13433             Sudakshina Das  <sudi.das@arm.com>
13435         * config/aarch64/aarch64.md
13436         (define_split for and<mode>3nr_compare): Move
13437         non aarch64_logical_operand to a register.
13438         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
13439         register immediate operand to a register.
13440         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
13442 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
13444         PR middle-end/81564
13445         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
13447 2017-07-27  Richard Biener  <rguenther@suse.de>
13449         PR tree-optimization/81573
13450         PR tree-optimization/81494
13451         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
13452         multi defuse cycle case.
13454 2017-07-27  Richard Biener  <rguenther@suse.de>
13456         PR tree-optimization/81571
13457         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
13458         PHIs.
13460 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
13462         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
13463         earlier and only if MASK_FPU is set.  Adjust formatting.
13465 2017-07-27  Martin Liska  <mliska@suse.cz>
13467         * opt-functions.awk: Add validation of value of Init.
13468         * optc-gen.awk: Pass new argument.
13470 2017-07-27  Martin Liska  <mliska@suse.cz>
13472         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
13473         Fix wrong condition.
13475 2017-07-27  Martin Liska  <mliska@suse.cz>
13477         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
13478         BBs and edges seen by autoFDO.
13480 2017-07-27  Richard Biener  <rguenther@suse.de>
13482         PR tree-optimization/81502
13483         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
13484         with incompatible but same sized type.
13485         (execute_update_addresses_taken): Likewise.
13487 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
13489         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
13490         flag_tree_loop_vectorize rather than flag_tree_vectorize.
13492 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13494         PR target/81534
13495         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
13496         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
13497         Change s_operand to memory_operand.
13499 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
13501         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
13502         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
13503         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
13504         Emit instructions rather than returning an expression.  Handle TFmode
13505         and KFmode by casting to TImode.
13506         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
13507         (rs6000_emit_le_vsx_store): Likewise.
13508         * config/rs6000/vsx.md (VSX_TI): New iterator.
13509         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
13510         (*vsx_le_undo_permute_<mode>): Likewise.
13511         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
13512         emit the split sequence.
13513         (*vsx_le_perm_store_<mode>): Likewise.
13515 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
13517         PR tree-optimization/81555
13518         PR tree-optimization/81556
13519         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
13520         if true, force CHANGED for the recursive invocation.
13521         (reassociate_bb): Remember original length of ops array, pass
13522         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
13524         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
13525         attributes for noipa attribute.  For naked attribute use
13526         lookup_attribute first before lookup_attribute_spec.
13527         * final.c (rest_of_handle_final): Disable IPA RA for functions with
13528         noipa attribute.
13529         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
13530         for functions with noipa attribute.
13531         (cgraph_externally_visible_p): Return true for functions with noipa
13532         attribute.
13533         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
13534         for functions with noipa attribute.
13535         * doc/extend.texi: Document noipa function attribute.
13536         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
13537         also for functions with noipa attribute.
13538         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
13540 2017-07-26  Andrew Pinski  <apinski@cavium.com>
13542         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
13543         vec_unalign_load_cost and vec_unalign_store_cost.
13545 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13547         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
13548         -mvsx-small-integer option.
13549         (ISA_3_0_MASKS_IEEE): Likewise.
13550         (OTHER_VSX_VECTOR_MASKS): Likewise.
13551         (POWERPC_MASKS): Likewise.
13552         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
13553         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
13554         code, only testing for DImode being allowed in non-VSX floating
13555         point registers.
13556         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
13557         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
13558         another VSX test.
13559         (rs6000_option_override_internal): Delete -mvsx-small-integer.
13560         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
13561         TARGET_P8_VECTOR test.
13562         (rs6000_secondary_reload_simple_move): Likewise.
13563         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
13564         since TARGET_P9_VECTOR was already tested.
13565         (rs6000_opt_masks): Remove -mvsx-small-integer.
13566         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
13567         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13568         used.
13569         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
13570         test for TARGET_VEXTRACTUB was used, and that uses
13571         TARGET_P9_VECTOR.
13572         (p9 extract splitter): Likewise.
13573         (vsx_extract_<mode>_di_p9): Likewise.
13574         (vsx_extract_<mode>_store_p9): Likewise.
13575         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
13576         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
13577         the elimination of TARGET_VSX_SMALL_INTEGER.
13578         (vsx_extract_<mode>_p8): Likewise.
13579         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
13580         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
13581         (vsx_set_<mode>_p9): Likewise.
13582         (vsx_set_v4sf_p9): Likewise.
13583         (vsx_set_v4sf_p9_zero): Likewise.
13584         (vsx_insert_extract_v4sf_p9): Likewise.
13585         (vsx_insert_extract_v4sf_p9_2): Likewise.
13586         * config/rs6000/rs6000.md (sign extend splitter): Change
13587         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
13588         (floatsi<mode>2_lfiwax_mem): Likewise.
13589         (floatunssi<mode>2_lfiwzx_mem): Likewise.
13590         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
13591         since a test for TARGET_P9_VECTOR was used.
13592         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13593         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
13594         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13595         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
13596         TARGET_P8_VECTOR test.
13597         (fix_trunc<mode>si2_stfiwx): Likewise.
13598         (fix_trunc<mode>si2_internal): Likewise.
13599         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
13600         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13601         used.
13602         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
13603         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
13604         TARGET_P8_VECTOR test.
13605         (fixuns_trunc<mode>si2_stfiwx): Likewise.
13606         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
13607         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
13608         used.
13609         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
13610         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
13611         since a test for TARGET_P9_VECTOR was used.
13612         (splitter for loading small constants): Likewise.
13614 2017-07-26  Andrew Pinski  <apinski@cavium.com>
13616         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
13617         vec_fp_stmt_cost.
13619 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
13621         PR target/81563
13622         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
13623         (fp_valid_at): Likewise.
13625 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
13627         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
13628         (qdf24xx_addrcost_table): Likewise.
13629         (cortexa57_tunings): Update to use generic_branch_cost.
13630         (cortexa72_tunings): Likewise.
13631         (cortexa73_tunings): Likewise.
13632         (qdf24xx_tunings): Likewise.
13634 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
13636         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
13637         (thunderx2t99_branch_cost): Likewise.
13638         (cortexa35_tunings): Update to use generic_branch_cost.
13639         (cortexa53_tunings): Likewise.
13640         (cortexa57_tunings): Likewise.
13641         (cortexa72_tunings): Likewise.
13642         (cortexa73_tunings): Likewise.
13643         (thunderx2t99_tunings): Likewise.
13645 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13647         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
13648         (sparc_option_override): Honour MASK_FSMULD.
13649         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
13650         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
13651         * config/sparc/sparc.opt (mfsmuld): New option.
13652         * doc/invoke.texi (mfsmuld): Document option.
13654 2017-07-26  Marek Polacek  <polacek@redhat.com>
13656         PR middle-end/70992
13657         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
13659 2017-07-26  Richard Biener  <rguenther@suse.de>
13661         * gimple-match-head.c (do_valueize): Return OP if valueize
13662         returns NULL_TREE.
13663         (get_def): New helper to get at the def stmt of a SSA name
13664         if valueize allows.
13665         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
13666         do_valueize to get at the def stmt.
13667         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
13669 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
13671         PR middle-end/46932
13672         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
13674 2017-07-26  Martin Liska  <mliska@suse.cz>
13676         PR sanitize/81186
13677         * function.c (expand_function_start): Make expansion of
13678         nonlocal_goto_save_area after parm_birth_insn.
13680 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13682         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
13683         from all CPU target flags enable members.
13685 2017-07-26  Richard Biener  <rguenther@suse.de>
13687         * genmatch.c (dt_simplify::gen): Make iterator vars const.
13688         (decision_tree::gen): Make 'type' const.
13689         (write_predicate): Likewise.
13691 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13693         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
13694         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
13695         (rs6000_option_override_internal): Likewise.
13696         (rs6000_expand_vector_set): Likewise.
13697         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
13698         (TARGET_UPPER_REGS_SF): Likewise.
13699         (TARGET_UPPER_REGS_DI): Likewise.
13700         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
13701         (TARGET_DIRECT_MOVE_64BIT): Likewise.
13702         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
13703         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
13704         (Splitters for DI constants in Altivec registers): Likewise.
13705         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
13706         (vsx_set_v4sf_p9): Likewise.
13707         (vsx_set_v4sf_p9_zero): Likewise.
13708         (vsx_insert_extract_v4sf_p9): Likewise.
13709         (vsx_insert_extract_v4sf_p9_2): Likewise.
13711 2017-07-25  Carl Love  <cel@us.ibm.com>
13713         * doc/extend.texi: Update the built-in documentation file for the
13714         existing built-in functions
13715         vector signed char vec_cnttz (vector signed char);
13716         vector unsigned char vec_cnttz (vector unsigned char);
13717         vector signed short vec_cnttz (vector signed short);
13718         vector unsigned short vec_cnttz (vector unsigned short);
13719         vector signed int vec_cnttz (vector signed int);
13720         vector unsigned int vec_cnttz (vector unsigned int);
13721         vector signed long long vec_cnttz (vector signed long long);
13722         vector unsigned long long vec_cnttz (vector unsigned long long);
13724 2017-07-25  Andrew Pinski  <apinski@cavium.com>
13726         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
13727         accesses where the use is for the first operand of a BIT_INSERT.
13729 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
13731         PR bootstrap/81521
13732         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
13733         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
13735 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
13737         * config/i386/gstabs.h: Delete.
13738         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
13740 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
13742         * config/i386/i386.c (ix86_decompose_address): Do not check for
13743         register RTX when looking at index_reg or base_reg.
13744         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
13746 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
13748         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
13749         to update EH info here.
13751 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
13753         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
13755 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
13757         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
13759 2017-07-25  Torsten Duwe  <duwe@suse.de>
13761         * common.opt: Introduce -fpatchable-function-entry
13762         command line option, and its variables function_entry_patch_area_size
13763         and function_entry_patch_area_start.
13764         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
13765         including a two-value parser.
13766         * target.def (print_patchable_function_entry): New target hook.
13767         * targhooks.h (default_print_patchable_function_entry): New function.
13768         * targhooks.c (default_print_patchable_function_entry): Likewise.
13769         * toplev.c (process_options): Switch off IPA-RA if
13770         patchable function entries are being generated.
13771         * varasm.c (assemble_start_function): Look at the
13772         patchable-function-entry command line switch and current
13773         function attributes and maybe generate NOP instructions by
13774         calling the print_patchable_function_entry hook.
13775         * doc/extend.texi: Document patchable_function_entry attribute.
13776         * doc/invoke.texi: Document -fpatchable_function_entry
13777         command line option.
13778         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
13779         New target hook.
13780         * doc/tm.texi: Re-generate.
13782 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
13784         PR target/81532
13785         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
13786         TARGET_AVX512DQ rather than TARGET_AVX512BW.
13788 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
13790         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
13792 2017-07-25  Richard Biener  <rguenther@suse.de>
13794         PR tree-optimization/81455
13795         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
13796         not walk in cycles when looking for guards.
13798 2017-07-25  Richard Biener  <rguenther@suse.de>
13800         PR tree-optimization/81529
13801         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
13802         when optimizing backedge uses.
13804 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
13806         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
13807         character for AIX.
13808         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
13809         to dl_section_ref.  On AIX, append an expression to subtract
13810         the size of the section length to dl_section_ref.
13812 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
13814         * configure.ac: If any of the config.* scripts fail, exit 1.
13815         * configure: Regenerate.
13817 2017-07-25  Richard Biener  <rguenther@suse.de>
13819         PR middle-end/81546
13820         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
13821         of immediate uses, be more verbose on errors.
13823 2017-07-25  Richard Biener  <rguenther@suse.de>
13825         PR tree-optimization/81510
13826         * tree-vect-loop.c (vect_is_simple_reduction): When the
13827         reduction stmt is not inside the loop bail out.
13829 2017-07-25  Richard Biener  <rguenther@suse.de>
13831         PR tree-optimization/81303
13832         * tree-vect-loop-manip.c (vect_loop_versioning): Build
13833         profitability check against LOOP_VINFO_NITERSM1.
13835 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
13837         * domwalk.c (cmp_bb_postorder): Simplify.
13838         (sort_bbs_postorder): New function.  Use it...
13839         (dom_walker::walk): ...here to optimize common cases.
13841 2017-07-25  Martin Liska  <mliska@suse.cz>
13843         PR ipa/81520
13844         * ipa-visibility.c (function_and_variable_visibility): Make the
13845         redirection just on target that supports aliasing.
13846         Fix GNU coding style.
13848 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13850         PR libgcc/61152
13851         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
13852         Format changes.
13853         * config/arm/rtems.h: Likewise.
13854         * config/bfin/rtems.h: Likewise.
13855         * config/i386/rtemself.h: Likewise.
13856         * config/lm32/rtems.h: Likewise.
13857         * config/m32c/rtems.h: Likewise.
13858         * config/m68k/rtemself.h: Likewise.
13859         * config/microblaze/rtems.h: Likewise.
13860         * config/mips/rtems.h: Likewise.
13861         * config/moxie/rtems.h: Likewise.
13862         * config/nios2/rtems.h: Likewise.
13863         * config/powerpcspe/rtems.h: Likewise.
13864         * config/rs6000/rtems.h: Likewise.
13865         * config/rtems.h: Likewise.
13866         * config/sh/rtems.h: Likewise.
13867         * config/sh/rtemself.h: Likewise.
13868         * config/sparc/rtemself.h: Likewise.
13870 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
13872         PR 81487
13873         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
13874         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
13875         * tree-ssa-structalias.c (alias_get_name): Same.
13877 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
13879         PR target/81414
13880         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
13881         instructions if no du chain is found.
13883 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
13885         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
13887 2017-07-25  Richard Biener  <rguenther@suse.de>
13889         PR middle-end/81505
13890         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
13891         sticky.
13893 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
13895         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
13896         upper-regs options.
13897         (ISA_2_7_MASKS_SERVER): Likewise.
13898         (ISA_3_0_MASKS_IEEE): Likewise.
13899         (OTHER_P8_VECTOR_MASKS): Likewise.
13900         (OTHER_VSX_VECTOR_MASKS): Likewise.
13901         (POWERPC_MASKS): Likewise.
13902         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
13903         duplicate list of options.
13904         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
13905         explicit -mupper-regs options.
13906         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
13907         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
13908         alias for -mupper-regs-df.
13909         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
13910         (rs6000_init_hard_regno_mode_ok): Likewise.
13911         (rs6000_option_override_internal): Likewise.
13912         (rs6000_opt_masks): Likewise.
13913         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
13914         options in terms of whether -mvsx or -mpower8-vector was used.
13915         (TARGET_UPPER_REGS_DI): Likewise.
13916         (TARGET_UPPER_REGS_SF): Likewise.
13917         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
13918         -mupper-regs-* options.
13920 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
13922         * passes.c (emergency_dump_function): Print some empty lines and a
13923         header before the RTL dump.
13925 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
13927         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
13929 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
13931         PR target/79041
13932         * config/aarch64/aarch64.c (aarch64_classify_symbol):
13933         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
13935 2017-07-24  Carl Love  <cel@us.ibm.com>
13937         * config/rs6000/rs6000-c.c: Add support for built-in functions
13938         vector float vec_extract_fp32_from_shorth (vector unsigned short);
13939         vector float vec_extract_fp32_from_shortl (vector unsigned short);
13940         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
13941         vec_extract_fp_from_shortl): Add defines for the two builtins.
13942         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
13943         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
13944         new builtins.
13945         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
13946         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
13947         * doc/extend.texi: Update the built-in documentation file for the
13948         new built-in function.
13950 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
13952         PR bootstrap/81521
13953         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
13954         documentation.
13955         * doc/generic.texi: Likewise.
13956         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
13957         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
13959 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
13961         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
13962         (aarch64_mls_elt_merge<mode>): Likewise.
13964 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
13966         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
13967         having __cxa_atexit.
13969 2017-07-23  Michael Collison  <michael.collison@arm.com>
13971         * config/arm/arm.c (arm_option_override): Deprecate
13972         use of -mstructure-size-boundary.
13973         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
13974         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
13976 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13978         PR target/80695
13979         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
13980         Reduce cost estimate for direct moves.
13982 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
13984         PR target/80569
13985         * config/i386/i386.c (ix86_option_override_internal): Disable
13986         BMI, BMI2 and TBM instructions for -m16.
13988 2017-07-21  Carl Love  <cel@us.ibm.com>
13990         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13991         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
13992         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
13993         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
13994         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
13995         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
13996         VMULOSW): New enum "unspec" values.
13997         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
13998         altivec_vmulosw): New patterns.
13999         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14000         VMULOSW): Add definitions.
14002 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
14004         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
14005         (qdf24xx): Likewise.
14006         * config/aarch64/aarch64-options-extensions.def (rdma); New.
14007         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
14008         (AARCH64_FL_V8_1): Renumber.
14009         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
14010         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
14011         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
14012         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
14013         rdma to feature modifiers list.
14015 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
14017         PR middle-end/56727
14018         * ipa-visibility (function_and_variable_visibility): Convert
14019         recursive PLT call to direct call if appropriate.
14021 2017-07-21  Andrew Pinski  <apinski@cavium.com>
14023         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
14024         operand 1 to see if the types precision matches.
14025         * fold-const.c (operand_equal_p): Likewise.
14027 2017-07-21  Richard Biener  <rguenther@suse.de>
14029         PR tree-optimization/81303
14030         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
14031         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
14032         (vect_peeling_hash_get_lowest_cost): Adjust.
14033         (vect_enhance_data_refs_alignment): Likewise.  Use
14034         vect_get_peeling_costs_all_drs to compute the penalty for no
14035         peeling to match up costs.
14037 2017-07-21  Richard Biener  <rguenther@suse.de>
14039         PR tree-optimization/81500
14040         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
14041         we didn't identify a reduction path.
14043 2017-07-21  Tom de Vries  <tom@codesourcery.com>
14044             Cesar Philippidis  <cesar@codesourcery.com>
14046         PR gcov-profile/81442
14047         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
14048         probabilities.
14050 2017-07-21  Tom de Vries  <tom@codesourcery.com>
14052         PR lto/81430
14053         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
14054         function.
14055         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
14056         nvptx_override_options_after_change.
14058 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
14060         * dwarf2out.c (output_file_names): Avoid double testing for
14061         dwarf_version >= 5.
14063 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
14065         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
14067 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
14069         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
14070         hot/cold regions.
14071         (try_crossjump_to_edge): Do not punt on partitioned functions.
14073 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
14075         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
14076         Put all BBs reachable only via paths crossing cold region to cold
14077         region.
14078         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
14080 2016-07-21  Richard Biener  <rguenther@suse.de>
14082         PR tree-optimization/81303
14083         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
14084         into account prologue and epilogue iterations when raising
14085         min_profitable_iters to sth at least covering one vector iteration.
14087 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
14089         * config/arm/arm.c (arm_test_cpu_arch_dat):
14090         Check for overlap.
14092 2017-07-20  Nathan Sidwell  <nathan@acm.org>
14094         Remove TYPE_METHODS.
14095         * tree.h (TYPE_METHODS): Delete.
14096         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
14097         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
14098         (dbxout_type_methods): Scan TYPE_FIELDS.
14099         (dbxout_type): Don't check TYPE_METHODS here.
14100         * function.c (use_register_for_decl): Always ignore register for
14101         class types when not optimizing.
14102         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
14103         * tree.c (free_lang_data_in_type): Stitch out member functions and
14104         templates from TYPE_FIELDS.
14105         (build_distinct_type_copy, verify_type_variant,
14106         verify_type): Member fns are on TYPE_FIELDS.
14107         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
14108         * tree-pretty-print.c (dump_generic_node): Likewise.
14110 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
14112         PR target/80846
14113         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
14114         V2TImode and V4TImode.
14115         (ix86_expand_vector_extract): Likewise.
14116         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
14117         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
14118         (ssescalarmode): Handle V4TImode and V2TImode.
14119         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
14120         (*vec_extractv2ti, *vec_extractv4ti): New insns.
14121         (VEXTRACTI128_MODE): New mode iterator.
14122         (splitter for *vec_extractv?ti first element): New.
14123         (VEC_INIT_MODE): New mode iterator.
14124         (vec_init<mode>): Consolidate 3 expanders into one using
14125         VEC_INIT_MODE mode iterator.
14127 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
14129         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
14130         non_spilled_static_chain_regno_p.
14132 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
14134         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
14136 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
14138         * bb-reorder.c (connect_traces): Allow copying of blocks within
14139         single partition.
14141 2017-07-20  Richard Biener  <rguenther@suse.de>
14143         * gimple.h (gimple_phi_result): Add gphi * overload.
14144         (gimple_phi_result_ptr): Likewise.
14145         (gimple_phi_arg): Likewise.  Adjust index assert to only
14146         allow actual argument accesses rather than all slots available
14147         by capacity.
14148         (gimple_phi_arg_def): Add gphi * overload.
14149         * tree-phinodes.c (make_phi_node): Initialize only actual
14150         arguments.
14151         (resize_phi_node): Clear memory not covered by old node,
14152         do not initialize excess argument slots.
14153         (reserve_phi_args_for_new_edge): Initialize new argument slot
14154         completely.
14156 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
14158         PR tree-optimization/81388
14159         Revert r238585:
14160         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
14162         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
14163         by removing computation of may_be_zero.
14165 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
14166             Tom de Vries  <tom@codesourcery.com>
14168         PR middle-end/81030
14169         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
14170         when gimple level profile disagrees with what RTL expander did.
14172 2017-07-20  Richard Biener  <rguenther@suse.de>
14174         PR tree-optimization/61171
14175         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
14176         (vect_analyze_stmt): Add slp instance parameter.
14177         (vectorizable_reduction): Likewise.
14178         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
14179         (vect_is_simple_reduction): Deal with chains not detected
14180         as SLP reduction chain, specifically not properly associated
14181         chains containing a mix of plus/minus.
14182         (get_reduction_op): Remove.
14183         (get_initial_defs_for_reduction): Simplify, pass in whether
14184         this is a reduction chain, pass in the SLP node for the PHIs.
14185         (vect_create_epilog_for_reduction): Get the SLP instance as
14186         arg and adjust.
14187         (vectorizable_reduction): Get the SLP instance as arg.
14188         During analysis remember the SLP node with the PHIs in the
14189         instance.  Simplify getting at the vectorized reduction PHIs.
14190         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
14191         through SLP instance.
14192         (vect_slp_analyze_operations): Likewise.
14193         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
14194         (vect_transform_stmt): Likewise.
14196 2017-07-20  Tom de Vries  <tom@codesourcery.com>
14198         PR tree-optimization/81489
14199         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
14200         read of phi arg location to before loop that modifies phi.
14202 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
14204         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
14205         New pattern.
14207 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
14209         PR middle-end/81331
14210         * except.c (execute): Fix ordering issue.
14212 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
14214         PR rtl-optimization/81423
14215         * combine.c (make_compound_operation_int): Don't try to optimize
14216         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
14218 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
14220         PR rtl-optimization/81423
14221         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
14222         with a constant that is -1 in the truncated to mode.
14224 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
14226         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
14227         (determine_unlikely_bbs): ... here.
14228         * predict.h (propagate_unlikely_bbs_forward): Declare.
14229         * cfgexpand.c (pass_expand::execute): Use it.
14230         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
14231         unlikely edges.
14232         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
14233         propagate_unlikely_bbs_forward.
14235 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
14237         PR middle-end/81331
14238         * except.c (maybe_add_nop_after_section_switch): New function.
14239         (execute): Use it.
14241 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14243         * gimple.h (gimple_phi_set_arg): Make assert more strict.
14245 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14247         * gimple.h (gimple_phi_arg): Make assert more strict.
14249 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
14251         * config.gcc (powerpc*-*-*): Add mmintrin.h.
14252         * config/rs6000/mmintrin.h: New file.
14253         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
14255 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
14257         PR tree-optimization/81346
14258         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
14260 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14262         * config/nvptx/nvptx.md (VECIM): Add V2DI.
14264 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14266         * config/nvptx/nvptx-modes.def: Add V2DImode.
14267         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
14268         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
14269         (nvptx_output_mov_insn): Handle lack of mov.b128.
14270         (nvptx_print_operand): Handle 'H' and 'L' codes.
14271         (nvptx_vector_mode_supported): Allow V2DImode.
14272         (nvptx_preferred_simd_mode): New function.
14273         (nvptx_data_alignment): New function.
14274         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
14275         nvptx_preferred_simd_mode.
14276         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
14277         64 to 128 bits.
14278         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
14280 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14282         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
14283         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
14284         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
14285         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
14286         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
14287         (mov<VECIM>_insn): New define_insn.
14288         (define_expand "mov<VECIM>): New define_expand.
14290 2017-07-19  Tom de Vries  <tom@codesourcery.com>
14292         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
14294 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
14296         PR tree-optimization/81346
14297         * fold-const.h (fold_div_compare, range_check_type): Declare.
14298         * fold-const.c (range_check_type): New function.
14299         (build_range_check): Use range_check_type.
14300         (fold_div_compare): No longer static, rewritten into
14301         a match.pd helper function.
14302         (fold_comparison): Don't call fold_div_compare here.
14303         * match.pd (X / C1 op C2): New optimization using fold_div_compare
14304         as helper function.
14306 2017-07-19  Nathan Sidwell  <nathan@acm.org>
14308         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
14309         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
14310         * tree.c (find_decls_types_r, verify_type): Use
14311         TYPE_{MIN,MAX}_VALUE_RAW.
14312         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
14313         (hash_tree): Likewise.
14314         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
14315         Likewise.
14316         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
14317         Likewise.
14319 2017-07-18  Tom de Vries  <tom@codesourcery.com>
14321         PR middle-end/81464
14322         * omp-expand.c (expand_omp_for_static_chunk): Handle
14323         equal-argument loop exit phi.
14325 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
14327         PR target/81471
14328         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
14329         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
14330         operand 2 predicate.
14331         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
14332         operand 2 predicate.
14333         (ror,rol -> rorx splitters): Use const_int_operand as
14334         operand 2 predicate.
14336 2017-06-18  Richard Biener  <rguenther@suse.de>
14338         PR tree-optimization/81410
14339         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
14340         the gap in the ! slp_perm SLP case after each group.
14342 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
14344         PR middle-end/81463
14345         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
14346         again.
14348 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
14350         PR middle-end/81462
14351         * predict.c (set_even_probabilities): Cleanup; do not affect
14352         probabilities that are already known.
14353         (combine_predictions_for_bb): Call even when count is set.
14355 2017-07-18  Nathan Sidwell  <nathan@acm.org>
14357         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
14358         TYPE_MAX_VALUE.
14360 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
14362         PR target/81408
14363         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
14364         optimization for loop niter analysis.
14366 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
14368         PR target/81473
14369         * config/avr/avr.c (avr_optimize_casesi): Don't use
14370         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
14372 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
14374         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
14375         body_cost_vec from _vect_peel_extended_info.
14376         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
14377         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
14378         npeel.
14380 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
14382         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
14384 2017-07-18  Richard Biener  <rguenther@suse.de>
14386         PR tree-optimization/80620
14387         PR tree-optimization/81403
14388         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
14389         info when re-using a VN table entry.
14391 2017-07-18  Richard Biener  <rguenther@suse.de>
14393         PR tree-optimization/81418
14394         * tree-vect-loop.c (vectorizable_reduction): Properly compute
14395         vectype_in.  Verify that with lane-reducing reduction operations
14396         we have a single def-use cycle.
14398 2017-07-17  Carl Love  <cel@us.ibm.com>
14400         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
14402         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14403         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
14404         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
14405         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
14406         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
14407         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
14408         VMULOSW): New enum "unspec" values.
14409         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
14410         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
14411         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
14412         altivec_vmulosw): New patterns.
14413         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
14414         VMULOSW): Add definitions.
14415 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
14417         * config/alpha/alpha.c: Include predict.h.
14419 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
14421         * tree-vrp.c (compare_assert_loc): Fix comparison function
14422         to return predictable results.
14424 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
14426         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
14427         option.
14428         (subdi3): Likewise.
14429         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
14430         * doc/invoke.texi (mexpand-adddi): Update text.
14432 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
14434         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
14435         that also clobbers the CC register. The old expand code is moved
14436         to ...
14437         (*arc_clzsi2): ... here.
14438         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
14439         the CC register. The old expand code is moved to ...
14440         (arc_ctzsi2): ... here.
14442 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
14444         * config/arc/arc.opt (mindexed-loads): Use initial value
14445         TARGET_INDEXED_LOADS_DEFAULT.
14446         (mauto-modify-reg): Use initial value
14447         TARGET_AUTO_MODIFY_REG_DEFAULT.
14448         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
14449         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
14450         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
14451         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
14453 2017-07-17  Martin Liska  <mliska@suse.cz>
14455         PR sanitizer/81302
14456         * opts.c (finish_options): Do not allow -fgnu-tm
14457         w/ -fsanitize={kernel-,}address.  Say sorry.
14459 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
14461         PR target/81369
14462         * tree-loop-distribution.c (classify_partition): Only assert on
14463         numer of iterations.
14464         (merge_dep_scc_partitions): Delete prameter.  Update function call.
14465         (distribute_loop): Remove code handling loop with unknown niters.
14466         (pass_loop_distribution::execute): Skip loop with unknown niters.
14468 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
14470         PR target/81369
14471         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
14472         function sort_partitions_by_post_order.
14474 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
14476         PR tree-optimization/81374
14477         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
14478         the max index of basic blocks, rather than number of basic blocks.
14480 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
14482         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
14483         proto.
14484         (arc_legitimate_pic_operand_p): Likewise.
14485         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
14486         function.
14487         (arc_needs_pcl_p): Likewise.
14488         (arc_legitimate_pc_offset_p): Likewise.
14489         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
14490         function is also used in constrains.md.
14491         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
14492         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
14493         PLUS.  Only return true/false in known cases, otherwise assert.
14494         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
14495         is already called in arc_legitimate_constant_p.
14496         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
14497         pic addresses.
14498         (LEGITIMATE_PIC_OPERAND_P): Use
14499         arc_raw_symbolic_reference_mentioned_p function.
14500         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
14501         function.
14502         (Cal): Likewise.
14503         (C32): Likewise.
14505 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
14506         Andrew Burgess  <andrew.burgess@embecosm.com>
14508         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
14509         (arc_return_address_register): New function.
14510         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
14511         (arc_handle_fndecl_attribute): Add naked attribute.
14512         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
14513         (TARGET_WARN_FUNC_RETURN): Likewise.
14514         (arc_allocate_stack_slots_for_args): New function.
14515         (arc_warn_func_return): Likewise.
14516         (machine_function): Change type fn_type.
14517         (arc_compute_function_type): Consider new naked function type,
14518         change function return type.
14519         (arc_must_save_register): Adapt to handle new
14520         arc_compute_function_type's return type.
14521         (arc_expand_prologue): Likewise.
14522         (arc_expand_epilogue): Likewise.
14523         (arc_return_address_regs): Delete.
14524         (arc_return_address_register): New function.
14525         (arc_epilogue_uses): Use above function.
14526         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
14527         (arc_function_type): Change encoding, add naked type.
14528         (ARC_INTERRUPT_P): Change to handle the new encoding.
14529         (ARC_FAST_INTERRUPT_P): Likewise.
14530         (ARC_NORMAL_P): Define.
14531         (ARC_NAKED_P): Likewise.
14532         (arc_compute_function_type): Delete prototype.
14533         * config/arc/arc.md (in_ret_delay_slot): Use
14534         arc_return_address_register function.
14535         (simple_return): Likewise.
14536         (p_return_i): Likewise.
14538 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
14540         PR tree-optimization/81428
14541         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
14542         can't be built for those types.
14544 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
14546         Remove stuff dead since r239246.
14548         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
14549         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
14550         (avr_inform_devices): Remove dead stuff.
14552 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
14554         * config/arm/arm_neon.h: Fix softp typo.
14556 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
14558         PR tree-optimization/81365
14559         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
14560         aggregate moves onto bb predecessor edges, make sure there are no
14561         loads that could alias the lhs in between the start of bb and the
14562         loads from *phi.
14564 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
14566         PR 80929
14567         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
14568         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
14569         [LSHIFTRT, outer_code = TRUNCATE]: Same.
14571 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
14573         PR tree-optimization/81396
14574         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
14575         (init_symbolic_number): Initialize it to 1.
14576         (perform_symbolic_merge): Add n_ops from both operands into the new
14577         n_ops.
14578         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
14579         without base_addr as useless if they need more than one operation.
14580         (bswap_replace): Handle !bswap case for NULL base_addr.
14582 2017-07-17  Tom de Vries  <tom@codesourcery.com>
14584         PR target/81069
14585         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
14586         as possible.
14588 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14590         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
14591         conditional builtin define __FIX_LEON3FT_B2BST.
14593 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
14595         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
14596         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
14597         with -mfix-ut700.
14599 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
14601         PR rtl-optimization/81424
14602         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
14603         to remove potential trapping from operands if -fnon-call-exceptions.
14605 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14607         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
14608         profile_proability for scalling.
14609         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
14611 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14613         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
14615 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14617         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
14618         fixpoint arithmetics.
14620 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14622         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
14623         fixpoint arithmetics.
14625 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14627         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
14628         fixpoint arithmetics.
14630 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
14632         * profile-count.h (profile_probability::from_reg_br_prob_note,
14633         profile_probability::to_reg_br_prob_note): New functions.
14634         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
14635         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
14636         * predict.c (probability_reliable_p): Update.
14637         (edge_probability_reliable_p): Update.
14638         (br_prob_note_reliable_p): Update.
14639         (invert_br_probabilities): Update.
14640         (add_reg_br_prob_note): New function.
14641         (combine_predictions_for_insn): Update.
14642         * asan.c (asan_clear_shadow): Update.
14643         * cfgbuild.c (compute_outgoing_frequencies): Update.
14644         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
14645         (update_br_prob_note): Update.
14646         (rtl_verify_edges): Update.
14647         (purge_dead_edges): Update.
14648         (fixup_reorder_chain): Update.
14649         * emit-rtl.c (try_split): Update.
14650         * ifcvt.c (cond_exec_process_insns): Update.
14651         (cond_exec_process_if_block): Update.
14652         (dead_or_predicable): Update.
14653         * internal-fn.c (expand_addsub_overflow): Update.
14654         (expand_neg_overflow): Update.
14655         (expand_mul_overflow): Update.
14656         * loop-doloop.c (doloop_modify): Update.
14657         * loop-unroll.c (compare_and_jump_seq): Update.
14658         * optabs.c (emit_cmp_and_jump_insn_1): Update.
14659         * predict.h: Update.
14660         * reorg.c (mostly_true_jump): Update.
14661         * rtl.h: Update.
14662         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
14663         * config/alpha/alpha.c (emit_unlikely_jump): Update.
14664         * config/arc/arc.c: (emit_unlikely_jump): Update.
14665         * config/arm/arm.c: (emit_unlikely_jump): Update.
14666         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
14667         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
14668         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
14669         (ix86_print_operand): Update.
14670         (ix86_split_fp_branch): Update.
14671         (predict_jump): Update.
14672         * config/ia64/ia64.c (ia64_print_operand): Update.
14673         * config/mmix/mmix.c (mmix_print_operand): Update.
14674         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
14675         (rs6000_expand_split_stack_prologue): Update.
14676         * config/rs6000/rs6000.c: Update.
14677         * config/s390/s390.c (s390_expand_vec_strlen): Update.
14678         (s390_expand_vec_movstr): Update.
14679         (s390_expand_cs_tdsi): Update.
14680         (s390_expand_split_stack_prologue): Update.
14681         * config/sh/sh.c (sh_print_operand): Update.
14682         (expand_cbranchsi4): Update.
14683         (expand_cbranchdi4): Update.
14684         * config/sparc/sparc.c (output_v9branch): Update.
14685         * config/spu/spu.c (get_branch_target): Update.
14686         (ea_load_store_inline): Update.
14687         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
14688         * config/tilepro/tilepro.c: Update.
14690 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
14692         * gimplify.c (mostly_copy_tree_r): Revert latest change.
14693         (gimplify_save_expr): Likewise.
14695 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
14697         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
14699 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
14701         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
14702         TV_IPA_FNSUMMARY.
14703         * timevar.def (TV_IPA_FNSUMMARY): Define.
14705 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
14707         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
14708         to back store errata sensitive sequence from being generated.
14709         (sqrtdf2_fix): Likewise.
14711 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
14713         * tree-ssa-threadupdate.c (compute_path_counts,
14714         update_joiner_offpath_counts): Use profile_probability.
14716 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14718         Revert:
14719         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14721         * config/arm/arm-c.c (arm_cpu_builtins): Define
14722         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
14724 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
14726         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14727         array entries to represent __ieee128 versions of the
14728         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
14729         scalar_extract_sig, and scalar_insert_exp built-in functions.
14730         (altivec_resolve_overloaded_builtin): Add special case handling
14731         for the __builtin_scalar_insert_exp function, as represented by
14732         the P9V_BUILTIN_VEC_VSIEDP constant.
14733         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
14734         exponent support for __ieee128 argument.
14735         (VSESQP): Add scalar extract signature support for __ieee128
14736         argument.
14737         (VSTDCNQP): Add scalar test negative support for __ieee128
14738         argument.
14739         (VSIEQP): Add scalar insert exponent support for __int128 argument
14740         with __ieee128 result.
14741         (VSIEQPF): Add scalar insert exponent support for __ieee128
14742         argument with __ieee128 result.
14743         (VSTDCQP): Add scalar test data class support for __ieee128
14744         argument.
14745         (VSTDCNQP): Add overload support for scalar test negative with
14746         __ieee128 argument.
14747         (VSTDCQP): Add overload support for scalar test data class
14748         __ieee128 argument.
14749         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
14750         UNSPEC_VSX_SXSIGDP.
14751         (UNSPEC_VSX_SIEXPQP): New constant.
14752         (xsxexpqp): New insn for VSX scalar extract exponent quad
14753         precision.
14754         (xsxsigqp): New insn for VSX scalar extract significand quad
14755         precision.
14756         (xsiexpqpf): New insn for VSX scalar insert exponent quad
14757         precision with floating point argument.
14758         (xststdcqp): New expand for VSX scalar test data class quad
14759         precision.
14760         (xststdcnegqp): New expand for VSX scalar test negative quad
14761         precision.
14762         (xststdcqp): New insn to match expansions for VSX scalar test data
14763         class quad precision and VSX scalar test negative quad precision.
14764         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
14765         special case operand checking to enforce that second operand of
14766         VSX scalar test data class with quad precision argument is a 7-bit
14767         unsigned literal.
14768         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
14769         prototypes and descriptions of __ieee128 versions of
14770         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
14771         scalar_test_data_class, and scalar_test_neg built-in functions.
14773 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14775         PR tree-optimization/81162
14776         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
14777         replace a negate with an add.
14779 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
14781         * doc/invoke.texi (arm/-mcpu): Document +crypto.
14783 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14785         * config/arm/arm-c.c (arm_cpu_builtins): Define
14786         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
14788 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14790         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
14791         (armv8-r): Set ARM Cortex-R52 as default CPU.
14792         * config/arm/arm-tables.opt: Regenerate.
14793         * config/arm/arm-tune.md: Regenerate.
14794         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
14795         Cortex-R52.
14796         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
14797         extension for -mcpu=cortex-r52.
14799 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14801         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
14802         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
14803         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
14804         (fp-armv8): Define it as FP_ARMv8 only.
14805         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
14806         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
14807         TARGET_FPU_ARMV8.
14808         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
14809         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
14810         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
14811         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
14812         than TARGET_FPU_ARMV8.
14813         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
14814         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
14815         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
14816         TARGET_FPU_ARMV8.
14817         * config/arm/neon.md (neon_vrint): Likewise.
14818         (neon_vcvt): Likewise.
14819         (neon_<fmaxmin_op><mode>): Likewise.
14820         (<fmaxmin><mode>3): Likewise.
14821         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
14822         * config/arm/predicates.md (arm_cond_move_operator): Check against
14823         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
14825 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
14827         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
14828         to top of function.
14830 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14832         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
14833         loop in comment with memset.
14835 2017-07-14  Martin Liska  <mliska@suse.cz>
14837         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
14838         * dwarf2out.c (is_java): Remove the function.
14839         (output_pubname): Remove usage of the function.
14840         (lower_bound_default): Remove usage of DW_LANG_Java.
14841         (gen_compile_unit_die): Likewise.
14842         * gcc.c: Remove compiler defaults for .java and .zip files.
14843         * gimple-expr.c (remove_suffix): Change as there's no longer
14844         extension than 4-letter one.
14845         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
14846         (gimplify_save_expr): Likewise.
14847         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
14848         as it's possible even for other languages than Java.
14849         * langhooks.h (struct lang_hooks): Remove Java from a comment.
14850         * lto-opts.c (lto_write_options): Remove reference to Java.
14851         * opts.c (strip_off_ending): Update file extension handling.
14852         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
14853         * tree-eh.c (lower_resx): Likewise.
14854         * tree.c (free_lang_data_in_type): Remove dead code.
14855         (find_decls_types_r): Likewise.
14856         (build_common_builtin_nodes): Remove Java from a comment.
14857         (verify_type): Remove dead code.
14858         * varasm.c (assemble_external): Remove Java from a comment.
14860 2017-07-14  Martin Liska  <mliska@suse.cz>
14862         * opts.c (finish_options): Add quotes.
14863         (common_handle_option): Likewise.
14865 2017-07-14  Martin Liska  <mliska@suse.cz>
14867         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
14868         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
14869         Remove N_SO_PASCAL.
14870         * dwarf2out.c (lower_bound_default): Do not handle
14871         DW_LANG_Pascal83.
14872         (gen_compile_unit_die): Likewise.
14873         * gcc.c: Remove default extension binding for GNU Pascal.
14874         * stmt.c: Remove Pascal language from a comment.
14875         * xcoffout.c: Likewise.
14877 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
14879         PR c/81405
14880         * diagnostic-show-locus.c (fixit_cmp): New function.
14881         (layout::layout): Sort m_fixit_hints.
14882         (column_range::column_range): Assert that the values are valid.
14883         (struct char_span): New struct.
14884         (correction::overwrite): New method.
14885         (struct source_line): New struct.
14886         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
14887         calls in terms of classes source_line and char_span, and
14888         correction::overwrite.
14889         (selftest::test_overlapped_fixit_printing_2): New function.
14890         (selftest::diagnostic_show_locus_c_tests): Call it.
14892 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
14894         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
14895         early if there is no lhs.
14897 2017-07-13  Martin Liska  <mliska@suse.cz>
14899         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
14900         (gen_reference_type_die): Likewise.
14901         * stor-layout.c: Remove Pascal-related comment.
14903 2017-07-13  Martin Liska  <mliska@suse.cz>
14905         * opts.c (finish_options): Add quotes to error messages.
14906         (parse_sanitizer_options): Likewise.
14908 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14910         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
14912 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
14914         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
14916 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
14918         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
14919         during expansion.
14920         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
14922 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
14924         PR target/81193
14925         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
14926         provides the hardware capability bits, define the macro
14927         __BUILTIN_CPU_SUPPORTS__.
14928         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
14929         if GLIBC does not provide the hardware capability bits.  Add a
14930         gcc_unreachable call if the built-in cpu function is neither
14931         __builtin_cpu_is nor __builtin_cpu_supports.
14932         (rs6000_get_function_versions_dispatcher): Change the warning
14933         that an old GLIBC is used which does not export the capability
14934         bits to be an error.
14935         * doc/extend.texi (target_clones attribute): Document the
14936         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
14937         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
14938         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
14939         the macros defined by GCC if the newer GLIBC is available.
14941 2017-07-12  Jeff Law  <law@redhat.com>
14943         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
14944         remaining includes slightly.
14945         * config/riscv/riscv-builtins.c: Include profile-count.h.
14947 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
14949         PR target/79883
14950         * config/avr/avr.c (avr_set_current_function): In diagnostic
14951         messages: Quote keywords and (parts of) identifiers.
14952         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
14953         "INTERUPT".
14955 2017-07-12  Carl Love  <cel@us.ibm.com>
14957         * config/rs6000/rs6000-c.c: Add support for built-in functions
14958         vector bool char vec_revb (vector bool char);
14959         vector bool short vec_revb (vector short char);
14960         vector bool int vec_revb (vector bool int);
14961         vector bool long long vec_revb (vector bool long long);
14962         * doc/extend.texi: Update the built-in documentation file for the
14963         new built-in functions.
14965 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14967         * config/s390/s390.md: Remove movcc splitter.
14969 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14971         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
14972         load/store on condition.
14974 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
14976         PR target/81407
14977         * config/avr/avr.c (avr_encode_section_info)
14978         [progmem && !TREE_READONLY]: Error if progmem object needs
14979         constructing.
14981 2017-07-11  Michael Collison  <michael.collison@arm.com>
14983         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
14984         New pattern.
14986 2017-07-11  Carl Love  <cel@us.ibm.com>
14988         * config/rs6000/rs6000-c.c: Add support for builtins
14989         vector unsigned int vec_parity_lsbb (vector signed int);
14990         vector unsigned int vec_parity_lsbb (vector unsigned int);
14991         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
14992         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
14993         vector unsigned long long vec_parity_lsbb (vector signed long long);
14994         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
14995         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
14996         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
14997         * doc/extend.texi: Update the built-in documentation file for the
14998         new built-in functions.
15000 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
15002         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
15003         (layout::m_primary_loc): New field.
15004         (layout::layout): Initialize new field.  Move location filtering
15005         logic from here to...
15006         (layout::maybe_add_location_range): ...this new method.  Add
15007         support for filtering to just the lines already specified by other
15008         locations.
15009         (layout::will_show_line_p): New method.
15010         (gcc_rich_location::add_location_if_nearby): New method.
15011         (selftest::test_add_location_if_nearby): New test function.
15012         (selftest::diagnostic_show_locus_c_tests): Call it.
15013         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
15014         New method.
15016 2017-07-11  Tom de Vries  <tom@codesourcery.com>
15018         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
15019         (bb_first_real_insn): New function.
15020         (nvptx_single): Add extra initialization of broadcasted condition
15021         variables.
15023 2017-07-11  Nathan Sidwell  <nathan@acm.org>
15025         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
15027 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
15029         * doc/extend.texi (AVR Function Attributes): Remove weblink to
15030         Binutils doc as TEXI will mess them up.
15031         * doc/invoke.texi (AVR Options): Same here.
15033 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
15035         * config/sparc/sparc.opt (mfix-ut700): New option.
15036         (mfix-gr712rc): Likewise.
15037         (sparc_fix_b2bst): New variable.
15038         * doc/invoke.texi (SPARC options): Document them.
15039         (ARM options): Fix warnings.
15040         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
15041         instructions to prevent sequences that can trigger the store-store
15042         errata for certain LEON3FT processors.
15043         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
15044         (sparc_option_override): Set sparc_fix_b2bst appropriately.
15045         * config/sparc/sparc.md (fix_b2bst): New attribute.
15046         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
15048 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
15050         PR target/81375
15051         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
15052         (rcpps): Ditto.
15053         (*rsqrtsf2_sse): Ditto.
15054         (rsqrtsf2): Ditto.
15055         (div<mode>3): Macroize insn from divdf3 and divsf3
15056         using MODEF mode iterator.
15058 2017-07-10  Martin Sebor  <msebor@redhat.com>
15060         PR tree-optimization/80397
15061         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
15062         instead of testing for equality to INTEGER_TYPE.
15064 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
15066         * config.gcc: Remove uclibc from arc target spec.
15068 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
15070         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
15072 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
15074         PR lto/80838
15075         * lto-wrapper.c (remove_option): New function.
15076         (merge_and_complain): Merge PIC/PIE options more realistically.
15078 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
15080         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
15082         PR target/20296
15083         PR target/81268
15084         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
15085         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
15086         * config.in: Regenerate.
15087         * configure: Regenerate.
15088         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
15089         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
15090         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
15091         (TARGET_GASISR_PROLOGUES): ...target mask.
15092         * common/config/avr/avr-common.c
15093         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
15094         Set -mgas-isr-prologues.
15095         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
15096         INSERT_PASS_BEFORE for it.
15097         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
15098         * config/avr/avr.c (avr_option_override)
15099         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
15100         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
15101         (avr_attribute_table) <no_gccisr>: Add new function attribute.
15102         (avr_set_current_function) <is_no_gccisr>: Init machine field.
15103         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
15104         and rtl_opt_pass.
15105         (make_avr_pass_pre_proep): New function.
15106         (emit_push_sfr) <treg>: Add argument to function and use it
15107         instead of TMP_REG.
15108         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
15109         and set machine->gasisr.yes.
15110         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
15111         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
15112         __gcc_isr.n_pushed to .L__stack_usage.
15113         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
15114         (avr_asm_final_postscan_insn): ...this new static function.
15115         * config/avr/avr.h (machine_function)
15116         <is_no_gccisr, use_L__stack_usage>: New fields.
15117         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
15118         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
15119         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
15120         (gasisr, *gasisr): New expander and insn.
15121         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
15122         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
15123         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
15125 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
15127         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
15128         in quoted strings.
15130 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
15132         Move jump-tables out of .text again.
15134         PR target/81075
15135         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
15136         (ASM_OUTPUT_ADDR_VEC): New function.
15137         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
15138         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
15139         INSN_ADDRESSes as asm comment.
15140         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
15141         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
15142         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
15143         * config/avr/avr.md (*tablejump): Adjust comment.
15144         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
15145         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
15146         New detail.
15147         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
15148         (avr_output_addr_vec): New proto.
15149         (avr_log_t) <insn_addresses>: New field.
15151 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
15153         PR target/81313
15154         * config/i386/i386.c (ix86_function_arg_advance): Set
15155         outgoing_args_on_stack to true if there are outgoing arguments
15156         on stack.
15157         (ix86_function_arg): Likewise.
15158         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
15159         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
15160         * config/i386/i386.h (machine_function): Add
15161         outgoing_args_on_stack.
15163 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
15165         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
15166         supporting pthreds.
15167         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
15169 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
15171         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
15172         (REAL_H): Remove $(MACHMODE_H).
15173         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
15174         double-int.h.
15175         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
15176         $(MACHMODE_H) and double-int.h.
15177         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
15178         $(MACHMODE_H).
15179         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
15180         double-int.h.
15182 2017-07-07  Andrew Pinski  <apinski@cavium.com>
15184         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
15185         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
15187 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
15189         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
15190         Add warning if GCC was not configured to link against a GLIBC that
15191         exports the hardware capability bits.
15192         (make_resolver_func): Make resolver function private and not a
15193         COMDAT function.  Create the name with clone_function_name instead
15194         of make_unique_name.
15196         PR target/81348
15197         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
15198         correct operand in doing the split.
15200 2017-07-07 Carl Love  <cel@us.ibm.com>
15202         * config/rs6000/rs6000-c: Add support for built-in function
15203         vector unsigned short vec_pack_to_short_fp32 (vector float,
15204                                                       vector float).
15205         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
15206         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
15207         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
15208         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
15209         (convert_4f32_8i16): Add define_expand.
15210         * doc/extend.texi: Update the built-in documentation file for the
15211         new built-in function.
15213 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15215         * config/sparc/m8.md: New file.
15216         * config/sparc/sparc.md: Include m8.md.
15218 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15220         * config/sparc/sparc.opt: New option -mvis4b.
15221         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
15222         (sparc_option_override): Handle VIS4B.
15223         (enum sparc_builtins): Define
15224         SPARC_BUILTIN_DICTUNPACK{8,16,32},
15225         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
15226         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
15227         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
15228         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
15229         (check_constant_argument): New function.
15230         (sparc_vis_init_builtins): Define builtins
15231         __builtin_vis_dictunpack{8,16,32},
15232         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
15233         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
15234         __builtin_vis_fpcmpde{8,16,32}shl and
15235         __builtin_vis_fpcmpur{8,16,32}shl.
15236         (sparc_expand_builtin): Check that the constant operands to
15237         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
15238         constant and in range.
15239         * config/sparc/sparc-c.c (sparc_target_macros): Handle
15240         TARGET_VIS4B.
15241         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
15242         (SPARC_IMM5_P): Likewise.
15243         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
15244         (enabled): Handle vis4b.
15245         (UNSPEC_DICTUNPACK): New unspec.
15246         (UNSPEC_FPCMPSHL): Likewise.
15247         (UNSPEC_FPUCMPSHL): Likewise.
15248         (UNSPEC_FPCMPDESHL): Likewise.
15249         (UNSPEC_FPCMPURSHL): Likewise.
15250         (cpu_feature): New CPU feature `vis4b'.
15251         (dictunpack{8,16,32}): New insns.
15252         (FPCSMODE): New mode iterator.
15253         (fpcscond): New code iterator.
15254         (fpcsucond): Likewise.
15255         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
15256         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
15257         (fpcmpde{8,16,32}{si,di}shl): Likewise.
15258         (fpcmpur{8,16,32}{si,di}shl): Likewise.
15259         * config/sparc/constraints.md: Define constraints `q' for unsigned
15260         2-bit integer constants and `t' for unsigned 5-bit integer
15261         constants.
15262         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
15263         predicate.
15264         (imm5_operand_dictunpack16): Likewise.
15265         (imm5_operand_dictunpack32): Likewise.
15266         (imm2_operand): Likewise.
15267         * doc/invoke.texi (SPARC Options): Document -mvis4b.
15268         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
15269         ditunpack* and fpcmp*shl builtins.
15271 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15273         * config.gcc: Handle m8 in --with-{cpu,tune} options.
15274         * config.in: Add HAVE_AS_SPARC6 define.
15275         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
15276         M8.
15277         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
15278         TARGET_CPU_m8.
15279         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
15280         (CPP_CPU_SPEC): Handle m8.
15281         (ASM_CPU_SPEC): Likewise.
15282         * config/sparc/sparc-opts.h (enum processor_type): Add
15283         PROCESSOR_M8.
15284         * config/sparc/sparc.c (m8_costs): New struct.
15285         (sparc_option_override): Handle TARGET_CPU_m8.
15286         (sparc32_initialize_trampoline): Likewise.
15287         (sparc64_initialize_trampoline): Likewise.
15288         (sparc_issue_rate): Likewise.
15289         (sparc_register_move_cost): Likewise.
15290         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
15291         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
15292         (ASM_CPU64_DEFAULT_SPEC): Likewise.
15293         (CPP_CPU_SPEC): Handle M8.
15294         (ASM_CPU_SPEC): Likewise.
15295         (AS_M8_FLAG): Define.
15296         * config/sparc/sparc.md: Add m8 to the cpu attribute.
15297         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
15298         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
15299         M8 instructions.
15300         * configure: Regenerate.
15301         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
15302         -mtune=m8.
15304 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15306         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
15307         subtypes.
15308         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
15309         ("*movdi_insn_sp32"): Do not set v3pipe.
15310         ("*movsi_insn"): Likewise.
15311         ("*movdi_insn_sp64"): Likewise.
15312         ("*movsf_insn"): Likewise.
15313         ("*movdf_insn_sp32"): Likewise.
15314         ("*movdf_insn_sp64"): Likewise.
15315         ("*zero_extendsidi2_insn_sp64"): Likewise.
15316         ("*sign_extendsidi2_insn"): Likewise.
15317         ("*mov<VM32:mode>_insn"): Likewise.
15318         ("*mov<VM64:mode>_insn_sp64"): Likewise.
15319         ("*mov<VM64:mode>_insn_sp32"): Likewise.
15320         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
15321         ("<vlop:code><VL:mode>3"): Likewise.
15322         ("*not_<vlop:code><VL:mode>3"): Likewise.
15323         ("*nand<VL:mode>_vis"): Likewise.
15324         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
15325         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
15326         ("one_cmpl<VL:mode>2"): Likewise.
15327         ("faligndata<VM64:mode>_vis"): Likewise.
15328         ("alignaddrsi_vis"): Likewise.
15329         ("alignaddrdi_vis"): Likweise.
15330         ("alignaddrlsi_vis"): Likewise.
15331         ("alignaddrldi_vis"): Likewise.
15332         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
15333         ("bmaskdi_vis"): Likewise.
15334         ("bmasksi_vis"): Likewise.
15335         ("bshuffle<VM64:mode>_vis"): Likewise.
15336         ("cmask8<P:mode>_vis"): Likewise.
15337         ("cmask16<P:mode>_vis"): Likewise.
15338         ("cmask32<P:mode>_vis"): Likewise.
15339         ("pdistn<P:mode>_vis"): Likewise.
15340         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
15342 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15344         * config/sparc/sparc.md ("subtype"): New insn attribute.
15345         ("*wrgsr_sp64"): Set insn subtype.
15346         ("*rdgsr_sp64"): Likewise.
15347         ("alignaddrsi_vis"): Likewise.
15348         ("alignaddrdi_vis"): Likewise.
15349         ("alignaddrlsi_vis"): Likewise.
15350         ("alignaddrldi_vis"): Likewise.
15351         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
15352         ("fexpand_vis"): Likewise.
15353         ("fpmerge_vis"): Likewise.
15354         ("faligndata<VM64:mode>_vis"): Likewise.
15355         ("bshuffle<VM64:mode>_vis"): Likewise.
15356         ("cmask8<P:mode>_vis"): Likewise.
15357         ("cmask16<P:mode>_vis"): Likewise.
15358         ("cmask32<P:mode>_vis"): Likewise.
15359         ("fchksm16_vis"): Likewise.
15360         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
15361         ("fmean16_vis"): Likewise.
15362         ("fp<plusminus_insn>64_vis"): Likewise.
15363         ("<plusminus_insn>v8qi3"): Likewise.
15364         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
15365         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
15366         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
15367         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
15368         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
15369         ("*movqi_insn"): Likewise.
15370         ("*movhi_insn"): Likewise.
15371         ("*movsi_insn"): Likewise.
15372         ("movsi_pic_gotdata_op"): Likewise.
15373         ("*movdi_insn_sp32"): Likewise.
15374         ("*movdi_insn_sp64"): Likewise.
15375         ("movdi_pic_gotdata_op"): Likewise.
15376         ("*movsf_insn"): Likewise.
15377         ("*movdf_insn_sp32"): Likewise.
15378         ("*movdf_insn_sp64"): Likewise.
15379         ("*zero_extendhisi2_insn"): Likewise.
15380         ("*zero_extendqihi2_insn"): Likewise.
15381         ("*zero_extendqisi2_insn"): Likewise.
15382         ("*zero_extendqidi2_insn"): Likewise.
15383         ("*zero_extendhidi2_insn"): Likewise.
15384         ("*zero_extendsidi2_insn_sp64"): Likewise.
15385         ("ldfsr"): Likewise.
15386         ("prefetch_64"): Likewise.
15387         ("prefetch_32"): Likewise.
15388         ("tie_ld32"): Likewise.
15389         ("tie_ld64"): Likewise.
15390         ("*tldo_ldub_sp32"): Likewise.
15391         ("*tldo_ldub1_sp32"): Likewise.
15392         ("*tldo_ldub2_sp32"): Likewise.
15393         ("*tldo_ldub_sp64"): Likewise.
15394         ("*tldo_ldub1_sp64"): Likewise.
15395         ("*tldo_ldub2_sp64"): Likewise.
15396         ("*tldo_ldub3_sp64"): Likewise.
15397         ("*tldo_lduh_sp32"): Likewise.
15398         ("*tldo_lduh1_sp32"): Likewise.
15399         ("*tldo_lduh_sp64"): Likewise.
15400         ("*tldo_lduh1_sp64"): Likewise.
15401         ("*tldo_lduh2_sp64"): Likewise.
15402         ("*tldo_lduw_sp32"): Likewise.
15403         ("*tldo_lduw_sp64"): Likewise.
15404         ("*tldo_lduw1_sp64"): Likewise.
15405         ("*tldo_ldx_sp64"): Likewise.
15406         ("*mov<VM32:mode>_insn"): Likewise.
15407         ("*mov<VM64:mode>_insn_sp64"): Likewise.
15408         ("*mov<VM64:mode>_insn_sp32"): Likewise.
15410 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15412         * config/sparc/sparc.md ("type"): New insn type viscmp.
15413         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
15414         viscmp.
15415         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
15416         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
15417         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
15418         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
15419         viscmp.
15420         ("n7_vis_logical_11cycle"): Likewise.
15421         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
15422         * config/sparc/niagara2.md ("niag3_vis": Likewise.
15423         * config/sparc/niagara.md ("niag_vis"): Likewise.
15424         * config/sparc/ultra3.md ("us3_fga"): Likewise.
15425         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
15427 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
15429         * config/sparc/sparc.md: New instruction type `bmask'.
15430         (bmaskdi_vis): Use the `bmask' type.
15431         (bmasksi_vis): Likewise.
15432         * config/sparc/ultra3.md (us3_array): Likewise.
15433         * config/sparc/niagara7.md (n7_array): Likewise.
15434         * config/sparc/niagara4.md (n4_array): Likewise.
15435         * config/sparc/niagara2.md (niag2_vis): Likewise.
15436         (niag3_vis): Likewise.
15437         * config/sparc/niagara.md (niag_vis): Likewise.
15439 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
15441         * ipa-comdats.c: Remove optimize check from gate.
15442         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
15443         for functions not optimized.
15444         (ipa_fn_summary_read): Skip optimize check.
15445         (ipa_fn_summary_write): Likewise.
15446         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
15447         is optimized.
15448         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
15449         uninlinable.
15450         (can_inline_edge_p): Check flag_pcc_struct_return for match.
15451         (check_callers): Give up on caller which is not optimized.
15452         (inline_small_functions): Likewise.
15453         (ipa_inline): Do not give up when not optimizing.
15454         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
15455         away unoptimizes cdtors.
15456         (whole_program_function_and_variable_visibility): Do
15457         ipa_discover_readonly_nonaddressable_vars in LTO mode.
15458         * ipa.c (process_references): Do not check optimize.
15459         (symbol_table::remove_unreachable_nodes): Update optimize check.
15460         (set_writeonly_bit): Update optimize check.
15461         (pass_ipa_cdtor_merge::gate): Do not check optimize.
15462         (pass_ipa_single_use::gate): Remove.
15464 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
15466         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
15467         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
15468         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
15469         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
15470         permute_load, permute_store, adjust_extract, adjust_splat,
15471         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
15472         replace_swap_with_copy, dump_swap_insn_table,
15473         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
15474         recombine_lvx_pattern, recombine_stvx_pattern,
15475         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
15476         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
15477         to file rs6000-p8swap.c.
15478         * config/rs6000/rs6000-p8swap.c: New file.
15479         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
15480         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
15481         and rs6000*-*-* targets.
15483 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
15485         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
15487 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
15489         * lto-wrapper.c (merge_and_complain): Do not merge
15490         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
15491         fsigned_zeros, ftrapping_math, fwrapv.
15492         (append_compiler_options): Do not track these options.
15493         (append_linker_options): Likewie
15495 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
15497         * cgraphunit.c (cgraph_node::finalize_function): When
15498         !flag_toplevel_reorde set no_reorder flag.
15499         (varpool_node::finalize_decl): Likewise.
15500         (symbol_table::compile): Drop no toplevel reorder path.
15502 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
15504         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
15505         edges; zero probability is not better than uninitialized.
15507 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
15509         * asan.h (asan_sanitize_allocas_p): Declare.
15510         * asan.c (asan_sanitize_allocas_p): New function.
15511         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
15512         (handle_builtin_alloca): Likewise.
15513         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
15514         if !asan_sanitize_allocas_p.
15515         * params.def (asan-instrument-allocas): Add new option.
15516         * params.h (ASAN_PROTECT_ALLOCAS): Define.
15517         * opts.c (common_handle_option): Disable allocas sanitization for
15518         KASan by default.
15520 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
15522         * asan.c: Include gimple-fold.h.
15523         (get_last_alloca_addr): New function.
15524         (handle_builtin_stackrestore): Likewise.
15525         (handle_builtin_alloca): Likewise.
15526         (asan_emit_allocas_unpoison): Likewise.
15527         (get_mem_refs_of_builtin_call): Add new parameter, remove const
15528         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
15529         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
15530         (instrument_builtin_call): Pass gimple iterator to
15531         get_mem_refs_of_builtin_call.
15532         (last_alloca_addr): New global.
15533         * asan.h (asan_emit_allocas_unpoison): Declare.
15534         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
15535         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
15536         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
15537         if function calls alloca.
15538         * gimple-fold.c (replace_call_with_value): Remove static keyword.
15539         * gimple-fold.h (replace_call_with_value): Declare.
15540         * internal-fn.c: Include asan.h.
15541         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
15542         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
15544 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
15546         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
15547         (C_SELFTEST_FLAGS): New.
15548         (CPP_SELFTEST_FLAGS): New.
15549         (SELFTEST_DEPS): New, from deps of s-selftest.
15550         (C_SELFTEST_DEPS): New, from deps of s-selftest.
15551         (CPP_SELFTEST_DEPS): New.
15552         (selftest): Add dependency on s-selftest-c++.
15553         (s-selftest): Rename to...
15554         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
15555         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
15556         than SELFTEST_FLAGS.
15557         (selftest-gdb): Rename to...
15558         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
15559         C_SELFTEST_FLAGS.
15560         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
15561         (selftest-valgrind): Rename to...
15562         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
15563         C_SELFTEST_FLAGS.
15564         (selftest-valgrind): Reintroduce as an alias for
15565         selftest-c-valgrind.
15566         (s-selftest-c++): New.
15567         (selftest-c++-gdb): New.
15568         (selftest-c++-valgrind): New.
15570 2017-07-06  Olivier Hainque  <hainque@adacore.com>
15572         * gcc.c (process_command): When deciding if undefined variables
15573         should be ignored when processing specs, accept "gcc -v" as well.
15575 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
15577         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
15578         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
15580 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15582         * config/arm/arm-cpus.in (armv8-r): Add new entry.
15583         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
15584         * config/arm/arm-tables.opt: Regenerate.
15585         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
15586         enumerator.
15587         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
15589 2017-07-06  Carl Love  <cel@us.ibm.com>
15591         * ChangeLog: Clean up from mid air collision
15593 2017-07-06  Carl Love  <cel@us.ibm.com>
15595         * config/rs6000/rs6000-c.c: Add support for built-in functions
15596         vector signed int vec_subc (vector signed int, vector signed int);
15597         vector signed __int128 vec_subc (vector signed __int128,
15598                                          vector signed __int128);
15599         vector unsigned __int128 vec_subc (vector unsigned __int128,
15600                                            vector unsigned __int128);
15601         vector signed int vec_sube (vector signed int, vector signed int,
15602                                     vector signed int);
15603         vector unsigned int vec_sube (vector unsigned int,
15604                                       vector unsigned int,
15605                                       vector unsigned int);
15606         vector signed __int128 vec_sube (vector signed __int128,
15607                                          vector signed __int128,
15608                                          vector signed__int128);
15609         vector unsigned __int128 vec_sube (vector unsigned __int128,
15610                                            vector unsigned __int128,
15611                                            vector unsigned __int128);
15612         vector signed int vec_subec (vector signed int, vector signed int,
15613                                      vector signed int);
15614         vector unsigned int vec_subec (vector unsigned int,
15615                                        vector unsigned int,
15616                                        vector unsigned int);
15617         vector signed __int128 vec_subec (vector signed __int128,
15618                                           vector signed __int128,
15619                                           vector signed__int128);
15620         vector unsigned __int128 vec_subec (vector unsigned __int128,
15621                                             vector unsigned __int128,
15622                                             vector unsigned __int128);
15623         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
15624         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
15625         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
15626         BU_ALTIVEC_OVERLOAD_X definitions.
15627         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
15628         * doc/extend.texi: Update the built-in documentation file for the new
15629         built-in functions.
15631 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
15633         PR c++/79300
15634         * diagnostic-show-locus.c (layout::layout): Use start and finish
15635         spelling location for the start and finish of each range.
15636         * genmatch.c (linemap_client_expand_location_to_spelling_point):
15637         Add unused aspect param.
15638         * input.c (expand_location_1): Add "aspect" param, and use it
15639         to access the correct part of the location.
15640         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
15641         expand_location_1.
15642         (expand_location_to_spelling_point): Likewise.
15643         (linemap_client_expand_location_to_spelling_point): Add "aspect"
15644         param, and pass it to expand_location_1.
15646 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
15648         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
15649         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
15650         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
15651         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
15652         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
15653         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
15654         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
15655         _mm_maskz_getmant_ss): New intrinsics.
15656         (__builtin_ia32_getexpss128_mask): Changed to ...
15657         __builtin_ia32_getexpss128_round ... this.
15658         (__builtin_ia32_getexpsd128_mask): Changed to ...
15659         __builtin_ia32_getexpsd128_round ... this.
15660         * config/i386/i386-builtin-types.def
15661         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
15662         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
15663         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
15664         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
15665         __builtin_ia32_getmantss_mask_round): New builtins.
15666         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
15667         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
15668         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
15669         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
15670         * config/i386/sse.md
15671         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
15672         avx512f_sgetexp<mode><mask_scalar_name>
15673         <round_saeonly_scalar_name> ... this.
15674         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
15675         %0, %1, %2<round_saeonly_op3>}): Changed to ...
15676         vgetexp<ssescalarmodesuffix>
15677         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15678         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
15679         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
15680         avx512f_vgetmant<mode><mask_scalar_name>
15681         <round_saeonly_scalar_name> ... this.
15682         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
15683         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
15684         vgetmant<ssescalarmodesuffix>
15685         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
15686         %0<mask_scalar_operand4>, %1, %2
15687         <round_saeonly_scalar_mask_op4>, %3} ... this.
15688         * config/i386/subst.md (mask_scalar_operand4,
15689         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
15690         round_saeonly_scalar_nimm_predicate): New subst attributes.
15692 2017-07-06  Julia Koval  <julia.koval@intel.com>
15694         * config/i386/i386.c (ix86_erase_embedded_rounding):
15695         Remove code for old rounding pattern.
15697 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
15699         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
15701 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
15703         * doc/sourcebuild.texi (Test Directives, Variants of
15704         dg-require-support): Add documentation for dg-require-stack-check.
15706 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
15708         * config/i386/subst.md (mask_scalar, round_scalar,
15709         round_saeonly_scalar): New meta-templates.
15710         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
15711         round_scalar_mask_operand3, round_scalar_mask_op3,
15712         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
15713         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
15714         round_saeonly_scalar_constraint,
15715         round_saeonly_scalar_prefix): New subst attribute.
15716         * config/i386/sse.md
15717         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
15718         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
15719         <round_scalar_name> ... this.
15720         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
15721         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
15722         <round_scalar_name> ... this.
15723         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
15724         <sse>_vm<code><mode>3<mask_scalar_name>
15725         <round_saeonly_scalar_name> ... this.
15726         (v<plusminus_mnemonic><ssescalarmodesuffix>
15727         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
15728         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
15729         v<plusminus_mnemonic><ssescalarmodesuffix>
15730         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15731         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
15732         (v<multdiv_mnemonic><ssescalarmodesuffix>
15733         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
15734         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
15735         v<multdiv_mnemonic><ssescalarmodesuffix>
15736         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15737         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
15738         (v<maxmin_float><ssescalarmodesuffix>
15739         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
15740         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
15741         v<maxmin_float><ssescalarmodesuffix>
15742         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
15743         %0<mask_scalar_operand3>, %1, %<iptr>2
15744         <round_saeonly_scalar_mask_op3>} ... this.
15746 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
15748         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
15749         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
15751 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
15752             Alan Hayward  <alan.hayward@arm.com>
15753             David Sherwood  <david.sherwood@arm.com>
15755         * combine.c (simplify_if_then_else): Remove "enum" before
15756         "machine_mode".
15757         * compare-elim.c (can_eliminate_compare): Likewise.
15758         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
15759         Likewise.
15760         (aarch64_lookup_simd_builtin_type): Likewise.
15761         (aarch64_simd_builtin_type): Likewise.
15762         (aarch64_init_simd_builtin_types): Likewise.
15763         (aarch64_simd_expand_args): Likewise.
15764         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
15765         Likewise.
15766         (aarch64_reverse_mask): Likewise.
15767         (aarch64_simd_emit_reg_reg_move): Likewise.
15768         (aarch64_gen_adjusted_ldpstp): Likewise.
15769         (aarch64_ccmp_mode_to_code): Likewise.
15770         (aarch64_operands_ok_for_ldpstp): Likewise.
15771         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15772         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
15773         Likewise.
15774         (aarch64_min_divisions_for_recip_mul): Likewise.
15775         (aarch64_reassociation_width): Likewise.
15776         (aarch64_get_condition_code_1): Likewise.
15777         (aarch64_simd_emit_reg_reg_move): Likewise.
15778         (aarch64_simd_attr_length_rglist): Likewise.
15779         (aarch64_reverse_mask): Likewise.
15780         (aarch64_operands_ok_for_ldpstp): Likewise.
15781         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
15782         (aarch64_gen_adjusted_ldpstp): Likewise.
15783         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
15784         Likewise.
15785         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
15786         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
15787         (arm_lookup_simd_builtin_type): Likewise.
15788         (arm_simd_builtin_type): Likewise.
15789         (arm_init_simd_builtin_types): Likewise.
15790         (arm_expand_builtin_args): Likewise.
15791         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
15792         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
15793         (ft32_setup_incoming_varargs): Likewise.
15794         (ft32_function_arg): Likewise.
15795         (ft32_function_arg_advance): Likewise.
15796         (ft32_pass_by_reference): Likewise.
15797         (ft32_arg_partial_bytes): Likewise.
15798         (ft32_valid_pointer_mode): Likewise.
15799         (ft32_addr_space_pointer_mode): Likewise.
15800         (ft32_addr_space_legitimate_address_p): Likewise.
15801         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
15802         Likewise.
15803         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
15804         (ix86_emit_outlined_ms2sysv_restore): Likewise.
15805         (iamcu_alignment): Likewise.
15806         (canonicalize_vector_int_perm): Likewise.
15807         (ix86_noce_conversion_profitable_p): Likewise.
15808         (ix86_mpx_bound_mode): Likewise.
15809         (ix86_operands_ok_for_move_multiple): Likewise.
15810         * config/microblaze/microblaze-protos.h
15811         (microblaze_expand_conditional_branch_reg): Likewise.
15812         * config/microblaze/microblaze.c
15813         (microblaze_expand_conditional_branch_reg): Likewise.
15814         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
15815         Likewise.
15816         (rs6000_reassociation_width): Likewise.
15817         (rs6000_invalid_binary_op): Likewise.
15818         (fusion_p9_p): Likewise.
15819         (emit_fusion_p9_load): Likewise.
15820         (emit_fusion_p9_store): Likewise.
15821         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
15822         Likewise.
15823         (riscv_hard_regno_mode_ok_p): Likewise.
15824         (riscv_address_insns): Likewise.
15825         (riscv_split_symbol): Likewise.
15826         (riscv_legitimize_move): Likewise.
15827         (riscv_function_value): Likewise.
15828         (riscv_hard_regno_nregs): Likewise.
15829         (riscv_expand_builtin): Likewise.
15830         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
15831         (riscv_build_integer): Likewise.
15832         (riscv_split_integer): Likewise.
15833         (riscv_legitimate_constant_p): Likewise.
15834         (riscv_cannot_force_const_mem): Likewise.
15835         (riscv_regno_mode_ok_for_base_p): Likewise.
15836         (riscv_valid_base_register_p): Likewise.
15837         (riscv_valid_offset_p): Likewise.
15838         (riscv_valid_lo_sum_p): Likewise.
15839         (riscv_classify_address): Likewise.
15840         (riscv_legitimate_address_p): Likewise.
15841         (riscv_address_insns): Likewise.
15842         (riscv_load_store_insns): Likewise.
15843         (riscv_force_binary): Likewise.
15844         (riscv_split_symbol): Likewise.
15845         (riscv_force_address): Likewise.
15846         (riscv_legitimize_address): Likewise.
15847         (riscv_move_integer): Likewise.
15848         (riscv_legitimize_const_move): Likewise.
15849         (riscv_legitimize_move): Likewise.
15850         (riscv_address_cost): Likewise.
15851         (riscv_subword): Likewise.
15852         (riscv_output_move): Likewise.
15853         (riscv_canonicalize_int_order_test): Likewise.
15854         (riscv_emit_int_order_test): Likewise.
15855         (riscv_function_arg_boundary): Likewise.
15856         (riscv_pass_mode_in_fpr_p): Likewise.
15857         (riscv_pass_fpr_single): Likewise.
15858         (riscv_pass_fpr_pair): Likewise.
15859         (riscv_get_arg_info): Likewise.
15860         (riscv_function_arg): Likewise.
15861         (riscv_function_arg_advance): Likewise.
15862         (riscv_arg_partial_bytes): Likewise.
15863         (riscv_function_value): Likewise.
15864         (riscv_pass_by_reference): Likewise.
15865         (riscv_setup_incoming_varargs): Likewise.
15866         (riscv_print_operand): Likewise.
15867         (riscv_elf_select_rtx_section): Likewise.
15868         (riscv_save_restore_reg): Likewise.
15869         (riscv_for_each_saved_reg): Likewise.
15870         (riscv_register_move_cost): Likewise.
15871         (riscv_hard_regno_mode_ok_p): Likewise.
15872         (riscv_hard_regno_nregs): Likewise.
15873         (riscv_class_max_nregs): Likewise.
15874         (riscv_memory_move_cost): Likewise.
15875         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
15876         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
15877         (rl78_addr_space_address_mode): Likewise.
15878         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15879         Likewise.
15880         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
15881         (rs6000_reassociation_width): Likewise.
15882         (rs6000_invalid_binary_op): Likewise.
15883         (fusion_p9_p): Likewise.
15884         (emit_fusion_p9_load): Likewise.
15885         (emit_fusion_p9_store): Likewise.
15886         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
15887         (ok_for_simple_move_operands): Likewise.
15888         (ok_for_simple_move_strict_operands): Likewise.
15889         (ok_for_simple_arith_logic_operands): Likewise.
15890         (visium_legitimize_reload_address): Likewise.
15891         (visium_select_cc_mode): Likewise.
15892         (output_cbranch): Likewise.
15893         (visium_split_double_move): Likewise.
15894         (visium_expand_copysign): Likewise.
15895         (visium_expand_int_cstore): Likewise.
15896         (visium_expand_fp_cstore): Likewise.
15897         * config/visium/visium.c (visium_pass_by_reference): Likewise.
15898         (visium_function_arg): Likewise.
15899         (visium_function_arg_advance): Likewise.
15900         (visium_libcall_value): Likewise.
15901         (visium_setup_incoming_varargs): Likewise.
15902         (visium_legitimate_constant_p): Likewise.
15903         (visium_legitimate_address_p): Likewise.
15904         (visium_legitimize_address): Likewise.
15905         (visium_secondary_reload): Likewise.
15906         (visium_register_move_cost): Likewise.
15907         (visium_memory_move_cost): Likewise.
15908         (prepare_move_operands): Likewise.
15909         (ok_for_simple_move_operands): Likewise.
15910         (ok_for_simple_move_strict_operands): Likewise.
15911         (ok_for_simple_arith_logic_operands): Likewise.
15912         (visium_function_value_1): Likewise.
15913         (rtx_ok_for_offset_p): Likewise.
15914         (visium_legitimize_reload_address): Likewise.
15915         (visium_split_double_move): Likewise.
15916         (visium_expand_copysign): Likewise.
15917         (visium_expand_int_cstore): Likewise.
15918         (visium_expand_fp_cstore): Likewise.
15919         (visium_split_cstore): Likewise.
15920         (visium_select_cc_mode): Likewise.
15921         (visium_split_cbranch): Likewise.
15922         (output_cbranch): Likewise.
15923         (visium_print_operand_address): Likewise.
15924         * expmed.c (flip_storage_order): Likewise.
15925         * expmed.h (emit_cstore): Likewise.
15926         (flip_storage_order): Likewise.
15927         * genrecog.c (validate_pattern): Likewise.
15928         * hsa-gen.c (gen_hsa_addr): Likewise.
15929         * internal-fn.c (expand_arith_overflow): Likewise.
15930         * ira-color.c (allocno_copy_cost_saving): Likewise.
15931         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15932         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
15933         (process_invariant_for_inheritance): Likewise.
15934         * lra-eliminations.c (move_plus_up): Likewise.
15935         * omp-low.c (lower_oacc_reductions): Likewise.
15936         * simplify-rtx.c (simplify_subreg): Likewise.
15937         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
15938         (TARGET_CHKP_BOUND_MODE): Likewise..
15939         * targhooks.c (default_chkp_bound_mode): Likewise.
15940         (default_setup_incoming_vararg_bounds): Likewise.
15941         * targhooks.h (default_chkp_bound_mode): Likewise.
15942         (default_setup_incoming_vararg_bounds): Likewise.
15943         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
15944         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
15945         (have_whole_vector_shift): Likewise.
15946         * tree-vect-stmts.c (vectorizable_load): Likewise.
15947         * doc/tm.texi: Regenerate.
15949 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
15951         Graceful degrade if Binutils PR21472 is not available.
15953         PR target/81072
15954         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
15955         .rodata in flash test fails.
15956         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
15957         * confgure: Regenerate.
15958         * config.in: Regenerate.
15959         * config/avr/avr.c (avr_asm_named_section)
15960         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
15961         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
15962         (avr_asm_init_sections): Same.
15964 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15966         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
15967         (fma<VH:mode>4_intrinsic): Likewise.
15968         (*fmsub<VCVTF:mode>4): Likewise.
15969         (*fmsub<VH:mode>4_intrinsic): Likewise.
15971 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
15973         PR target/81305
15974         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
15975         Don't depend on "optimize > 0".
15976         (out_movhi_r_mr, out_movqi_mr_r): Same.
15977         (out_movhi_mr_r, out_movqi_r_mr): Same.
15978         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
15979         io_address_operand on "optimize > 0".
15981 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
15983         * tree-loop-distribution.c: Add general explanantion on the pass.
15984         (generate_loops_for_partition): Mark distributed loop.
15985         (pg_add_dependence_edges): New parameter.  Handle alias data
15986         dependence specially and record it in the parameter if asked.
15987         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
15988         (init_partition_graph_vertices, add_partition_graph_edge): New.
15989         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
15990         (free_partition_graph_vdata, build_partition_graph): New.
15991         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
15992         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
15993         (data_ref_segment_size, latch_dominated_by_data_ref): New.
15994         (compute_alias_check_pairs, version_loop_by_alias_check): New.
15995         (version_for_distribution_p, finalize_partitions): New.
15996         (distribute_loop): Handle alias data dependence specially.  Factor
15997         out loop fusion code as functions and call these functions.
15999 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16001         * tree-loop-distribution.c (classify_partition): New parameter and
16002         better handle reduction statement.
16003         (rdg_build_partitions): Revise comment.
16004         (distribute_loop): Compute statements in all partitions and pass it
16005         to classify_partition.
16007 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16009         * tree-loop-distribution.c (enum partition_type): New.
16010         (struct partition): New field type.
16011         (partition_merge_into): Add parameter.  Update partition type.
16012         (data_dep_in_cycle_p, update_type_for_merge): New functions.
16013         (build_rdg_partition_for_vertex): Compute partition type.
16014         (rdg_build_partitions): Dump partition type.
16015         (distribute_loop): Update calls to partition_merge_into.
16017 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16019         * tree-loop-distribution.c (struct ddr_hasher): New.
16020         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
16021         (ddrs_table): New.
16022         (classify_partition): Call get_data_dependence.
16023         (pg_add_dependence_edges): Ditto.
16024         (distribute_loop): Release data dependence hash table.
16026 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16028         * tree-loop-distribution.c (ref_base_address): Delete.
16029         (similar_memory_accesses): Rename ...
16030         (share_memory_accesses): ... to this.  Check if partitions access
16031         the same memory reference.
16032         (distribute_loop): Call share_memory_accesses.
16034 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16036         * tree-loop-distribution.c (struct partition): New field recording
16037         its data reference.
16038         (partition_alloc, partition_free): Init and release data refs.
16039         (partition_merge_into): Merge data refs.
16040         (build_rdg_partition_for_vertex): Collect data refs for partition.
16041         (pg_add_dependence_edges): Change parameters from vector to bitmap.
16042         Update uses.
16043         (distribute_loop): Remve data refs from vertice data of partition
16044         graph.
16046 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16048         * tree-loop-distribution.c (params.h): Include header file.
16049         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
16050         (datarefs_vec): New global var.
16051         (create_rdg_vertices): Use datarefs_vec directly.
16052         (free_rdg): Don't free data references.
16053         (build_rdg): Update use.  Don't free data references.
16054         (distribute_loop): Compute global variable for data references.
16055         Bail out if there are too many data references.
16057 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16059         * tree-loop-distribution.c (loop_nest): New global var.
16060         (build_rdg): Use loop directly, rather than loop nest.
16061         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
16062         variable directly.
16063         (distribute_loop): Compute global variable loop nest.  Update use.
16065 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16067         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
16068         (partition_merge_into): New parameter.  Dump reason for fusion.
16069         (distribute_loop): Update use of partition_merge_into.
16071 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16073         * tree-loop-distribution.c (bb_top_order_index): New.
16074         (bb_top_order_index_size, bb_top_order_cmp): New.
16075         (stmts_from_loop): Use topological order.
16076         (pass_loop_distribution::execute): Compute and release topological
16077         order for basic blocks.
16079 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16081         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
16082         if no loops.
16084 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
16086         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
16087         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
16088         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
16089         * internal-fn.def (LOOP_DIST_ALIAS): New.
16090         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
16091         (fold_loop_internal_call): ... this.
16092         (vect_loop_dist_alias_call): New function.
16093         (set_uid_loop_bbs): Call fold_loop_internal_call.
16094         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
16095         internal calls.
16097 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
16099         PR target/81300
16100         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
16101         Require dead FLAGS_REG at the beginning of a peephole.
16103 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
16105         PR target/81294
16106         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
16107         arguments in the call to __builtin_ia32_sbb_u32.
16108         (_subborrow_u64): Swap _X and _Y arguments in the call to
16109         __builtin_ia32_sbb_u64.
16111 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
16113         PR debug/81278
16114         * tree-vrp.c (compare_assert_loc): Turn into a function template
16115         with stable template parameter.  Only test if a->e is NULL,
16116         !a->e == !b->e has been verified already.  Use e == NULL or
16117         e != NULL instead of e or ! e tests.  If stable is true, don't use
16118         iterative_hash_expr, on the other side allow a or b or both NULL
16119         and sort the NULLs last.
16120         (process_assert_insertions): Sort using compare_assert_loc<false>
16121         instead of compare_assert_loc, later sort using
16122         compare_assert_loc<true> before calling process_assert_insertions_for
16123         in a loop.  Use break instead of continue once seen NULL pointer.
16125 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16127         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
16128         Cortex-R7 and Cortex-R8 processors.
16130 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
16132         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
16133         uninitialized while src is not.
16135 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
16137         * common/config/arm/arm-common.c: Adjust include path for
16138         arm-cpu-cdata.h
16139         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
16140         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
16141         (arm-cpu-data.h): Likewise.
16142         (arm-cpu-cdata.h): Likewise.
16143         * config/arm/arm-cpu.h: Delete.
16144         * config/arm/arm-cpu-cdata.h: Delete.
16145         * config/arm/arm-cpu-data.h: Delete.
16147 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
16149         * config/arm/arm-cpus.in (cortex-a55): New.
16150         (cortex-a75): Likewise.
16151         (cortex-a75.cortex-a55): Likewise.
16152         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
16153         cortex-a75.
16154         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
16155         * config/arm/arm-cpu-cdata.h: Regenerate.
16156         * config/arm/arm-cpu-data.h: Regenerate.
16157         * config/arm/arm-cpu.h: Regenerate.
16158         * config/arm/arm-tables.opt: Regenerate.
16159         * config/arm/arm-tune.md: Regenerate.
16161 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
16163         * haifa-sched.c (sched_create_recovery_edges): Update profile.
16165 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
16167         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
16168         probability.
16170 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
16172         PR tree-optimization/81292
16173         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
16174         full_string_p, also call adjust_related_strinfos if the adjustment
16175         is simple, otherwise invalidate related strinfos.
16177 2017-07-04  Martin Liska  <mliska@suse.cz>
16179         PR sanitizer/81040
16180         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
16181         newly created variable as DECL_IGNORED_P.
16183 2017-07-04  Martin Liska  <mliska@suse.cz>
16185         PR ipa/81293
16186         * ipa-inline.c (inline_small_functions):
16187         Use xstrdup_for_dump.
16189 2017-07-04  Tom de Vries  <tom@codesourcery.com>
16191         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
16193 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
16195         PR target/81033
16196         * config/darwin.c (darwin_function_switched_text_sections):
16197         Fix spaces.
16199 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
16201         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
16203 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
16205         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
16207 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16209         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
16210         min_profitable_iters, and th as inclusive lower bounds.
16211         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
16212         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
16213         for min_profitable_iters and min_profitable_estimate.
16214         (vect_transform_loop): Treat th as an inclusive lower bound.
16215         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
16217 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
16219         PR target/81033
16220         * config/darwin.c (darwin_function_switched_text_sections):
16221         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
16222         in two pieces, and suppress the use of buf.
16224 2017-07-03  Nathan Sidwell  <nathan@acm.org>
16226         * hash-table.h (hash_table_mod1): Fix indentation.
16228 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16230         PR middle-end/81290
16231         * predict.c (force_edge_cold): Be more careful about propagation
16232         backward.
16233         * profile-count.h (profile_probability::guessed,
16234         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
16235         New.
16236         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
16238 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
16240         * doc/invoke.texi (rcpc architecture extension): Document it.
16242 2017-07-03  Richard Biener  <rguenther@suse.de>
16244         PR tree-optimization/60510
16245         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
16246         the scalar reduction PHI and use it.
16247         (vectorizable_reduction): Properly guard the single_defuse_cycle
16248         path for non-SLP reduction chains where we cannot use it.
16249         Rework reduc_def/index and vector type deduction.  Rework
16250         vector operand gathering during reduction op code-gen.
16251         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
16252         chains dissolve the chain and leave it to non-SLP reduction
16253         handling.
16255 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16257         * tree-data-ref.h (dr_alignment): Declare.
16258         * tree-data-ref.c (dr_alignment): New function.
16259         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
16260         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
16261         set it.
16262         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
16264 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16266         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
16267         and base_misalignment fields.
16268         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
16269         * tree-data-ref.c: Include builtins.h.
16270         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
16271         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
16272         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
16273         * tree-vect-data-refs.c: Include tree-cfg.h.
16274         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
16275         fields instead of calculating an alignment here.
16276         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
16277         innermost_loop_behavior fields.
16279 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16281         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
16282         field.
16283         (DR_STEP_ALIGNMENT): New macro.
16284         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
16285         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
16286         (create_data_ref): Print it.
16287         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
16288         to tell whether the step preserves vector (mis)alignment.
16289         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
16290         Move the check for an integer step and generalise to all INTEGER_CST.
16291         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
16292         Print the outer step alignment.
16294 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16296         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
16297         with offset_alignment.
16298         (DR_ALIGNED_TO): Delete.
16299         (DR_OFFSET_ALIGNMENT): New macro.
16300         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
16301         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
16302         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
16303         (create_data_ref): Likewise.
16304         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
16305         (vect_analyze_data_refs): Likewise.
16306         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
16307         creating dummy innermost behavior.
16309 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16311         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
16312         with a "innermost_loop_behavior *" and refeence tree.
16313         * tree-data-ref.c (dr_analyze_innermost): Likewise.
16314         (create_data_ref): Update call accordingly.
16315         * tree-predcom.c (find_looparound_phi): Likewise.
16317 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16319         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
16320         fields with dr_wrt_vec_loop.
16321         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
16322         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
16323         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
16324         (vect_dr_behavior): New function.
16325         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
16326         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
16327         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
16328         track whether the step preserves the misalignment.
16329         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
16330         Use vect_dr_behavior.
16331         (vect_setup_realignment): Update call accordingly.
16332         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
16333         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
16334         call to vect_create_addr_base_for_vector_ref.
16335         (vect_create_cond_for_align_checks): Likewise.
16336         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
16337         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
16338         (vect_recog_mask_conversion_pattern): Likewise.
16339         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
16340         (new_stmt_vec_info): Remove redundant zeroing.
16342 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
16344         * common/config/arm/arm-common.c (arm_be8_option): New function.
16345         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
16346         (ISA_ARMv6): Add isa_bit_be8.
16347         * config/arm/arm.h (arm_be8_option): Add prototype.
16348         (BE8_SPEC_FUNCTION): New define.
16349         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
16350         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
16351         (mlittle-endian): Similarly.
16352         (mbe8, mbe32): New options.
16353         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
16354         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
16356 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16358         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
16360 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16362         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
16363         (cleanup_tree_cfg_bb): Use it.
16364         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
16365         New functions.
16366         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
16368 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16370         PR bootstrap/81285
16371         * loop-doloop.c (add_test): Update profile.
16373 2017-07-03  Martin Liska  <mliska@suse.cz>
16375         PR sanitize/81040
16376         * sanopt.c (rewrite_usage_of_param): New function.
16377         (sanitize_rewrite_addressable_params): Likewise.
16378         (pass_sanopt::execute): Call rewrite_usage_of_param.
16380 2017-07-03  Richard Biener  <rguenther@suse.de>
16382         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
16383         back to using VIEW_CONVERT_EXPR.
16385 2017-07-03  Martin Liska  <mliska@suse.cz>
16387         PR other/78366
16388         * doc/extend.texi: Document when a resolver function is
16389         generated for target_clones.
16391 2017-07-03  Martin Liska  <mliska@suse.cz>
16393         * asan.c (asan_emit_stack_protection): Unpoison just red zones
16394         and shadow memory of auto variables which are subject of
16395         use-after-scope sanitization.
16396         (asan_expand_mark_ifn): Add do set only when is_poison.
16398 2016-07-03  Richard Biener  <rguenther@suse.de>
16400         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
16401         reduction PHIs.
16402         (vect_force_simple_reduction): Record reduction def -> phi mapping.
16403         (vectorizable_reduction): Perform reduction PHI creation when
16404         visiting a reduction PHI and adjust and simplify code generation
16405         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
16406         (vect_transform_loop): Visit reduction PHIs.
16407         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
16408         defs into the SLP tree.
16409         (vect_build_slp_tree): Reduction defs terminate the recursion.
16410         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
16411         of reduction defs.
16412         (vect_get_vec_defs_for_stmt_copy): Export.
16413         (vect_get_vec_defs): Likewise.
16414         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
16415         purpose.
16416         (vect_get_vec_defs_for_stmt_copy): Declare.
16417         (vect_get_vec_defs): Likewise.
16419 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
16421         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
16422         parameter with a "loop" parameter and use it instead of the
16423         loop containing DR_STMT.  Don't check simple_iv when doing
16424         BB analysis.  Describe the two analysis modes in the comment.
16426 2017-07-03  Tom de Vries  <tom@codesourcery.com>
16428         PR tree-optimization/69468
16429         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
16430         (find_same_succ_bb): Handle ignore_edge_flags.
16432 2017-07-03  Tom de Vries  <tom@codesourcery.com>
16434         PR tree-optimization/81192
16435         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
16436         hash.
16437         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
16438         differs.
16439         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
16441 2017-07-03  Tom de Vries  <tom@codesourcery.com>
16443         PR tree-optimization/81192
16444         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
16445         BB_SAME_SUCC (bb) == NULL.
16447 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16449         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
16450         consistency.
16452 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16454         * dumpfile.c: Include profile-count.h
16455         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
16456         update profile.
16457         (insert_cond_bb): Update profile.
16458         * tree-cfg.h (insert_cond_bb): Update prototype.
16459         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
16460         * tree-dump.c: Do not include tree-cfg.
16462 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16464         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
16466 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16468         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
16469         bb.
16471 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
16473         * tree-complex.c (expand_complex_div_wide): update profile.
16475 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
16476             Alan Hayward  <alan.hayward@arm.com>
16477             David Sherwood  <david.sherwood@arm.com>
16479         * Makefile.in (MACHMODE_H): Remove insn-modes.h
16480         (CORETYPES_H): New define.
16481         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
16482         (insn-modes-inline.h, s-modes-inline-h): New rules.
16483         (generated_files): Add insn-modes-inline.h.
16484         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
16485         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
16486         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
16487         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
16488         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
16489         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
16490         (build/gencodes.o, build/genconditions.o): Likewise.
16491         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
16492         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
16493         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
16494         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
16495         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
16496         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
16497         * coretypes.h: Include everything up to real.h for generators.
16498         Include insn-modes.h first.  Include wide-int-print.h after
16499         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
16500         * machmode.h: Don't include insn-modes.h here.
16501         * function-tests.c: Remove includes of signop.h, machmode.h,
16502         double-int.h and wide-int.h.
16503         * rtl.h: Likewise.
16504         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
16505         and wide-int.h.
16506         * optc-save-gen.awk: Likewise.
16507         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
16508         * godump.c: Remove include of wide-int-print.h.
16509         * pretty-print.h: Likewise.
16510         * wide-int-print.cc: Likewise.
16511         * wide-int.cc: Likewise.
16512         * hash-map-tests.c: Remove include of signop.h.
16513         * hash-set-tests.c: Likewise.
16514         * rtl-tests.c: Likewise.
16515         * mkconfig.sh: Remove include of machmode.h.
16516         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
16517         into...
16518         (emit_insn_modes_inline_h): ...this new function.  Emit the code
16519         into an insn-modes-inline.h header file, adding appropriate
16520         include guards and end comments.
16521         (emit_insn_modes_c_header): Remove include of machmode.h.
16522         (emit_min_insn_modes_c_header): Include coretypes.h rather than
16523         machmode.h.
16524         (main): Handle -i flag and call emit_insn_modes_inline_h when
16525         it is passed.
16527 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
16529         * tree-ssa-strlen.c (strinfo): Rename the length field to
16530         nonzero_chars.  Add a full_string_p field.
16531         (compare_nonzero_chars, zero_length_string_p): New functions.
16532         (get_addr_stridx): Add an offset_out parameter.
16533         Use compare_nonzero_chars.
16534         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
16535         (new_strinfo): Update after above changes to strinfo.
16536         (set_endptr_and_length): Set full_string_p.
16537         (get_string_length): Update after above changes to strinfo.
16538         (unshare_strinfo): Update call to new_strinfo.
16539         (maybe_invalidate): Likewise.
16540         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
16541         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
16542         as a uhwi instead of an shwi.  Update after above changes to
16543         strinfo and new_strinfo.
16544         (zero_length_string): Assert that chainsi contains full strings.
16545         Use zero_length_string_p.  Update call to new_strinfo.
16546         (adjust_related_strinfos): Update after above changes to strinfo.
16547         Copy full_string_p from origsi.
16548         (adjust_last_stmt): Use zero_length_string_p.
16549         (handle_builtin_strlen): Update after above changes to strinfo and
16550         new_strinfo.  Install the lhs as the string length if the previous
16551         entry didn't describe a full string.
16552         (handle_builtin_strchr): Update after above changes to strinfo
16553         and new_strinfo.
16554         (handle_builtin_strcpy): Likewise.
16555         (handle_builtin_strcat): Likewise.
16556         (handle_builtin_malloc): Likewise.
16557         (handle_pointer_plus): Likewise.
16558         (handle_builtin_memcpy): Likewise.  Track nonzero characters
16559         that aren't necessarily followed by a nul terminator.
16560         (handle_char_store): Likewise.
16562 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
16564         PR tree-optimization/80769
16565         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
16566         for malloc and calloc.  Document the new invariant that all related
16567         strinfos have delayed lengths or none do.
16568         (verify_related_strinfos): Move earlier in file.
16569         (set_endptr_and_length): New function, split out from...
16570         (get_string_length): ...here.  Also set the lengths of related
16571         strinfos.
16572         (zero_length_string): Assert that chainsi has known (rather than
16573         delayed) lengths.
16574         (adjust_related_strinfos): Likewise.
16576 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
16578         PR tree-optimization/81136
16579         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
16580         assert that two references with the same misalignment have the same
16581         compile-time misalignment if those compile-time misalignments
16582         are known.
16584 2017-07-01  Andi Kleen  <ak@linux.intel.com>
16586         * print-tree.c (print_node): Print all attributes.
16588 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16590         * cfg.c (scale_bbs_frequencies): New function.
16591         * cfg.h (scale_bbs_frequencies): Declare it.
16592         * cfgloopanal.c (single_likely_exit): Cleanup.
16593         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
16594         as parameter.
16595         (scale_loop_profile): Likewise.
16596         (loop_version): Likewise.
16597         (create_empty_loop_on_edge): Update.
16598         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
16599         scale_loop_frequencies, scale_loop_profile, loopify,
16600         loop_version): Update prototypes.
16601         * modulo-sched.c (sms_schedule): Update.
16602         * predict.c (unlikely_executed_edge_p): Also check probability.
16603         (probably_never_executed_edge_p): Fix typo.
16604         * tree-if-conv.c (version_loop_for_if_conversion): Update.
16605         * tree-parloops.c (gen_parallel_loop): Update.
16606         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
16607         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
16608         * tree-ssa-loop-split.c (split_loop): Update.
16609         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
16610         * tree-vect-loop-manip.c (vect_do_peeling): Update.
16611         (vect_loop_versioning): Update.
16612         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
16614 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16616         * trans-mem.c (split_bb_make_tm_edge): Update profile.
16618 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16620         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
16621         to keep profile consistent.
16623 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16625         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
16626         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
16627         * profile-count.h (max_safe_multiplier): Make unsigned.
16628         (profile_count::guessed_zero): New.
16630 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16632         * bb-reorder.c (fix_up_crossing_landing_pad,
16633         fix_crossing_conditional_branches): Use make_single_succ_edge
16634         to keep profile consistent.
16636 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
16638         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
16639         to update profile.
16641 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
16643         PR sanitizer/81262
16644         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
16645         the right scopes, make sure cond_jump isn't preserved between multiple
16646         iterations.  Search for fallthru edge whenever there are 3+ edges and
16647         use find_fallthru_edge for it.
16649 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
16651         Patch by Alexander Monakov <amonakov@ispras.ru>
16652         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
16653         probabilities consistently.
16655 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
16657         * pa.c (pa_expand_compare_and_swap_loop): Update call of
16658         emit_cmp_and_jump_insns.
16660 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
16662         PR ipa/81261
16663         * tree-inline.c (expand_call_inline): Combine profile statuses.
16665 2017-06-30  Andrew Pinski  <apinski@cavium.com>
16667         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
16668         fold_stmt returned true.
16670 2017-06-30  Nathan Sidwell  <nathan@acm.org>
16672         * ggc.h (empty_string): Delete.
16673         * cfgexpand.c (expand_asm_stmt): Use plain "".
16674         * optabs.c (expand_asm_memory_barrier): Likewise.
16675         * stringpool.c (empty_string): Delete.
16676         (digit_vector, digit_string): Delete.
16677         (ggc_alloc_string): Use plain "", don't optimize single digit
16678         strings.  Use ggc_alloc_atomic.
16680 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
16682         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
16683         comparison set and one other set, use the cost of the non-comparison
16684         set.
16686 2017-06-30  Nathan Sidwell  <nathan@acm.org>
16688         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
16689         some formatting.
16691 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
16693         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
16694         loops.  Remove now unneeded calls to gimple_switch_set_label() that
16695         just set removed labels to NULL_TREE.
16697 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
16699         * tree-ssanames.c (set_range_info_raw): Abstract from ...
16700         (set_range_info): ...here.  Only call set_range_info_raw if domain
16701         is useful.
16702         (set_nonzero_bits): Call set_range_info_raw.
16703         * tree-ssanames.h (set_range_info_raw): New.
16705 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
16707         PR target/81225
16708         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
16709         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
16710         of nonimmediate_operand and <store_mask_constraint> instead of m
16711         for the input operand.  For V8FI iterator, always split if input
16712         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
16713         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
16714         <store_mask_predicate> instead of register_operand and
16715         <store_mask_constraint> instead of v for the input operand.  Make
16716         sure both operands aren't MEMs for if not <mask_applied>.
16718 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
16720         * lto-wrapper.c (copy_file) Close both file descriptors before
16721         exiting normally.
16723 2017-06-30  Martin Liska  <mliska@suse.cz>
16725         PR ipa/81214
16726         * multiple_target.c (create_dispatcher_calls): Make ifunc
16727         also for function that don't have calls or are not referenced.
16729 2017-06-30  Richard Biener  <rguenther@suse.de>
16731         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
16732         analyze the first scalar stmt.  Move vector type computation
16733         for the BB case here from ...
16734         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
16735         live operation processing in the SLP case properly.
16737 2017-06-30  Richard Biener  <rguenther@suse.de>
16739         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
16741 2017-06-30  Martin Liska  <mliska@suse.cz>
16743         PR sanitizer/81021
16744         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
16745         before BUILT_IN_UNWIND_RESUME when ASAN is used.
16747 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
16749         * doc/invoke.texi (AArch64): Add missing options and remove redundant
16750         ones.
16752 2017-06-30  Richard Biener  <rguenther@suse.de>
16754         PR tree-optimization/81249
16755         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
16756         condition reduction result to original scalar type.
16758 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16760         * profile-count.h (enum profile_quality): Fix typos and whitespace
16761         issues.
16763 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16765         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
16766         type for branch probabilities.
16768 2017-06-29  Julian Brown  <julian@codesourcery.com>
16769             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16771         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
16772         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
16773         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
16774         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
16776 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
16778         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
16779         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
16780         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
16781         CC usage from generic code to here.
16782         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
16783         CC usage into the target macros.
16785 2017-06-29  Maya Rashish  <coypu@sdf.org>
16787         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
16788         objects.
16790 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
16792         * arm/arm-builtins.c: Include profile-count.h
16793         * except.c (sjlj_emit_function_enter): Use
16794         profile_probability::unlikely.
16796 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
16798         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
16799         and tocrel_offset be pointer args rather than implicitly using
16800         static versions.
16801         (legitimate_constant_pool_address_p, rs6000_emit_move,
16802         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
16803         tocrel_offset and use in toc_relative_expr_p call.
16804         (print_operand, print_operand_address): Use static tocrel_base_oac
16805         and tocrel_offset_oac.
16806         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
16807         tocrel_offset_oac.
16809 2017-06-29  Maya Rashish  <coypu@sdf.org>
16811         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
16813 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
16815         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
16816         objects, take into account only the alignment of 'op0' and 'mode1' if
16817         'op0' is a MEM.
16819 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
16821         * ccmp.c (ccmp_tree_comparison_p): New function.
16822         (ccmp_candidate_p): Update to use above function.
16823         (get_compare_parts): New function.
16824         (expand_ccmp_next): Update to use new functions.
16825         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
16826         new functions.
16827         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
16828         take mode as argument.
16829         * ccmp.h (expand_ccmp_expr): Add mode as argument.
16830         * expr.c (expand_expr_real_1): Pass mode as argument.
16832 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
16834         * combine.c (combine_instructions): Print insns to dump_file, together
16835         with their costs.
16837 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
16839         * asan.c (asan_emit_stack_protection): Update.
16840         (create_cond_insert_point): Update.
16841         * auto-profile.c (afdo_propagate_circuit): Update.
16842         * basic-block.h (struct edge_def): Turn probability to
16843         profile_probability.
16844         (EDGE_FREQUENCY): Update.
16845         * bb-reorder.c (find_traces_1_round): Update.
16846         (better_edge_p): Update.
16847         (sanitize_hot_paths): Update.
16848         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
16849         (make_single_succ_edge): Update.
16850         (check_bb_profile): Update.
16851         (dump_edge_info): Update.
16852         (update_bb_profile_for_threading): Update.
16853         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
16854         probabilitycount to 0.
16855         * cfgbuild.c (compute_outgoing_frequencies): Update.
16856         * cfgcleanup.c (try_forward_edges): Update.
16857         (outgoing_edges_match): Update.
16858         (try_crossjump_to_edge): Update.
16859         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
16860         (expand_gimple_tailcall): Update.
16861         (construct_init_block): Use make_single_succ_edge.
16862         (construct_exit_block): Use make_single_succ_edge.
16863         * cfghooks.c (verify_flow_info): Update.
16864         (redirect_edge_succ_nodup): Update.
16865         (split_edge): Update.
16866         (account_profile_record): Update.
16867         * cfgloopanal.c (single_likely_exit): Update.
16868         * cfgloopmanip.c (scale_loop_profile): Update.
16869         (set_zero_probability): Remove.
16870         (duplicate_loop_to_header_edge): Update.
16871         * cfgloopmanip.h (loop_version): Update prototype.
16872         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
16873         (force_nonfallthru_and_redirect): Update.
16874         (update_br_prob_note): Update.
16875         (rtl_verify_edges): Update.
16876         (purge_dead_edges): Update.
16877         (rtl_lv_add_condition_to_bb): Update.
16878         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
16879         * cgraphunit.c (init_lowered_empty_function): Update.
16880         (cgraph_node::expand_thunk): Update.
16881         * cilk-common.c: Include profile-count.h
16882         * dojump.c (inv): Remove.
16883         (jumpifnot): Update.
16884         (jumpifnot_1): Update.
16885         (do_jump_1): Update.
16886         (do_jump): Update.
16887         (do_jump_by_parts_greater_rtx): Update.
16888         (do_compare_rtx_and_jump): Update.
16889         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
16890         do_jump_1. do_compare_rtx_and_jump): Update prototype.
16891         * dwarf2cfi.c: Include profile-count.h
16892         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
16893         (sjlj_emit_dispatch_table): Likewise.
16894         * explow.c: Include profile-count.h
16895         * expmed.c (emit_store_flag_force): Update.
16896         (do_cmp_and_jump): Update.
16897         * expr.c (compare_by_pieces_d::generate): Update.
16898         (compare_by_pieces_d::finish_mode): Update.
16899         (emit_block_move_via_loop): Update.
16900         (store_expr_with_bounds): Update.
16901         (store_constructor): Update.
16902         (expand_expr_real_2): Update.
16903         (expand_expr_real_1): Update.
16904         * expr.h (try_casesi, try_tablejump): Update prototypes.
16905         * gimple-pretty-print.c (dump_probability): Update.
16906         (dump_profile): New.
16907         (dump_gimple_label): Update.
16908         (dump_gimple_bb_header): Update.
16909         * graph.c (draw_cfg_node_succ_edges): Update.
16910         * hsa-gen.c (convert_switch_statements): Update.
16911         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
16912         (find_if_case_1): Update.
16913         (find_if_case_2): Update.
16914         * internal-fn.c (expand_arith_overflow_result_store): Update.
16915         (expand_addsub_overflow): Update.
16916         (expand_neg_overflow): Update.
16917         (expand_mul_overflow): Update.
16918         (expand_vector_ubsan_overflow): Update.
16919         * ipa-cp.c (good_cloning_opportunity_p): Update.
16920         * ipa-split.c (split_function): Use make_single_succ_edge.
16921         * ipa-utils.c (ipa_merge_profiles): Update.
16922         * loop-doloop.c (add_test): Update.
16923         (doloop_modify): Update.
16924         * loop-unroll.c (compare_and_jump_seq): Update.
16925         (unroll_loop_runtime_iterations): Update.
16926         * lra-constraints.c (lra_inheritance): Update.
16927         * lto-streamer-in.c (input_cfg): Update.
16928         * lto-streamer-out.c (output_cfg): Update.
16929         * mcf.c (adjust_cfg_counts): Update.
16930         * modulo-sched.c (sms_schedule): Update.
16931         * omp-expand.c (expand_omp_for_init_counts): Update.
16932         (extract_omp_for_update_vars): Update.
16933         (expand_omp_ordered_sink): Update.
16934         (expand_omp_for_ordered_loops): Update.
16935         (expand_omp_for_generic): Update.
16936         (expand_omp_for_static_nochunk): Update.
16937         (expand_omp_for_static_chunk): Update.
16938         (expand_cilk_for): Update.
16939         (expand_omp_simd): Update.
16940         (expand_omp_taskloop_for_outer): Update.
16941         (expand_omp_taskloop_for_inner): Update.
16942         * omp-simd-clone.c (simd_clone_adjust): Update.
16943         * optabs.c (expand_doubleword_shift): Update.
16944         (expand_abs): Update.
16945         (emit_cmp_and_jump_insn_1): Update.
16946         (expand_compare_and_swap_loop): Update.
16947         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
16948         * predict.c (predictable_edge_p): Update.
16949         (edge_probability_reliable_p): Update.
16950         (set_even_probabilities): Update.
16951         (combine_predictions_for_insn): Update.
16952         (combine_predictions_for_bb): Update.
16953         (propagate_freq): Update.
16954         (estimate_bb_frequencies): Update.
16955         (force_edge_cold): Update.
16956         * profile-count.c (profile_count::dump): Add missing space into dump.
16957         (profile_count::debug): Add newline.
16958         (profile_count::differs_from_p): Explicitly convert to unsigned.
16959         (profile_count::stream_in): Update.
16960         (profile_probability::dump): New member function.
16961         (profile_probability::debug): New member function.
16962         (profile_probability::differs_from_p): New member function.
16963         (profile_probability::differs_lot_from_p): New member function.
16964         (profile_probability::stream_in): New member function.
16965         (profile_probability::stream_out): New member function.
16966         * profile-count.h (profile_count_quality): Rename to ...
16967         (profile_quality): ... this one.
16968         (profile_probability): New.
16969         (profile_count): Update.
16970         * profile.c (compute_branch_probabilities): Update.
16971         * recog.c (peep2_attempt): Update.
16972         * sched-ebb.c (schedule_ebbs): Update.
16973         * sched-rgn.c (find_single_block_region): Update.
16974         (compute_dom_prob_ps): Update.
16975         (schedule_region): Update.
16976         * sel-sched-ir.c (compute_succs_info): Update.
16977         * stmt.c (struct case_node): Update.
16978         (do_jump_if_equal): Update.
16979         (get_outgoing_edge_probs): Update.
16980         (conditional_probability): Update.
16981         (emit_case_dispatch_table): Update.
16982         (expand_case): Update.
16983         (expand_sjlj_dispatch_table): Update.
16984         (emit_case_nodes): Update.
16985         * targhooks.c: Update.
16986         * tracer.c (better_p): Update.
16987         (find_best_successor): Update.
16988         * trans-mem.c (expand_transaction): Update.
16989         * tree-call-cdce.c: Update.
16990         * tree-cfg.c (gimple_split_edge): Upate.
16991         (move_sese_region_to_fn): Upate.
16992         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
16993         * tree-eh.c (lower_resx): Upate.
16994         (cleanup_empty_eh_move_lp): Upate.
16995         * tree-if-conv.c (version_loop_for_if_conversion): Update.
16996         * tree-inline.c (copy_edges_for_bb): Update.
16997         (copy_cfg_body): Update.
16998         * tree-parloops.c (gen_parallel_loop): Update.
16999         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
17000         (gimple_gen_time_profiler): Update.
17001         * tree-ssa-dce.c (remove_dead_stmt): Update.
17002         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
17003         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
17004         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
17005         (unloop_loops): Update.
17006         (try_peel_loop): Update.
17007         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
17008         * tree-ssa-loop-split.c (connect_loops): Update.
17009         (split_loop): Update.
17010         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
17011         (hoist_guard): Update.
17012         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
17013         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
17014         (value_replacement): Update.
17015         * tree-ssa-reassoc.c (branch_fixup): Update.
17016         * tree-ssa-tail-merge.c (replace_block_by): Update.
17017         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
17018         (create_edge_and_update_destination_phis): Update.
17019         (compute_path_counts): Update.
17020         (recompute_probabilities): Update.
17021         (update_joiner_offpath_counts): Update.
17022         (freqs_to_counts_path): Update.
17023         (duplicate_thread_path): Update.
17024         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
17025         (struct switch_conv_info): Update.
17026         (gen_inbound_check): Update.
17027         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
17028         (vect_do_peeling): Update.
17029         (vect_loop_versioning): Update.
17030         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
17031         (optimize_mask_stores): Update.
17032         * ubsan.c (ubsan_expand_null_ifn): Update.
17033         * value-prof.c (gimple_divmod_fixed_value): Update.
17034         (gimple_divmod_fixed_value_transform): Update.
17035         (gimple_mod_pow2): Update.
17036         (gimple_mod_pow2_value_transform): Update.
17037         (gimple_mod_subtract): Update.
17038         (gimple_mod_subtract_transform): Update.
17039         (gimple_ic): Update.
17040         (gimple_stringop_fixed_value): Update.
17041         (gimple_stringops_transform): Update.
17042         * value-prof.h: Update.
17044 2017-06-29  Carl Love  <cel@us.ibm.com>
17046         * config/rs6000/rs6000-c.c: Add support for built-in functions
17047         vector signed int vec_signed (vector float);
17048         vector signed long long vec_signed (vector double);
17049         vector signed int vec_signed2 (vector double, vector double);
17050         vector signed int vec_signede (vector double);
17051         vector signed int vec_signedo (vector double);
17052         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
17053         instruction generator.
17054         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
17055         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
17056         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
17057         Add define_insn.
17058         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
17059         vunsignede_v2df): Add define_expands.
17060         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
17061         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
17062         VEC_UNSIGNEDO): Add definitions.
17063         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
17064         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
17065         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
17066         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
17067         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
17068         * config/rs6000/altivec.h (vec_signed, vec_signed2,
17069         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
17070         vec_unsignede, vec_unsignedo): Add builtin defines.
17071         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
17072         declaration.
17073         * doc/extend.texi: Update the built-in documentation file for the
17074         new built-in functions.
17076 2017-06-29  Richard Biener  <rguenther@suse.de>
17078         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
17079         reduction chains to LOOP_VINFO_REDUCTIONS.
17080         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
17081         SLP reductions after processing reduction chains.
17083 2017-06-29  Nathan Sidwell  <nathan@acm.org>
17085         * builtins.c (fold_builtin_FUNCTION): Use
17086         lang_hooks.decl_printable_name.
17088 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
17090         PR middle-end/81194
17091         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
17092         with only one label.
17093         * stmt.c (expand_case): Assert NCASES is greater than one.
17095 2017-06-29  Richard Biener  <rguenther@suse.de>
17097         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
17098         anything.
17099         (group_case_labels): Likewise.
17100         (find_taken_edge): Push sanity checking on val to workers...
17101         (find_taken_edge_cond_expr): ... here
17102         (find_taken_edge_switch_expr): ... and here, handle cases
17103         with just a default label.
17104         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
17105         (group_case_labels): Likewise.
17106         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
17107         group_case_labels does anything cleanup the CFG again.
17109 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
17111         PR tree-optimization/81196
17112         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
17113         exit condition comparing two IVs.
17115 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
17117         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
17118         profile to the dummy entry at the end of the list of architectures.
17119         * config/arm/arm-cpu-cdata.h: Regenerated.
17121 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17122             Michael Collison <michael.collison@arm.com>
17124         PR target/70119
17125         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
17126         New pattern.
17127         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
17128         (*aarch64_reg_<mode>3_minus_mask): New pattern.
17129         (*aarch64_<optab>_reg_di3_mask2): New pattern.
17130         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
17131         of shift when the shift amount is masked with constant equal to
17132         the size of the mode.
17133         * config/aarch64/predicates.md (subreg_lowpart_operator): New
17134         predicate.
17136 2017-06-29  Martin Liska  <mliska@suse.cz>
17138         * config/i386/i386.opt: Change range from [1,5] to [0,5].
17140 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
17142         PR bootstrap/80565
17143         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
17144         code.
17145         * ipa-inline.h
17146         (edge_growth_cache_entry::edge_growth_cache_entry): New
17147         function.
17148         (reset_edge_growth_cache): Update to use constructor.
17150 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17152         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
17153         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
17154         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
17156 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
17158         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
17159         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
17161 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17163         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
17164         (*-linux-uclibc*): Add t-uclibc tmake_file.
17165         * config/t-musl: New.
17166         * config/t-uclibc: New.
17168 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
17170         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
17171         context.
17172         (gen_comm_data): Emit architectural setting of arch_prof.
17173         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
17174         profile.
17175         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
17176         (armv8-m.base, armv8-m.main): Likewise.
17177         * arm-protos.h (arm_build_target): Add profile field.
17178         (arch_option): Likewise.
17179         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
17180         the active target.
17181         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
17182         arm_active_target.profile.
17184 2017-06-28  Richard Biener  <rguenther@suse.de>
17186         PR middle-end/81227
17187         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
17188         TYPE_OVERFLOW_WRAPS.
17189         * match.pd (negate_expr_p): Likewise.
17190         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
17191         fold_build2, not fold_binary.
17193 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
17195         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
17196         Convert memory address to Pmode.
17197         (aarch64_print_operand): Assert MEM operands are always Pmode.
17199 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
17201         PR target/79665
17202         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
17203         Remove redundant if.
17204         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
17205         * config/arm/aarch-common-protos.h
17206         (aarch_forward_to_shift_is_not_shifted_re): Remove.
17207         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
17209 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
17211         PR ipa/81238
17212         * multiple_target.c (create_dispatcher_calls): Set the default
17213         clone to be static, not public.
17215 2017-06-28  Richard Biener  <rguenther@suse.de>
17217         * tree-vect-loop.c (vectorizable_reduction): Move special
17218         cond reduction IV var creation ...
17219         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
17220         parameter.  Use STMT_VINFO_VECTYPE.
17221         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
17222         constant_p.
17224 2017-06-28  Martin Liska  <mliska@suse.cz>
17226         PR ipa/81128
17227         * ipa-visibility.c (non_local_p): Handle visibility.
17229 2017-06-28  Martin Liska  <mliska@suse.cz>
17231         PR driver/79659
17232         * common.opt: Add IntegerRange to various options.
17233         * opt-functions.awk (integer_range_info): New function.
17234         * optc-gen.awk: Add integer_range_info to cl_options struct.
17235         * opts-common.c (decode_cmdline_option): Handle
17236         CL_ERR_INT_RANGE_ARG.
17237         (cmdline_handle_error): Likewise.
17238         * opts.c (print_filtered_help): Show valid interval in
17239         when --help is provided.
17240         * opts.h (struct cl_option): Add range_min and range_max fields.
17241         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
17243 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
17245         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
17246         (x * C EQ/NE y * C): New transformation.
17248 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
17250         * genmultilib (combination_space): Accept '+' in option names.
17252 2017-06-28  Martin Liska  <mliska@suse.cz>
17254         PR sanitizer/81224
17255         * asan.c (instrument_derefs): Bail out inner references
17256         that are hard register variables.
17258 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
17260         PR target/81175
17261         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
17262         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
17264 2017-06-28  Richard Biener  <rguenther@suse.de>
17266         * tree-vectorizer.h (vect_get_vec_defs): Remove.
17267         (vect_get_slp_defs): Adjust.
17268         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
17269         out from ...
17270         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
17271         simplify.
17272         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
17273         get_initial_defs_for_reduction instead of vect_get_vec_defs.
17274         (vectorizable_reduction): Adjust.
17275         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
17276         handling.
17277         (vect_get_slp_defs): Likewise.
17278         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
17279         (vectorizable_bswap): Adjust.
17280         (vectorizable_call): Likewise.
17281         (vectorizable_conversion): Likewise.
17282         (vectorizable_assignment): Likewise.
17283         (vectorizable_shift): Likewise.
17284         (vectorizable_operation): Likewise.
17285         (vectorizable_store): Likewise.
17286         (vectorizable_condition): Likewise.
17287         (vectorizable_comparison): Likewise.
17289 2017-06-28  Michael Collison  <michael.collison@arm.com>
17291         PR target/68535
17292         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
17293         set of base_reg
17294         (arm_gen_movmemqi): Removed unused variable 'i'.
17295         Convert 'for' loop into 'while' loop.
17296         (arm_expand_prologue): Remove last unnecessary set of insn.
17297         (thumb_pop): Remove unused variable 'pushed_words'.
17298         (thumb_exit): Remove last unnecessary set of regs_to_pop.
17300 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17302         * config/s390/predicates.md: Use s390_rel_address_ok_p.
17303         * config/s390/s390-protos.h: Add prototype of
17304         s390_rel_address_ok_p.
17305         * config/s390/s390.c (s390_got_symbol): New function.
17306         (s390_rel_address_ok_p): New function.
17307         (legitimize_pic_address): Use s390_rel_address_ok_p.
17308         (s390_load_got): Use s390_got_symbol.
17309         (s390_option_override): Issue error if
17310         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
17311         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
17312         New macro.
17313         * config/s390/s390.opt: New option mpic-data-is-text-relative.
17315 2017-06-27  Andrew Pinski  <apinski@cavium.com>
17317         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
17318         (X * copysign (1.0, X)): New pattern.
17319         (X * copysign (1.0, -X)): New pattern.
17320         (copysign (-1.0, CST)): New pattern.
17322 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
17324         * genmultilib (combination_space): Remove variable.
17325         Validate reuse rules against regular expression for any sequence
17326         of multilib options in any order.
17328 2017-06-27  Michael Collison  <michael.collison@arm.com>
17330         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
17331         call aarch64_split_simd_combine.
17332         * (aarch64_combine_internal<mode>): Delete pattern.
17333         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
17334         Allow register and subreg operands.
17336 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
17338         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
17339         specific need, just fallback on defaults.
17340         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
17342 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
17343             Olivier Hainque  <hainque@adacore.com>
17345         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
17346         map for 64bits.
17347         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
17348         targets. Pick a default if no particular attempt applied.
17349         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
17350         larger contexts.
17352 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
17354         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
17355         (x86_64-wrs-vxworks7): Likewise.
17357 2017-06-27  Marek Polacek  <polacek@redhat.com>
17359         PR sanitizer/81223
17360         * ubsan.c (instrument_null): Check get_base_address's result for null.
17362 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
17364         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
17366 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
17368         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
17369         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
17370         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
17371         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
17372         New function types.
17373         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
17374         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
17375         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
17376         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
17377         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
17378         BUILT_IN_FEUPDATEENV): New builtins.
17379         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
17380         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
17381         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
17382         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
17383         macros.
17384         (builtin_structptr_types): Adjust size.
17385         * tree.c (builtin_structptr_types): Add four entries.
17387 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
17388             Olivier Hainque  <hainque@adacore.com>
17390         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
17391         (TLS_SYM): New local macro, forcing reference to __tls__ on
17392         link command lines for VxWorks 7 RTPs, triggering initialization
17393         of tlsLib.
17394         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
17395         OS features TLS support, true for RTPs on VxWorks 7.
17396         * config/vxworks.c (vxworks_override_options): Setup emutls
17397         accordingly.
17399 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
17401         * predict.c (test_prediction_value_range): Use -1U instead of -1
17402         to avoid narrowing conversion warning.
17403         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
17404         to avoid narrowing conversion warning.
17405         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
17406         -1.
17407         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
17409 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
17411         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
17412         64bit configurations.
17413         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
17414         (SIZE_TYPE): Likewise.
17415         * config/vxworks.c (vxworks_emutls_var_fields): Use
17416         long_unsigned_type_node instead of unsigned_type_node as the offset
17417         field type, which is "pointer" mode in emutls.c.
17419 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
17421         PR sanitizer/81209
17422         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
17424         PR middle-end/81207
17425         * gimple-fold.c (replace_call_with_call_and_fold): Handle
17426         gimple_vuse copying separately from gimple_vdef copying.
17428 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17430         * value-prof.c (free_hist): Remove call to memset and the enclosing if
17431         condition.
17433 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
17434             Olivier Hainque  <hainque@adacore.com>
17436         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
17437         for all vxworks7 targets.
17438         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
17439         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
17440         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
17441         variations for VX6/VX7 and 32/64bits later on in ...
17442         (VXWORKS_LIB_SPEC): Leverage new macros.
17443         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
17444         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
17446 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
17448         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
17449         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
17451 2017-06-26  Carl Love  <cel@us.ibm.com>
17453         * config/rs6000/rs6000-c.c: Add support for built-in functions
17454         vector bool char vec_reve (vector bool char);
17455         vector signed char vec_reve (vector signed char);
17456         vector unsigned char vec_reve (vector unsigned char);
17457         vector bool int vec_reve (vector bool int);
17458         vector signed int vec_reve (vector signed int);
17459         vector unsigned int vec_reve (vector unsigned int);
17460         vector bool long long vec_reve (vector bool long long);
17461         vector signed long long vec_reve (vector signed long long);
17462         vector unsigned long long vec_reve (vector unsigned long long);
17463         vector bool short vec_reve (vector bool short);
17464         vector signed short vec_reve (vector signed short);
17465         vector double vec_reve (vector double);
17466         vector float vec_reve (vector float);
17467         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
17468         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
17469         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
17470         (altivec_vreve): New pattern.
17471         * config/rs6000/altivec.h (vec_reve): New define.
17472         * doc/extend.texi (vec_rev): Update the built-in documentation file
17473         for the new built-in functions.
17475 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17477         PR tree-optimization/71815
17478         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
17479         function.
17480         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
17481         has_single_use.
17482         (slsr_process_phi): Likewise.
17483         (replace_uncond_cands_and_profitable_phis): Don't replace a
17484         multiply candidate with a stride of 1 (copy or cast).
17485         (phi_incr_cost): Call uses_consumed_by_stmt rather than
17486         has_single_use.
17487         (lowest_cost_path): Likewise.
17488         (total_savings): Likewise.
17490 2017-06-26  Richard Biener  <rguenther@suse.de>
17492         PR target/81175
17493         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
17494         Use def_builtin_pure for all gather builtins.
17496 2017-06-26  Richard Biener  <rguenther@suse.de>
17498         PR tree-optimization/81203
17499         * tree-tailcall.c (find_tail_calls): Do not move stmts into
17500         non-dominating BBs.
17502 2017-06-26  Marek Polacek  <polacek@redhat.com>
17504         PR c/80116
17505         * doc/invoke.texi: Document -Wmultistatement-macros.
17507 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
17509         * doc/sourcebuild.texi (ARM-specific attributes): Document new
17510         arm_neon_ok_no_float_abi effective target.
17512 2017-06-26  Richard Biener  <rguenther@suse.de>
17514         PR tree-optimization/80928
17515         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
17516         (copy_bbs): Set BB_DUPLICATED flag early.
17517         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
17518         marked blocks.
17519         (execute_on_shrinking_pred): Likewise.
17520         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
17521         BB_DUPLICATED blocks.
17522         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
17523         iterate over all PHIs considering removal of *gsi.
17525 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
17527         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
17528         qdf24xx.
17530 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
17532         * config/rs6000/rs6000-string.c: (expand_block_clear,
17533         do_load_for_compare, select_block_compare_mode,
17534         compute_current_alignment, expand_block_compare,
17535         expand_strncmp_align_check, expand_strn_compare,
17536         expand_block_move, rs6000_output_load_multiple)
17537         Move functions related to string/block move/compare
17538         to a separate file.
17539         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
17540         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
17541         for this function which is now used in two files.
17542         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
17543         * config.gcc: Add rs6000-string.o to extra_objs for
17544         targets powerpc*-*-* and rs6000*-*-*.
17546 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
17548         PR target/80510
17549         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
17550         32-bit, since indexed is not valid for DImode.
17551         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
17552         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
17553         (define_peephole2 for Altivec d-form load): Add 32-bit support.
17554         (define_peephole2 for Altivec d-form store): Likewise.
17556         PR ipa/81185
17557         * multiple_target.c (create_dispatcher_calls): Only create the
17558         dispatcher call if the function is the default clone of a
17559         versioned function.
17561 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
17563         PR middle-end/80902
17564         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
17565         a call, force the call to not be a tail call.
17567 2017-06-23  Jeff Law  <law@redhat.com>
17569         * doc/contrib.texi: Add entry for Steven Pemberton's work on
17570         enquire.
17572 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
17574         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
17575         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
17576         handling for early expansion of vector shifts (sl,sr,sra,rl).
17577         (builtin_function_type): Add vector shift right instructions
17578         to the unsigned argument list.
17580 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17582         rtl-optimizatoin/79286
17583         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
17584         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
17585         trap.  PIC register plus a const unspec without offset can never trap.
17587 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
17589         * tree.h (builtin_structptr_type): New type.
17590         (builtin_structptr_types): Declare new array.
17591         * tree.c (builtin_structptr_types): New array.
17592         (free_lang_data, build_common_tree_nodes): Use it.
17594 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
17596         PR c++/81187
17597         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
17598         -Wnoexcept.
17600 2017-06-22  Matt Turner  <mattst88@gmail.com>
17602         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
17603         Lake models to skylake case.  Assume skylake for unknown
17604         models with clflushopt.
17606 2017-06-22  Jeff Law  <law@redhat.com>
17608         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
17609         frame sizes that do not satisfy aarch64_uimm12_shift.
17611 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
17613         * profile-count.h (apply_probability,
17614         apply_scale, probability_in): Fix checks for zero.
17616 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17618         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
17619         * doc/cppdiropts.texi (-I @var{dir}): Document it.
17621 2016-06-22  Richard Biener  <rguenther@suse.de>
17623         * tree-vect-loop.c (vect_model_reduction_cost): Handle
17624         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
17625         REDUC_MAX_EXPR support.
17626         (vectorizable_reduction): Likewise.
17627         (vect_create_epilog_for_reduction): Likewise.
17629 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
17631         * match.pd (A / (1 << B) -> A >> B): New.
17632         * generic-match-head.c: Include optabs-tree.h.
17633         * gimple-match-head.c: Likewise.
17634         * optabs-tree.h (target_supports_op_p): New.
17635         * optabs-tree.c (target_supports_op_p): New.
17637 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17639         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
17640         $gcc_cv_ld --help output.
17641         (gcc_cv_ld_demangle): Likewise.
17642         (gcc_cv_ld_eh_frame_hdr): Likewise.
17643         (gcc_cv_ld_pie): Likewise.
17644         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
17645         (gcc_cv_ld_buildid): Likewise.
17646         (gcc_cv_ld_sysroot): Likewise.
17647         (ld_bndplt_support): Likewise.
17648         (ld_pushpopstate_support): Likewise.
17649         * configure: Regenerate.
17650         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
17652 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
17654         PR target/81151
17655         * config/i386/sse.md (round<mode>2): Renumber match_dup and
17656         operands indexes to avoid gap between operands and match_dups.
17658 2017-06-21  Andrew Pinski  <apinski@cavium.com>
17660         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
17661         Increment Arith_shift and Arith_shift_reg by 1.
17662         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
17663         New tuning flag.
17664         * config/aarch64/aarch64.c (thunderx_tunings): Enable
17665         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
17666         (aarch64_strip_extend): Add new argument and test for it.
17667         (aarch64_cheap_mult_shift_p): New function.
17668         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
17669         add a cost if it is true.
17670         Update calls to aarch64_strip_extend.
17671         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
17673 2017-06-21  Andrew Pinski  <apinski@cavium.com>
17675         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
17676         tunings.
17677         (thunderxt88): Likewise.
17678         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
17679         (thunderx_prefetch_tune): New variable.
17680         (thunderx2t99_prefetch_tune): Update for the correct values.
17681         (thunderxt88_tunings): New variable.
17682         (thunderx_tunings): Use thunderx_prefetch_tune instead of
17683         generic_prefetch_tune.
17684         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
17686 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17688         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
17689         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
17690         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
17691         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
17692         (aarch64_atomic_cas<mode>, GPI): Likewise.
17694 2017-06-21  Martin Liska  <mliska@suse.cz>
17696         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
17697         statements on cold and hot labels.
17698         * predict.c (tree_estimate_probability_bb): Remove the
17699         prediction from this place.
17701 2017-06-21  Martin Liska  <mliska@suse.cz>
17703         PR tree-optimization/79489
17704         * gimplify.c (maybe_add_early_return_predict_stmt): New
17705         function.
17706         (gimplify_return_expr): Call the function.
17707         * predict.c (tree_estimate_probability_bb): Remove handling
17708         of early return.
17709         * predict.def: Update comment about early return predictor.
17710         * gimple-predict.h (is_gimple_predict): New function.
17711         * predict.def: Change default value of early return to 66.
17712         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
17713         statements.
17714         * passes.def: Put pass_strip_predict_hints to the beginning of
17715         IPA passes.
17717 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
17719         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
17720         FUNCTION_DECL declarations.
17721         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
17722         declarations.
17723         (dwaf2out_decl): Likewise.
17724         * godump.c (go_early_global_decl): Skip call to the real debug hook
17725         for FUNCTION_DECL declarations.
17726         * passes.c (rest_of_decl_compilation): Skip call to the
17727         early_global_decl debug hook for FUNCTION_DECL declarations, unless
17728         -fdump-go-spec is passed.
17730 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
17732         * config/i386/i386.c (struct builtin_isa): New field pure_p.
17733         Reorder for compactness.
17734         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
17735         (def_builtin_pure, def_builtin_pure2): New functions.
17736         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
17738 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
17740         * match.pd (nop_convert): New predicate.
17741         ((A +- CST1) +- CST2): Allow some NOP conversions.
17743 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
17745         PR c++/81130
17746         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
17747         with ctors/dtors if GOVD_SHARED is set.
17749 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
17751         * config/aarch64/aarch64.md (movti_aarch64):
17752         Emit mov rather than orr.
17753         (movtf_aarch64): Likewise.
17754         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
17755         Emit mov rather than orr.
17757 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
17759         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
17760         Swap alternatives, make integer dup more expensive.
17762 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
17764         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
17765         Return true for non-tls symbols.
17767 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
17769         * config/aarch64/aarch64-cores.def (cortex-a55): New.
17770         (cortex-a75): Likewise.
17771         (cortex-a75.cortex-a55): Likewise.
17772         * config/aarch64/aarch64-tune.md: Regenerate.
17773         * doc/invoke.texi (-mtune): Document new values for -mtune.
17775 2017-06-21  Tom de Vries  <tom@codesourcery.com>
17777         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
17778         stack_size feature.
17779         (Effective-Target Keywords, Other attributes): Suggest using
17780         dg-add-options stack_size feature to get stack limit in stack_size
17781         effective target documentation.
17783 2017-06-21  Julian Brown  <julian@codesourcery.com>
17784             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
17786         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
17787         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
17788         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
17789         reservation.
17790         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
17791         attribute type list for neon_multiply.
17792         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
17793         attribute type list for neon_multiply.
17794         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
17795         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
17796         attribute type list for neon_multiply.
17797         * config/arm/types.md (crypto_pmull): Add.
17798         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
17799         attribute type list.
17801 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
17803         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
17804         arm1176jzf-s.
17806 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
17808         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
17809         to make sure not to dereference a NULL cost_classes_ptr pointer.
17811 2017-06-20  Carl Love  <cel@us.ibm.com>
17813         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17814         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
17815         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
17816         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
17817         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
17818         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
17819         VMULOSW): New enum "unspec" values.
17820         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
17821         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
17822         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
17823         altivec_vmulosw): New patterns.
17824         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
17825         VMULOSW): Add definitions.
17827 2017-06-20  Julia Koval  <julia.koval@intel.com>
17829         * config/i386/i386.c: Fix rounding expand for new pattern.
17830         * config/i386/subst.md: Fix pattern (parallel -> unspec).
17832 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
17834         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
17835         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
17837 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
17839         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
17840         feature string.
17842 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
17844         * config/aarch64/aarch64-cores.def: Rearrange to sort by
17845         architecture, then by implementer ID.
17846         * config/aarch64/aarch64-tune.md: Regenerate.
17848 2017-06-20  Richard Biener  <rguenther@suse.de>
17850         PR middle-end/81097
17851         * fold-const.c (split_tree): Fold to type before negating.
17853 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
17855         * diagnostic-show-locus.c
17856         (selftest::test_fixit_deletion_affecting_newline): New function.
17857         (selftest::diagnostic_show_locus_c_tests): Call it.
17859 2017-06-20  Andreas Schwab  <schwab@suse.de>
17861         PR target/80970
17862         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
17863         instead of "+d".
17865 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
17867         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
17868         __ARM_FEATURE_COPROC according to support.
17870 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
17872         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
17873         Rewritten to avoid overflow for > 32-bit pointers.
17875         PR sanitizer/81125
17876         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
17877         by removing enum keyword.
17878         (ubsan_type_descriptor): Likewise.  Formatting fix.
17880         PR target/81121
17881         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
17882         splitter): Require TARGET_SSE2 in the condition.
17884 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
17886         PR target/79799
17887         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
17888         for doing vector set of SFmode on ISA 3.0.
17889         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
17890         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
17891         element.
17892         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
17893         SFmode value into a V4SF variable that was extracted from another
17894         V4SF variable without converting the element to double precision
17895         and back to single precision vector format.
17896         (vsx_insert_extract_v4sf_p9_2): Likewise.
17898 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
17900         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
17901         in UWHI to avoid undefined overflow.
17903         PR sanitizer/81125
17904         * ubsan.h (enum ubsan_encode_value_phase): New.
17905         (ubsan_encode_value): Change second argument to
17906         enum ubsan_encode_value_phase with default value of
17907         UBSAN_ENCODE_VALUE_GENERIC.
17908         * ubsan.c (ubsan_encode_value): Change second argument to
17909         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
17910         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
17911         create_tmp_var_raw instead of create_tmp_var and use a
17912         TARGET_EXPR.
17913         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
17914         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17915         ubsan_encode_value callers.
17917         PR sanitizer/81111
17918         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
17919         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
17920         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
17922 2017-06-19  Richard Biener  <rguenther@suse.de>
17924         PR middle-end/81118
17925         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
17926         estimates if we changed anything.
17928 2017-06-19  Richard Biener  <rguenther@suse.de>
17930         PR tree-optimization/80887
17931         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
17932         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
17933         simplified lookups, then reset mprts_hook.
17934         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
17935         simplifying.
17936         (try_to_simplify): Likewise.
17938 2017-06-19  Martin Liska  <mliska@suse.cz>
17940         PR sanitizer/80879
17941         * gimplify.c (gimplify_switch_expr):
17942         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
17944 2017-06-19  Martin Liska  <mliska@suse.cz>
17946         * doc/install.texi: Document that PGO runs in 4 stages.
17948 2017-06-19  Martin Liska  <mliska@suse.cz>
17950         PR ipa/80732
17951         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
17952         to dispatcher function name.
17953         * multiple_target.c (replace_function_decl): New function.
17954         (create_dispatcher_calls): Redirect both edges and references.
17956 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
17958         * profile-count.c (profile_count::dump): Dump quality.
17959         (profile_count::differs_from_p): Update for unsigned val.
17960         * profile-count.h (profile_count_quality): New enum.
17961         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
17963 2017-06-19  Richard Biener  <rguenther@suse.de>
17965         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
17966         struct function as arg.
17967         (estimate_numbers_of_iterations): Export overload with loop arg.
17968         (free_numbers_of_iterations_estimates_loop): Use an overload of
17969         free_numbers_of_iterations_estimates instead.
17970         * tree-cfg.c (remove_bb): Adjust.
17971         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
17972         * tree-parloops.c (gen_parallel_loop): Likewise.
17973         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
17974         Likewise.
17975         (tree_unroll_loops_completely): Likewise.
17976         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
17977         Use an overload instead and export.
17978         (estimated_loop_iterations): Adjust.
17979         (max_loop_iterations): Likewise.
17980         (likely_max_loop_iterations): Likewise.
17981         (estimate_numbers_of_iterations): Take struct function as arg
17982         and adjust.
17983         (loop_exits_before_overflow): Adjust.
17984         (free_numbers_of_iterations_estimates_loop): Use an overload.
17985         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
17986         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
17988 2017-06-19  Richard Biener  <rguenther@suse.de>
17990         PR ipa/81112
17991         * ipa-prop.c (find_constructor_constant_at_offset): Handle
17992         RANGE_EXPR conservatively.
17994 2017-06-16  Carl Love  <cel@us.ibm.com>
17996         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17997         definitions for vec_float, vec_float2, vec_floato,
17998         vec_floate built-ins.
17999         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
18000         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
18001         floate.
18002         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
18003         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
18004         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
18005         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
18006         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
18007         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
18008         vec_floato): Add builtin defines.
18009         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
18010         Update the built-in documentation file for the new built-in
18011         functions.
18013 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18015         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
18016         (mthumb): Mark as the negative of -marm.
18018 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18020         * doc/invoke.texi (ARM Options, -mcpu): Document supported
18021         extension options.
18022         (ARM Options, -mtune): Document that this accepts the same
18023         extension options as -mcpu.
18024         (ARM Options, -mfpu): Document addition of -mfpu=auto.
18026 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18028         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
18029         permitted extensions.
18031 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18033         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
18034         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
18035         (armv8-m.main): Add option +nodsp.
18036         * config/arm/arm-cpu-cdata.h: Regenerated.
18038 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18040         * config/arm/t-fuchsia: New file.
18041         * config.gcc (arm*-*-fuchsia*): Use it.
18043 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18045         * config/arm/t-symbian: Rewrite for new option infrastructure.
18047 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18049         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
18050         (MULTILIB_REQUIRED): Likewise.
18052 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18054         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
18055         (MULTILIB_RESUE): Likewise.
18056         (MULTILIB_MATCHES): Likewise.
18057         (MULTLIB_REQUIRED): Likewise.
18059 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18061         * config/arm/t-rtems: Rewrite for new option framework.
18063 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18065         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
18066         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
18067         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
18068         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
18069         * config/arm/t-multilib: ... here.
18070         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
18071         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
18072         armv7-a and armv8*-a when A-profile libraries have not been built.
18073         * config/arm/t-rmprofile: Rewrite.
18075 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18077         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
18078         with a backslash.  Remove the backslash after substituting unescaped
18079         periods.
18080         * doc/fragments.texi (MULTILIB_REUSE): Document it.
18082 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18084         * config.gcc: (arm*-*-*): When building a-profile libraries, force
18085         the driver to pass through the default setting of -mfloat-abi.
18086         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
18087         rather than NULL.
18088         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
18089         (all_feat_combs): New rule.
18090         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
18091         default libraries.
18092         * config/arm/t-aprofile: Rewrite.
18094 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18096         * config/arm/arm.h (FPUTYPE_AUTO): Define.
18097         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
18098         fpu is not specified by the user/command-line.
18099         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
18100         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
18101         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
18102         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
18103         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
18104         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
18106 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18108         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
18109         * config/arm/t-arm-elf: Rewritten.
18111 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18113         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
18114         have some floating-point instructions.
18115         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
18116         (TARGET_MAYBE_HARD_FLOAT): New macro.
18117         * config/arm/arm-builtins.c (arm_init_builtins): Use
18118         TARGET_MAYBE_HARD_FLOAT.
18119         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
18121 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18123         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
18124         (configargs.h): Include it.
18125         (arm_print_hint_for_fpu_option): New function.
18126         (arm_parse_fpu_option): New function.
18127         (candidate_extension): New class.
18128         (arm_canon_for_multilib): New function.
18129         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
18130         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
18131         (ARCH_CANONICAL_SPECS): New macro.
18132         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
18134 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18136         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
18137         are set after handling multilib fragments.  Set target_cpu_default2
18138         from with_cpu.
18140 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18142         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
18143         cpu name.
18144         (arm*-*-*): Set target_cpu_default2 to a quoted string.
18145         * config/arm/parsecpu.awk (check_cpu): Validate any extension
18146         options.
18147         (check_arch): Likewise.
18148         * config/arm/arm.c (arm_configure_build_target): Handle
18149         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
18150         options in the default.
18152 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18154         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
18155         when an option is an alias of another.
18156         * config/arm/parsecpu.awk (optalias): New parser token.
18157         (gen_comm_data): Mark non-alias options as such.  Emit entries
18158         for extension aliases.
18159         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
18160         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
18161         (armv6kz, armv6zk, armv6t2): Likewise.
18162         (armv7): Make vfpv3-d16 an alias.
18163         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
18164         canonical order.
18165         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
18166         Sort in canonical order.
18167         (armv8-a): Sort in canonical order.
18168         (armv8.1-a, armv8.2-a):  Likewise.
18169         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
18170         canonical order.
18171         (cortex-a9): Sort in canonical order.
18172         * config/arm/arm.c (selftests.h): Include it.
18173         (arm_test_cpu_arch_data): New function.
18174         (arm_run_self_tests): New function.
18175         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
18176         (targetm): Move declaration to the end of the file.
18177         * arm-cpu-cdata.h: Regenerated.
18179 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18181         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
18182         call to target_mode_check describing the type of option passed.
18183         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
18184         (arm_target_thumb_only): Use arm_parse_arch_option_name or
18185         arm_parse_cpu_option_name to match parameters against list of
18186         available targets.
18187         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
18188         arm_arch_core_flags data structure.
18189         * config/arm/arm-cpu_cdata.h: Regenerated.
18191 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18193         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
18194         config/arm/arm.c.
18195         (arm_print_hint_for_cpu_option): Likewise.
18196         (arm_print_hint_for_arch_option): Likewise.
18197         (arm_parse_cpu_option_name): Likewise.
18198         (arm_parse_arch_option_name): Likewise.
18199         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
18200         of entries in the all_fpus list.
18201         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
18202         (arm_parse_cpu_option_name): Declare.
18203         (arm_parse_arch_option_name): Declare.
18204         (arm_parse_option_features): Declare.
18205         (arm_intialize_isa): Declare.
18206         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
18207         data tables to ...
18208         (gen_comm_data): ... here.  Make definitions non-static.
18209         * config/arm/arm-cpu-data.h: Regenerated.
18210         * config/arm/arm-cpu-cdata.h: Regenerated.
18212 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18214         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
18215         (cpu_arch_extension): New structure.
18216         (cpu_arch_option, arch_option, cpu_option): New structures.
18217         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
18218         architecture types.
18219         (gen_data): Generate new format data tables.
18220         * config/arm/arm.c (cpu_tune): New structure.
18221         (cpu_option, processors): Delete.
18222         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
18223         (arm_print_hint_for_cpu_option): ... this and ...
18224         (arm_print_hint_for_arch_option): ... this.
18225         (arm_parse_arch_cpu_name): Delete.  Replace with ...
18226         (arm_parse_cpu_option_name): ... this and ...
18227         (arm_parse_arch_option_name): ... this.
18228         (arm_unrecognized_feature): Change type of target parameter to
18229         cpu_arch_option.
18230         (arm_parse_arch_cpu_features): Delete.  Replace with ...
18231         (arm_parse_option_features): ... this.
18232         (arm_configure_build_target): Rework to use new configuration data
18233         tables.
18234         (arm_print_tune_info): Rework for new configuration data tables.
18235         * config/arm/arm-cpu-data.h: Regenerated.
18236         * config/arm/arm-cpu.h: Regenerated.
18238 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18240         * Makefile.in (OBJS): Move sbitmap.o from here ...
18241         (OBJS-libcommon): ... to here.
18243 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18245         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
18246         (ISA_ALL_CRYPTO): New macro.
18247         (ISA_ALL_SIMD): New macro
18248         (ISA_ALL_FP): New macro.
18249         * config/arm/arm.c (fpu_bitlist): Update initializer.
18250         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
18251         simd or fp.
18252         (arm9e): Add fpu.  Add option for nofp
18253         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
18254         (arm926ej-s, arm1026ej-s): Likewise.
18255         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
18256         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
18257         neon-fp16, neon-vfpv4, nofp and nosimd.
18258         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
18259         (cortex-a8): Add fpu.  Add option for nofp.
18260         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
18261         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
18262         (cortex-r4f): Add fpu.
18263         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
18264         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
18265         for nofp.
18266         (cortex-r8): Likewise.
18267         (cortex-m4): Add fpu.  Add option for nofp.
18268         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
18269         (cortex-a17.cortex-a7): Likewise.
18270         (cortex-a32): Add fpu.  Add options for crypto and nofp.
18271         (cortex-a35, cortex-a53): Likewise.
18272         (cortex-a57): Add fpu.  Add option for crypto.
18273         (cortex-a72, cortex-a73): Likewise.
18274         (exynos-m1): Likewise.
18275         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
18276         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
18277         (cortex-m33): Add fpu.  Add option for nofp.
18278         * config/arm/arm-cpu-cdata.h: Regenerated
18279         * config/arm/arm-cpu-data.h: Regenerated.
18281 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18283         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
18284         (armv5te, armv5tej): Likewise.
18285         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
18286         (armv7): Add options fp and vfpv3-d16.
18287         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
18288         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
18289         nofp and nosimd.
18290         (armv7ve): Likewise.
18291         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
18292         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
18293         (armv8-a): Add nocrypto option.
18294         (armv8.1-a, armv8.2-a): Likewise.
18295         (armv8-m.main): add options fp, fp.dp and nofp.
18297 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18299         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
18300         nofp.
18301         (armv8-a+crc): Delete.
18302         (armv8.1-a): Add options simd, crypto and nofp.
18303         (armv8.2-a): Add options fp16, simd, crypto and nofp.
18304         (armv8.2-a+fp16): Delete.
18305         (armv8-m.main): Add option dsp.
18306         (armv8-m.main+dsp): Delete.
18307         (cortex-a8): Add fpu.  Add nofp option.
18308         (cortex-a9): Add fpu.  Add nofp and nosimd options.
18309         * config/arm/parsecpu.awk (gen_data): Generate option tables and
18310         link to main cpu and architecture data structures.
18311         (gen_comm_data): Only put isa attributes from the main architecture
18312         in common tables.
18313         (option): New statement for architecture and CPU entries.
18314         * arm.c (struct cpu_option): New structure.
18315         (struct processors): Add entry for options.
18316         (arm_unrecognized_feature): New function.
18317         (arm_parse_arch_cpu_name): Ignore any characters after the first
18318         '+' character.
18319         (arm_parse_arch_cpu_feature): New function.
18320         (arm_configure_build_target): Separate out any CPU and architecture
18321         features and parse separately.  Don't error out if -mfpu=auto is
18322         used with only an architecture string.
18323         (arm_print_asm_arch_directives): New function.
18324         (arm_file_start): Call it.
18325         * config/arm/arm-cpu-cdata.h: Regenerated.
18326         * config/arm/arm-cpu-data.h: Likewise.
18327         * config/arm/arm-tables.opt: Likewise.
18329 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18331         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
18332         assembler when it is not -mfpu=auto.
18334 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18336         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
18337         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
18338         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
18339         (ASM_CPU_SPEC): Rewrite.
18340         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
18341         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
18342         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
18343         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
18344         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
18345         copied string is NUL-terminated.  Also strip any characters prefixed
18346         by '+'.
18347         (arm_rewrite_selected_arch): New function.
18348         (arm_rewrite_march): New function.
18350 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
18352         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
18353         (x_arm_cpu_string, x_arm_tune_string): Likewise.
18354         (march, mcpu, mtune): Convert to string-based options.
18355         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
18356         (arm_parse_arch_cpu_name): New function.
18357         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
18358         identify selected architecture or CPU.
18359         (arm_option_save): New function.
18360         (TARGET_OPTION_SAVE): Redefine.
18361         (arm_option_restore): Restore string options.
18362         (arm_option_print): Print string options.
18364 2017-06-16  Martin Sebor  <msebor@redhat.com>
18366         PR tree-optimization/80933
18367         PR tree-optimization/80934
18368         * builtins.c (fold_builtin_3): Do not handle bcmp here.
18369         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
18370         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
18371         (gimple_fold_builtin): Call them.
18373 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18375         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
18376         as unlikely; update profile.
18378 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18380         * predict.c (force_edge_cold): Handle declaring edges impossible
18381         more aggresively.
18383 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18385         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
18386         profile.
18387         (try_unroll_loop_completely): Fix reporting.
18389 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18391         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
18393 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
18395         PR target/71778
18396         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
18397         if given a non-constant argument for an intrinsic which requires a
18398         constant.
18400 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18402         * profile.c (compare_freqs): New function.
18403         (branch_prob): Sort edge list.
18404         (find_spanning_tree): Assume that the list is priority sorted.
18406 2017-06-16  Richard Biener  <rguenther@suse.de>
18408         PR tree-optimization/81090
18409         * passes.def (pass_record_bounds): Remove.
18410         * tree-pass.h (make_pass_record_bounds): Likewise.
18411         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
18412         make_pass_record_bounds): Likewise.
18413         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
18414         not free niter estimates at the beginning but at the end.
18415         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
18417 2017-06-16  Richard Biener  <rguenther@suse.de>
18419         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
18420         initializer to workaround ICE in host GCC 4.8.
18422 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
18424         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
18425         counts.
18426         (clone_inlined_nodes): Update.
18428 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18430         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
18431         prefetch settings, and enable prefetching by default at -O3.
18433 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18435         * config/aarch64/aarch64.c (aarch64_override_options_internal):
18436         Set flag_prefetch_loop_arrays according to tuning data.
18438 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18440         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
18441         New tune structure.
18442         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
18443         [Unrelated to main purpose of the patch] Place the pointer field last
18444         to enable type checking errors when tune structure are wrongly merged.
18445         * config/aarch64/aarch64.c (generic_prefetch_tune,)
18446         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
18447         (thunderx2t99_prefetch_tune): New tune constants.
18448         (tune_params *_tunings): Update all tunings (no functional change).
18449         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
18450         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
18451         from tunings structures.
18453 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
18455         PR sanitizer/81094
18456         * ubsan.c (instrument_null): Add T argument, use it instead
18457         of computing it based on IS_LHS.
18458         (instrument_object_size): Likewise.
18459         (pass_ubsan::execute): Adjust instrument_null and
18460         instrument_object_size callers to pass gimple_get_lhs or
18461         gimple_assign_rhs1 result to it.  Use instrument_null instead of
18462         calling get_base_address and instrument_mem_ref.  Handle
18463         aggregate call arguments for object-size sanitization.
18465 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
18467         PR tree-optimization/81089
18468         * tree-vrp.c (is_masked_range_test): Validate operands of
18469         subexpression.
18471 2017-06-15  Martin Sebor  <msebor@redhat.com>
18473         PR c++/80560
18474         * dumpfile.c (dump_register): Avoid calling memset to initialize
18475         a class with a default ctor.
18476         * gcc.c (struct compiler): Remove const qualification.
18477         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
18478         * hash-table.h: Ditto.
18479         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
18480           assignment.
18481         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
18482         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
18483         default ctor.
18484         * params.h (struct param_info): Make struct members non-const.
18485         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
18486         with default initialization.
18487         * vec.h (vec_copy_construct, vec_default_construct): New helper
18488         functions.
18489         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
18490         with vec_copy_construct.
18491         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
18492         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
18493         * doc/invoke.texi (-Wclass-memaccess): Document.
18495 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18497         * emit-rtl.h (is_leaf): Update comment about local
18498         register allocator.
18500 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
18502         PR target/78818
18503         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
18504         for a variable to have a section before checking if the section has a
18505         name.
18506         Set section to.persistent if persistent attribute is set.
18507         Warn if .persistent attribute is used on an automatic variable.
18509 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
18511         PR rtl-optimization/80474
18512         * reorg.c (update_block): Do not ignore instructions in a delay slot.
18514 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
18516         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
18517         of REGNO.
18519 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
18521         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
18522         (casesi): Emit bounds checking as RTL.
18523         (casesi_internal_mips16_<mode>): Remove bounds checking.
18525 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
18527         * config/xtensa/xtensa.c (xtensa_option_override): Append
18528         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
18529         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
18530          xtensa_doloop_hooks): Define unconditionally.
18531         (xtensa_reorg_loops): Only call reorg_loops in the presence of
18532         TARGET_LOOPS.
18533         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
18534         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
18535         for it in xtensa_option_override.
18536         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
18537          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
18539 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
18541         * doc/cppopts.texi: Document '-' special value to -MF.
18543 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
18545         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
18546         (cortex_a53_fconst): Likewise.
18547         (cortex_a53_fpmul): Likewise.
18548         (cortex_a53_f_load_64): Likewise.
18549         (cortex_a53_f_load_many): Likewise.
18550         (cortex_a53_advsimd_alu): Likewise.
18551         (cortex_a53_advsimd_alu_q): Likewise.
18552         (cortex_a53_advsimd_mul): Likewise.
18553         (cortex_a53_advsimd_mul_q): Likewise.
18554         (fpmac bypass): Add new bypass for fpmac-fpmac case.
18555         Add missing fmul, r2f_cvt and fconst cases.
18557 2017-06-14  Richard Biener  <rguenther@suse.de>
18559         PR middle-end/81088
18560         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
18561         literal constants.
18562         (fold_binary_loc): When associating do not treat pre-existing
18563         TREE_OVERFLOW on literal constants as a reason to allow
18564         TREE_OVERFLOW on associated literal constants.
18566 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
18568         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
18569         (MASK_FEATURES): New macro.
18570         * config/sparc/sparc.c (sparc_option_override): Remove the special
18571         handling of -mfpu and generalize it to all MASK_FEATURES switches.
18573 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
18575         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
18576         a division of 0 if non-call exceptions are enabled.
18578 2017-06-14  Andrew Pinski  <apinski@cavium.com>
18579             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
18581         PR target/71663
18582         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
18583         Improve vector initialization code gen for only variable case.
18585 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
18587         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
18589 2017-06-14  Richard Biener  <rguenther@suse.de>
18591         PR tree-optimization/81083
18592         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
18593         as values.
18595 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18597         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
18598         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
18599         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
18600         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
18601         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
18602         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
18604 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18606         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
18607         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
18609 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18611         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
18613 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18615         * config/rs6000/t-rtems: Don't handle SPE.
18617 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18619         * config/rs6000/t-linux: Don't handle SPE.
18621 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18623         * config/rs6000/eabispe.h: Delete file.
18625 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18627         * config/rs6000/t-spe: Delete file.
18629 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18631         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
18632         (rs6000_legitimate_offset_address_p): Return false for anything in
18633         V2SImode or V2SFmode.
18635 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
18637         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
18638         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
18639         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
18640         and V4HImode.
18641         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
18642         (rs6000_legitimate_offset_address_p): Ditto.
18643         (rs6000_emit_move): Ditto.
18644         (rs6000_init_builtins): Remove V4HI_type_node.
18646 2017-06-13  Martin Liska  <mliska@suse.cz>
18648         PR sanitize/78204
18649         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
18650         (gate_asan): Likewise.
18651         * asan.h (asan_no_sanitize_address_p): Remove the function.
18652         (sanitize_flags_p): New function.
18653         * builtins.def: Fix coding style.
18654         * common.opt: Use renamed enum value.
18655         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
18656         * doc/extend.texi: Document no_sanitize attribute.
18657         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
18658         to SANITIZE_UNDEFINED_NONDEFAULT.
18659         * gcc.c (sanitize_spec_function): Use the renamed enum value.
18660         * gimple-fold.c (optimize_atomic_compare_exchange_p):
18661         Use sanitize_flags_p.
18662         * gimplify.c (gimplify_function_tree): Likewise.
18663         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
18664         * opts.c (parse_no_sanitize_attribute): New function.
18665         (common_handle_option): Use renamed enum value.
18666         * opts.h (parse_no_sanitize_attribute): Declare.
18667         * tree.c (sanitize_flags_p): New function.
18668         * tree.h: Declared here.
18669         * tsan.c: Use sanitize_flags_p.
18670         * ubsan.c (ubsan_expand_null_ifn): Likewise.
18671         (instrument_mem_ref): Likewise.
18672         (instrument_bool_enum_load): Likewise.
18673         (do_ubsan_in_current_function): Remove the function.
18674         (pass_ubsan::execute): Use sanitize_flags_p.
18675         * ubsan.h: Remove do_ubsan_in_current_function
18676         * tree-cfg.c (print_no_sanitize_attr_value): New function.
18677         (dump_function_to_file): Use it here.
18679 2017-06-13  Martin Jambor  <mjambor@suse.cz>
18681         PR tree-optimization/80803
18682         PR tree-optimization/81063
18683         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
18684         (propagate_subaccesses_across_link): Enqueue subtree whenever
18685         necessary instead of relying on the caller.
18687 2017-06-13  Martin Jambor  <mjambor@suse.cz>
18689         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
18690         that have a first_link.
18691         (sort_and_splice_var_accesses): Do not check first_link before
18692         enquing.
18693         (subtree_mark_written_and_enqueue): Likewise.
18694         (propagate_all_subaccesses): Likewise and do not stop at first
18695         parent with a first_link.
18697 2017-06-13  Martin Jambor  <mjambor@suse.cz>
18699         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
18700         instead of f.
18702 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
18704         * match.pd: New pattern.
18706 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
18708         * tree-vrp.c (is_masked_range_test): New function.
18709         (register_edge_assert_for): Determine ranges for
18710         some bit tests.
18712 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
18714         PR tree-optimization/67328
18715         * fold-const.c (maskable_range_p): New function.
18716         (build_range_check): Generate bittests if possible.
18718 2017-06-13  Martin Liska  <mliska@suse.cz>
18720         * gimple-pretty-print.c (dump_probability): Add new argument.
18721         (dump_edge_probability): Dump both probability and count.
18722         (dump_gimple_label): Likewise.
18723         (dump_gimple_bb_header): Likewise.
18725 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
18727         PR target/81072
18728         * config/avr/avr-devices.c: Fix indentation.
18729         * config/avr/gen-avr-mmcu-specs.c: Dito.
18731 2017-06-13  Richard Biener  <rguenther@suse.de>
18733         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
18734         instead get vector type from stmt_info.
18735         (vectorizable_reduction): Adjust.  Remove dead code.
18737 2017-06-13  Richard Biener  <rguenther@suse.de>
18739         PR middle-end/81065
18740         * fold-const.c (extract_muldiv_1): Remove bogus distribution
18741         case of C * (x * C2 + C3).
18742         (fold_addr_of_array_ref_difference): Properly fold index difference.
18744 2017-06-12  David S. Miller  <davem@davemloft.net>
18746         PR target/80968
18747         * config/sparc/sparc.md (return expander): Emit frame blockage if
18748         function uses alloca.
18750 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
18752         * combine.c (make_field_assignment): Check len rather than the mode
18753         precision when calling force_to_mode.
18755 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
18757         Support multilibs and devices that see flash in RAM address range.
18759         PR target/81072
18760         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
18761         (avr_mcu_t) <flash_pm_offset>: New field.
18762         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
18763         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
18764         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
18765         (AVR_TINY_PM_OFFSET): Remove macro.
18766         * config/avr/avr.opt (-mshort-calls): New option.
18767         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
18768         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
18769         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
18770         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
18771         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
18772         instead of avr_arch->have_jmp_call.
18773         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
18774         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
18775         avr_arch->flash_pm_offset to define.
18776         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
18777         new field flash_pm_offset.  Add entry for avrxmega3.
18778         (avr_texinfo): Add entry for avrxmega3.
18779         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
18780         attiny212, attiny214,
18781         attiny412, attiny414, attiny416, attiny417,
18782         attiny814, attiny816, attiny817,
18783         attiny1614, attiny1616, attiny1617,
18784         attiny3214, attiny3216, attiny3217.
18785         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
18786         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
18787         (avr_print_operand_address) [AVR_TINY]: Same.
18788         (avr_asm_init_sections) <readonly_data_section>: Only patch
18789         callback if avr_arch->flash_pm_offset = 0.
18790         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
18791         for rodata if avr_arch->flash_pm_offset != 0.
18792         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
18793         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
18794         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
18795         (m_options): Append opt_rcall.
18796         (m_dirnames): Append dir_rcall.
18797         * config/avr/t-multilib: Regenerate.
18799         * configure.ac [target=avr]: Check whether avrxmega3 default
18800         linker description file works as needed.
18801         * configure: Regenerate.
18802         * doc/avr-mmcu.texi: Regenerate.
18803         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
18804         <__AVR_ARCH__>: Document avrxmega3 and 103.
18805         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
18806         <__AVR_SHORT_CALLS__>: Document it.
18807         <__AVR_PM_BASE_ADDRESS__>: Document it.
18808         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
18809         (AVR Variable Attributes) <progmem>: Document this is
18810         not needed for avrxmega3.
18811         (AVR Named Address Spaces) <__flash>: Dito.
18813 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
18815         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
18817 2017-06-12  Doug Rupp  <rupp@adacore.com>
18819         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
18820         Append vxworks-stdint.h to the tm_file list.
18821         * config/vxworks-stdint.h: New file.
18823 2017-06-12  Martin Liska  <mliska@suse.cz>
18825         PR tree-optimization/81041
18826         * tree-profile.c (gimple_gen_ic_func_profiler):
18827         Create an extra BB in profile-generate
18828         (gimple_gen_time_profiler): Likewise.
18830 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
18832         PR tree-optimization/81003
18833         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
18834         (update_range_test): Use it instead of force_gimple_operand_gsi.
18836 2017-06-12  Richard Biener  <rguenther@suse.de>
18838         PR tree-optimization/81053
18839         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
18840         with backedge value not defined in loop.  Simplify def stmt
18841         compute.
18843 2017-06-11  Tom de Vries  <tom@codesourcery.com>
18845         PR target/79939
18846         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
18847         Return true.
18848         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
18849         nvptx_cannot_force_const_mem.
18851 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
18853         * opts.c (finish_options): Move test for flag_split_stack after
18854         it has been initialized.
18856 2017-06-11  Jason Merrill  <jason@redhat.com>
18858         * tree.h (id_equal): New.
18859         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
18860         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
18861         instead of strcmp of IDENTIFIER_POINTER.
18863 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
18865         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
18866         (mark_all_inlined_calls_cdtor): Fix formating.
18867         (inline_transform): Rescale profile before inlining.
18869 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
18871         * cgraph.h (cgraph_edge::clone): Update prototype.
18872         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
18873         (cgraph_node::create_clone): Update.
18874         (cgraph_node::create_version_clone): Update.
18875         * tree-inline.c (copy_bb): Update.
18876         (expand_call_inline): Update.
18878 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
18880         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
18881         factored out from ...
18882         (rs6000_emit_prologue): ... here.
18884 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
18886         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
18887         factored out from ...
18888         (rs6000_emit_prologue): ... here.
18890 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
18892         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
18893         edge counts.
18894         (handle_missing_profiles): Fix computation of tp_first_run.
18895         (counts_to_freqs): Do not touch freqs when count is 0.
18897 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
18899         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
18900         profile.
18902 2017-06-10  Tom de Vries  <tom@codesourcery.com>
18904         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
18905         attributes): Document signal effective target.
18907 2017-06-10  Tom de Vries  <tom@codesourcery.com>
18909         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
18910         Document effective target stack_size.
18912 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
18914         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
18915         to the edit_context if they can be auto-applied.
18917 2017-06-9  Ian Lance Taylor  <iant@golang.org>
18919         * opts.c (finish_options): If -fsplit-stack, disable implicit
18920         -forder-blocks-and-partition.
18921         * doc/invoke.texi (Optimize Options): Document that when using
18922         -fsplit-stack -forder-blocks-and-partition is not implicitly
18923         enabled.
18925 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
18927         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
18928         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
18929         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
18930         * builtins.def (abort, trap, unreachable): Declare cold.
18931         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
18932         * tree-core.h (ECF_COLD): New.
18933         * tree.c (set_call_expr_flags): Handle ECF_COLD.
18934         (build_common_builtin_nodes): Mark unreachable and abort as cold.
18936 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
18938         * predict.c (unlikely_executed_stmt_p): Cleanup.
18940 2017-06-09  Richard Biener  <rguenther@suse.de>
18942         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
18943         model if the ref is always written to.
18945 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
18947         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
18949 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
18951         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
18952         than udiv.
18954 2017-06-09  Tom de Vries  <tom@codesourcery.com>
18956         PR target/80855
18957         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
18958         "target cannot support label values" when encountering LABEL_REF.
18960 2017-06-09  Martin Liska  <mliska@suse.cz>
18962         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
18963         (gimple_gen_ic_func_profiler): Emit direct comparison
18964         of __gcov_indirect_call_callee with NULL.
18965         (gimple_gen_time_profiler): Change probability from
18966         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
18968 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
18970         * profile.c (edge_gcov_counts): Turn to pointer.
18971         (compute_branch_probabilities, compute_branch_probabilities): Update.
18972         (branch_prob): Do not clear edge_gcov_count.
18973         * profile.h (edge_gcov_counts): Turn to pointer.
18974         (edge_gcov_count): Update.
18976 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
18978         * gimple.h (gimple_check_failed): Mark cold.
18980 2017-06-09  Richard Biener  <rguenther@suse.de>
18982         PR tree-optimization/66623
18983         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
18984         refactor check_reduction into two parts, properly computing
18985         whether we have to check reduction validity for outer loop
18986         vectorization.
18988 2017-06-09  Richard Biener  <rguenther@suse.de>
18990         PR tree-optimization/79483
18991         * graphite-scop-detection.c (order): New global.
18992         (get_order): Compute bb to order mapping that satisfies code
18993         generation constraints.
18994         (cmp_pbbs): New helper.
18995         (build_scops): Start domwalk at entry block, sort generated
18996         pbbs.
18998 2017-06-09  Richard Biener  <rguenther@suse.de>
19000         PR middle-end/81007
19001         * ipa-polymorphic-call.c
19002         (ipa_polymorphic_call_context::restrict_to_inner_class):
19003         Skip FIELD_DECLs with error_mark_node type.
19004         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
19005         last again.
19007 2017-06-09  Martin Liska  <mliska@suse.cz>
19009         * predict.c (struct branch_predictor): New struct.
19010         (test_prediction_value_range): New test.
19011         (predict_c_tests): New function.
19012         * selftest-run-tests.c (selftest::run_tests): Run the function.
19013         * selftest.h: Declare new tests.
19015 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
19017         PR target/80966
19018         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
19019         gen_add3_insn did not fail.
19020         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
19021         r0, construct that number in a temporary reg and add that reg to r0.
19022         If asked to put the result in r0 as well, fail.
19024 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
19026         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
19027         for early expansion of vec_eqv.
19029 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
19031         PR middle-end/81005
19032         * ubsan.c (instrument_null): Avoid pointless code temporary.
19033         (pass_ubsan::execute): Instrument aggregate arguments of calls.
19035 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
19037         PR target/81015
19038         Revert:
19039         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
19041         PR target/59874
19042         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
19043         (*clzhi2): Ditto.
19045 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19047         * predict.c (unlikely_executed_edge_p): Move ahead.
19048         (probably_never_executed_edge_p): Use it.
19050 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19052         PR middle-end/79988
19053         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
19054         gimple_call_builtin_p call.
19056 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19058         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
19059         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
19060         rtl_check_failed_type2, rtl_check_failed_code1,
19061         rtl_check_failed_code2, rtl_check_failed_code_mode,
19062         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
19063         rtvec_check_failed_bounds, rtl_check_failed_flag,
19064         _fatal_insn_not_found, _fatal_insn): Likewise.
19065         * tree.h (tree_contains_struct_check_failed,
19066         tree_check_failed, tree_not_check_failed,
19067         tree_class_check_failed, tree_range_check_failed,
19068         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
19069         tree_vec_elt_check_failed, phi_node_elt_check_failed,
19070         tree_operand_check_failed, omp_clause_check_failed,
19071         omp_clause_operand_check_failed, omp_clause_range_check_failed):
19072         Likewise.
19074 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19076         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
19077         flag_branch_probabilities.
19078         * ipa-inline.c (edge_badness): Likewise.
19079         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
19080         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
19081         * predict.c (maybe_hot_frequency_p): Likewise.
19082         (probably_never_executed): Likewise.
19083         * sched-ebb.c (schedule_ebbs): Likewise.
19084         * sched-rgn.c (find_single_block_region): Likewise.
19085         * tracer.c (tail_duplicate): Likewise.
19087 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19089         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
19090         longer requires x_flag_profile_use.
19092 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19094         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
19095         instead of flag_reorder_blocks_and_partition.
19096         * dbxout.c (dbxout_function_end): Likewise.
19097         * dwarf2out.c (gen_subprogram_die): Likewise.
19098         * haifa-sched.c (sched_create_recovery_edges): Likewise.
19099         * hw-doloop.c (reorg_loops): Likewise.
19100         * varasm.c (assemble_start_function,
19101         assemble_end_function): Likewise.
19102         (decide_function_section): Do not check for
19103         flag_reorder_blocks_and_partition.
19105 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
19107         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
19108         New function.
19109         (chkp_get_hard_register_fake_addr_expr): Ditto.
19110         (chkp_build_addr_expr): Add check for hard reg case.
19111         (chkp_parse_array_and_component_ref): Ditto.
19112         (chkp_find_bounds_1): Ditto.
19113         (chkp_process_stmt): Don't generate bounds store for
19114         hard reg case.
19116 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19118         * predict.c (maybe_hot_bb_p): Do not check profile status.
19119         (maybe_hot_edge_p): Likewise.
19120         (probably_never_executed): Check for zero counts even if profile
19121         is not read.
19122         (unlikely_executed_edge_p): New function.
19123         (unlikely_executed_stmt_p): New function.
19124         (unlikely_executed_bb_p): New function.
19125         (set_even_probabilities): Use unlikely predicates.
19126         (combine_predictions_for_bb): Likewise.
19127         (predict_paths_for_bb): Likewise.
19128         (predict_paths_leading_to_edge): Likewise.
19129         (determine_unlikely_bbs): New function.
19130         (estimate_bb_frequencies): Use it.
19131         (compute_function_frequency): Use zero counts even if profile is
19132         not read.
19133         * profile-count.h: Fix typo.
19135 2017-08-08  Julia Koval  <julia.koval@intel.com>
19137         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
19138         _mm512_mask_cvtsepi16_storeu_epi8,
19139         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
19140         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
19141         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
19142         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
19143         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
19144         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
19145         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
19146         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
19147         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
19148         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
19149         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
19150         __builtin_ia32_pmovuswb256mem_mask,
19151         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
19152         __builtin_ia32_pmovwb512mem_mask): New builtins.
19154 2017-08-08  Julia Koval  <julia.koval@intel.com>
19156         PR target/73350,80862
19157         * config/i386/subst.md (round): Fix round pattern.
19158         * config/i386/i386.c (ix86_erase_embedded_rounding):
19159         Fix erasing rounding for the fixed pattern.
19161 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
19163         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
19165 2017-06-08  Martin Liska  <mliska@suse.cz>
19167         PR gcov-profile/80911
19168         * gcov.c (block_info::block_info): New constructor.
19170 2017-06-07  Carl Love  <cel@us.ibm.com>
19172         * config/rs6000/rs6000-c: The return type of the following
19173         built-in functions was implemented as int not long long.  Fix sign
19174         of return value for the unsigned version of vec_mulo and vec_mule.
19175         vector unsigned long long vec_bperm (vector unsigned long long,
19176                                              vector unsigned char)
19177         vector signed long long vec_mule (vector signed int,
19178                                           vector signed int)
19179         vector unsigned long long vec_mule (vector unsigned int,
19180                                             vector unsigned int)
19181         vector signed long long vec_mulo (vector signed int,
19182                                           vector signed int)
19183         vector unsigned long long vec_mulo (vector unsigned int,
19184                                             vector unsigned int)
19185         * doc/extend.texi: Fix the documentation for the built-in
19186         functions.
19188 2017-06-07  Carl Love  <cel@us.ibm.com>
19190         PR target/80982
19191         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
19192         for BE.
19194 2017-06-07  Carl Love  <cel@us.ibm.com>
19196         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
19197         support, Generate       doublehv for signed int/float for BE case only.
19199 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
19201         * doc/invoke.texi (mcx16): Rewrite.
19203 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19205         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
19206         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
19207         *mov<mode>_softfloat, and an anonymous splitter): Use
19208         nonimmediate_operand instead of rs6000_nonimmediate_operand.
19210 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19212         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
19213         SPEFSCR registers.
19214         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
19215         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
19216         (rs6000_debug_reg_global): Adjust.
19217         (rs6000_init_hard_regno_mode_ok): Adjust.
19218         (rs6000_dbx_register_number): Adjust.
19219         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
19220         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
19221         Remove SPE_ACC and SPEFSCR.
19222         (REG_ALLOC_ORDER): Ditto.
19223         (FRAME_POINTER_REGNUM): Change to 111.
19224         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
19225         (REG_CLASS_NAMES): Ditto.
19226         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
19227         (REGISTER_NAMES): Ditto.
19228         (ADDITIONAL_REG_NAMES): Ditto.
19229         (rs6000_reg_names): Ditto.
19230         * config/rs6000/rs6000.md: Renumber some register number
19231         define_constants.
19233 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19235         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
19236         registers.
19237         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
19238         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
19239         to 117.
19240         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
19241         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
19242         Delete the SPE high registers.
19243         (REG_ALLOC_ORDER): Ditto.
19244         (enum reg_class): Remove SPE_HIGH_REGS.
19245         (REG_CLASS_NAMES): Ditto.
19246         (REG_CLASS_CONTENTS): Delete the SPE high registers.
19247         (REGISTER_NAMES): Ditto.
19248         (rs6000_reg_names): Ditto.
19249         * doc/tm.texi.in: Remove SPE as example.
19250         * doc/tm.texi: Regenerate.
19252 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19254         * config/rs6000/8540.md (ppc8540_brinc): Delete.
19255         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
19256         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
19257         * config/rs6000/rs6000.md (type): Remove "brinc".
19259 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19261         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
19262         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
19263         * config/rs6000/linuxspe.h: Delete file.
19264         * config/rs6000/rs6000.md: Don't include spe.md.
19265         * config/rs6000/spe.h: Delete file.
19266         * config/rs6000/spe.md: Delete file.
19267         * config/rs6000/t-rs6000: Remove spe.md.
19269 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19271         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
19272         (reg_or_none500mem_operand): Delete.
19273         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
19274         instead of reg_or_none500mem_operand.
19276 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19278         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
19279         handling of SPE flags.
19280         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
19282 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19284         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
19285         SPE ABI handling.
19286         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
19287         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
19288         paired_divv2sf3): Similar.
19289         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
19290         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
19291         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
19292         RS6000_BUILTIN_S.
19293         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
19294         Rename the paired_* instruction patterns.
19295         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
19296         define __SPE__.
19297         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
19298         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
19299         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
19300         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
19301         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
19302         PAIRED_VECTOR_MODE.
19303         (struct machine_function): Delete field spe_insn_chain_scanned_p.
19304         (spe_func_has_64bit_regs_p): Delete.
19305         (spe_expand_predicate_builtin): Delete.
19306         (spe_expand_evsel_builtin): Delete.
19307         (TARGET_DWARF_REGISTER_SPAN): Do not define.
19308         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
19309         (invalid_e500_subreg): Delete.
19310         (rs6000_legitimize_address): Always force_reg op2 as well, for
19311         paired single memory accesses.
19312         (rs6000_member_type_forces_blk): Delete.
19313         (rs6000_spe_function_arg): Delete.
19314         (rs6000_expand_unop_builtin): Delete SPE handling.
19315         (rs6000_expand_binop_builtin): Ditto.
19316         (spe_expand_stv_builtin): Delete.
19317         (bdesc_2arg_spe): Delete.
19318         (spe_expand_builtin): Delete.
19319         (spe_expand_predicate_builtin): Delete.
19320         (spe_expand_evsel_builtin): Delete.
19321         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
19322         (spe_init_builtins): Delete.
19323         (spe_func_has_64bit_regs_p): Delete.
19324         (savres_routine_name): Delete "info" parameter.  Adjust callers.
19325         (rs6000_emit_stack_reset): Ditto.
19326         (rs6000_dwarf_register_span): Delete.
19327         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
19328         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
19329         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
19330         Delete.
19331         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
19332         Delete.
19333         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
19334         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
19335         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
19336         mulv2sf3, divv2sf3): Delete expanders.
19338 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19340         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
19342 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19344         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
19345         * config/rs6000/rs6000.c: Ditto.
19347 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19349         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
19350         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
19351         comparison_operator.
19353 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19355         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
19356         * config/rs6000/rs6000.opt: Ditto.
19357         * config/rs6000/t-rtems: Ditto.
19359 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19361         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
19362         TARGET_E500_SINGLE by 0, simplify.
19363         * config/rs6000/rs6000.c: Ditto.
19364         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
19365         (spe_build_register_parallel): Delete.
19366         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
19367         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
19368         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
19369         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
19370         (E500_CONVERT): Delete.
19371         * config/rs6000/spe.md: Remove many patterns and all define_constants.
19373 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
19375         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
19376         * config/rs6000/dfp.md: Ditto.
19377         (negdd2, *negdd2_fpr): Merge.
19378         (absdd2, *absdd2_fpr): Merge.
19379         (negtd2, *negtd2_fpr): Merge.
19380         (abstd2, *abstd2_fpr): Merge.
19381         * config/rs6000/e500.h: Delete file.
19382         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
19383         TARGET_FPRS by 1 and simplify.
19384         * config/rs6000/rs6000-c.c: Ditto.
19385         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
19386         TARGET_DF_SPE by 0.
19387         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
19388         TARGET_DF_SPE.
19389         * config/rs6000/rs6000.md: Ditto.
19390         (floatdidf2, *floatdidf2_fpr): Merge.
19391         (move_from_CR_gt_bit): Delete.
19392         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
19393         (E500_CR_IOR_COMPARE): Delete.
19394         (All patterns that require !TARGET_FPRS): Delete.
19395         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
19397 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19399         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
19401 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19403         * graphds.c (add_edge): Intitialize edge's attached data.
19404         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
19405         pointer parameter.  Call pointed function on each edge during
19406         graph traversing.  Skip traversing the edge when the function
19407         returns true.
19408         (graphds_dfs, graphds_scc): Ditto.
19409         (for_each_edge): New parameter.  Pass the new parameter to callback
19410         function.
19411         * graphds.h (skip_edge_callback): New function pointer type.
19412         (graphds_dfs, graphds_scc): New function pointer parameter.
19413         (graphds_edge_callback, for_each_edge): New parameter.
19415 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19417         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
19418         out code checking if runtime alias check is possible to below ...
19419         Call the new function.
19420         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
19421         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
19423 2017-06-07  Marek Polacek  <polacek@redhat.com>
19425         PR sanitizer/80932
19426         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
19427         TYPE_OVERFLOW_WRAPS check.
19429 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19431         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
19432         if versioning is required.
19433         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
19434         peeling with the check for versioning.
19436 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19438         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
19439         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
19440         Set true to new parameter if new ssa variable is defined.
19441         (vect_gen_vector_loop_niters): Refactor.  Set range information
19442         for the new vector loop bound variable.
19443         (vect_do_peeling): Ditto.
19445 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19447         * tree-affine.c (ssa.h): Include header file.
19448         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
19449         has wrapping overflow behavior.
19451 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19453         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
19455 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19457         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
19458         (tree_to_aff_combination): ... here.
19460 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
19462         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
19463         reg_pressure model function.
19464         (ivopts_global_cost_for_size): Delete.
19465         (determine_set_costs, iv_ca_recount_cost): Call new model function
19466         ivopts_estimate_reg_pressure.
19468 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
19470         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
19471         expensive than udiv.  Remove floating point cases from mod.
19473 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
19475         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
19476         Increase idiv cost.
19478 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
19480         * config/aarch64/aarch64.md
19481         (copysignsf3): Fix mask generation.
19483 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
19485         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
19486         TDI_gimple.
19487         (class dump_manager): Add register_dumps method.
19488         * dumpfile.c: Include langhooks.h.
19489         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
19490         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
19491         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
19492         (dump_manager::dump_register): Start with 512 entries instead of 32.
19493         (dump_manager::register_dumps): New method.
19494         * toplev.c (general_init): Instead of invoking register_dumps
19495         langhook, invoke register_dumps method on the dump manager.
19496         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
19497         TDI_generic.
19499 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
19501         * doc/md.texi: Clarify the restrictions on a define_insn condition.
19502         Say that # requires an associated define_split to exist, and that
19503         the define_split must be suitable for use after register allocation.
19505 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19507         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
19508         (compute_outgoing_frequencies): Also initialize zero counts.
19509         (find_many_sub_basic_blocks): Do not produce uninitialized profile
19510         around loops; preserve more of profile when nothing changes.
19512 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
19514         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
19515         here.
19516         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
19517         * config/arm/arm-cpu-cdata.h: Regenerate.
19518         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
19519         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
19520         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
19521         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
19522         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
19523         support.
19524         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
19525         support.
19526         * config/arm/t-rmprofile: Likewise.
19527         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
19529 2017-06-06  David S. Miller  <davem@davemloft.net>
19531         PR target/80968
19532         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
19533         blockage if function uses alloca.
19535 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19537         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
19538         New "uid" fields to hold pretty-print IDs of group and ref.
19539         Memory references are now identified as <group_id>:<ref_id>
19540         instead of using [random] addresses.
19541         (dump_mem_details): Simplify, no functional change.
19542         (dump_mem_ref): Simplify and make output more concise.
19543         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
19544         (find_or_create_group): Initialize group uid.
19545         (record_ref): Initialize ref uid.  Improve debug output.
19546         (prune_group_by_reuse, should_issue_prefetch_p,)
19547         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
19548         (mark_nontemporal_store, determine_loop_nest_reuse):
19549         Improve debug output.
19551 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19553         * dbgcnt.def (prefetch): New debug counter.
19554         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
19555         (schedule_prefetches): Stop issueing prefetches if debug counter
19556         tripped.
19558 2017-06-06  Tom de Vries  <tom@codesourcery.com>
19560         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
19561         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
19563 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19565         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
19566         Use aarch64_reg_or_zero predicate for operand 4.
19567         (aarch64_compare_and_swap<mode> define_insn_and_split):
19568         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
19569         (aarch64_store_exclusive<mode>): Likewise for operand 2.
19571 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19573         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
19574         (arm_compute_save_core_reg_mask): This.
19575         (thumb1_compute_save_reg_mask): Rename into ...
19576         (thumb1_compute_save_core_reg_mask): This.
19577         (arm_compute_save_reg0_reg12_mask): Adapt comment.
19578         (arm_compute_frame_layout): Likewise.
19580 2017-06-06  Richard Biener  <rguenther@suse.de>
19582         PR tree-optimization/80974
19583         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
19584         keep or clear leaders SSA info.
19586 2017-06-06  Tom de Vries  <tom@codesourcery.com>
19588         * config/nvptx/nvptx.c (split_mode_p): New function.
19589         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
19591 2017-06-06  Tom de Vries  <tom@codesourcery.com>
19593         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
19595 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19597         PR bootstrap/80978
19598         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
19599         profile.
19601 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19603         * shrink-wrap.c (handle_simple_exit): Update profile.
19604         (try_shrink_wrapping): Upate profile.
19606 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19608         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
19609         (tree_guess_outgoing_edge_probabilities): New.
19610         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
19611         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
19613 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19615         * ipa-split.c (split_function): Initialize return bb profile.
19617 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
19619         * profile.c (compute_branch_probabilities): Also initialize
19620         EXIT_BLOCK profile.
19622 2017-06-06  Richard Biener  <rguenther@suse.de>
19624         PR tree-optimization/80928
19625         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
19626         (vect_analyze_loop_operations): Properly guard analysis for
19627         pure SLP case.
19628         (vect_transform_loop): Likewise.
19629         (vect_analyze_loop_2): Also reset SLP type on PHIs.
19630         (vect_model_induction_cost): Do not cost for pure SLP.
19631         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
19632         of induction in inner loop vectorization.
19633         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
19634         (vect_get_and_check_slp_defs): Handle vect_induction_def.
19635         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
19636         recursion.
19637         (vect_analyze_slp_cost_1): Cost induction.
19638         (vect_detect_hybrid_slp_stmts): Handle PHIs.
19639         (vect_get_slp_vect_defs): Likewise.
19640         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
19641         (vect_transform_stmt): Handle SLP reductions.
19642         * tree-vectorizer.h (vectorizable_induction): Adjust.
19644 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
19646         * config/rs6000/rs6000.c (make_resolver_func): Update
19647         init_lowered_empty_function call.
19649 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19651         * doc/invoke.texi: Document the -fprofile-abs-path option.
19652         * common.opt (fprofile-abs-path): New option.
19653         * gcov-io.h (gcov_write_filename): Declare.
19654         * gcov-io.c (gcov_write_filename): New function.
19655         * coverage.c (coverage_begin_function): Use gcov_write_filename.
19656         * profile.c (output_location): Likewise.
19658 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
19660         * shring-wrap.c: Revert accidental commit.
19662 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
19664         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
19666 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
19668         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
19669         new edge.
19670         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
19671         profile in callgraph edge.
19672         * profile-count.h (apply_probability): If THIS is 0, then result is 0
19673         (apply_scale): Likewise.
19674         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
19675         Also scale profile when inlining function with zero profile.
19676         (initialize_cfun): Update exit block profile even when it is zero.
19677         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
19678         when profile is read.
19680 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
19682         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
19683         (CLONE_*): New constants to define the processors we can generate
19684         code for with the target_clone attribute.
19685         (rs6000_clone_map): New array to identify which clone processors
19686         the current program is running on.
19687         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
19688         target_clone attribute.
19689         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
19690         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
19691         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
19692         (cpu_expand_builtin): Add support for target_clone attribute.
19693         (rs6000_valid_attribute_p): Allow "default" attribute.
19694         (get_decl_name): New debug function to simplify printing the
19695         current function name in debugging statements.
19696         (rs6000_clone_priority): New functions to support the target_clone
19697         attribute, and be able to generate code to switch between ISA 2.05
19698         through ISA 3.0 (power6 through power9).
19699         (rs6000_compare_version_priority): Likewise.
19700         (rs6000_get_function_versions_dispatcher): Likewise.
19701         (make_resolver_func): Likewise.
19702         (add_condition_to_bb): Likewise.
19703         (dispatch_function_versions): Likewise.
19704         (rs6000_generate_version_dispatcher_body): Likewise.
19705         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
19706         (fusion_gpr_load_p): Fix a spacing issue.
19707         * doc/extend.texi (Common Function Attributes): Document that the
19708         PowerPC supports the target_clone attribute.
19710 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19712         * config/arm/arm.h: explain F symbol found in description of ARM
19713         register allocation in its legend.
19715 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
19717         * config/mips/frame-header-opt.c: Include profile-count.h.
19718         * config/riscv/riscv.c: Include profile-count.h
19720 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
19722         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
19723         update profile.
19724         (sm_set_flag_if_changed): Add bbs field.
19725         (execute_sm_if_changed_flag_set): Pass BBS.
19726         (execute_sm): Update.
19728 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19730         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
19731         New pattern.
19733 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19735         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
19736         (peephole2): New peephole2 to emit the above.
19737         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
19739 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19741         * config/aarch64/aarch64.c (define_peephole2 above
19742         *sub_<shift>_<mode>): New peephole.
19744 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
19746         * config/i386/i386.c (make_resolver_func): Update.
19747         * Makefile.in: Add profile-count.h and profile-count.o
19748         * auto-profile.c (afdo_indirect_call): Update to new API.
19749         (afdo_set_bb_count): Update.
19750         (afdo_propagate_edge): Update.
19751         (afdo_propagate_circuit): Update.
19752         (afdo_calculate_branch_prob): Update.
19753         (afdo_annotate_cfg): Update.
19754         * basic-block.h: Include profile-count.h
19755         (struct edge_def): Turn count to profile_count.
19756         (struct basic_block_def): Likewie.
19757         (REG_BR_PROB_BASE): Move to profile-count.h
19758         (RDIV): Move to profile-count.h
19759         * bb-reorder.c (max_entry_count): Turn to profile_count.
19760         (find_traces): Update.
19761         (rotate_loop):Update.
19762         (connect_traces):Update.
19763         (sanitize_hot_paths):Update.
19764         * bt-load.c (migrate_btr_defs): Update.
19765         * cfg.c (RDIV): Remove.
19766         (init_flow): Use alloc_block.
19767         (alloc_block): Uninitialize count.
19768         (unchecked_make_edge): Uninitialize count.
19769         (check_bb_profile): Update.
19770         (dump_edge_info): Update.
19771         (dump_bb_info): Update.
19772         (update_bb_profile_for_threading): Update.
19773         (scale_bbs_frequencies_int): Update.
19774         (scale_bbs_frequencies_gcov_type): Update.
19775         (scale_bbs_frequencies_profile_count): New.
19776         * cfg.h (update_bb_profile_for_threading): Update.
19777         (scale_bbs_frequencies_profile_count): Declare.
19778         * cfgbuild.c (compute_outgoing_frequencies): Update.
19779         (find_many_sub_basic_blocks): Update.
19780         * cfgcleanup.c (try_forward_edges): Update.
19781         (try_crossjump_to_edge): Update.
19782         * cfgexpand.c (expand_gimple_tailcall): Update.
19783         (construct_exit_block): Update.
19784         * cfghooks.c (verify_flow_info): Update.
19785         (dump_bb_for_graph): Update.
19786         (split_edge): Update.
19787         (make_forwarder_block): Update.
19788         (duplicate_block): Update.
19789         (account_profile_record): Update.
19790         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
19791         (get_estimated_loop_iterations): Update.
19792         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
19793         (single_likely_exit): Update.
19794         * cfgloopmanip.c (scale_loop_profile): Update.
19795         (loopify): Update.
19796         (set_zero_probability): Update.
19797         (lv_adjust_loop_entry_edge): Update.
19798         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
19799         (purge_dead_edges): Update.
19800         (rtl_account_profile_record): Update.
19801         * cgraph.c (cgraph_node::create): Uninitialize count.
19802         (symbol_table::create_edge): Uninitialize count.
19803         (cgraph_update_edges_for_call_stmt_node): Update.
19804         (cgraph_edge::dump_edge_flags): Update.
19805         (cgraph_node::dump): Update.
19806         (cgraph_edge::maybe_hot_p): Update.
19807         * cgraph.h: Include profile-count.h
19808         (create_clone), create_edge, create_indirect_edge): Update.
19809         (cgraph_node): Turn count to profile_count.
19810         (cgraph_edge0: Likewise.
19811         (make_speculative, clone): Update.
19812         (create_edge): Update.
19813         (init_lowered_empty_function): Update.
19814         * cgraphclones.c (cgraph_edge::clone): Update.
19815         (duplicate_thunk_for_node): Update.
19816         (cgraph_node::create_clone): Update.
19817         * cgraphunit.c (cgraph_node::analyze): Update.
19818         (cgraph_node::expand_thunk): Update.
19819         * final.c (dump_basic_block_info): Update.
19820         * gimple-streamer-in.c (input_bb): Update.
19821         * gimple-streamer-out.c (output_bb): Update.
19822         * graphite.c (print_global_statistics): Update.
19823         (print_graphite_scop_statistics): Update.
19824         * hsa-brig.c: Include basic-block.h.
19825         * hsa-dump.c: Include basic-block.h.
19826         * hsa-gen.c (T sum_slice): Update.
19827         (convert_switch_statements):Update.
19828         * hsa-regalloc.c: Include basic-block.h.
19829         * ipa-chkp.c (chkp_produce_thunks): Update.
19830         * ipa-cp.c (struct caller_statistics): Update.
19831         (init_caller_stats): Update.
19832         (gather_caller_stats): Update.
19833         (ipcp_cloning_candidate_p): Update.
19834         (good_cloning_opportunity_p): Update.
19835         (get_info_about_necessary_edges): Update.
19836         (dump_profile_updates): Update.
19837         (update_profiling_info): Update.
19838         (update_specialized_profile): Update.
19839         (perhaps_add_new_callers): Update.
19840         (decide_about_value): Update.
19841         (ipa_cp_c_finalize): Update.
19842         * ipa-devirt.c (struct odr_type_warn_count): Update.
19843         (struct decl_warn_count): Update.
19844         (struct final_warning_record): Update.
19845         (possible_polymorphic_call_targets): Update.
19846         (ipa_devirt): Update.
19847         * ipa-fnsummary.c (redirect_to_unreachable): Update.
19848         * ipa-icf.c (sem_function::merge): Update.
19849         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
19850         * ipa-inline.c (compute_uninlined_call_time): Update.
19851         (compute_inlined_call_time): Update.
19852         (want_inline_small_function_p): Update.
19853         (want_inline_self_recursive_call_p): Update.
19854         (edge_badness): Update.
19855         (lookup_recursive_calls): Update.
19856         (recursive_inlining): Update.
19857         (inline_small_functions): Update.
19858         (dump_overall_stats): Update.
19859         (dump_inline_stats): Update.
19860         * ipa-profile.c (ipa_profile_generate_summary): Update.
19861         (ipa_propagate_frequency): Update.
19862         (ipa_profile): Update.
19863         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
19864         * ipa-utils.c (ipa_merge_profiles): Update.
19865         * loop-doloop.c (doloop_modify): Update.
19866         * loop-unroll.c (report_unroll): Update.
19867         (unroll_loop_runtime_iterations): Update.
19868         * lto-cgraph.c (lto_output_edge): Update.
19869         (lto_output_node): Update.
19870         (input_node): Update.
19871         (input_edge): Update.
19872         (merge_profile_summaries): Update.
19873         * lto-streamer-in.c (input_cfg): Update.
19874         * lto-streamer-out.c (output_cfg): Update.
19875         * mcf.c (create_fixup_graph): Update.
19876         (adjust_cfg_counts): Update.
19877         (sum_edge_counts): Update.
19878         * modulo-sched.c (sms_schedule): Update.
19879         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
19880         * predict.c (maybe_hot_count_p): Update.
19881         (probably_never_executed): Update.
19882         (dump_prediction): Update.
19883         (combine_predictions_for_bb): Update.
19884         (propagate_freq): Update.
19885         (handle_missing_profiles): Update.
19886         (counts_to_freqs): Update.
19887         (rebuild_frequencies): Update.
19888         (force_edge_cold): Update.
19889         * predict.h: Include profile-count.h
19890         (maybe_hot_count_p, counts_to_freqs): UPdate.
19891         * print-rtl-function.c: Do not include cfg.h
19892         * print-rtl.c: Include basic-block.h
19893         * profile-count.c: New file.
19894         * profile-count.h: New file.
19895         * profile.c (is_edge_inconsistent): Update.
19896         (correct_negative_edge_counts): Update.
19897         (is_inconsistent): Update.
19898         (set_bb_counts): Update.
19899         (read_profile_edge_counts): Update.
19900         (compute_frequency_overlap): Update.
19901         (compute_branch_probabilities): Update; Initialize and deinitialize
19902         gcov_count tables.
19903         (branch_prob): Update.
19904         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
19905         (edge_gcov_count): New.
19906         (bb_gcov_count): New.
19907         * shrink-wrap.c (try_shrink_wrapping): Update.
19908         * tracer.c (better_p): Update.
19909         * trans-mem.c (expand_transaction): Update.
19910         (ipa_tm_insert_irr_call): Update.
19911         (ipa_tm_insert_gettmclone_call): Update.
19912         * tree-call-cdce.c: Update.
19913         * tree-cfg.c (gimple_duplicate_sese_region): Update.
19914         (gimple_duplicate_sese_tail): Update.
19915         (gimple_account_profile_record): Update.
19916         (execute_fixup_cfg): Update.
19917         * tree-inline.c (copy_bb): Update.
19918         (copy_edges_for_bb): Update.
19919         (initialize_cfun): Update.
19920         (freqs_to_counts): Update.
19921         (copy_cfg_body): Update.
19922         (expand_call_inline): Update.
19923         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
19924         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
19925         (try_unroll_loop_completely): Update.
19926         (try_peel_loop): Update.
19927         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
19928         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
19929         * tree-ssa-loop-split.c (connect_loops): Update.
19930         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
19931         * tree-ssa-reassoc.c (branch_fixup): Update.
19932         * tree-ssa-tail-merge.c (replace_block_by): Update.
19933         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
19934         (compute_path_counts): Update.
19935         (update_profile): Update.
19936         (recompute_probabilities): Update.
19937         (update_joiner_offpath_counts): Update.
19938         (estimated_freqs_path): Update.
19939         (freqs_to_counts_path): Update.
19940         (clear_counts_path): Update.
19941         (ssa_fix_duplicate_block_edges): Update.
19942         (duplicate_thread_path): Update.
19943         * tree-switch-conversion.c (case_bit_test_cmp): Update.
19944         (struct switch_conv_info): Update.
19945         * tree-tailcall.c (decrease_profile): Update.
19946         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
19947         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
19948         * value-prof.c (check_counter): Update.
19949         (gimple_divmod_fixed_value): Update.
19950         (gimple_mod_pow2): Update.
19951         (gimple_mod_subtract): Update.
19952         (gimple_ic_transform): Update.
19953         (gimple_stringop_fixed_value): Update.
19954         * value-prof.h (gimple_ic): Update.
19956 2017-06-02  Carl Love  <cel@us.ibm.com>
19958         * config/rs6000/rs6000-c: Add support for built-in functions
19959         vector double vec_doublee (vector signed int);
19960         vector double vec_doublee (vector unsigned int);
19961         vector double vec_doublee (vector float);
19962         vector double vec_doubleh (vector signed int);
19963         vector double vec_doubleh (vector unsigned int);
19964         vector double vec_doubleh (vector float);
19965         vector double vec_doublel (vector signed int);
19966         vector double vec_doublel (vector unsigned int);
19967         vector double vec_doublel (vector float);
19968         vector double vec_doubleo (vector signed int);
19969         vector double vec_doubleo (vector unsigned int);
19970         vector double vec_doubleo (vector float);.
19971         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
19972         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
19973         UNS_DOUBLEL.
19974         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
19975         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
19976         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
19977         VS_sxwsp.
19978         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
19979         vec_doublel, vec_doubleh.
19980         * doc/extend.texi: Update the built-in documentation file for the
19981         new built-in functions.
19983 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
19985         PR jit/80954
19986         * ipa-inline-analysis.c (free_growth_caches): Set
19987         edge_removal_hook_holder to NULL after removing it.
19989 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
19991         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
19992         comparision with zero.
19994 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
19995         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
19996         for early expansion of vec_min and vec_max builtins.
19997         (builtin_function_type): Add min/max unsigned variants to those
19998         identified as having unsigned arguments.
20000 2017-06-02  Olivier Hainque  <hainque@adacore.com>
20002         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
20004 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20006         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
20007         Use VALL_F16 iterator rather than VALL.
20009 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20011         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
20012         Emit CBNZ inside loop when doing a strong exchange and comparing
20013         against zero.  Generate the CC flags after the loop.
20015 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
20017         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
20018         (dl_section_ref): New.
20019         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
20020         On AIX, append an expression to subtract the size of the
20021         section length to dl_section_ref.
20023 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
20025         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
20026         for early expansion of vector absolute builtins.
20028 2017-06-02  Richard Biener  <rguenther@suse.de>
20030         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
20031         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
20033 2017-06-02  Richard Biener  <rguenther@suse.de>
20035         PR tree-optimization/80948
20036         * tree-tailcall.c (find_tail_calls): Track stmts to move in
20037         stmt order as well.
20039 2017-06-02  Richard Biener  <rguenther@suse.de>
20041         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
20042         PHIs are ok.
20043         * tree-vect-stmts.c (process_use): Do not mark backedge defs
20044         for inductions as relevant.
20046 2017-06-02  Richard Biener  <rguenther@suse.de>
20048         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
20049         (vectorizable_induction): ... this.  Remove dead code.
20051 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
20053         * builtins. (expand_builtin_alloca): Remove second parameter and
20054         infer its value from the first parameter instead.
20055         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
20057 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
20059         PR rtl-optimization/80903
20060         * loop-doloop.c (add_test): Unshare sequence.
20062 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20064         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
20066 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20068         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
20069         static.
20070         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
20071         xlogue_layout::get_instance, logue_layout::xlogue_layout,
20072         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
20073         (xlogue_layout::get_stub_rtx): Make static.
20074         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
20075         (xlogue_layout::compute_stub_managed_regs): Rename to...
20076         (xlogue_layout::count_stub_managed_regs): ...this.
20077         (xlogue_layout::is_stub_managed_reg): New function.
20078         (xlogue_layout::m_stub_names): Rename to...
20079         (xlogue_layout::s_stub_names): ...this, make static.
20080         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
20081         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
20082         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
20083         xlogue_layout::s_stub_names): Instantiate statics.
20084         (stub_managed_regs): Remove.
20085         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
20086         (disable_call_ms2sysv_xlogues): Rename to...
20087         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
20088         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
20089         warning logic.
20090         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
20091         change after reload_completed.
20092         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
20093         directly.
20094         (ix86_expand_prologue): Likewise.
20095         (ix86_expand_epilogue): Likewise.
20096         (ix86_expand_split_stack_prologue): Likewise.
20097         (ix86_compute_frame_layout): Remove frame parameter ...
20098         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
20099         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
20100         only if necessary.
20101         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
20102         (ix86_frame): Move from here ...
20103         * config/i386/i386.h (ix86_frame): ... to here.
20104         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
20105         complete ix86_frame data structure instead.  Remove some_ld_name.
20107 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
20109         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
20110         symbols that hold a DECL_VALUE_EXPR.
20112 2017-06-01  Martin Jambor  <mjambor@suse.cz>
20114         PR tree-optimization/80898
20115         * tree-sra.c (process_subtree_disqualification): Removed.
20116         (disqualify_candidate): Do not acll
20117         process_subtree_disqualification.
20118         (subtree_mark_written_and_enqueue): New function.
20119         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
20120         RHS has been disqualified and re-queue LHS if necessary.  Apart
20121         from that, ignore disqualified RHS.
20123 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20125         * config/s390/s390.c (s390_emit_epilogue): Disable early return
20126         address fetch for z10 or later.
20128 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20130         * config/arc/arc.md (tst_movb): Add guard when splitting.
20132 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20134         * config/arc/arc.c (arc_can_eliminate): Test against
20135         arc_frame_pointer_needed.
20137 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20139         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
20140         to prevent store reordering.
20141         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
20142         (type): Add block type.
20143         (stack_tie): Define special instruction to be used in
20144         expand_prologue.
20146 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20148         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
20149         constraint. It is not valid for the pattern.
20150         (noncommutative_binary_comparison): Likewise.
20152 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20154         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
20155         scaled addresses.
20157 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20159         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
20160         be used by the reg-alloc.
20162 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20164         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
20165         reg-alloc when having mul64 or mul32x16 instructions.
20166         (mulsidi3): Likewise.
20167         (umulsidi3): Likewise.
20168         (mulsi32x16): New pattern.
20169         (mulsi64): Likewise.
20170         (mulsidi64): Likewise.
20171         (umulsidi64): Likewise.
20172         (MUL32x16_REG): Define.
20173         (mul64_600): Use MUL32x16_REG.
20174         (mac64_600): Likewise.
20175         (umul64_600): Likewise.
20176         (umac64_600): Likewise.
20178 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
20180         * config/arc/arc.md (mulsi3_700): Make it commutative.
20182 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
20184         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
20185         type for movstouw.
20186         (*sign_extendsidi2_insn): Likewise for movstosw.
20188 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
20190         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
20191         the type of the input discriminant value.  Convert the
20192         discriminant value of signedness vary.
20194 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
20196         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
20197         Add to -Wall section.
20199 2017-06-01  Richard Biener  <rguenther@suse.de>
20201         PR middle-end/66313
20202         * fold-const.c (fold_plusminus_mult_expr): If the factored
20203         factor may be zero use a wrapping type for the inner operation.
20204         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
20205         and handle moved defs.
20206         (process_assignment): Properly guard the unary op case.  Return a
20207         tri-state indicating that moving the stmt before the call may allow
20208         to continue.  Pass through to_move.
20209         (find_tail_calls): Handle moving unrelated defs before
20210         the call.
20212 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
20214         PR target/80618
20215         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
20216         splitter result in the canonical way.
20218 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
20220         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
20221         also for 32bit target.  Update insn attributes.
20222         (zero-extendsidi2 splitter): Allow all registers for operand 1.
20224 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
20226         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
20227         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
20228         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
20229         (_mm_maskz_min_ss): New intrinsics.
20231 2017-05-31  Martin Liska  <mliska@suse.cz>
20233         * tree-vect-loop.c (vect_create_epilog_for_reduction):
20234         Change comment style to one we normally use.
20235         (vectorizable_reduction): Likewise.
20236         (vectorizable_induction): Likewise.
20237         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
20238         (vectorizable_call): Likewise.
20239         (vectorizable_simd_clone_call): Likewise.
20240         (vectorizable_conversion): Likewise.
20241         (vectorizable_assignment): Likewise.
20242         (vectorizable_shift): Likewise.
20243         (vectorizable_operation): Likewise.
20244         (vectorizable_store): Likewise.
20245         (vectorizable_load): Likewise.
20246         * tree-vectorizer.h: Likewise.
20248 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
20250         * passes.c (emergency_dump_function): New.
20251         * tree-pass.h (emergency_dump_function): Declare.
20252         * plugin.c (plugins_internal_error_function): Remove.
20253         * plugin.h (plugins_internal_error_function): Remove declaration.
20254         * toplev.c (internal_error_function): New static function.  Use it...
20255         (general_init): ...here.
20257 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
20259         * config/arc/arc.c (arc_print_operand): Handle constant operands.
20260         (arc_rtx_costs): Add costs for new patterns.
20261         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
20262         * config/arc/predicates.md: Add _1_2_3_operand predicate.
20264 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
20266         * tree-ssa-strlen.c (get_next_strinfo): New function.
20267         (get_stridx_plus_constant): Use it.
20268         (zero_length_string): Likewise.
20269         (adjust_related_strinfos): Likewise.
20270         (adjust_last_stmt): Likewise.
20272 2017-05-31  Richard Biener  <rguenther@suse.de>
20274         PR target/80880
20275         * config/i386/i386.c (ix86_expand_builtin): Remove assert
20276         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
20278 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
20280         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
20281         loop_vinfo argument and use of dependence distance vectors.
20282         Check instead whether the two references differ only in their
20283         initial value and assume that they have the same alignment if the
20284         difference is a multiple of the vector alignment.
20285         (vect_analyze_data_refs_alignment): Update call accordingly.
20287 2017-05-31  Martin Liska  <mliska@suse.cz>
20289         PR target/79155
20290         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
20292 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
20294         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
20295         (create_intersect_range_checks): Move from ...
20296         * tree-data-ref.c (create_intersect_range_checks_index)
20297         (create_intersect_range_checks): ... to here.
20298         (create_runtime_alias_checks): New function factored from ...
20299         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
20300         here.  Call above function.
20301         * tree-data-ref.h (create_runtime_alias_checks): New function.
20303 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
20305         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
20306         segment length for dr_b and compute it in wide_int.
20308 2017-05-31  Richard Biener  <rguenther@suse.de>
20310         PR tree-optimization/80906
20311         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
20312         and pass through iv_map.
20313         (copy_bb_and_scalar_dependences): Adjust.
20314         (translate_pending_phi_nodes): Likewise.
20315         (copy_loop_close_phi_args): Handle code-generating IVs instead
20316         of ICEing.
20318 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
20320         * diagnostic-color.c (color_dict): Add "type-diff".
20321         (parse_gcc_colors): Update comment.
20322         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
20323         -fdiagnostics-show-template-tree and -fno-elide-type.
20324         (GCC_COLORS): Add type-diff to example.
20325         (type-diff=): New.
20326         (-fdiagnostics-show-template-tree): New.
20327         (-fno-elide-type): New.
20328         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
20329         the pp_format_decoder callback.  Call any m_format_postprocessor's
20330         "handle" method.
20331         (pretty_printer::pretty_printer): Initialize
20332         m_format_postprocessor.
20333         (pretty_printer::~pretty_printer): Delete any
20334         m_format_postprocessor.
20335         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
20336         (class format_postprocessor): New class.
20337         (struct pretty_printer::format_decoder): Document the new parameters.
20338         (struct pretty_printer::m_format_postprocessor): New field.
20339         * tree-diagnostic.c (default_tree_printer): Update for new
20340         bool and const char ** params.
20341         * tree-diagnostic.h (default_tree_printer): Likewise.
20343 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
20345         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
20346         (lwa_operand): Delete rs6000_gen_cell_microcode test.
20347         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
20348         rs6000_gen_cell_microcode code.
20349         (rs6000_final_prescan_insn): Delete.
20350         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
20351         "warn-cell-microcode" entries.
20352         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
20353         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
20354         throughout.  Change cc_reg_not_micro_cr0_operand to
20355         cc_reg_not_cr0_operand throughout.
20356         (*extendhi<mode>2_noload): Delete.
20357         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
20358         (mwarn-cell-microcode): Delete.
20359         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
20360         -mgen-cell-microcode and -mwarn-cell-microcode.
20362 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
20364         PR target/80833
20365         * config/i386/constraints.md (Yd): New constraint.
20366         (Ye): Ditto.
20367         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
20368         and (?Yd, r) alternatives.  Update insn attributes.
20369         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
20370         and (?*Yd, r) alternatives.  Update insn attributes.
20371         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
20373 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
20375         * gimplify.c (gimplify_modify_expr): Don't create a
20376         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
20377         function.
20379 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
20381         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
20383 2017-05-30  Richard Biener  <rguenther@suse.de>
20385         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
20386         and reduc_def fields.
20387         (STMT_VINFO_REDUC_TYPE): New define.
20388         (STMT_VINFO_REDUC_DEF): Likewise.
20389         (vect_force_simple_reduction): Adjust prototype.
20390         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
20391         (vect_is_simple_reduction): Remove check_reduction argument.
20392         (vect_force_simple_reduction): Adjust and set
20393         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
20394         (vectorizable_reduction): Do not re-do reduction analysis
20395         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
20396         * tree-parloops.c (gather_scalar_reductions): Adjust.
20398 2017-05-30  Richard Biener  <rguenther@suse.de>
20400         PR middle-end/80901
20401         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
20402         split_edge code.
20404 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
20406         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
20407         Introduce unknown_misalignment parameter and remove vf.
20408         (vect_peeling_hash_get_lowest_cost):
20409         Pass unknown_misalignment parameter.
20410         (vect_enhance_data_refs_alignment):
20411         Fix unsupportable data ref treatment.
20413 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
20415         * tree-vect-data-refs.c (vect_get_data_access_cost):
20416         Workaround for SLP handling.
20417         (vect_enhance_data_refs_alignment):
20418         Compute costs for doing no peeling at all, compare to the best
20419         peeling costs so far and avoid peeling if cheaper.
20421 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
20423         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
20424         Return peeling info and set costs to zero for unlimited cost
20425         model.
20426         (vect_enhance_data_refs_alignment): Also inspect all datarefs
20427         with unknown misalignment. Compute and costs for unknown
20428         misalignment, compare them to the costs for known misalignment
20429         and choose the cheapest for peeling.
20431 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
20433         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
20434         (vect_get_peeling_costs_all_drs): Create function.
20435         (vect_peeling_hash_get_lowest_cost):
20436         Use vect_get_peeling_costs_all_drs.
20437         (vect_peeling_supportable): Create function.
20438         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
20440 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
20442         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
20443         DR_HAS_NEGATIVE_STEP.
20444         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
20445         (vect_enhance_data_refs_alignment): Use.
20446         (vect_duplicate_ssa_name_ptr_info): Use.
20447         * tree-vectorizer.h (dr_misalignment): Use.
20448         (known_alignment_for_access_p): Use.
20450 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
20452         PR target/78838
20453         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
20454         .lowtext.
20455         (has_section_name): New function.
20457 2017-05-30  Martin Liska  <mliska@suse.cz>
20459         PR other/80909
20460         * auto-profile.c (get_function_decl_from_block): Fix
20461         parenthesis.
20463 2017-05-30  Richard Biener  <rguenther@suse.de>
20465         PR middle-end/80876
20466         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
20468 2017-05-30  Martin Liska  <mliska@suse.cz>
20470         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
20471         * dumpfile.h (struct dump_file_info): Remove ctors.
20473 2017-05-30  Martin Liska  <mliska@suse.cz>
20475         * predict.def: Fix GNU coding style.
20477 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
20479         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
20480         Mark 'to' argument with ATTRIBUTE_UNUSED.
20482 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
20484         * config/xtensa/xtensa.c (xtensa_emit_call): Use
20485         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
20486         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
20487         format string.
20489 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
20491         * doc/install.texi (Options specification): Restore entry of
20492         --enable-sjlj-exceptions.
20494 2017-05-27  Michael Eager  <eager@eagercon.com>
20496         Revert:
20497         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
20499         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
20501         * config/microblaze/microblaze.h
20502         (FIXED_REGISTERS): Update in macro.
20503         (CALL_USED_REGISTERS): Update in macro.
20505 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
20507         * doc/install.texi: Add links to macOS binary distributions.
20509 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
20511         PR bootstrap/80887
20512         Revert:
20513         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
20515         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
20517 2017-05-26  Martin Liska  <mliska@suse.cz>
20519         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
20521 2017-05-26  Martin Liska  <mliska@suse.cz>
20523         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
20524         always leading ';; '.
20525         (dump_bb_info): Likewise.
20526         (brief_dump_cfg): Likewise.
20527         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
20528         * dumpfile.c: Remove usage of TDF_VERBOSE.
20529         * dumpfile.h (enum dump_kind): Likewise.
20530         (dump_gimple_bb_header): Do not use TDF_COMMENT.
20531         * print-tree.c (debug_verbose): Remove.
20532         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
20533         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
20534         * tree-diagnostic.c (default_tree_printer): Replace
20535         TDF_DIAGNOSTIC with TDF_SLIM.
20537 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
20539         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
20540         in parameter loop, rather than loop_vinfo.
20541         (create_intersect_range_checks): Ditto.
20542         (vect_create_cond_for_alias_checks): Update call to above functions.
20544 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
20546         PR tree-optimization/80815
20547         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
20548         for merging runtime alias checks.  Handle negative DR_STEPs.
20550 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
20552         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
20553         Move from ...
20554         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
20555         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
20556         out code pruning runtime alias checks.
20557         * tree-data-ref.c (prune_runtime_alias_test_list): New function
20558         factored out from above.
20559         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
20560         Move from ...
20561         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
20562         ... to here.
20563         (prune_runtime_alias_test_list): New decalaration.
20565 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
20567         * tree-vect-data-refs.c (compare_tree): Rename and move ...
20568         * tree-data-ref.c (data_ref_compare_tree): ... to here.
20569         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
20570         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
20571         (operator==, comp_dr_with_seg_len_pair): Ditto.
20572         (vect_prune_runtime_alias_test_list): Ditto.
20574 2017-05-26  Martin Liska  <mliska@suse.cz>
20576         PR ipa/80663
20577         * params.def: Bound partial-inlining-entry-probability param.
20579 2017-05-26  Marek Polacek  <polacek@redhat.com>
20581         PR sanitizer/80875
20582         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
20583         can be negated.
20585 2017-05-26  Richard Biener  <rguenther@suse.de>
20587         PR tree-optimization/80842
20588         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
20589         value.
20591 2017-05-26  Richard Biener  <rguenther@suse.de>
20593         PR tree-optimization/80844
20594         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
20596 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
20598         * doc/md.texi (Machine Constraints): Update x86 family
20599         machine constraints section to match 'config/i386/constraints.md'.
20601 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
20603         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
20605 2017-05-25  Nathan Sidwell  <nathan@acm.org>
20607         * doc/invoke.texi (--enable-languages): Update documentation.
20609 2017-05-25  Martin Liska  <mliska@suse.cz>
20611         * dumpfile.c: Add TDF_FOLDING.
20612         * dumpfile.h (enum dump_kind): Likewise.
20613         * genmatch.c (dt_simplify::gen_1): Use it.
20615 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
20617         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
20619 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
20621         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
20622         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
20624 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
20626         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
20627         * match.pd (X == C): Rewrite it here.
20628         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
20629         with_certain_nonzero_bits2): New predicates.
20630         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
20632 2017-05-24  Nathan Sidwell  <nathan@acm.org>
20634         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
20635         avoid warning.
20637         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
20638         warning.
20640 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
20642         * config/powerpcspe: New port.  Files are copied from the rs6000
20643         port, with "rs6000" in filenames replaced by "powerpcspe".
20645 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
20647         PR rtl-optimization/80754
20648         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
20650 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
20652         * config/sparc/sparc.md (length): Return the correct value for -mflat
20653         sibcalls to match output_sibcall.
20655 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
20657         PR bootstrap/80860
20658         PR bootstrap/80843
20659         * config/rs6000/rs6000.c (struct machine_function): Add new field
20660         n_components.
20661         (rs6000_get_separate_components): Init that field, use it.
20662         (rs6000_components_for_bb): Use the field.
20664 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20666         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
20668 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
20670         PR middle-end/80823
20671         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
20673 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20675         PR target/80725
20676         * config/s390/s390.c (s390_check_qrst_address): Check incoming
20677         address against address_operand predicate.
20678         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
20680 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
20682         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
20683         parameters passed indirectly.
20685 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
20687         * config/i386/i386.md (*movdi_internal): Remove SSE4
20688         alternative 18 (?r, *v).  Update insn attributes.
20689         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
20690         Update insn attributes.
20691         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
20692         Update insn attributes.
20693         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
20694         alternative 1 (r, v). Remove isa attribute.
20695         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
20696         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
20697         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
20699 2017-05-23  Tom de Vries  <tom@codesourcery.com>
20701         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
20702         dg-line directive.
20704 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
20706         * cgraphunit.c (symbol_table::process_new_functions): Update.
20707         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
20708         (inline_generate_summary): Rename to ...
20709         (ipa_fn_summary_generate): ... this one.
20710         (inline_read_summary): Rename to ...
20711         (ipa_fn_summary_read): ... this one.
20712         (inline_write_summary): Rename to ...
20713         (ipa_fn_summary_write): ... this one.
20714         (inline_free_summary): Rename to ...
20715         (ipa_free_fn_summary): ... this one.
20716         (pass_data_local_fn_summary, pass_local_fn_summary,
20717         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
20718         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
20719         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
20720         make_pass_ipa_fn_summary): New.
20721         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
20722         inline_write_summary, inline_free_summary): Remove.
20723         (ipa_free_fn_summary) : New.
20724         * ipa-inline.c (ipa_inline): Update.
20725         (pass_ipa_inline): Do not generate summaries.
20726         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
20727         Remove.
20728         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
20729         and add pass_ipa_fn_summary.
20730         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
20731         New.
20732         (make_pass_inline_parameters): Remove.
20734 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
20736         * omp-low.c (struct omp_context): Remove "default_kind" member.
20737         Adjust all users.
20739         * omp-offload.c (execute_oacc_device_lower): Remove the
20740         parallelism dimensions function attributes for unparallelized
20741         OpenACC kernels constructs.
20743 2017-05-23  Martin Liska  <mliska@suse.cz>
20745         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
20746         functions.
20747         (cgraph_edge::make_speculative): Likewise.
20748         (cgraph_edge::resolve_speculation): Likewise.
20749         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
20750         (cgraph_node::dump): Likewise.
20751         * cgraph.h: Likewise.
20752         * cgraphunit.c (analyze_functions): Likewise.
20753         (symbol_table::compile): Likewise.
20754         * ipa-cp.c (print_all_lattices): Likewise.
20755         (determine_versionability): Likewise.
20756         (initialize_node_lattices): Likewise.
20757         (ipcp_verify_propagated_values): Likewise.
20758         (estimate_local_effects): Likewise.
20759         (update_profiling_info): Likewise.
20760         (create_specialized_node): Likewise.
20761         (perhaps_add_new_callers): Likewise.
20762         (decide_about_value): Likewise.
20763         (decide_whether_version_node): Likewise.
20764         (identify_dead_nodes): Likewise.
20765         (ipcp_store_bits_results): Likewise.
20766         * ipa-devirt.c (dump_targets): Likewise.
20767         (ipa_devirt): Likewise.
20768         * ipa-icf.c (sem_item::dump): Likewise.
20769         (sem_function::equals): Likewise.
20770         (sem_variable::equals): Likewise.
20771         (sem_item_optimizer::read_section): Likewise.
20772         (sem_item_optimizer::execute): Likewise.
20773         (congruence_class::dump): Likewise.
20774         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
20775         (dump_inline_summary): Likewise.
20776         (estimate_node_size_and_time): Likewise.
20777         (inline_analyze_function): Likewise.
20778         * ipa-inline-transform.c (inline_call): Likewise.
20779         * ipa-inline.c (report_inline_failed_reason): Likewise.
20780         (want_early_inline_function_p): Likewise.
20781         (edge_badness): Likewise.
20782         (update_edge_key): Likewise.
20783         (inline_small_functions): Likewise.
20784         * ipa-profile.c (ipa_profile): Likewise.
20785         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
20786         (ipa_make_edge_direct_to_target): Likewise.
20787         (remove_described_reference): Likewise.
20788         (ipa_impossible_devirt_target): Likewise.
20789         (propagate_controlled_uses): Likewise.
20790         (ipa_print_node_params): Likewise.
20791         (ipcp_transform_function): Likewise.
20792         * ipa-pure-const.c (pure_const_read_summary): Likewise.
20793         (propagate_pure_const): Likewise.
20794         * ipa-reference.c (generate_summary): Likewise.
20795         (read_write_all_from_decl): Likewise.
20796         (propagate): Likewise.
20797         (ipa_reference_read_optimization_summary): Likewise.
20798         * ipa-utils.c (ipa_merge_profiles): Likewise.
20799         * ipa.c (walk_polymorphic_call_targets): Likewise.
20800         (symbol_table::remove_unreachable_nodes): Likewise.
20801         (ipa_single_use): Likewise.
20802         * passes.c (execute_todo): Likewise.
20803         * predict.c (drop_profile): Likewise.
20804         * symtab.c (symtab_node::get_dump_name): New function.
20805         (symtab_node::dump_name): Likewise.
20806         (symtab_node::dump_asm_name): Likewise.
20807         (symtab_node::dump_references): Likewise.
20808         (symtab_node::dump_referring): Likewise.
20809         (symtab_node::dump_base): Likewise.
20810         (symtab_node::debug_symtab): Likewise.
20811         * tree-sra.c (convert_callers_for_node): Likewise.
20812         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
20813         * value-prof.c (init_node_map): Likewise.
20815 2017-05-23  Martin Liska  <mliska@suse.cz>
20817         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
20818         and symtab_node::debug_symtab to symbol_table::debug.
20819         * cgraphunit.c (analyze_functions): Use the renamed function.
20820         (symbol_table::compile): Likewise.
20821         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
20822         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
20823         * passes.c (execute_todo): Likewise.
20824         * symtab.c (symbol_table::dump): New function.
20825         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
20827 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
20829         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
20830         that nonconst implies exec.
20832 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
20834         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
20835         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
20836         (inline_edge_summary_vec): Turn into ...
20837         (ipa_call_summaries): ... this one.
20838         (redirect_to_unreachable, edge_set_predicate,
20839         evaluate_properties_for_edge, inline_summary_alloc,
20840         reset_ipa_call_summary, reset_inline_summary,
20841         inline_summary_t::duplicate): Update.
20842         (inline_edge_duplication_hook): Turn to ...
20843         (ipa_call_summary_t::duplicate): ... this one.
20844         (inline_edge_removal_hook): Turn to ...
20845         (ipa_call_summary_t::remove): ... this one.
20846         (dump_inline_edge_summary): Turn to ...
20847         (dump_ipa_call_summary): ... this one.
20848         (estimate_function_body_sizes): Update.
20849         (inline_update_callee_summaries): Update.
20850         (remap_edge_change_prob): Update.
20851         (remap_edge_summaries): Update.
20852         (inline_merge_summary): Update.
20853         (do_estimate_edge_time): Update.
20854         (inline_generate_summary): Update.
20855         (inline_read_section): Update.
20856         (inline_read_summary): Update.
20857         (inline_free_summary): Update.
20858         * ipa-inline.c (can_inline_edge_p): Update.
20859         (compute_inlined_call_time): Update.
20860         (want_inline_small_function_p): Update.
20861         (edge_badness): Update.
20862         (early_inliner): Update.
20863         * ipa-inline.h (inline_edge_summary): Turn to ...
20864         (ipa_call_summary): ... this one.
20865         (ipa_call_summary_t): New class.
20866         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
20867         (ipa_call_summaries): New.
20868         (inline_edge_summary): Remove.
20869         (estimate_edge_growth): Update.
20870         * ipa-profile.c (ipa_propagate_frequency_1): Update.
20871         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
20872         * ipa-split.c (execute_split_functions): Update.
20873         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
20875 2017-05-23  Tom de Vries  <tom@codesourcery.com>
20877         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
20878         attributes): Document rdrand effective target.
20880 2017-05-23  Tom de Vries  <tom@codesourcery.com>
20882         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
20883         attributes): Sort alphabetically.
20885 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
20887         * config/avr/genmultilib.awk: Use gsub instead of gensub.
20889 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
20891         PR target/80718
20892         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
20893         V2DF/V2DI splat into two separate patterns, one that handles
20894         registers, and the other that only handles memory.  Drop support
20895         for splatting from a GPR on ISA 2.07 and then splitting the
20896         splat into direct move and splat.
20897         (vsx_splat_<mode>_reg): Likewise.
20898         (vsx_splat_<mode>_mem): Likewise.
20900 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
20902         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
20904 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
20906         PR middle-end/80809
20907         * omp-low.c (finish_taskreg_remap): New function.
20908         (finish_taskreg_scan): If unit size of ctx->record_type
20909         is non-constant, unshare the size expression and replace
20910         decls in it with possible outer var refs.
20912         PR middle-end/80809
20913         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
20914         GOVD_SHARED rather than GOVD_PRIVATE with it.
20915         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
20916         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
20918         PR middle-end/80853
20919         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
20920         as last argument to build_outer_var_ref for pointer bases of array
20921         section reductions.
20923 2017-05-19  Martin Sebor  <msebor@redhat.com>
20925         * print-tree.c (print_node): Print DECL_READ_P flag.
20927 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
20929         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
20930         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
20931         * cgraph.c: Likewise.
20932         * cgraphunit.c: Likewise.
20933         * gengtype.c: Likewise.
20934         * ipa-cp.c: Likewise.
20935         * ipa-devirt.c: Likewise.
20936         * ipa-icf.c: Likewise.
20937         * ipa-predicate.c: Likewise.
20938         * ipa-profile.c: Likewise.
20939         * ipa-prop.c: Likewise.
20940         * ipa-split.c: Likewise.
20941         * ipa.c: Likewise.
20942         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
20943         edge_predicate_pool, dump_inline_hints,
20944         inline_summary::account_size_time, redirect_to_unreachable,
20945         edge_set_predicate, set_hint_predicate,
20946         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
20947         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
20948         inline_summary_t::remove, remap_hint_predicate_after_duplication,
20949         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
20950         ipa_call_summary_t::remove, initialize_growth_caches,
20951         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
20952         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
20953         mark_modified, unmodified_parm_1, unmodified_parm,
20954         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
20955         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
20956         compute_bb_predicates, will_be_nonconstant_expr_predicate,
20957         will_be_nonconstant_predicate, record_modified_bb_info,
20958         get_minimal_bb, record_modified, param_change_prob,
20959         phi_result_unknown_predicate, predicate_for_phi_result,
20960         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
20961         estimate_function_body_sizes, compute_inline_parameters,
20962         compute_inline_parameters_for_curren, pass_data_inline_parameters,
20963         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
20964         inline_update_callee_summaries, remap_edge_change_prob,
20965         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
20966         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
20967         inline_analyze_function, inline_summary_t::insert,
20968         inline_generate_summary, read_ipa_call_summary, inline_read_section,
20969         inline_read_summary, write_ipa_call_summary, inline_write_summary,
20970         inline_free_summary): Move to ipa-fnsummary.h
20971         (predicate_t): Remove.
20972         * ipa-fnsummary.c: New file.
20973         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
20974         (enum inline_hints_vals, inline_hints, agg_position_info,
20975         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
20976         inline_summaries, ipa_call_summary, ipa_call_summary_t,
20977         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
20978         dump_inline_summary, dump_inline_hints, inline_generate_summary,
20979         inline_read_summary, inline_write_summary, inline_free_summary,
20980         inline_analyze_function, initialize_inline_failed,
20981         inline_merge_summary, inline_update_overall_summary,
20982         compute_inline_parameters): Move to ipa-fnsummary.h
20983         * ipa-fnsummary.h: New file.
20984         * ipa-inline-transform.h: Include ipa-inline.h.
20985         * ipa-inline.c: LIkewise.
20987 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
20989         * ipa-inline.c (edge_badness): Use inlined_time instead of
20990         inline_summaries->get.
20992 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
20994         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
20996 2017-05-22  Nathan Sidwell  <nathan@acm.org>
20998         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
20999         (fdump-lang): Document 'raw' option.
21000         * dumpfile.h (TDI_tu): Delete.
21001         * dumpfile.c (dump_files): Remove translation-unit.
21002         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
21004 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
21006         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
21007         command option from $(AWK) call.
21008         * config/avr/genmultilib.awk: Simplify and rewrite so that it
21009         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
21010         [FORMAT]: Remove handling of variable.
21011         * config/avr/t-multilib: Regenerate.
21013 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
21015         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
21016         self_time.
21017         (dump_inline_summary): Do not print self_time.
21018         (estimate_function_body_sizes): Do not set self_time.
21019         (compute_inline_parameters): Likewise.
21020         (inline_read_section, inline_write_summary): Do not stream self_time.
21021         * ipa-inline.h (inline_summary): Drop self_time.
21023 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
21025         * ipa-inline-analysis.c (account_size_time): Rename to ...
21026         (inline_summary::account_size_time): ... this one.
21027         (reset_ipa_call_summary): Turn to ...
21028         (ipa_call_summary::reset): ... this one.
21029         (reset_inline_summary): Turn to ...
21030         (inline_summary::reset): ... this one.
21031         (inline_summary_t::remove): Update.
21032         (inline_summary_t::duplicate): Update.
21033         (ipa_call_summary_t::remove): Update.
21034         (dump_inline_summary): Update.
21035         (estimate_function_body_sizes): Update.
21036         (compute_inline_parameters): Update.
21037         (estimate_node_size_and_time): Update.
21038         (inline_merge_summary): Update.
21039         (inline_update_overall_summary): Update.
21040         (inline_read_section): Update.
21041         (inline_write_summary): Update.
21042         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
21043         add account_size_time and reset member functions.
21044         (ipa_call_summary): Add reset function.
21045         * ipa-predicate.h (predicate::operator &): Constify.
21047 2017-05-22  Richard Biener  <rguenther@suse.de>
21049         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
21051 2017-05-19  Jason Merrill  <jason@redhat.com>
21053         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
21055 2017-05-19  Marek Polacek  <polacek@redhat.com>
21057         PR sanitizer/80800
21058         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
21059         TYPE_OVERFLOW_WRAPS checks.
21061 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
21063         * tree-core.h (enum omp_clause_default_kind): Add
21064         "OMP_CLAUSE_DEFAULT_PRESENT".
21065         * tree-pretty-print.c (dump_omp_clause): Handle it.
21066         * gimplify.c (enum gimplify_omp_var_data): Add
21067         "GOVD_MAP_FORCE_PRESENT".
21068         (gimplify_adjust_omp_clauses_1): Map it to
21069         "GOMP_MAP_FORCE_PRESENT".
21070         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
21072         * gimplify.c (oacc_default_clause): Clarify.
21074 2017-05-19  Nathan Sidwell  <nathan@acm.org>
21076         LANG_HOOK_REGISTER_DUMPS
21077         * toplev.c (general_init): Call register dump lang hook.
21078         * doc/invoke.texi: Document -fdump-lang option family.
21079         * dumpfile.c (dump_files): Remove class dump here.
21080         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
21081         * dumpfile.h (tree_dump_index): Remove TDI_class.
21082         * langhooks-def.h (lhd_register_dumps): Declare.
21083         (LANG_HOOKS_REGISTER_DUMPS): Define.
21084         (LANG_HOOKS_INITIALIZER): Add it.
21085         * langhooks.c (lhd_register_dumps): Define.
21086         * langhooks.h (struct lang_hooks): Add register_dumps.
21088 2017-05-19  Nathan Sidwell  <nathan@acm.org>
21090         * context.h (context::set_passes): New.
21091         * context.c (context::context): Do not create pass manager.
21092         * toplev.c (general_init): Create pass manager here.
21094 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
21096         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
21097         use this splitter if two add or or instructions would also work for
21098         the constant we want to generate.
21100 2017-05-19  Richard Biener  <rguenther@suse.de>
21102         PR build/80821
21103         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
21104         predicate evaluation.
21106 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
21108         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
21109         add ctor.
21110         * ipa-inline.c (want_inline_small_function_p): Do not cast to
21111         unsigned.
21113 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
21115         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
21116         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
21117         (inline_edge_summary_vec): Turn into ...
21118         (ipa_call_summaries): ... this one.
21119         (redirect_to_unreachable, edge_set_predicate,
21120         evaluate_properties_for_edge, inline_summary_alloc,
21121         reset_ipa_call_summary, reset_inline_summary,
21122         inline_summary_t::duplicate): Update.
21123         (inline_edge_duplication_hook): Turn to ...
21124         (ipa_call_summary_t::duplicate): ... this one.
21125         (inline_edge_removal_hook): Turn to ...
21126         (ipa_call_summary_t::remove): ... this one.
21127         (dump_inline_edge_summary): Turn to ...
21128         (dump_ipa_call_summary): ... this one.
21129         (estimate_function_body_sizes): Update.
21130         (inline_update_callee_summaries): Update.
21131         (remap_edge_change_prob): Update.
21132         (remap_edge_summaries): Update.
21133         (inline_merge_summary): Update.
21134         (do_estimate_edge_time): Update.
21135         (inline_generate_summary): Update.
21136         (inline_read_section): Update.
21137         (inline_read_summary): Update.
21138         (inline_free_summary): Update.
21139         * ipa-inline.c (can_inline_edge_p): Update.
21140         (compute_inlined_call_time): Update.
21141         (want_inline_small_function_p): Update.
21142         (edge_badness): Update.
21143         (early_inliner): Update.
21144         * ipa-inline.h (inline_edge_summary): Turn to ...
21145         (ipa_call_summary): ... this one.
21146         (ipa_call_summary_t): New class.
21147         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
21148         (ipa_call_summaries): New.
21149         (inline_edge_summary): Remove.
21150         (estimate_edge_growth): Update.
21151         * ipa-profile.c (ipa_propagate_frequency_1): Update.
21152         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
21153         * ipa-split.c (execute_split_functions): Update.
21154         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
21156 2017-05-19  Richard Biener  <rguenther@suse.de>
21158         PR middle-end/80764
21159         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
21161 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
21163         * config/rs6000/rs6000.c (struct machine_function): Add field
21164         fpr_is_wrapped_separately.
21165         (rs6000_get_separate_components): Use 64 components.  Handle the
21166         new FPR components.
21167         (rs6000_components_for_bb): Handle the FPR components.
21168         (rs6000_emit_prologue_components): Handle the FPR components.
21169         (rs6000_emit_epilogue_components): Handle the FPR components.
21170         (rs6000_set_handled_components): Handle the FPR components.
21171         (rs6000_emit_prologue): Don't output prologue code for those FPRs
21172         that are already separately shrink-wrapped.
21173         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
21174         that are already separately shrink-wrapped.
21176 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
21178         PR target/80510
21179         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
21180         New predicate.
21182         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
21183         (define_peephole2 for Altivec d-form load): Add peepholes to catch
21184         cases where the register allocator uses a move and an offsettable
21185         memory operation to/from a FPR register on ISA 2.06/2.07.
21186         (define_peephole2 for Altivec d-form store): Likewise.
21188 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
21190         PR target/80799
21191         * config/i386/mmx.md (*mov<mode>_internal): Enable
21192         alternatives 11, 12, 13 and 14 also for 32bit targets.
21193         Remove alternatives 15, 16, 17 and 18.
21194         * config/i386/sse.md (vec_concatv2di): Change
21195         alternative (!x, *y) to (x, ?!*Yn).
21197 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
21199         * dumpfile.h (enum dump_kind): Remove stray comma.
21201 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
21203         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
21204         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
21205         predicate::num_conditions
21206         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
21207         (CHANGED): turn into predicate::changed.
21208         (agg_position_info): Move to ipa-predicate.h
21209         (add_condition, predicate::add_clause, predicate::operator &=,
21210         predicate::or_with, predicate::evaluate, predicate::probability,
21211         dump_condition, dump_clause, predicate::dump,
21212         predicate::remap_after_duplication, predicate::remap_after_inlining,
21213         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
21214         (evaluate_conditions_for_known_args): Update.
21215         (set_cond_stmt_execution_predicate): Update.
21216         * ipa-inline.h: Include ipa-predicate.h
21217         (condition, inline_param_summary, conditions, agg_position_info,
21218         predicate): Move to ipa-predicate.h
21219         * ipa-predicate.c: New file.
21220         * ipa-predicate.h: New file.
21222 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
21224         * final.c (leaf_function_p): Check we are not in a sequence.
21226 2017-05-18  Martin Liska  <mliska@suse.cz>
21228         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
21229         * dumpfile.c (dump_register): Use new enum dump_kind.
21230         (get_dump_file_name): Likewise.
21231         (dump_enable_all): Likewise.
21232         (dump_switch_p_1): Likewise.
21233         (enable_rtl_dump_file): Remove usage of TDF_RTL.
21234         * dumpfile.h (enum dump_kind): New enum type.
21235         (struct dump_file_info): Create constructor and
21236         format fields and comments.
21237         * passes.c (pass_manager::register_one_dump_file):
21238         Use num dump_kind.
21239         * statistics.c (statistics_early_init): Likewise.
21240         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
21241         TDF_TREE with TDF_SLIM.
21242         (gather_memory_references_ref): Likewise.
21244 2017-05-18  Martin Liska  <mliska@suse.cz>
21246         * vec.h (struct vnull): Use it.
21248 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
21250         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
21251         (true_predicate, false_predicate, true_predicate_p,
21252         false_predicate_p): Remove.
21253         (single_cond_predicate, not_inlined_predicate): Turn to member function
21254         in ipa-inline.h
21255         (add_condition): Update.
21256         (add_clause): Turn to...
21257         (predicate::add_clause): ... this one; update; allow passing NULL
21258         as parameter.
21259         (and_predicates): Turn to ...
21260         (predicate::operator &=): ... this one.
21261         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
21262         (or_predicates): Turn to ...
21263         (predicate::or_with): ... this one.
21264         (evaluate_predicate): Turn to ...
21265         (predicate::evaluate): ... this one.
21266         (predicate_probability): Turn to ...
21267         (predicate::probability): ... this one.
21268         (dump_condition): Update.
21269         (dump_predicate): Turn to ...
21270         (predicate::dump): ... this one.
21271         (account_size_time): Update.
21272         (edge_set_predicate): Update.
21273         (set_hint_predicate): UPdate.
21274         (evaluate_conditions_for_known_args): Update.
21275         (evaluate_properties_for_edge): Update.
21276         (remap_predicate_after_duplication): Turn to...
21277         (predicate::remap_after_duplication): ... this one.
21278         (remap_hint_predicate_after_duplication): Update.
21279         (inline_summary_t::duplicate): UPdate.
21280         (dump_inline_edge_summary): Update.
21281         (dump_inline_summary): Update.
21282         (set_cond_stmt_execution_predicate): Update.
21283         (set_switch_stmt_execution_predicate): Update.
21284         (compute_bb_predicates): Update.
21285         (will_be_nonconstant_expr_predicate): Update.
21286         (will_be_nonconstant_predicate): Update.
21287         (phi_result_unknown_predicate): Update.
21288         (predicate_for_phi_result): Update.
21289         (array_index_predicate): Update.
21290         (estimate_function_body_sizes): Update.
21291         (estimate_node_size_and_time): Update.
21292         (estimate_ipcp_clone_size_and_time): Update.
21293         (remap_predicate): Rename to ...
21294         (predicate::remap_after_inlining): ... this one.
21295         (remap_hint_predicate): Update.
21296         (inline_merge_summary): Update.
21297         (inline_update_overall_summary): Update.
21298         (estimate_size_after_inlining): Update.
21299         (read_predicate): Rename to ...
21300         (predicate::stream_in): ... this one.
21301         (read_inline_edge_summary): Update.
21302         (write_predicate): Rename to ...
21303         (predicate::stream_out): ... this one.
21304         (write_inline_edge_summary): Update.
21305         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
21306         (clause_t): Turn to uint32_t
21307         (predicate): Turn to class; implement constructor and operators
21308         ==, !=, &
21309         (size_time_entry): Update.
21310         (inline_summary): Update.
21311         (inline_edge_summary): Update.
21313 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
21315         * fold-const.c (fold_binary_loc): Move transformation...
21316         * match.pd (C - X CMP X): ... here.
21318 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
21320         * config/sparc/sparc.c (sparc_option_override): Set function
21321         alignment for -mcpu=niagara7 to 64 to match the I$ line.
21322         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
21323         latency to 1.
21324         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
21325         latency to 2.
21326         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
21328 2017-05-18  Marek Polacek  <polacek@redhat.com>
21330         PR sanitizer/80797
21331         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
21332         (pass_ubsan::execute): Call gimple_assign_single_p instead of
21333         gimple_assign_load_p.
21335 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
21337         PR middle-end/80692
21338         * real.c (do_compare): Give decimal_do_compare preference over
21339         comparing just the signs.
21341 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
21343         * doc/md.texi (Canonicalization of Instructions): Describe the
21344         canonical form of instructions that inherently set a condition
21345         code register.
21347 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
21349         PR middle-end/80775
21350         * tree-cfg.c: Move deletion of unreachable case statements to after
21351         the merging of consecutive case labels.
21353 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21355         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
21356         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
21357         restoring of callee-saved registers.
21359 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
21361         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
21362         * config/visium/visium.c (single_set_and_flags): Likewise.
21363         * config/visium/visium.md (Substitutions): Likewise.
21365 2017-05-17  Martin Liska  <mliska@suse.cz>
21367         * cfg.c: Introduce dump_flags_t type and
21368         use it instead of int type.
21369         * cfg.h: Likewise.
21370         * cfghooks.c: Likewise.
21371         * cfghooks.h (struct cfg_hooks): Likewise.
21372         * cfgrtl.c: Likewise.
21373         * cfgrtl.h: Likewise.
21374         * cgraph.c (cgraph_node::get_body): Likewise.
21375         * coretypes.h: Likewise.
21376         * domwalk.c: Likewise.
21377         * domwalk.h: Likewise.
21378         * dumpfile.c (struct dump_option_value_info): Likewise.
21379         (dump_enable_all): Likewise.
21380         (dump_switch_p_1): Likewise.
21381         (opt_info_switch_p): Likewise.
21382         * dumpfile.h (enum tree_dump_index): Likewise.
21383         (struct dump_file_info): Likewise.
21384         * genemit.c: Likewise.
21385         * generic-match-head.c: Likewise.
21386         * gengtype.c (open_base_files): Likewise.
21387         * gimple-pretty-print.c: Likewise.
21388         * gimple-pretty-print.h: Likewise.
21389         * graph.c (print_graph_cfg): Likewise.
21390         * graphite-scop-detection.c (dot_all_sese): Likewise.
21391         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
21392         * loop-unroll.c (report_unroll): Likewise.
21393         * passes.c (pass_manager::register_one_dump_file): Likewise.
21394         * print-tree.c: Likewise.
21395         * statistics.c: Likewise.
21396         * tree-cfg.c: Likewise.
21397         * tree-cfg.h: Likewise.
21398         * tree-dfa.c: Likewise.
21399         * tree-dfa.h: Likewise.
21400         * tree-dump.c (dump_function): Likewise.
21401         * tree-dump.h (struct dump_info): Likewise.
21402         * tree-pretty-print.c: Likewise.
21403         * tree-pretty-print.h: Likewise.
21404         * tree-ssa-live.c: Likewise.
21405         * tree-ssa-live.h: Likewise.
21406         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
21407         * tree-vect-loop.c: Likewise.
21408         * tree-vect-slp.c: Likewise.
21410 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
21411             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21413         PR tree-optimization/80457
21414         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
21415         of all arguments to a statement as scalar_to_vec operations.
21416         (vectorizable_call): Adjust call to vect_model_simple_cost for
21417         new parameter.
21418         (vectorizable_conversion): Likewise.
21419         (vectorizable_assignment): Likewise.
21420         (vectorizable_shift): Likewise.
21421         (vectorizable_operation): Likewise.
21422         (vectorizable_comparison): Likewise.
21423         (vect_is_simple_cond): Record the def types for operands.
21424         (vectorizable_condition): Likewise, call vect_model_simple_cost.
21425         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
21426         for statement argument count.
21428 2017-05-16  Carl Love  <cel@us.ibm.com>
21430         * config/rs6000/rs6000-c: Add support for built-in functions
21431         vector unsigned long long vec_bperm (vector unsigned long long,
21432                                              vector unsigned char)
21433         vector signed long long vec_mule (vector signed int,
21434                                           vector signed int)
21435         vector unsigned long long vec_mule (vector unsigned int,
21436                                             vector unsigned int)
21437         vector signed long long vec_mulo (vector signed int,
21438                                           vector signed int)
21439         vector unsigned long long vec_mulo (vector unsigned int,
21440                                             vector unsigned int)
21441         vector signed char vec_sldw (vector signed char,
21442                                      vector signed char,
21443                                      const int)
21444         vector unsigned char vec_sldw (vector unsigned char,
21445                                        vector unsigned char,
21446                                        const int)
21447         vector signed short vec_sldw (vector signed short,
21448                                       vector signed short,
21449                                       const int)
21450         vector unsigned short vec_sldw (vector unsigned short,
21451                                         vector unsigned short,
21452                                         const int)
21453         vector signed int vec_sldw (vector signed int,
21454                                     vector signed int,
21455                                     const int)
21456         vector unsigned int vec_sldw (vector unsigned int,
21457                                       vector unsigned int,
21458                                       const int)
21459         vector signed long long vec_sldw (vector signed long long,
21460                                           vector signed long long,
21461                                           const int)
21462         vector unsigned long long vec_sldw (vector unsigned long long,
21463                                             vector unsigned long long,
21464                                             const int)
21465         * config/rs6000/rs6000-c: Add support for built-in functions
21466         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
21467         * config/rs6000/altivec.h: Add defintion for vec_sldw.
21468         * doc/extend.texi: Update the built-in documentation for the
21469         new built-in functions.
21471 2017-05-16  Marek Polacek  <polacek@redhat.com>
21473         PR sanitizer/80536
21474         PR sanitizer/80386
21475         * tree.c (save_expr): Don't fold the expression.
21477 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
21479         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
21480         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
21481         and (?*y,m).  Update insn attributes.
21483 2017-05-16  Martin Liska  <mliska@suse.cz>
21485         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
21486         flags argument of print_gimple_stmt, print_gimple_expr,
21487         print_generic_stmt and print_generic_expr.
21488         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
21489         * coretypes.h: Likewise.
21490         * except.c (dump_eh_tree): Likewise.
21491         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
21492         * gimple-pretty-print.h: Likewise.
21493         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
21494         (backprop::push_to_worklist): Likewise.
21495         (backprop::pop_from_worklist): Likewise.
21496         (backprop::process_use): Likewise.
21497         (backprop::intersect_uses): Likewise.
21498         (note_replacement): Likewise.
21499         * gimple-ssa-store-merging.c
21500         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
21501         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
21502         (pass_store_merging::execute): Likewise.
21503         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
21504         (ssa_base_cand_dump_callback): Likewise.
21505         (dump_incr_vec): Likewise.
21506         (replace_refs): Likewise.
21507         (replace_mult_candidate): Likewise.
21508         (create_add_on_incoming_edge): Likewise.
21509         (create_phi_basis): Likewise.
21510         (insert_initializers): Likewise.
21511         (all_phi_incrs_profitable): Likewise.
21512         (introduce_cast_before_cand): Likewise.
21513         (replace_one_candidate): Likewise.
21514         * gimplify.c (gimplify_expr): Likewise.
21515         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
21516         (set_rename): Likewise.
21517         (rename_uses): Likewise.
21518         (copy_loop_phi_nodes): Likewise.
21519         (add_close_phis_to_merge_points): Likewise.
21520         (copy_loop_close_phi_args): Likewise.
21521         (copy_cond_phi_args): Likewise.
21522         (graphite_copy_stmts_from_block): Likewise.
21523         (translate_pending_phi_nodes): Likewise.
21524         * graphite-poly.c (print_pdr): Likewise.
21525         (dump_gbb_cases): Likewise.
21526         (dump_gbb_conditions): Likewise.
21527         (print_scop_params): Likewise.
21528         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
21529         (build_cross_bb_scalars_use): Likewise.
21530         (gather_bbs::before_dom_children): Likewise.
21531         * hsa-dump.c (dump_hsa_immed): Likewise.
21532         * ipa-cp.c (print_ipcp_constant_value): Likewise.
21533         (get_replacement_map): Likewise.
21534         * ipa-inline-analysis.c (dump_condition): Likewise.
21535         (estimate_function_body_sizes): Likewise.
21536         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
21537         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
21538         * ipa-prop.c (ipa_dump_param): Likewise.
21539         (ipa_print_node_jump_functions_for_edge): Likewise.
21540         (ipa_modify_call_arguments): Likewise.
21541         (ipa_modify_expr): Likewise.
21542         (ipa_dump_param_adjustments): Likewise.
21543         (ipa_dump_agg_replacement_values): Likewise.
21544         (ipcp_modif_dom_walker::before_dom_children): Likewise.
21545         * ipa-pure-const.c (check_stmt): Likewise.
21546         (pass_nothrow::execute): Likewise.
21547         * ipa-split.c (execute_split_functions): Likewise.
21548         * omp-offload.c (dump_oacc_loop_part): Likewise.
21549         (dump_oacc_loop): Likewise.
21550         * trans-mem.c (tm_log_emit): Likewise.
21551         (tm_memopt_accumulate_memops): Likewise.
21552         (dump_tm_memopt_set): Likewise.
21553         (dump_tm_memopt_transform): Likewise.
21554         * tree-cfg.c (gimple_verify_flow_info): Likewise.
21555         (print_loop): Likewise.
21556         * tree-chkp-opt.c (chkp_print_addr): Likewise.
21557         (chkp_gather_checks_info): Likewise.
21558         (chkp_get_check_result): Likewise.
21559         (chkp_remove_check_if_pass): Likewise.
21560         (chkp_use_outer_bounds_if_possible): Likewise.
21561         (chkp_reduce_bounds_lifetime): Likewise.
21562         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
21563         (chkp_mark_completed_bounds): Likewise.
21564         (chkp_register_incomplete_bounds): Likewise.
21565         (chkp_mark_invalid_bounds): Likewise.
21566         (chkp_maybe_copy_and_register_bounds): Likewise.
21567         (chkp_build_returned_bound): Likewise.
21568         (chkp_get_bound_for_parm): Likewise.
21569         (chkp_build_bndldx): Likewise.
21570         (chkp_get_bounds_by_definition): Likewise.
21571         (chkp_generate_extern_var_bounds): Likewise.
21572         (chkp_get_bounds_for_decl_addr): Likewise.
21573         * tree-chrec.c (chrec_apply): Likewise.
21574         * tree-data-ref.c (dump_data_reference): Likewise.
21575         (dump_subscript): Likewise.
21576         (dump_data_dependence_relation): Likewise.
21577         (analyze_overlapping_iterations): Likewise.
21578         * tree-inline.c (expand_call_inline): Likewise.
21579         (tree_function_versioning): Likewise.
21580         * tree-into-ssa.c (dump_defs_stack): Likewise.
21581         (dump_currdefs): Likewise.
21582         (dump_names_replaced_by): Likewise.
21583         (dump_update_ssa): Likewise.
21584         (update_ssa): Likewise.
21585         * tree-object-size.c (pass_object_sizes::execute): Likewise.
21586         * tree-parloops.c (build_new_reduction): Likewise.
21587         (try_create_reduction_list): Likewise.
21588         (ref_conflicts_with_region): Likewise.
21589         (oacc_entry_exit_ok_1): Likewise.
21590         (oacc_entry_exit_single_gang): Likewise.
21591         * tree-pretty-print.h: Likewise.
21592         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
21593         (get_scalar_evolution): Likewise.
21594         (add_to_evolution): Likewise.
21595         (get_loop_exit_condition): Likewise.
21596         (analyze_evolution_in_loop): Likewise.
21597         (analyze_initial_condition): Likewise.
21598         (analyze_scalar_evolution): Likewise.
21599         (instantiate_scev): Likewise.
21600         (number_of_latch_executions): Likewise.
21601         (gather_chrec_stats): Likewise.
21602         (final_value_replacement_loop): Likewise.
21603         (scev_const_prop): Likewise.
21604         * tree-sra.c (dump_access): Likewise.
21605         (disqualify_candidate): Likewise.
21606         (create_access): Likewise.
21607         (reject): Likewise.
21608         (maybe_add_sra_candidate): Likewise.
21609         (create_access_replacement): Likewise.
21610         (analyze_access_subtree): Likewise.
21611         (analyze_all_variable_accesses): Likewise.
21612         (sra_modify_assign): Likewise.
21613         (initialize_constant_pool_replacements): Likewise.
21614         (find_param_candidates): Likewise.
21615         (decide_one_param_reduction): Likewise.
21616         (replace_removed_params_ssa_names): Likewise.
21617         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
21618         * tree-ssa-copy.c (dump_copy_of): Likewise.
21619         (copy_prop_visit_cond_stmt): Likewise.
21620         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
21621         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
21622         (record_equivalences_from_stmt): Likewise.
21623         * tree-ssa-dse.c (compute_trims): Likewise.
21624         (delete_dead_call): Likewise.
21625         (delete_dead_assignment): Likewise.
21626         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
21627         (forward_propagate_into_cond): Likewise.
21628         (pass_forwprop::execute): Likewise.
21629         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21630         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
21631         Likewise.
21632         (move_computations_worker): Likewise.
21633         (execute_sm): Likewise.
21634         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
21635         (remove_exits_and_undefined_stmts): Likewise.
21636         (remove_redundant_iv_tests): Likewise.
21637         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
21638         (adjust_iv_update_pos): Likewise.
21639         * tree-ssa-math-opts.c (bswap_replace): Likewise.
21640         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
21641         (value_replacement): Likewise.
21642         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
21643         * tree-ssa-pre.c (print_pre_expr): Likewise.
21644         (get_representative_for): Likewise.
21645         (create_expression_by_pieces): Likewise.
21646         (insert_into_preds_of_block): Likewise.
21647         (eliminate_insert): Likewise.
21648         (eliminate_dom_walker::before_dom_children): Likewise.
21649         (eliminate): Likewise.
21650         (remove_dead_inserted_code): Likewise.
21651         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
21652         * tree-ssa-reassoc.c (get_rank): Likewise.
21653         (eliminate_duplicate_pair): Likewise.
21654         (eliminate_plus_minus_pair): Likewise.
21655         (eliminate_not_pairs): Likewise.
21656         (undistribute_ops_list): Likewise.
21657         (eliminate_redundant_comparison): Likewise.
21658         (update_range_test): Likewise.
21659         (optimize_range_tests_var_bound): Likewise.
21660         (optimize_vec_cond_expr): Likewise.
21661         (rewrite_expr_tree): Likewise.
21662         (rewrite_expr_tree_parallel): Likewise.
21663         (linearize_expr): Likewise.
21664         (break_up_subtract): Likewise.
21665         (linearize_expr_tree): Likewise.
21666         (attempt_builtin_powi): Likewise.
21667         (attempt_builtin_copysign): Likewise.
21668         (transform_stmt_to_copy): Likewise.
21669         (transform_stmt_to_multiply): Likewise.
21670         (dump_ops_vector): Likewise.
21671         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
21672         (print_scc): Likewise.
21673         (set_ssa_val_to): Likewise.
21674         (visit_reference_op_store): Likewise.
21675         (visit_use): Likewise.
21676         (sccvn_dom_walker::before_dom_children): Likewise.
21677         (run_scc_vn): Likewise.
21678         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
21679         Likewise.
21680         (expr_hash_elt::print): Likewise.
21681         (const_and_copies::pop_to_marker): Likewise.
21682         (const_and_copies::record_const_or_copy_raw): Likewise.
21683         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
21684         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
21685         (dump_predicates): Likewise.
21686         (find_uninit_use): Likewise.
21687         (warn_uninitialized_phi): Likewise.
21688         (pass_late_warn_uninitialized::execute): Likewise.
21689         * tree-ssa.c (verify_vssa): Likewise.
21690         (verify_ssa): Likewise.
21691         (maybe_optimize_var): Likewise.
21692         * tree-vrp.c (dump_value_range): Likewise.
21693         (dump_all_value_ranges): Likewise.
21694         (dump_asserts_for): Likewise.
21695         (register_edge_assert_for_2): Likewise.
21696         (vrp_visit_cond_stmt): Likewise.
21697         (vrp_visit_switch_stmt): Likewise.
21698         (vrp_visit_stmt): Likewise.
21699         (vrp_visit_phi_node): Likewise.
21700         (simplify_cond_using_ranges_1): Likewise.
21701         (fold_predicate_in): Likewise.
21702         (evrp_dom_walker::before_dom_children): Likewise.
21703         (evrp_dom_walker::push_value_range): Likewise.
21704         (evrp_dom_walker::pop_value_range): Likewise.
21705         (execute_early_vrp): Likewise.
21707 2017-05-16  Richard Biener  <rguenther@suse.de>
21709         * dwarf2out.c (loc_list_from_tree_1): Do not create
21710         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
21712 2017-05-16  Richard Biener  <rguenther@suse.de>
21714         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
21715         just generated.
21716         (note_variable_value_in_expr): If we resolved the decl ref
21717         do not push to the stack.
21719 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
21721         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
21722         operations in fast-math mode.
21723         (vaddq_f16): Likewise.
21724         (vmul_f16): Likewise.
21725         (vmulq_f16): Likewise.
21726         (vsub_f16): Likewise.
21727         (vsubq_f16): Likewise.
21728         * config/arm/neon.md (add<mode>3): New.
21729         (sub<mode>3): New.
21730         (fma:<VH:mode>3): New.  Also remove outdated comment.
21731         (mul<mode>3): New.
21733 2017-05-16  Martin Liska  <mliska@suse.cz>
21735         PR ipa/79849.
21736         PR ipa/79850.
21737         * ipa-devirt.c (warn_types_mismatch): Fix typo.
21738         (odr_types_equivalent_p): Likewise.
21740 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
21742         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
21744 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
21746         PR target/80425
21747         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
21748         non-interunit SSE move alternatives with '?'.
21749         (zero-extendsidi peephole2): New peephole to skip intermediate
21750         general register in SSE zero-extend sequence.
21752 2017-05-15  Jeff Law  <law@redhat.com>
21754         * reorg.c (relax_delay_slots): Create a new variable to hold
21755         the temporary target rather than clobbering TARGET_LABEL.
21757         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
21758         missing argument to extract_bit_field call.
21759         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
21761 2017-05-15  Martin Liska  <mliska@suse.cz>
21763         PR driver/31468
21764         * gcc.c (process_command): Do not allow empty argument of -o option.
21766 2017-05-15  Renlin Li  <renlin.li@arm.com>
21768         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
21769         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
21770         * config/aarch64/constraints.md (Usf): Add long call check.
21771         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
21772         (call_value): Likewise.
21773         (sibcall): Likewise.
21774         (sibcall_value): Likewise.
21775         (call_insn): New.
21776         (call_value_insn): New.
21777         (sibcall_insn): Update rtx pattern.
21778         (sibcall_value_insn): Likewise.
21779         (call_internal): Remove.
21780         (call_value_internal): Likewise.
21781         (sibcall_internal): Likewise.
21782         (sibcall_value_internal): Likewise.
21783         (call_reg): Likewise.
21784         (call_symbol): Likewise.
21785         (call_value_reg): Likewise.
21786         (call_value_symbol): Likewise.
21788 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
21790         PR target/80600
21791         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
21793 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
21795         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
21796         compatible with CCGOCmode and with CCZmode.
21798 2017-05-14  Martin Sebor  <msebor@redhat.com>
21800         PR middle-end/77671
21801         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
21802         (gimple_fold_builtin_snprintf): Same.
21803         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
21804         (gimple_fold_builtin_snprintf): Same.
21805         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
21806         of character types.
21807         (is_call_safe): New function.
21808         (try_substitute_return_value): Call it.
21809         (try_simplify_call): New function.
21810         (pass_sprintf_length::handle_gimple_call): Call it.
21812 2017-05-14  Martin Sebor  <msebor@redhat.com>
21814         PR middle-end/80669
21815         * builtins.c (expand_builtin_stpncpy): Simplify.
21817 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
21819         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
21820         * config/i386/i386.h
21821         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
21822         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
21823         (struct machine_function): Add new members call_ms2sysv,
21824         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
21825         (struct machine_frame_state): New fields sp_realigned and
21826         sp_realigned_offset.
21827         * config/i386/i386.c
21828         (enum xlogue_stub): New enum.
21829         (enum xlogue_stub_sets): New enum.
21830         (class xlogue_layout): New class.
21831         (struct ix86_frame): New fields stack_realign_allocate_offset,
21832         stack_realign_offset and outlined_save_offset.  Modify comments to
21833         detail stack layout when using out-of-line stubs.
21834         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
21835         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
21836         -mcall-ms2sysv-xlogues.
21837         (stub_managed_regs): New static variable.
21838         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
21839         registers managed by out-of-line stub.
21840         (disable_call_ms2sysv_xlogues): New function.
21841         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
21842         m->call_ms2sysv when appropriate and compute frame layout for
21843         out-of-line stubs.
21844         (sp_valid_at, fp_valid_at): New inline functions.
21845         (choose_basereg): New function.
21846         (choose_baseaddr): Add align parameter, use choose_basereg and modify
21847         all callers.
21848         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
21849         Use align parameter of choose_baseaddr to generated aligned SSE movs
21850         when possible.
21851         (pro_epilogue_adjust_stack): Modify to track
21852         machine_frame_state::sp_realigned.
21853         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
21854         (ix86_nsaved_sseregs): Likewise.
21855         (ix86_emit_save_regs): Likewise.
21856         (ix86_emit_save_regs_using_mov): Likewise.
21857         (ix86_emit_save_sse_regs_using_mov): Likewise.
21858         (get_scratch_register_on_entry): Likewise.
21859         (gen_frame_set): New function.
21860         (gen_frame_load): Likewise.
21861         (gen_frame_store): Likewise.
21862         (emit_outlined_ms2sysv_save): Likewise.
21863         (emit_outlined_ms2sysv_restore): Likewise.
21864         (ix86_expand_prologue): Modify stack re-alignment code and call
21865         emit_outlined_ms2sysv_save when appropriate.
21866         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
21867         parameter rtx_insn *insn, which allows the function to be used to only
21868         generate the notes.
21869         (ix86_expand_epilogue): Modify validity checks of frame and stack
21870         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
21871         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
21872         * config/i386/predicates.md
21873         (save_multiple): New predicate.
21874         (restore_multiple): Likewise.
21875         * config/i386/sse.md
21876         (save_multiple<mode>): New pattern.
21877         (save_multiple_realign<mode>): Likewise.
21878         (restore_multiple<mode>): Likewise.
21879         (restore_multiple_and_return<mode>): Likewise.
21880         (restore_multiple_leave_return<mode>): Likewise.
21881         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
21883 2017-05-14  Julia Koval  <julia.koval@intel.com>
21885         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
21886         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
21887         (__builtin_ia32_xsetbv): New builtins.
21888         * config/i386/i386.c (ix86_expand_special_args_builtin):
21889         Process new types.
21890         (ix86_expand_builtin): Special expand for new intrinsics.
21891         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
21892         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
21893         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
21895 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21897         * cfganal.c (inverted_post_order_compute): Change argument type
21898         to vec *.
21899         * cfganal.h (inverted_post_order_compute): Adjust prototype.
21900         * df-core.c (rest_of_handle_df_initialize): Adjust.
21901         (rest_of_handle_df_finish): Likewise.
21902         (df_analyze_1): Likewise.
21903         (df_analyze): Likewise.
21904         (loop_inverted_post_order_compute): Change argument to be a vec *.
21905         (df_analyze_loop): Adjust.
21906         (df_get_n_blocks): Likewise.
21907         (df_get_postorder): Likewise.
21908         * df.h (struct df_d): Change field to be a vec.
21909         * lcm.c (compute_laterin): Adjust.
21910         (compute_available): Likewise.
21911         * lra-lives.c (lra_create_live_ranges_1): Likewise.
21912         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
21913         * tree-ssa-pre.c (compute_antic): Likewise.
21915 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21917         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
21918         (depth_first_search::depth_first_search): Change structure init
21919         function to this constructor.
21920         (depth_first_search::add_bb): Rename function to this member.
21921         (depth_first_search::execute): Likewise.
21922         (flow_dfs_compute_reverse_finish): Adjust.
21924 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21926         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
21927         (longest_simple_path): Likewise.
21928         * shrink-wrap.c (spread_components): Likewise.
21929         (disqualify_problematic_components): Likewise.
21930         (emit_common_heads_for_components): Likewise.
21931         (emit_common_tails_for_components): Likewise.
21932         (insert_prologue_epilogue_for_components): Likewise.
21934 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21936         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
21937         auto_sbitmap.
21939 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21941         * df-core.c (df_set_blocks): Start using auto_bitmap.
21942         (df_compact_blocks): Likewise.
21943         * df-problems.c (df_rd_confluence_n): Likewise.
21944         * df-scan.c (df_insn_rescan_all): Likewise.
21945         (df_process_deferred_rescans): Likewise.
21946         (df_update_entry_block_defs): Likewise.
21947         (df_update_exit_block_uses): Likewise.
21948         (df_entry_block_bitmap_verify): Likewise.
21949         (df_exit_block_bitmap_verify): Likewise.
21950         (df_scan_verify): Likewise.
21951         * lra-constraints.c (lra_constraints): Likewise.
21952         (undo_optional_reloads): Likewise.
21953         (lra_undo_inheritance): Likewise.
21954         * lra-remat.c (calculate_gen_cands): Likewise.
21955         (do_remat): Likewise.
21956         * lra-spills.c (assign_spill_hard_regs): Likewise.
21957         (spill_pseudos): Likewise.
21958         * tree-ssa-pre.c (bitmap_set_and): Likewise.
21959         (bitmap_set_subtract_values): Likewise.
21961 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21963         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
21964         management with auto_bitmap.
21965         (fix_inter_tick): Likewise.
21966         (fix_recovery_deps): Likewise.
21967         * ira.c (add_store_equivs): Likewise.
21968         (find_moveable_pseudos): Likewise.
21969         (split_live_ranges_for_shrink_wrap): Likewise.
21970         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
21971         (rtx_reuse_manager::seen_def_p): Likewise.
21972         (rtx_reuse_manager::set_seen_def): Likewise.
21973         * print-rtl.h (class rtx_reuse_manager): Likewise.
21975 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21977         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
21978         lifetime.
21979         (migrate_btr_def): Likewise.
21980         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
21981         * df-core.c (loop_post_order_compute): Likewise.
21982         (loop_inverted_post_order_compute): Likewise.
21983         * hsa-common.h: Likewise.
21984         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
21985         * init-regs.c (initialize_uninitialized_regs): Likewise.
21986         * ipa-inline.c (resolve_noninline_speculation): Likewise.
21987         (inline_small_functions): Likewise.
21988         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
21989         * ira.c (combine_and_move_insns): Likewise.
21990         (build_insn_chain): Likewise.
21991         * loop-invariant.c (find_invariants): Likewise.
21992         * lower-subreg.c (propagate_pseudo_copies): Likewise.
21993         * predict.c (tree_predict_by_opcode): Likewise.
21994         (predict_paths_leading_to): Likewise.
21995         (predict_paths_leading_to_edge): Likewise.
21996         (estimate_loops_at_level): Likewise.
21997         (estimate_loops): Likewise.
21998         * shrink-wrap.c (try_shrink_wrapping): Likewise.
21999         (spread_components): Likewise.
22000         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
22001         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
22002         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
22003         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
22004         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
22005         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
22006         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
22007         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
22008         (mark_threaded_blocks): Likewise.
22009         (thread_through_all_blocks): Likewise.
22010         * tree-ssa.c (verify_ssa): Likewise.
22011         (execute_update_addresses_taken): Likewise.
22012         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
22014 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22016         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
22017         auto_vec.
22018         (post_order_compute): Likewise.
22019         (inverted_post_order_compute): Likewise.
22020         (pre_and_rev_post_order_compute_fn): Likewise.
22022 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22024         * genrecog.c (int_set::int_set): Explicitly construct our
22025         auto_vec base class.
22026         * vec.h (auto_vec::auto_vec): New constructor.
22028 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22030         * bitmap.h (class auto_bitmap): New constructor taking
22031         bitmap_obstack * argument.
22033 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22035         * bitmap.h (class auto_bitmap): Change type of m_bits to
22036         bitmap_head, and adjust ctor / dtor and member operators.
22038 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
22040         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
22041         when returned register mode doesn't match original mode.
22043 2017-05-12  Jeff Law  <law@redhat.com>
22044             Jakub Jelinek  <jakub@redhat.com>
22046         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
22047         we look for cc setter after the compare-elim changes.
22048         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
22049         within the vector to match what compare-elim now expects.
22050         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
22051         (xorsi3_flags, one_cmplsi2_flags): Likewise.
22053         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
22054         after the compare-elim changes.
22055         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
22056         the vector to match what compare-elim now expects.
22057         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
22058         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
22059         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
22060         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
22061         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
22063         * config/visium/visium.c (single_set_and_flags): Fix where
22064         we look for cc setter after the compare-elim changes.
22065         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
22066         with the vector to match what compare-elim now expects.
22067         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
22068         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
22069         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
22070         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
22071         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
22072         (neg<mode>2_insn_set_overflow): Likewise.
22074 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
22076         PR middle-end/79794
22077         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
22078         maybe_expand_insn call, set ops[0].target.  If still set after call,
22079         set alt_rtl.  Add extra arg to recursive calls.
22080         (extract_bit_field): Add alt_rtl argument.  Pass to
22081         extract_bit_field.
22082         * expmed.h (extract_bit_field): Fix prototype.
22083         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
22084         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
22085         to extract_bit_field_calls.
22086         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
22087         Pass alt_rtl to extract_bit_field calls.
22088         * calls.c (store_unaligned_arguments_into_psuedos)
22089         load_register_parameters): Pass extra NULL to extract_bit_field calls.
22090         * optabs.c (maybe_legitimize_operand): Clear op->target when call
22091         gen_reg_rtx.
22092         * optabs.h (struct expand_operand): Add target bitfield.
22094 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
22096         * compare-elim.c (try_eliminate_compare): Canonicalize
22097         operation with embedded compare to
22098         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
22099          (set (reg) (operation)].
22101         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
22103 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
22105         PR target/80723
22106         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
22107         cost of adding a carry flag for ADC instruction.
22108         [case MINUS]: Ignore the cost of subtracting a carry flag
22109         for SBB instruction.
22111 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
22113         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
22114         and x86intrin.h
22115         * config/rs6000/bmiintrin.h: New file.
22116         * config/rs6000/bmi2intrin.h: New file.
22117         * config/rs6000/x86intrin.h: New file.
22119 2017-05-12  Jeff Law  <law@redhat.com>
22121         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
22122         markers.
22124 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
22126         PR middle-end/80707
22127         * tree-cfg.c: Remove cfg edges of unreachable case statements.
22129 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
22131         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
22132         early expansion of vector divide builtins.
22133         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
22134         builtins identified as having unsigned arguments.
22136 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
22138         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
22139         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
22140         expansion of vector logical operations (and, andc, or, xor,
22141         nor, orc, nand).
22143 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
22145         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
22146         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
22148 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
22150         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
22151         early GIMPLE expansion of vector multiplies.
22153 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
22155         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
22156         TARGET_HAVE_MOVT conditional.
22157         (movt splitter): Likewise.
22159 2017-05-12  Richard Biener  <rguenther@suse.de>
22161         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
22162         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22163         Fold all stmts not inplace.
22165 2017-05-12  Richard Biener  <rguenther@suse.de>
22167         PR tree-optimization/80713
22168         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
22169         inserted_exprs bit for not removed stmts.
22171 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
22173         PR middle-end/69921
22174         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
22175         parallelized" attribute for parallelized OpenACC kernels.
22176         * omp-offload.c (execute_oacc_device_lower): Use it.
22178         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
22179         Set "oacc kernels" attribute.
22180         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
22181         parameter.  Adjust all users.
22182         (oacc_fn_attrib_kernels_p): Remove function.
22183         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
22184         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
22185         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
22186         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
22187         assert "oacc kernels" attribute is set.
22189 2017-05-11  Carl Love  <cel@us.ibm.com>
22191         * config/rs6000/rs6000-c: Add support for built-in functions
22192         vector unsigned char vec_popcnt (vector signed char)
22193         vector unsigned char vec_popcnt (vector unsigned char)
22194         vector unsigned short vec_popcnt (vector signed short)
22195         vector unsigned short vec_popcnt (vector unsigned short)
22196         vector unsigned int vec_popcnt (vector signed int)
22197         vector unsigned int vec_popcnt (vector unsigned int)
22198         vector unsigned long long vec_popcnt (vector signed long long)
22199         vector unsigned long long vec_popcnt (vector unsigned long long)
22200         vector signed long long vec_slo (vector signed long long,
22201                                          vector signed char)
22202         vector signed long long vec_slo (vector signed long long,
22203                                          vector unsigned char)
22204         vector unsigned long long vec_slo (vector unsigned long long,
22205                                            vector signed char)
22206         vector unsigned long long vec_slo (vector unsigned long long,
22207                                            vector unsigned char)
22208         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
22209         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
22210         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
22211         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
22212         * doc/extend.texi: Update the built-in documentation file for the
22213         new built-in functions.
22215 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
22217         * attribs.h (sorted_attr_string): Move machine independent
22218         functions for target clone support from the i386 port to common
22219         code.  Rename ix86_function_versions to common_function_versions.
22220         Rename make_name to make_unique_name.
22221         (common_function_versions): Likewise.
22222         (make_unique_name): Likewise.
22223         (make_dispatcher_decl): Likewise.
22224         (is_function_default_version): Likewise.
22225         * attribs.c (attr_strcmp): Likewise.
22226         (sorted_attr_string): Likewise.
22227         (common_function_versions): Likewise.
22228         (make_unique_name): Likewise.
22229         (make_dispatcher_decl): Likewise.
22230         (is_function_default_version): Likewise.
22231         * config/i386/i386.c (attr_strcmp): Likewise.
22232         (sorted_attr_string): Likewise.
22233         (ix86_function_versions): Likewise.
22234         (make_name): Likewise.
22235         (make_dispatcher_decl): Likewise.
22236         (is_function_default_version): Likewise.
22237         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
22239 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22241         PR target/80695
22242         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
22243         Account for direct move costs for vec_construct of integer
22244         vectors.
22246 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
22248         PR target/80706
22249         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
22250         (UNSPEC_STX_ATOMIC): Ditto.
22251         (loaddi_via_sse): New insn.
22252         (storedi_via_sse): Ditto.
22253         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
22254         Update corresponding peephole2 patterns.
22255         (atomic_storedi_fpu): Ditto.
22257 2017-05-11  Julia Koval  <julia.koval@intel.com>
22259         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
22260         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
22261         New intrinsics.
22262         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
22263         (__builtin_ia32_rsqrt14ss_mask): New builtins.
22264         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
22266 2017-05-11  Nathan Sidwell  <nathan@acm.org>
22268         * graphite-poly.c: Include dumpfile.h.
22270         * dumpfle.h (dump_function): Declare here ...
22271         * tree-dump.h (dump_function): ... not here.
22272         * dumpfile.c: #include tree-cfg.h.
22273         (dump_function): Move here from ...
22274         * tree-dump.c (dump_function): ... here.
22275         * gimplify.c: #include splay-tree.h, not tree-dump.h.
22276         * graphite-poly.c: Don't include tree-dump.h.
22277         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
22278         * print-tree.c: Likewise.
22279         * stor-layout.c: Likewise.
22280         * tree-nested.c: Likewise.
22282         * dumpfile.c (dump_start): Use TDF_FLAGS.
22283         (dump_enable_all): Fix TDF_KIND check thinko.
22285 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
22287         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22288         array entries to represent two legal parameterizations of the
22289         overloaded __builtin_cmpb function, as represented by the
22290         P6_OV_BUILTIN_CMPB constant.
22291         (altivec_resolve_overloaded_builtin): Add special case handling
22292         for the __builtin_cmpb function, as represented by the
22293         P6_OV_BUILTIN_CMPB constant.
22294         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
22295         (BU_P6_64BIT_2): New macro.
22296         (BU_P6_OVERLOAD_2): New macro
22297         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
22298         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
22299         (CMPB): Add overload support to represent both 32-bit and 64-bit
22300         compare-bytes function.
22301         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
22302         support for TARGET_CMPB.
22303         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
22304         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
22305         documentation of the __builtin_cmpb overloaded built-in function.
22307 2017-05-11  Richard Biener  <rguenther@suse.de>
22309         PR tree-optimization/80705
22310         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
22311         bases are not vectorizable.
22313 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22315         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
22316         when counting register pressure.
22318 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22320         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
22321         (iv_ca_more_deps): Renamed to ...
22322         (iv_ca_compare_deps): ... this.
22323         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
22325 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22327         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
22328         to ...
22329         (determine_group_iv_costs): ... here.
22330         (find_inv_vars_cb): Record inv var if it's not recorded before.
22332 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22334         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
22335         (get_shiftadd_cost): Ditto.
22337 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22339         * tree-ssa-address.c: Include header file.
22340         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
22341         address.
22342         (add_to_parts): Refactor.
22343         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
22344         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
22345         in new order.
22347 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22349         PR tree-optimization/53090
22350         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
22351         COMP_IV_EXPR_2.
22352         (extract_cond_operands): Detect condition with IV on both sides
22353         and return COMP_IV_EXPR_2.
22354         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
22355         (rewrite_use_compare): Simplify by removing call to function
22356         extract_cond_operands.
22358 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22360         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
22361         (extract_cond_operands): Detect condition comparing against non-
22362         invariant bound and return appropriate enum value.
22363         (find_interesting_uses_cond): Update use of extract_cond_operands.
22364         Handle its return value accordingly.
22365         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
22367 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22369         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
22370         nonlinear iv_use computation in loop invariant sensitive way.
22372 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22374         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
22375         (find_iv_candidates): Call relate_compare_use_with_all_cands.
22377 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22379         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
22380         (dump_cand): Support iv_cand.inv_exprs.
22381         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
22382         for candidates.
22383         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
22384         iv_cand.inv_exprs.
22386 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22388         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
22389         from ...
22390         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
22391         as local function.  Include necessary header files.
22392         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
22394 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22396         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
22398 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22400         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
22401         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
22402         RSHIFT_EXPR and BIT_NOT_EXPR.
22404 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22406         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
22407         (adjust_setup_cost): New parameter supporting round up adjustment.
22408         (struct address_cost_data): Delete.
22409         (force_expr_to_var_cost): Don't bound cost with spill_cost.
22410         (split_address_cost, ptr_difference_cost): Delete.
22411         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
22412         (struct ainc_cost_data): New struct.
22413         (get_address_cost_ainc): New function.
22414         (get_address_cost, get_computation_cost): Reimplement.
22415         (determine_group_iv_cost_address): Record inv_expr for all uses of
22416         a group.
22417         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
22418         (iv_ca_has_deps): Reimplemented to ...
22419         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
22420         than OLD_CP.
22421         (iv_ca_extend): Call iv_ca_more_deps.
22423 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22425         * tree-ssa-address.c (struct mem_address): Move to header file.
22426         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
22427         * tree-ssa-address.h (struct mem_address): Move from C file.
22428         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
22430 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22432         * tree-affine.h (aff_combination_type): New interface.
22433         (aff_combination_zero_p): Remove static.
22434         (aff_combination_const_p): New interface.
22435         (aff_combination_singleton_var_p): New interfaces.
22437 2017-05-11  Richard Biener  <rguenther@suse.de>
22439         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22440         Skip unreachable blocks and destinations.
22441         (eliminate): Move stmt removal and fixup ...
22442         (fini_eliminate): ... here.  Skip inserted exprs.
22443         (pass_pre::execute): Move fini_pre after fini_eliminate.
22444         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
22445         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
22446         PRE to get rid of dead code that has invalid SSA form and
22447         split critical edges again.
22449 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
22451         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
22453 2017-05-11  Richard Biener  <rguenther@suse.de>
22455         * passes.c (execute_function_todo): Verify loops if they are
22456         said to be up-to-date.
22457         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
22458         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
22460 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
22462         PR target/80090
22463         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
22464         handle calling assemble_external ourself.
22466         PR target/79027
22467         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
22468         modes with zero size.  Enhance comment.
22470 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22472         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
22473         built-ins for vec_xl and vec_xst with short and char pointer
22474         arguments.
22476 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
22478         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
22479         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
22480         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
22481         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
22482         (_mm_maskz_min_round_ss): New intrinsics.
22483         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
22484         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
22485         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
22486         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
22487         (__builtin_ia32_minss_mask_round): New builtins.
22488         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22489         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22490         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
22491         Rename to ...
22492         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
22493         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
22494         Change to ...
22495         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
22496         ... this.
22498 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
22500         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
22501         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
22502         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
22503         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
22504         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
22505         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
22506         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
22507         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22508         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
22509         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
22510         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
22511         (__builtin_ia32_mulss_mask_round): New builtins.
22512         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
22513         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
22514         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
22515         Rename to ...
22516         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
22517         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
22518         Change to ...
22519         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
22520         ... this.
22522 2017-05-10  Julia Koval  <julia.koval@intel.com>
22524         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
22525         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
22526         (_mm256_setr_m128i): New intrinsics.
22528 2017-05-10  Julia Koval  <julia.koval@intel.com>
22530         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
22531         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
22532         (_mm_maskz_rcp14_ss): New intrinsics.
22533         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
22534         (__builtin_ia32_rcp14ss_mask): New builtins.
22535         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
22537 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
22539         PR tree-optimization/51513
22540         * tree-cfg.c (gimple_seq_unreachable_p): New function.
22541         (assert_unreachable_fallthru_edge_p): Use it.
22542         (group_case_labels_stmt): Likewise.
22543         * tree-cfg.h: Prototype it.
22544         * stmt.c: Include cfghooks.h and tree-cfg.h.
22545         (emit_case_dispatch_table) <gap_label>: New local variable.
22546         Use it to fill dispatch table gaps.
22547         Test for default_label before updating probabilities.
22548         (expand_case) <default_label>: Remove unneeded initialization.
22549         Test for unreachable default case statement and remove its edge.
22550         Set default_label accordingly.
22551         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
22553 2017-05-10  Carl Love  <cel@us.ibm.com>
22555         * config/rs6000/rs6000-c: Add support for built-in functions
22556         vector signed char      vec_neg (vector signed char)
22557         vector signed short int vec_neg (vector short int)
22558         vector signed int       vec_neg (vector signed int)
22559         vector signed long long vec_neg (vector signed long long)
22560         vector float            vec_neg (vector float)
22561         vector double           vec_neg (vector double)
22562         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
22563         overload.
22564         * config/rs6000/altivec.h: Add define for vec_neg
22565         * doc/extend.texi: Update the built-in documentation for the
22566         new built-in functions.
22568 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22570         PR tree-optimization/77644
22571         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
22573 2017-05-10  Nathan Sidwell  <nathan@acm.org>
22575         * dumpfile.h (TDI_lang_all): New.
22576         (TDF_KIND): New. Renumber others
22577         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
22578         than bits.
22579         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
22580         lang-all.
22581         (get_dump_file_name): Adjust suffix generation.
22582         (dump_enable_all): Use TDF_KIND.
22583         * doc/invoke.texi (-fdump-lang-all): Document.
22585         * dumpfile.h: Tabify.
22587 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
22589         PR target/80671
22590         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
22591         Move member access before delete.
22593 2017-05-10  Alexandre Oliva <aoliva@redhat.com>
22595         * tree-inline.c (expand_call_inline): Split block at stmt
22596         before the call.
22598 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
22600         PR target/68163
22601         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
22602         are now unused after splitting mov{sf,sd}_hardfloat.
22603         (f32_lr2): Likewise.
22604         (f32_lm): Likewise.
22605         (f32_lm2): Likewise.
22606         (f32_li): Likewise.
22607         (f32_li2): Likewise.
22608         (f32_lv): Likewise.
22609         (f32_sr): Likewise.
22610         (f32_sr2): Likewise.
22611         (f32_sm): Likewise.
22612         (f32_sm2): Likewise.
22613         (f32_si): Likewise.
22614         (f32_si2): Likewise.
22615         (f32_sv): Likewise.
22616         (f32_dm): Likewise.
22617         (f32_vsx): Likewise.
22618         (f32_av): Likewise.
22619         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
22620         For movsf, order stores so the VSX stores occur before the GPR
22621         store which encourages the register allocator to use a traditional
22622         FPR instead of a GPR.  For movsd, order the stores so that the GPR
22623         store comes before the VSX stores to allow the power6 to work.
22624         This is due to the power6 not having a 32-bit integer store
22625         instruction from a FPR.
22626         (movsf_hardfloat): Likewise.
22627         (movsd_hardfloat): Likewise.
22629 2017-05-09  Martin Sebor  <msebor@redhat.com>
22631         PR translation/80280
22632         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
22633         added in r247778.
22635         PR translation/80280
22636         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
22637         data member added in r247778.
22638         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
22640 2017-05-09  Nathan Sidwell  <nathan@acm.org>
22642         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
22644         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
22645         typedefs.
22647 2017-05-09  Marek Polacek  <polacek@redhat.com>
22649         * doc/invoke.texi: Fix typo.
22651 2017-05-09  Richard Biener  <rguenther@suse.de>
22653         * tree-vrp.c (vrp_val_is_max): Adjust comment.
22654         (vrp_val_is_min): Likewise.
22655         (set_value_range_to_value): Likewise.
22656         (set_value_range_to_nonnegative): Likewise.
22657         (gimple_assign_nonzero_p): Likewise.
22658         (gimple_stmt_nonzero_p): Likewise.
22659         (vrp_int_const_binop): Likewise.  Remove unreachable case.
22660         (adjust_range_with_scev): Adjust comments.
22661         (compare_range_with_value): Likewise.
22662         (extract_range_from_phi_node): Likewise.
22663         (test_for_singularity): Likewise.
22665 2017-05-09  Richard Biener  <rguenther@suse.de>
22667         * tree-vrp.c (get_single_symbol): Add assert that we don't
22668         get overflowed constants as invariant part.
22669         (compare_values_warnv): Add comment before the TREE_NO_WARNING
22670         checks.  Use wi::cmp instead of recursing for integer constants.
22671         (compare_values): Just ignore whether we assumed undefined
22672         overflow instead of failing the compare.
22673         (extract_range_for_var_from_comparison_expr): Add comment before the
22674         TREE_NO_WARNING sets.
22675         (test_for_singularity): Likewise.
22676         (extract_range_from_comparison): Do not disable optimization
22677         when we assumed undefined overflow.
22678         (extract_range_basic): Remove init of unused var.
22680 2017-05-09  Richard Biener  <rguenther@suse.de>
22682         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
22683         (extract_range_from_multiplicative_op_1): Adjust.
22684         (extract_range_from_binary_expr_1): Use int_const_binop.
22686 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
22688         PR target/80101
22689         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
22690         rs6000_store_data_bypass_p in seven define_bypass directives and
22691         in several comments.
22692         * config/rs6000/rs6000-protos.h: Add prototype for
22693         rs6000_store_data_bypass_p function.
22694         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
22695         function implements slightly different (rs6000-specific) semantics
22696         than store_data_bypass_p, returning false rather than aborting
22697         with assertion error when arguments do not satisfy the
22698         requirements of store data bypass.
22699         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
22700         rs6000_store_data_bypass_p.
22702 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
22704         * config/xtensa/xtensa-protos.h
22705         (xtensa_initial_elimination_offset): New declaration.
22706         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
22707         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
22708         macro definition, add case for FRAME_POINTER_REGNUM when
22709         FRAME_GROWS_DOWNWARD.
22710         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
22711         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
22712         xtensa_initial_elimination_offset.
22714 2017-05-08  Nathan Sidwell  <nathan@acm.org>
22716         * doc/invoke.texi: Alphabetize -fdump options.
22718 2017-05-08  Martin Sebor  <msebor@redhat.com>
22720         PR translation/80280
22721         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
22723 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22725         * target.def (compute_frame_layout): New optional target hook.
22726         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
22727         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
22728         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
22729         target hook.
22730         * reload1.c (verify_initial_elim_offsets): Likewise.
22731         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
22732         (use_simple_return_p): Call arm_compute_frame_layout if needed.
22733         (arm_get_frame_offsets): Split up into this ...
22734         (arm_compute_frame_layout): ... and this function.
22736 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
22738         * config/aarch64/constraints.md (Usa): New constraint.
22739         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
22741 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22743         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
22744         with_multilib_list after it has been checked.
22746 2017-05-08  Richard Biener  <rguenther@suse.de>
22748         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
22749         (bitmap_set_subtract_values): Likewise.
22751 2017-05-08  Richard Biener  <rguenther@suse.de>
22753         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
22754         (gimple_assign_nonzero): ... this and remove strict_overflow_p
22755         argument.
22756         (gimple_stmt_nonzero_warnv_p): Rename to ...
22757         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
22758         argument.
22759         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
22760         (extract_range_basic): Adjust, do not disable propagation on
22761         strict overflow sensitive simplification.
22762         (vrp_visit_cond_stmt): Likewise.
22764 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
22766         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
22767         body size unconditionally.
22769 2017-05-07  Jeff Law  <law@redhat.com>
22771         Revert:
22772         2017-05-06  Jeff Law  <law@redhat.com>
22773         PR tree-optimization/78496
22774         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
22775         code.
22777         PR tree-optimization/78496
22778         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
22779         (simplify_stmt_using_ranges): Call it.
22780         (vrp_dom_walker::before_dom_children): Extract equivalences
22781         from an ASSERT_EXPR with an equality comparison against a
22782         constant.
22784 2017-05-06  Jeff Law  <law@redhat.com>
22786         PR tree-optimization/78496
22787         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
22788         code.
22790         PR tree-optimization/78496
22791         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
22792         (simplify_stmt_using_ranges): Call it.
22793         (vrp_dom_walker::before_dom_children): Extract equivalences
22794         from an ASSERT_EXPR with an equality comparison against a
22795         constant.
22797 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
22799         * lra-constraints.c (lra_copy_reg_equiv): New function.
22800         (split_reg): Use it to copy equivalence information from the
22801         original register to the spill register.
22803 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
22805         PR rtl-optimization/75964
22806         * simplify-rtx.c (simplify_const_relational_operation): Remove
22807         invalid handling of comparisons of integer ABS.
22809 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
22811         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
22812         initialize to zero.
22813         (init_regs): Remove declaration.
22814         (function_arg_advance_32): Initialize error_p as boolean variable.
22816 2017-05-05  Nathan Sidwell  <nathan@acm.org>
22818         * store-motion.c (remove_reachable_equiv_notes): Reformat long
22819         lines.  Use for (;;).
22821 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22823         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
22824         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
22825         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
22826         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
22827         VF=2 that require versioning.
22829 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22831         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
22832         int.
22834 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22836         * diagnostic.h (diagnostic_override_option_index): Convert from
22837         macro to inline function.
22839 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22841         * diagnostic.c (last_module_changed_p): New function.
22842         (set_last_module): New function.
22843         (diagnostic_report_current_module): Convert macro usage to
22844         the above functions.
22845         * diagnostic.h (diagnostic_context::last_module): Strengthen
22846         from const line_map * to const line_map_ordinary *.
22847         (diagnostic_last_module_changed): Delete macro.
22848         (diagnostic_set_last_module): Delete macro.
22850 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22852         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
22853         with diagnostic_report_diagnostic.
22854         (diagnostic_n_impl_richloc): Likewise.
22855         * diagnostic.h (report_diagnostic): Delete macro.
22856         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
22857         with diagnostic_report_diagnostic.
22858         * substring-locations.c (format_warning_va): Likewise.
22860 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22862         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
22863         save/restor of format_spec.  Move option-printing code to...
22864         (print_option_information): ...this new function, and
22865         reimplement by simply printing to the pretty_printer,
22866         rather than appending to the format string.
22868 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
22870         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
22871         handling logic into...
22872         (update_effective_level_from_pragmas): ...this new function.
22874 2017-05-04  Andrew Waterman  <andrew@sifive.com>
22876         * config/riscv/riscv.opt (mstrict-align): New option.
22877         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
22878         (SLOW_UNALIGNED_ACCESS): Define.
22879         (riscv_slow_unaligned_access): Declare.
22880         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
22881         field.
22882         (riscv_slow_unaligned_access): New variable.
22883         (rocket_tune_info): Set slow_unaligned_access to true.
22884         (optimize_size_tune_info): Set slow_unaligned_access to false.
22885         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
22886         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
22887         (riscv_option_override): Set riscv_slow_unaligned_access.
22888         * doc/invoke.texi: Add -mstrict-align to RISC-V.
22890 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
22892         * config/riscv/riscv.md: Unify indentation.
22894 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
22896         PR target/79038
22897         PR target/79202
22898         PR target/79203
22899         * config/rs6000/rs6000.md (u code attribute): Add FIX and
22900         UNSIGNED_FIX.
22901         (extendsi<mode>2): Add support for doing sign extension via
22902         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
22903         don't have ISA 3.0 instructions.
22904         (extendsi<mode>2 splitter): Likewise.
22905         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
22906         generate the normal insns since SImode can now go in vector
22907         registers.  Disallow the special UNSPECs needed for previous
22908         machines to hide SImode being used.  Add new insns
22909         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
22910         (fix_trunc<mode>si2_stfiwx): Likewise.
22911         (fix_trunc<mode>si2_internal): Likewise.
22912         (fixuns_trunc<mode>si2): Likewise.
22913         (fixuns_trunc<mode>si2_stfiwx): Likewise.
22914         (fctiw<u>z_<mode>_smallint): Likewise.
22915         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
22916         of floating point to 32-bit integer from doing a direct move to
22917         the GPR registers to do a store.
22918         (fctiwz_<mode>): Break long line.
22920 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
22922         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
22923         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
22924         (addr_list, addr_offset_valid_p): New.
22925         (split_address_groups): Check offset validity with above function.
22926         (gt-tree-ssa-loop-ivopts.h): Include header file.
22928 2017-05-05  Nathan Sidwell  <nathan@acm.org>
22930         * config.gcc (arm*-*-*): Add missing 'fi'.
22932 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
22934         * doc/invoke.texi (-fopt-info): Explicitly say order of options
22935         included in -fopt-info does not matter.
22936         * doc/optinfo.texi (-fopt-info): Fix description of default
22937         behavour. Explicitly say order of options included in -fopt-info
22938         does not matter.
22940 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22942         * config.gcc: Allow combinations of aprofile and rmprofile values for
22943         --with-multilib-list.
22944         * config/arm/t-multilib: New file.
22945         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
22946         variables.  Remove setting of ISA and floating-point ABI in
22947         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
22948         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
22949         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
22950         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
22951         CPU options.
22952         * config/arm/t-rmprofile: Likewise except for the matches changes.
22953         * doc/install.texi (--with-multilib-list): Document the combination of
22954         aprofile and rmprofile values and warn about pitfalls in doing that.
22956 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
22958         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
22959         (movdi_aarch64): Likewise.
22961 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
22963         PR tree-optimization/80632
22964         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
22965         field.
22966         (build_arrays): Initialize it for virtual phis.
22967         (fix_phi_nodes): Use it for virtual phis.
22969         PR tree-optimization/80558
22970         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
22971         [x, y] op z into [x op, y op z] for op & or | if conditions
22972         are met.
22974 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
22975             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
22977         PR target/71607
22978         * config/arm/arm.md (use_literal_pool): Remove.
22979         (64-bit immediate split): No longer takes cost into consideration
22980         if arm_disable_literal_pool is enabled.
22981         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
22982         used when arm_disable_literal_pool is enabled.
22983         (arm_max_const_double_inline_cost): Remove use of
22984         arm_disable_literal_pool.
22985         (push_minipool_fix): Add assert.
22986         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
22987         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
22988         (no_literal_pool_sf_immediate): New.
22990 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
22992         PR tree-optimization/80613
22993         * tree-ssa-dce.c (propagate_necessity): Remove cases for
22994         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
22996 2017-05-05  Richard Biener  <rguenther@suse.de>
22998         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
23000 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
23002         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
23003         of this flag from insn conditions due to removal from r247495.
23005 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
23007         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
23008         New function.
23009         (arm_early_store_addr_dep_ptr): Likewise.
23010         * config/arm/aarch-common-protos.h
23011         (arm_early_load_addr_dep_ptr): Add prototype.
23012         (arm_early_store_addr_dep_ptr): Likewise.
23013         * config/arm/cortex-a53.md: Add new bypasses.
23015 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
23017         * tree.c (next_type_uid): Change type to unsigned.
23018         (type_hash_canon): Decrement back next_type_uid if
23019         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
23020         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
23021         if possible.
23023 2017-05-04  Martin Sebor  <msebor@redhat.com>
23025         * builtins.c: Fix a trivial typo in a comment.
23027         PR middle-end/79234
23028         * builtins.c (check_sizes): Adjust to handle reading past the end.
23029         Avoid printing excessive upper bound of ranges.  Use %E to print
23030         tree nodes instead of converting them to %wu.
23031         (expand_builtin_memchr): New function.
23032         (compute_dest_size): Rename...
23033         (compute_objsize): ...to this.
23034         (expand_builtin_memcpy): Adjust.
23035         (expand_builtin_mempcpy): Adjust.
23036         (expand_builtin_strcat): Adjust.
23037         (expand_builtin_strcpy): Adjust.
23038         (check_strncat_sizes): Adjust.
23039         (expand_builtin_strncat): Adjust.
23040         (expand_builtin_strncpy): Adjust and simplify.
23041         (expand_builtin_memset): Adjust.
23042         (expand_builtin_bzero): Adjust.
23043         (expand_builtin_memcmp): Adjust.
23044         (expand_builtin): Handle memcmp.
23045         (maybe_emit_chk_warning): Check strncat just once.
23047 2017-05-04  Martin Sebor  <msebor@redhat.com>
23049         PR preprocessor/79214
23050         PR middle-end/79222
23051         PR middle-end/79223
23052         * builtins.c (check_sizes): Add inlining context and issue
23053         warnings even when -Wno-system-headers is set.
23054         (check_strncat_sizes): Same.
23055         (expand_builtin_strncat): Same.
23056         (expand_builtin_memmove): New function.
23057         (expand_builtin_stpncpy): Same.
23058         (expand_builtin): Handle memmove and stpncpy.
23060 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
23062         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
23063         which is not used any more.
23065 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
23067         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
23069 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
23071         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
23072         (cortexa53_tunings): Likewise.
23073         (cortexa57_tunings): Likewise.
23074         (cortexa72_tunings): Likewise.
23075         (cortexa73_tunings): Likewise.
23077 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
23079         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
23080         Set loop alignment to 8.
23082 2017-05-04  Martin Sebor  <msebor@redhat.com>
23084         PR translation/80280
23085         * builtins.c (expand_builtin_object_size): Add missing quoting to
23086         %D and like directives.
23087         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
23088         (hsa_type_for_tree_type): Same.
23089         (verify_function_arguments): Same.
23090         * symtab.c (symbol_table::change_decl_assembler_name): Same.
23091         * varasm.c (get_section): Same.
23092         (mark_weak): Same.
23094 2017-05-04  Martin Sebor  <msebor@redhat.com>
23096         PR translation/80280
23097         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
23099 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
23101         * config/aarch64/aarch64.c (generic_addrcost_table):
23102         Change HI/TI mode setting.
23104 2017-05-04  Martin Jambor  <mjambor@suse.cz>
23106         PR tree-optimization/80622
23107         * tree-sra.c (comes_initialized_p): New function.
23108         (build_accesses_from_assign): Only set write lazily when
23109         comes_initialized_p is false.
23110         (analyze_access_subtree): Use comes_initialized_p.
23111         (propagate_subaccesses_across_link): Assert !comes_initialized_p
23112         instead of testing for PARM_DECL.
23114 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23116         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
23117         constraint on operand 0 to allow more general addressing modes.
23118         Adjust output template.
23119         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
23120         New function.
23121         * config/aarch64/aarch64-protos.h
23122         (aarch64_address_valid_for_prefetch_p): Declare prototype.
23123         * config/aarch64/constraints.md (Dp): New address constraint.
23124         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
23125         predicate.
23127 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
23129         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
23130         update use of estimate_ipcp_clone_size_and_time.
23131         (estimate_local_effects): Update use of
23132         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
23133         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
23134         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
23135         Return nonspecialized time.
23137 2017-05-04  Richard Biener  <rguenther@suse.de>
23139         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
23140         for the last VUSE which def dominates the PHI.  Directly call
23141         maybe_skip_until.
23142         (get_continuation_for_phi_1): Remove.
23144 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
23146         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
23147         to explain the use of truncating division.  Cap the number of
23148         iterations to the maximum given by nb_iterations_upper_bound,
23149         if defined.
23151 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23153         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
23154         * configure: Regenerate.
23155         * config.in: Regenerate.
23156         * config/i386/driver-mingw32.c: new file.
23157         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
23158         * config.host: Link driver-mingw32.o on MinGW host.
23159         * doc/install.texi: Document new --enable-mingw-wildcard configure
23160         option.
23162 2017-05-04  Marek Polacek  <polacek@redhat.com>
23164         PR tree-optimization/80612
23165         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
23167 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
23168             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
23170         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
23171         (movt splitter): Likewise.
23172         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
23173         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
23174         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
23175         block for Thumb-1 with MOVT.
23176         (thumb2_legitimate_address_p): Move code block ...
23177         (can_avoid_literal_pool_for_label_p): ... into this new function.
23178         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
23179         literal pool.
23180         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
23181         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
23182         "M-profile targets with the MOVT instruction".
23184 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
23186         * config/arm/arm-builtins.c (arm_init_builtins): Rename
23187         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
23188         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
23190 2017-05-04  Martin Liska  <mliska@suse.cz>
23192         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
23193         variable cond_code.
23195 2017-05-04  Richard Biener  <rguenther@suse.de>
23197         * tree.c (array_at_struct_end_p): Handle arrays at struct
23198         end with flexarrays more conservatively.  Refactor and treat
23199         arrays of arrays or aggregates more strict.  Fix
23200         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
23201         * tree.c (array_at_struct_end_p): Adjust prototype.
23202         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
23203         * gimple-fold.c (get_range_strlen): Likewise.
23204         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
23206 2017-05-04  Richard Biener  <rguenther@suse.de>
23208         PR tree-optimization/31130
23209         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
23210         false.
23211         (supports_overflow_infinity): Likewise.
23212         (is_negative_overflow_infinity): Likewise.
23213         (is_positive_overflow_infinity): Likewise.
23214         (is_overflow_infinity): Likewise.
23215         (stmt_overflow_infinity): Likewise.
23216         (overflow_infinity_range_p): Likewise.
23217         (usable_range_p): Remove as always returning true.
23218         (make_overflow_infinity): Remove.
23219         (negative_overflow_infinity): Likewise.
23220         (positive_overflow_infinity): Likewise.
23221         (avoid_overflow_infinity): Likewise.
23222         (set_value_range): Adjust accordingly.
23223         (set_value_range_to_nonnegative): Likewise, remove now unused
23224         overflow_infinity arg.
23225         (vrp_operand_equal_p): Adjust.
23226         (update_value_range): Likewise.
23227         (range_int_cst_singleton_p): Likewise.
23228         (operand_less_p): Likewise.
23229         (compare_values_warnv): Likewise.
23230         (extract_range_for_var_from_comparison_expr): Likewise.
23231         (vrp_int_const_binop): Likewise.
23232         (zero_nonzero_bits_from_vr): Likewise.
23233         (extract_range_from_multiplicative_op_1): Likewise.
23234         (extract_range_from_binary_expr_1): Likewise.
23235         (extract_range_from_unary_expr): Likewise.
23236         (extract_range_from_comparison): Likewise.
23237         (extract_range_basic): Likewise.
23238         (adjust_range_with_scev): Likewise.
23239         (compare_ranges): Likewise.
23240         (compare_range_with_value): Likewise.
23241         (dump_value_range): Likewise.
23242         (test_for_singularity): Likewise, remove strict_overflow_p parameter
23243         never used.
23244         (simplify_cond_using_ranges): Adjust.
23246 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
23248         * brig-builtins.def: Added a builtin for class_f64.
23249         * builtin-types.def: Added a builtin type needed by class_f64.
23251 2017-05-03  Jason Merrill  <jason@redhat.com>
23253         * timevar.def: Add TV_CONSTEXPR.
23255 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
23257         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
23259 2017-05-03  Martin Jambor  <mjambor@suse.cz>
23261         * ipa-prop.c (ipa_update_after_lto_read): Removed.
23262         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
23263         * ipa-cp.c (ipcp_propagate_stage): Do not call
23264         ipa_update_after_lto_read.
23265         * ipa-inline.c (ipa_inline): Likewise.
23267 2017-05-03  Martin Jambor  <mjambor@suse.cz>
23269         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
23270         tag.  Added a default constructor and a destructor.
23271         (ipa_edge_args_sum_t): New class;
23272         (ipa_edge_args_sum): Declare.
23273         (ipa_edge_args_vector): Remove declaration.
23274         (IPA_EDGE_REF): Use ipa_edge_args_sum.
23275         (ipa_free_edge_args_substructures): Remove declaration.
23276         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
23277         (ipa_edge_args_info_available_for_edge_p): Likewise.
23278         * ipa-prop.c (ipa_edge_args_vector): Removed.
23279         (edge_removal_hook_holder): Likewise.
23280         (edge_duplication_hook_holder): Likewise.
23281         (ipa_edge_args_sum): New variable.
23282         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
23283         ipa_edge_args_vector.
23284         (ipa_free_edge_args_substructures): Likewise.
23285         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
23286         ipa_edge_args_vector.
23287         (ipa_edge_removal_hook): Turned into method
23288         ipa_edge_args_sum_t::remove.
23289         (ipa_edge_duplication_hook): Turned into method
23290         ipa_edge_args_sum_t::duplicate.
23291         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
23292         registering edge hooks.
23293         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
23294         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
23295         ipa_edge_args_sum instead of ipa_edge_args_vector.
23296         * ipa-profile.c (ipa_profile): Likewise.
23298 2017-05-03  Martin Jambor  <mjambor@suse.cz>
23300         * symbol-summary.h (function_summary): New method exists.
23301         (function_summary::symtab_removal): Deallocate through release.
23302         (call_summary): New class.
23303         (gt_ggc_mx): New overload.
23304         (gt_pch_nx): Likewise.
23305         (gt_pch_nx): Likewise.
23307 2017-05-03  Jeff Law  <law@redhat.com>
23309         PR tree-optimization/78496
23310         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
23311         from simplify_cond_using_ranges.  Split off code to walk
23312         backwards through casts into ...
23313         (simplify_cond_using_ranges_2): New function.
23314         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
23315         (execute_vrp): After identifying jump threads, call
23316         simplify_cond_using_ranges_2.
23318 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
23320         PR bootstrap/80609
23321         * ipa-inline.h (inline_summary): Add ctor.
23322         (create_ggc): Do not use ggc_cleared_alloc.
23324 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
23325             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23327         * gcc.c (handle_braces): Support escaping in switch matching
23328         text.
23329         * doc/invoke.texi (Spec Files): Document it.
23330         Remove superfluous @code markup in items.
23332 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
23334         * diagnostic-show-locus.c (struct column_range): New struct.
23335         (get_affected_columns): New function.
23336         (get_printed_columns): New function.
23337         (struct correction): New struct.
23338         (correction::ensure_capacity): New function.
23339         (correction::ensure_terminated): New function.
23340         (struct line_corrections): New struct.
23341         (line_corrections::~line_corrections): New dtor.
23342         (line_corrections::add_hint): New function.
23343         (layout::print_trailing_fixits): Reimplement in terms of the new
23344         classes.
23345         (selftest::test_overlapped_fixit_printing): New function.
23346         (selftest::diagnostic_show_locus_c_tests): Call it.
23348 2017-05-03  Nathan Sidwell  <nathan@acm.org>
23350         Canonicalize canonical type hashing
23351         * tree.h (type_hash_canon_hash): Declare.
23352         * tree.c (type_hash_list, attribute_hash_list): Move into
23353         type_hash_canon_hash.
23354         (build_type_attribute_qual_variant): Break out hash code calc into
23355         type_hash_canon_hash.
23356         (type_hash_canon_hash): New.  Generic type hash computation.
23357         (build_range_type_1, build_array_type_1, build_function_type,
23358         build_method_type_directly, build_offset_type, build_complex_type,
23359         make_vector_type): Call it.
23361 2017-05-03  Richard Biener  <rguenther@suse.de>
23363         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
23364         When all DRs have unknown misaligned do not always peel
23365         when there is a store but apply the same costing model as if
23366         there were only loads.
23368 2017-05-03  Richard Biener  <rguenther@suse.de>
23370         Revert
23371         PR tree-optimization/80492
23372         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
23373         compare_base_decls returning dont-know properly.
23375 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23377         * config/arm/iterators.md (CCSI): New mode iterator.
23378         (arch): New mode attribute.
23379         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
23380         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
23381         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
23382         code iterator for success result mode.
23383         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
23384         the corresponding new insn generators.
23386 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
23388         Revert r247509
23389         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23390         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
23392 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
23394         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
23395         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
23396         (DDR_A): Wrap DDR argument in brackets.
23397         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
23398         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
23399         (DDR_REVERSED_P): Likewise.
23401 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
23403         PR tree-optimization/79472
23404         * tree-switch-conversion.c (struct switch_conv_info): Add
23405         contiguous_range and default_case_nonstandard fields.
23406         (collect_switch_conv_info): Compute contiguous_range and
23407         default_case_nonstandard fields, don't clear final_bb if
23408         contiguous_range and only the default case doesn't have the required
23409         structure.
23410         (check_all_empty_except_final): Set default_case_nonstandard instead
23411         of failing if contiguous_range and the default case doesn't have empty
23412         block.
23413         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
23414         and only the default case doesn't have the required constants.  Skip
23415         virtual phis.
23416         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
23417         if default_case_nonstandard.
23418         (build_constructors): Build constant 1 just once.  Assert that default
23419         values aren't inserted in between cases if contiguous_range.  Skip
23420         virtual phis.
23421         (build_arrays): Skip virtual phis.
23422         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
23423         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
23424         Handle virtual phis.
23425         (gen_inbound_check): Handle default_case_nonstandard case.
23426         (process_switch): Adjust check_final_bb caller.  Call
23427         gather_default_values with the first non-default case instead of
23428         default case if default_case_nonstandard.
23430 2017-05-02  Nathan Sidwell  <nathan@acm.org>
23432         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
23433         check.  Fix formatting.
23435 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
23437         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
23438         errors when comparing specialized and unspecialized times.
23440 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
23442         * diagnostic-show-locus.c
23443         (layout::should_print_annotation_line_p): Make private.
23444         (layout::print_annotation_line): Make private.
23445         (layout::annotation_line_showed_range_p): Make private.
23446         (layout::show_ruler): Make private.
23447         (layout::print_source_line): Make private.  Pass in line and
23448         line_width, rather than calling location_get_source_line.  Drop
23449         returned value.
23450         (layout::print_leading_fixits): New method.
23451         (layout::print_any_fixits): Rename to...
23452         (layout::print_trailing_fixits): ...this, and make private.
23453         Don't print newline fixits.
23454         (diagnostic_show_locus): Move logic for printing one row into...
23455         (layout::print_line): ...this new function.  Move the
23456         location_get_source_line call and error-handling from
23457         print_source_line to here.  Call print_leading_fixits, and rename
23458         print_any_fixits to print_trailing_fixits.
23459         (selftest::test_fixit_insert_containing_newline): Update now that
23460         newlines are partially supported.
23461         (selftest::test_fixit_insert_containing_newline_2): New test.
23462         (selftest::test_fixit_replace_containing_newline): Update comments.
23463         (selftest::diagnostic_show_locus_c_tests): Call the new test.
23464         * edit-context.c (class added_line): New class.
23465         (class edited_line): Describe newline handling in comment.
23466         (edited_line::actually_edited_p): New method.
23467         (edited_line::print_content): Delete redundant decl.
23468         (edited_line::m_predecessors): New field.
23469         (edited_file::print_content): Call edited_line::print_content.
23470         (edited_file::print_diff): Update to support newlines.
23471         (edited_file::print_diff_hunk): Likewise.
23472         (edited_file::print_run_of_changed_lines): New function.
23473         (edited_file::print_diff_line): Convert to...
23474         (print_diff_line): ...this.
23475         (edited_file::get_effective_line_count): New function.
23476         (edited_line::edited_line): Initialize new field m_predecessors.
23477         (edited_line::~edited_line): Clean up m_predecessors.
23478         (edited_line::apply_fixit): Handle newlines.
23479         (edited_line::get_effective_line_count): New function.
23480         (edited_line::print_content): New function.
23481         (edited_line::print_diff_lines): New function.
23482         (selftest::test_applying_fixits_insert_containing_newline): New
23483         test.
23484         (selftest::test_applying_fixits_replace_containing_newline): New
23485         test.
23486         (selftest::insert_line): New function.
23487         (selftest::test_applying_fixits_multiple_lines): Add example of
23488         inserting a line.
23489         (selftest::edit_context_c_tests): Call the new tests.
23491 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23493         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
23494         parameter cand.  Update dump information.
23495         (get_computation_cost): Update uses.
23497 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23499         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
23500         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
23501         (get_computation_at, rewrite_use_address): Update use of
23502         get_computation_aff.
23504 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23506         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
23507         (get_computation): Delete.
23508         (get_computation_cost): Implement like get_computation_cost_at.
23509         Use get_computation_at.
23510         (get_computation_cost_at): Delete.
23511         (rewrite_use_nonlinear_expr): Use get_computation_at.
23512         (rewrite_use_compare, remove_unused_ivs): Ditto.
23514 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23516         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
23518 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23520         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
23521         (ivopts_global_cost_for_size): Rename parameter and update uses.
23522         (iv_ca_recount_cost): Update uses.
23523         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
23524         candidates seperately in n_invs and n_cands.
23525         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
23527 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23529         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
23530         (find_inv_vars_cb): New.
23531         (find_depends): Renamed to ...
23532         (find_inv_vars): ... this.
23533         (add_candidate_1, force_var_cost): Call find_inv_vars.
23534         (split_address_cost, determine_group_iv_cost_cond): Ditto.
23536 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23538         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
23539         inv_vars.  Add inv_exprs.
23540         (struct iv_cand): Rename depends_on to inv_vars.
23541         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
23542         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
23543         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
23544         (dump_cand): Dump inv_vars.
23545         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
23546         (record_invariant, find_depends, add_candidate_1): Ditto.
23547         (set_group_iv_cost, force_var_cost): Ditto.
23548         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
23549         (get_computation_cost_at, get_computation_cost): Ditto.
23550         (determine_group_iv_cost_generic): Ditto.
23551         (determine_group_iv_cost_address): Ditto.
23552         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
23553         (determine_group_iv_costs): Ditto.
23554         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
23555         (iv_ca_set_remove_invariants): Renamed to ...
23556         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
23557         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
23558         (iv_ca_set_add_invariants):  Renamed to ...
23559         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
23560         (iv_ca_set_cp): Use iv_ca_set_add_invs.
23561         (iv_ca_has_deps): Support inv_vars and inv_exprs.
23562         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
23563         (create_new_ivs): Remove useless dump.
23565 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23567         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
23568         iv_cand code.
23569         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
23570         (iv_ca_set_no_cp, create_new_iv): Ditto.
23572 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
23574         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
23576 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
23578         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
23579         function tree_check2.
23581 2017-05-02  Martin Liska  <mliska@suse.cz>
23583         * doc/gcov.texi: Add missing preposition.
23584         * gcov.c (function_info::function_info): Properly fill up
23585         all member variables.
23587 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
23589         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
23591 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
23593         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
23595 2017-05-02  Martin Liska  <mliska@suse.cz>
23597         PR lto/77954.
23598         * lto-streamer-in.c (lto_read_tree_1): Remove
23599         LTO_STREAMER_DEBUG.
23600         * lto-streamer.c (struct tree_hash_entry): Likewise.
23601         (struct tree_entry_hasher): Likewise.
23602         (tree_entry_hasher::hash): Likewise.
23603         (tree_entry_hasher::equal): Likewise.
23604         (lto_streamer_init): Likewise.
23605         (lto_orig_address_map): Likewise.
23606         (lto_orig_address_get): Likewise.
23607         (lto_orig_address_remove): Likewise.
23608         * lto-streamer.h: Likewise.
23609         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
23610         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23612 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
23614         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
23615         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
23616         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
23617         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
23618         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
23619         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
23620         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
23621         (mm_maskz_sub_ss): New intrinsics.
23622         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
23623         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
23624         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
23625         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
23626         (__builtin_ia32_subss_mask_round): New builtins.
23627         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
23628         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
23629         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
23630         Renamed to ...
23631         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
23632         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
23633         Changed to ...
23634         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
23635         ... this.
23637 2017-05-02  Martin Jambor  <mjambor@suse.cz>
23639         PR tree-optimization/78687
23640         * tree-sra.c (access): New field parent.
23641         (process_subtree_disqualification): New function.
23642         (disqualify_candidate): Call it.
23643         (build_accesses_from_assign): Reset write flag if creating an
23644         assighnment link.
23645         (build_access_subtree): Fill in parent field and also prpagate
23646         down grp_write flag.
23647         (create_artificial_child_access): New parameter set_grp_write, set
23648         grp_write to its value.
23649         (propagate_subaccesses_across_link): Also propagate grp_write flag
23650         values.
23651         (propagate_all_subaccesses): Push the closest parent back to work
23652         queue if add_access_to_work_queue returned true.
23654 2017-05-02  Richard Biener  <rguenther@suse.de>
23656         * common.opt (fstrict-overflow): Alias negative to fwrapv.
23657         * doc/invoke.texi (fstrict-overflow): Remove all traces of
23658         -fstrict-overflow documentation.
23659         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
23660         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
23661         flag_strict_overflow.
23662         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
23663         * lto-opts.c (lto_write_options): Do not stream it.
23664         * lto-wrapper.c (merge_and_complain): Do not handle it.
23665         * opts.c (default_options_table): Do not set -fstrict-overflow.
23666         (finish_options): Likewise do not clear it when sanitizing.
23667         * simplify-rtx.c (simplify_const_relational_operation): Do not
23668         test flag_strict_overflow.
23670 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
23672         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
23673         using enabled attribute.
23674         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
23675         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
23676         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
23677         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
23678         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
23679         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
23680         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
23681         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
23682         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
23683         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
23685 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
23687         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
23689 2017-05-02  Richard Biener  <rguenther@suse.de>
23691         PR tree-optimization/80591
23692         Revert
23693         2017-04-10  Richard Biener  <rguenther@suse.de>
23695         * tree-ssa-structalias.c (find_func_aliases): Properly handle
23696         asm inputs.
23698 2017-05-02  Richard Biener  <rguenther@suse.de>
23700         PR tree-optimization/80549
23701         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
23702         (cleanup_tree_cfg_noloop): Create forwarders to known loop
23703         headers if they do not have a preheader.
23705 2017-05-02  Martin Liska  <mliska@suse.cz>
23707         PR other/80589
23708         * common.opt: Fix typo.
23709         * doc/invoke.texi: Likewise.
23711 2017-05-01  Jan Beulich  <jbeulich@suse.com>
23713         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
23714         swapping, add (x,x,m,x,n) alternative.
23716 2017-05-01  Nathan Sidwell  <nathan@acm.org>
23718         * calls.c (combine_pending_stack_adjustment_and_call): Remove
23719         unnecessary unadjusted_alignment check.
23721 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
23723         PR c++/80038
23724         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
23725         operations here.
23726         * gimplify.c (gimplify_cilk_detach): New function.
23727         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
23728         * tree-core.h: Document EXPR_CILK_SPAWN.
23729         * tree.h (EXPR_CILK_SPAWN): Define.
23731 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
23733         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
23734         to use new fixit_hint representation, using the "replace" logic.
23735         (get_line_span_for_fixit_hint): Likewise.
23736         (layout::print_any_fixits): Likewise.
23737         (selftest::test_one_liner_many_fixits): Rename to...
23738         (selftest::test_one_liner_many_fixits_1): ...this, and update
23739         comment and expected output to reflect that the multiple fix-it
23740         hints are now consolidated into one insertion.
23741         (selftest::test_one_liner_many_fixits_2): New test.
23742         (selftest::test_diagnostic_show_locus_one_liner): Update for
23743         above.
23744         (selftest::test_fixit_consolidation): Update for fix-it API
23745         change.
23746         * diagnostic.c (print_parseable_fixits): Likewise.
23747         * edit-context.c (edited_line::m_line_events): Convert from
23748         auto_vec <line_event *> to auto_vec <line_event>.
23749         (class line_event): Convert from abstract base class to a concrete
23750         class, taking over the role of replace_event.
23751         (class insert_event): Delete.
23752         (class replace_event): Rename to class line_event.  Convert to
23753         half-open range.
23754         (edit_context::add_fixits): Reimplement.
23755         (edit_context::apply_insert): Delete.
23756         (edit_context::apply_replace): Rename to...
23757         (edit_context::apply_fixit): ...this.  Convert to half-open range.
23758         (edited_file::apply_insert): Delete.
23759         (edited_file::apply_replace): Rename to...
23760         (edited_file::apply_fixit): ...this.
23761         (edited_line::~edited_line): Drop deletion of events.
23762         (edited_line::apply_insert): Delete.
23763         (edited_line::apply_replace): Rename to...
23764         (edited_line::apply_fixit): ...this.  Convert to half-open range.
23765         Update for change to type of m_line_events.
23766         * edit-context.h (edit_context::apply_insert): Delete.
23767         (edit_context::apply_replace): Rename to...
23768         (edit_context::apply_fixit): ...this.
23770 2017-05-01  Martin Sebor  <msebor@redhat.com>
23772         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
23773         known.
23775 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
23777         PR target/68491
23778         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
23779         __get_cpuid_max returns 0.
23780         (__get_cpuid_count): Ditto.
23782 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
23784         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
23785         replacement expression is another instance of one of its arguments.
23787 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
23789         PR target/79430
23790         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
23791         check for stack push/pop autoinc.
23792         * config/i386/i386.c (ix86_agi_dependent): Return false
23793         if the only reason why modified_in_p returned true is that
23794         addr is SP based and set_insn is a push or pop.
23796 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
23798         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
23799         overflow check.
23801 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
23803         PR ipa/79224
23804         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
23805         (account_size_time): Use two predicates - exec_pred and
23806         nonconst_pred_ptr.
23807         (evaluate_conditions_for_known_args): Compute both clause and
23808         nonspec_clause.
23809         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
23810         (inline_summary_t::duplicate): Update.
23811         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
23812         separately.
23813         (compute_inline_parameters): Likewise.
23814         (estimate_edge_size_and_time): Update caluclation of time.
23815         (estimate_node_size_and_time): Compute both time and nonspecialized
23816         time.
23817         (estimate_ipcp_clone_size_and_time): Update.
23818         (inline_merge_summary): Update.
23819         (do_estimate_edge_time): Update.
23820         (do_estimate_edge_size): Update.
23821         (do_estimate_edge_hints): Update.
23822         (inline_read_section, inline_write_summary): Stream both new predicates.
23823         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
23824         as argument.
23825         (compute_inlined_call_time): Cleanup.
23826         (big_speedup_p): Update.
23827         (edge_badness): Update.
23828         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
23829         (size_time_entry): Replace predicate by exec_predicate and
23830         nonconst_predicate.
23831         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
23832         (estimate_edge_time): Return also nonspec_time.
23833         (reset_edge_growth_cache): Update.
23835 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
23837         PR rtl-optimization/80491
23838         * ifcvt.c (noce_process_if_block): When looking for x setter
23839         with missing else_bb, don't check only the insn right before
23840         cond_earliest, but look for the last insn that x is modified in
23841         within the same bb.
23843         PR rtl-optimization/80491
23844         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
23846 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
23848         PR tree-optimization/80487
23849         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
23851 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23853         PR tree-optimization/79697
23854         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
23855         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
23856         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
23857         BUILT_IN_STRNDUP.
23858         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
23859         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
23861 2017-04-28  Martin Sebor  <msebor@redhat.com>
23863         PR tree-optimization/80523
23864         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
23865         (init_target_to_host_charmap, target_to_host, target_strtol10): New
23866         functions.
23867         (maybe_warn, format_directive, parse_directive): Use new functions.
23868         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
23870 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
23872         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
23874 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23876         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
23877         target_header_dir): Set correctly.
23878         * configure: Regenerated.
23879         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
23880         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
23881         instead of SYSTEM_HEADER_DIR.
23883 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
23885         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
23886         (estimate_local_effects): Likewise.
23887         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
23888         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
23889         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
23890         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
23891         do_estimate_edge_time, estimate_edge_time): Likewise.
23892         * ipa-inline-analysis.c (estimate_node_size_and_time,
23893         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
23894         (estimate_time_after_inlining): Remove.
23896 2017-04-28  Martin Liska  <mliska@suse.cz>
23898         * doc/gcov.texi: Enhance documentation of gcov.
23900 2017-04-28  Martin Liska  <mliska@suse.cz>
23902         * doc/gcov.texi: Sort options in alphabetic order.
23903         * doc/gcov-dump.texi: Likewise.
23904         * doc/gcov-tool.texi: Likewise.
23905         * gcov.c (print_usage): Likewise.
23906         * gcov-dump.c (print_usage): Likewise.
23907         * gcov-tool.c (print_merge_usage_message): Likewise.
23908         (print_rewrite_usage_message): Likewise.
23909         (print_overlap_usage_message): Likewise.
23911 2017-04-28  Martin Liska  <mliska@suse.cz>
23913         PR gcov-profile/53915
23914         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
23916 2017-04-28  Martin Liska  <mliska@suse.cz>
23918         PR gcov-profile/79891
23919         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
23920         is marked by compiler as living on a line.
23921         (get_cycles_count): Remove usage of the union.
23922         (output_intermediate_file): Likewise.
23923         (find_source): Fix GNU coding style.
23924         (accumulate_line_counts): Remove old non-all block mode.
23925         (output_lines): Remove usage of the union.
23926         * profile.c (output_location): Include all BBs, even if
23927         belonging to a same line (and file) as a previous BB.
23929 2017-04-28  Martin Liska  <mliska@suse.cz>
23931         * gcov.c (process_args): Handle new argument 'w'.
23932         (read_graph_file): Assign ID to BBs.
23933         (output_branch_count): Display BB # if verbose flag is set.
23934         (output_lines): Likewise for arcs.
23935         (print_usage): Add '--verbose' option help.
23936         * doc/gcov.texi: Document --verbose (-w) option.
23938 2017-04-28  Martin Liska  <mliska@suse.cz>
23940         * gcov.c (struct block_location_info): New struct.
23941         (process_file): Fill up the new structure.
23942         (read_graph_file): Replace usage of encoding by the newly added
23943         struct.
23944         (add_line_counts): Likewise.
23945         (accumulate_line_counts): Remove usage of the union.
23946         (function_info::function_info): New function.
23947         (function_info::~function_info): Likewise.
23948         (process_file): Call delete instead of release_function.
23949         (release_function): Release the function.
23950         (release_structures): Call delete instead of release_function.
23951         (solve_flow_graph): Replace usage of num_blocks.
23952         (find_exception_blocks): Likewise.
23953         (output_lines): Fix GNU coding style.
23955 2017-04-28  Martin Liska  <mliska@suse.cz>
23957         PR driver/56469
23958         * coverage.c (coverage_remove_note_file): New function.
23959         * coverage.h: Declare the function.
23960         * toplev.c (finalize): Clean if an error has been seen.
23962 2017-04-28  Martin Liska  <mliska@suse.cz>
23964         PR gcov-profile/80031
23965         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
23966         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
23967         * gcov.c (read_graph_file): Read just number of blocks.
23968         * profile.c (branch_prob): Do not stream 0 flags per a basic
23969         block.
23971 2017-04-28  Martin Liska  <mliska@suse.cz>
23973         * gcov-dump.c (tag_*): Add new argument to declarations.
23974         (dump_gcov_file): Likewise.
23975         (tag_blocks): Add and use new argument depth.
23976         (tag_arcs): Likewise.
23977         (tag_lines): Likewise.
23978         (tag_counters): Likewise.
23979         (tag_summary): Likewise.
23980         (dump_working_sets): Use depth to do a proper indentation.
23982 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
23984         PR bootstrap/80531
23985         * cgraph.h (symtab_node::debug_symtab): No longer inline.
23986         * symtab.c (symtab_node::debug_symtab): Move definition here.
23988 2017-04-28  Richard Biener  <rguenther@suse.de>
23990         * lto-streamer.h (LTO_major_version): Bump to 7.
23992 2017-04-28  Richard Biener  <rguenther@suse.de>
23994         * tree-vrp.c (assert_info): New struct.
23995         (add_assert_info): New helper.
23996         (register_edge_assert_for_2): Refactor to add asserts to a vector
23997         of assert_info.
23998         (register_edge_assert_for_1): Likewise.
23999         (register_edge_assert_for): Likewise.
24000         (finish_register_edge_assert_for): New helper actually registering
24001         asserts where live on edge.
24002         (find_conditional_asserts): Adjust.
24003         (find_switch_asserts): Likewise.
24004         (evrp_dom_walker::try_find_new_range): Generalize.
24005         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
24007 2017-04-27  Marek Polacek  <polacek@redhat.com>
24009         PR sanitizer/80349
24010         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
24011         arg10 and arg11 to itype.
24013 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
24015         * doc/extend.texi (Object Size Checking): Improve grammar.
24017 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
24019         PR target/80530
24020         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
24021         that the logic for permitting reciprocal estimates matches that
24022         in use_rsqrt_p.
24024 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
24026         PR c++/80534
24027         * tree.c (type_cache_hasher::equal): Only compare
24028         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
24029         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
24030         non-aggregate element types.
24031         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
24032         about the flag on ARRAY_TYPEs in the comment, formatting fix.
24034 2017-04-27  Richard Biener  <rguenther@suse.de>
24036         PR middle-end/80533
24037         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
24038         stripping ARRAY_REFs from MEM_EXPR make sure we're not
24039         keeping a reference to a trailing array.
24041 2017-04-27  Richard Biener  <rguenther@suse.de>
24043         PR middle-end/80539
24044         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
24045         being in loop-closed SSA form conservatively.
24046         (chrec_fold_multiply_poly_poly): Likewise.
24048 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
24050         PR middle-end/79665
24051         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
24052         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
24054 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
24056         PR target/77728
24057         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
24058         (aarch64_function_arg_alignment): Return unsigned int again, but still
24059         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
24060         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
24061         Don't emit -Wpsabi note.
24062         (aarch64_function_arg_boundary): Likewise.
24063         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
24064         caller.
24066 2017-04-26  Nathan Sidwell  <nathan@acm.org>
24068         * tree.h (crc32_unsigned_n): Declare.
24069         (crc32_unsigned, crc32_unsigned): Make inline.
24070         * tree.c (crc32_unsigned_bits): Replace with ...
24071         (crc32_unsigned_n): ... this.
24072         (crc32_unsigned, crc32_byte): Remove.
24073         (crc32_string): Remove unnecessary braces.
24075 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
24077         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
24078         * ipa-inline-analysis.c (MAX_TIME): Remove.
24079         (account_size_time): Use sreal for time.
24080         (dump_inline_summary): Update.
24081         (estimate_function_body_sizes): Update.
24082         (estimate_edge_size_and_time): Update.
24083         (estimate_calls_size_and_time): Update.
24084         (estimate_node_size_and_time): Update.
24085         (inline_merge_summary): Update.
24086         (inline_update_overall_summary): Update.
24087         (estimate_time_after_inlining): Update.
24088         (inline_read_section): Update.
24089         (inline_write_summary): Update.
24090         * ipa-inline.c (compute_uninlined_call_time): Update.
24091         (compute_inlined_call_time): Update.
24092         (recursive_inlining): Update.
24093         (inline_small_functions): Update.
24094         (dump_overall_stats): Update.
24095         * ipa-inline.h: Include sreal.h.
24096         (size_time_entry): Turn time to sreal.
24097         (inline_summary): Turn self_time nad time to sreal.
24099 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
24101         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
24102         data-streamer.h
24103         (sreal::stream_out, sreal::stream_in): New.
24104         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
24106 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
24108         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
24109         environment.
24111 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
24113         PR target/70799
24114         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
24115         Handle ASHIFTRT.
24116         (dimode_scalar_chain::compute_convert_gain): Ditto.
24117         (dimode_scalar_chain::make_vector_copies): Ditto.
24118         (dimode_scalar_chain::convert_reg): Ditto.
24119         (dimode_scalar_chain::convert_insn): Ditto.
24120         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
24121         (VI248_AVX512BW_1): New mode iterator.
24122         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
24123         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
24124         mode iterator.
24126 2017-04-25  Martin Sebor  <msebor@redhat.com>
24128         PR tree-optimization/80497
24129         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
24130         constants are representable in HOST_WIDE_INT.
24131         (parse_directive): Ditto.
24133 2017-04-25  Martin Sebor  <msebor@redhat.com>
24135         PR bootstrap/80486
24136         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
24137         (new_zero_array): Adjust signature.
24138         (dom_info::dom_init): Used unsigned rather that size_t.
24139         (dom_info::dom_info): Same.
24141 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24142             Jakub Jelinek  <jakub@redhat.com>
24144         PR target/77728
24145         * config/arm/arm.c: Include gimple.h.
24146         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
24147         returns negative, increment ncrn only if it returned positive.
24148         (arm_needs_doubleword_align): Return int instead of bool,
24149         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
24150         members, but if there is any such non-FIELD_DECL
24151         > PARM_BOUNDARY aligned decl, return -1 instead of false.
24152         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
24153         returns negative, increment nregs only if it returned positive.
24154         (arm_setup_incoming_varargs): Likewise.
24155         (arm_function_arg_boundary): Emit -Wpsabi note if
24156         arm_needs_doubleword_align returns negative, return
24157         DOUBLEWORD_ALIGNMENT only if it returned positive.
24159 2017-04-25  Marek Polacek  <polacek@redhat.com>
24161         PR sanitizer/80349
24162         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
24163         first argument to type.
24165 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
24167         PR target/80482
24168         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
24169         type checks to test for compatibility instead of equality.
24171 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24172             Jakub Jelinek  <jakub@redhat.com>
24174         PR target/77728
24175         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
24176         type.
24177         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
24178         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
24179         the alignment computation, but return their maximum in warn_alignment.
24180         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
24181         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
24182         is smaller.
24183         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
24184         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
24185         caller.
24187 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24189         * config/arc/simdext.md (dmpyh): Fix typo.
24191 2017-04-25  Richard Biener  <rguenther@suse.de>
24193         PR tree-optimization/80492
24194         * alias.c (compare_base_decls): Handle registers with asm
24195         specification conservatively.
24196         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
24197         compare_base_decls returning dont-know properly.
24199 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24201         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
24202         (legitimate_offset_address_p): New function.
24203         (arc_legitimate_address_p): Use above function.
24205 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24207         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
24209 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24211         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
24212         ACCH registers whenever they are available.
24214 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24216         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
24217         double regs fix when not used.
24219 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24221         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
24222         core registers.
24223         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
24224         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
24226 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24228         * config/arc/arc.c (arc_output_addsi): Check for h-register class
24229         when emitting short ADD instructions.
24231 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
24233         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
24234         constraint.
24235         (cmpsi_cc_c_insn): Likewise.
24236         (cbranchsi4_scratch): Compute proper instruction length using
24237         compact_hreg_operand.
24238         * config/arc/predicates.md (compact_hreg_operand): New predicate.
24240 2017-04-25  Richard Biener  <rguenther@suse.de>
24242         PR middle-end/80509
24243         * passes.c (pass_manager::pass_manager): Initialize
24244         m_name_to_pass_map.
24246 2017-04-25  Richard Biener  <rguenther@suse.de>
24248         PR tree-optimization/79201
24249         * tree-ssa-sink.c (statement_sink_location): Handle calls.
24251 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24253         PR target/80464
24254         * config/s390/vector.md: Split MEM->GPR vector moves for
24255         non-s_operand addresses.
24257 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24259         PR target/79895
24260         * config/s390/predicates.md (reload_const_wide_int_operand): New
24261         predicate.
24262         * config/s390/s390.md ("movti"): Remove d/P alternative.
24263         ("movti_bigconst"): New pattern definition.
24265 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
24267         PR target/80080
24268         * s390-protos.h (s390_expand_cs_hqi): Removed.
24269         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
24270         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
24271         modes as well as CCZ1mode and CCZmode.
24272         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
24273         signature of s390_emit_compare_and_swap.
24274         (s390_expand_cs_hqi): Likewise, make static.
24275         (s390_expand_cs_tdsi): Generate an explicit compare before trying
24276         compare-and-swap, in some cases.
24277         (s390_expand_cs): Wrapper function.
24278         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
24279         atomic_exchange.
24280         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
24281         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
24282         patterns for small and large integers.  Forbid symref memory operands.
24283         Move expander to s390.c.  Require cc register.
24284         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
24285         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
24286         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
24287         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
24288         symref memory operands.  Remove CC mode and call s390_match_ccmode
24289         instead.
24290         ("atomic_exchange<mode>"): Allow and implement all integer modes.
24292 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
24294         * config/s390/s390.md (define_peephole2): New peephole to help
24295         combining the load-and-test pattern with volatile memory.
24297 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
24299         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
24300         with CCZmode for TARGET_Z196.
24302 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
24304         PR rtl-optimization/80501
24305         * combine.c (make_compound_operation_int): Set subreg_code to SET
24306         even for AND with mask of the sign bit of mode.
24308         PR rtl-optimization/80500
24309         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
24310         sum's initial value.
24312 2017-04-25  Julian Brown  <julian@codesourcery.com>
24313             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24315         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
24317 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
24319         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
24321 2017-04-25  Julian Brown  <julian@codesourcery.com>
24322             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24324         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
24325         (thunderx2t99_sha): New Reservation.
24327 2017-04-25  Julian Brown  <julian@codesourcery.com>
24328             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
24330         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
24331         type for 1-element load.
24333 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
24335         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
24337 2017-04-24  Martin Jambor  <mjambor@suse.cz>
24339         PR tree-optimization/80293
24340         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
24341         char arrays not totally scalarizable if it is false.
24342         (analyze_all_variable_accesses): Pass correct value in the new
24343         parameter.  Add a statistics counter.
24345 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
24347         PR middle-end/79931
24348         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
24350 2017-04-24  Richard Biener  <rguenther@suse.de>
24352         PR tree-optimization/80494
24353         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
24354         out for complex types.
24356 2017-04-24  Richard Biener  <rguenther@suse.de>
24358         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
24359         * tree-ssa-sccvn.c (print_scc): Print SCC size.
24360         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
24361         (DFS): Adjust and never fail.
24362         (sccvn_dom_walker::fail): Remove.
24363         (sccvn_dom_walker::before_dom_children): Adjust.
24364         (run_scc_vn): Likewise and never fail.
24365         * tree-ssa-pre.c (pass_pre::execute): Adjust.
24366         (pass_fre::execute): Likewise.
24368 2017-04-24  Richard Biener  <rguenther@suse.de>
24370         PR tree-optimization/79725
24371         * tree-ssa-sink.c (statement_sink_location): Return whether
24372         failure reason was zero uses.  Move that check later.
24373         (sink_code_in_bb): Deal with zero uses by removing the stmt
24374         if possible.
24376 2017-04-24  Richard Biener  <rguenther@suse.de>
24378         PR c++/2972
24379         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
24380         pointer-based references.
24382 2017-04-24  Richard Biener  <rguenther@suse.de>
24384         PR bootstrap/79814
24385         * pass_manager.h (pass_manager::operator new): Remove.
24386         (pass_manager::operator delete): Likewise.
24387         * passes.c (pass_manager::operator new): Remove.
24388         (pass_manager::operator delete): Likewise.
24389         (pass_manager::pass_manager): Zero individual pass members.
24391 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
24393         PR target/70799
24394         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
24395         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
24396         Check "XEXP (src, 1)" operand here.
24397         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
24398         Check "XEXP (src, 1)" operand here.
24399         (dimode_scalar_chain::make_vector_copies): Detect count register
24400         of a shift instruction.  Zero extend count register from QImode
24401         to DImode to satisfy vector shift pattern count operand predicate.
24402         Substitute vector shift count operand with a DImode copy.
24403         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
24404         vector register.
24406 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
24408         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
24409         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
24410         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
24411         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
24412         (UNSPEC_NOREX_MEM): Remove definition.
24414 2017-04-21  Richard Biener  <rguenther@suse.de>
24416         PR tree-optimization/79547
24417         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24418         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
24419         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
24420         without any constraints.
24422 2017-04-21  Richard Biener  <rguenther@suse.de>
24424         PR tree-optimization/78847
24425         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
24427 2017-04-21  Richard Biener  <rguenther@suse.de>
24429         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
24430         (build_distinct_type_copy): Likewise.
24431         (build_variant_type_copy): Likewise.
24432         * tree.c (build_qualified_type): Pass down mem-stat info.
24433         (build_distinct_type_copy): Likewise.
24434         (build_variant_type_copy): Likewise.
24436 2017-04-21  Richard Biener  <rguenther@suse.de>
24438         PR tree-optimization/80237
24439         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
24440         defaulted to NULL.
24441         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
24442         for a simplified result.
24444 2016-04-21  Richard Biener  <rguenther@suse.de>
24446         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
24447         sth as strict as a simple_iv but a chrec without symbols and an
24448         operand defined in the loop we are peeling (and not some subloop).
24449         (propagate_constants_for_unrolling): Propagate all constants.
24451 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
24453         PR target/79804
24454         * config/i386/i386.c (print_reg): Remove assert for disalowed
24455         regno values, call output_operand_lossage instead.
24457 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
24459         PR target/78090
24460         * config/i386/constraints.md (Yc): New register constraint.
24461         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
24462         Use Yc constraint for alternative 2 of operand 0.  Remove
24463         preferred_for_speed attribute.
24465 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
24467         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
24468         lastprivate clauses in SIMT case.
24470 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
24472         * doc/invoke.texi (-Wextra-semi): Document new warning option.
24474 2017-04-20  Richard Biener  <rguenther@suse.de>
24476         PR tree-optimization/57796
24477         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
24478         as N scalar stores.
24479         (vect_model_load_cost): Cost gathers as N scalar loads.
24481 2017-04-20  Richard Biener  <rguenther@suse.de>
24483         * ggc-page.c (ggc_allocated_p): Rename to ...
24484         (safe_lookup_page_table_entry): ... this and return the lookup
24485         result.
24486         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
24488 2017-04-20  Richard Biener  <rguenther@suse.de>
24490         PR tree-optimization/80453
24491         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
24492         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
24493         from the conditions.
24494         (vn_phi_eq): Pass them down.
24495         (vn_phi_lookup): Record them.
24496         (vn_phi_insert): Likewise.
24498 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
24500         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
24501         uninitialized variable warning to avoid buffer overrun.
24503 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
24505         PR other/71250
24506         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
24507         is suppressed for '{ 0 }' in C.
24509 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
24511         * BASE-VER: Set to 8.0.0.
24513 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24515         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
24516         priority .init_array and .fini_array section with SECTION_NOTYPE
24517         flag.
24519 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
24521         PR middle-end/80423
24522         * tree.h (build_array_type): Add typeless_storage default argument.
24523         * tree.c (type_cache_hasher::equal): Also compare
24524         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
24525         (build_array_type): Add typeless_storage argument, set
24526         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
24527         recursive call.
24528         (build_nonshared_array_type): Adjust build_array_type_1 caller.
24529         (build_array_type): Likewise.  Add typeless_storage argument.
24531 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
24532             Jakub Jelinek  <jakub@redhat.com>
24534         PR tree-optimization/80426
24535         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
24536         operation on symbolic operands, also compute the overflow for the
24537         invariant part when the operation degenerates into a negation.
24539 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
24541         PR debug/80461
24542         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
24543         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
24545         PR debug/80436
24546         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
24548 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
24550         PR target/80462
24551         * config/avr/avr.c (tree.h): Include it.
24552         (cgraph.h): Include it.
24553         (avr_encode_section_info): Don't warn for uninitialized progmem
24554         variable if it's just an alias.
24556 2017-04-19  Richard Biener  <rguenther@suse.de>
24558         PR ipa/65972
24559         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
24560         when needed by AutoPGO.
24562 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
24564         PR lto/50345
24565         * doc/lto.texi: Remove an extra 'that'.
24567 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
24569         PR rtl-optimization/80429
24570         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
24571         are only used in debug insns.
24573 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
24574             Vladimir Makarov  <vmakarov@redhat.com>
24576         * config/sparc/predicates.md (input_operand): Add comment.  Return
24577         true for any memory operand when LRA is in progress.
24578         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
24580 2017-04-18  Jeff Law  <law@redhat.com>
24582         PR target/74563
24583         * mips.md ({return,simple_return}_internal): Do not overwrite
24584         operands[0].
24586 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
24588         PR tree-optimization/80443
24589         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
24590         instead of adding 1, subtract -1 and similarly instead of subtracting
24591         1 add -1.
24593 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
24595         PR rtl-optimization/80357
24596         * haifa-sched.c (tmp_bitmap): New variable.
24597         (model_recompute): Handle duplicate use records.
24598         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
24599         (free_global_sched_pressure_data): Free it.
24601 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24603         Revert:
24604         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24605         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
24606         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
24607         instead of SYSTEM_HEADER_DIR.
24609 2017-04-18  Jeff Law  <law@redhat.com>
24611         PR middle-end/80422
24612         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
24613         predecessors after walking up the insn chain.
24615 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
24617         PR debug/80263
24618         * dwarf2out.c (modified_type_die): Try harder not to emit internal
24619         sizetype type into debug info.
24621 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
24623         PR target/80099
24624         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
24625         unneeded test for TARGET_UPPER_REGS_SF.
24626         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
24628 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
24630         PR sanitizer/80444
24631         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
24632         instead of gsi_after_labels.
24634 2017-04-18  Jeff Law  <law@redhat.com>
24636         * regcprop.c (maybe_mode_change): Avoid creating copies of the
24637         stack pointer.
24639         Revert:
24640         2017-04-13  Jeff Law  <law@redhat.com>
24641         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
24642         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
24644 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
24646         PR target/79453
24647         * config/avr/avr.c (intl.h): Include it.
24648         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
24650 2017-04-18  Martin Liska  <mliska@suse.cz>
24652         PR gcov-profile/78783
24653         * gcov-tool.c (gcov_output_files): Validate that destination
24654         file is either removed by the tool or by a user.
24656 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
24657             Guy Benyei  <guybe@mellanox.com>
24659         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
24660         block, and do not negate it, the stored id is already negative.
24662 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
24664         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
24666 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
24668         PR target/80098
24669         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
24670         masks of options that should be turned off if the VSX vector
24671         options are turned off.
24672         (OTHER_P8_VECTOR_MASKS): Likewise.
24673         (OTHER_VSX_VECTOR_MASKS): Likewise.
24674         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
24675         rs6000_disable_incompatible_switches to validate no type switches
24676         like -mvsx.
24677         (rs6000_incompatible_switch): New function to disallow turning on
24678         other vector options if -mno-vsx, -mno-power8-vector, or
24679         -mno-power9-vector are specified.
24681 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
24683         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
24685 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
24687         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
24688         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
24689         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
24690         (ARG_POINTER_CFA_OFFSET): Likewise.
24692 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
24694         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
24695         conditions to take advantage of various optimizations.
24697 2017-04-13  Jeff Law  <law@redhat.com>
24699         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
24700         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
24701         (zero_extendsidi2_dext): Likewise.
24703 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
24705         PR sanitizer/80403
24706         * fold-const.c (fold_ternary_loc): Revert
24707         use op0 instead of fold_convert_loc (loc, type, arg0) part of
24708         2017-04-12 change.
24710 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
24712         PR rtl-optimization/80343
24713         * lra-remat.c (update_scratch_ops): Assign original hard reg to
24714         new scratch pseudo.
24716 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
24718         PR sanitizer/80414
24719         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
24720         to ubsan_encode_value.
24722 2017-04-13  Jeff Law  <law@redhat.com>
24724         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
24725         appearing in DEBUG_INSNs.
24727 2017-04-13  Martin Liska  <mliska@suse.cz>
24729         PR gcov-profile/80413
24730         * gcov-io.c (gcov_write_string): Copy to buffer just when
24731         allocated size is greater than zero.
24733 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
24735         PR debug/80321
24736         * dwarf2out.c (decls_for_scope): Ignore declarations of
24737         current_function_decl in BLOCK_NONLOCALIZED_VARS.
24739 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
24741         PR lto/69953
24742         * ipa-visibility.c (non_local_p): Fix typos.
24743         (localize_node): When localizing symbol in same comdat group,
24744         dissolve the group only when we know external symbols are going
24745         to be privatized.
24746         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
24748 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
24750         PR tree-optimization/79390
24751         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
24752         order does not result in usable sequence, retry with reversed operand
24753         order.
24755         PR sanitizer/80403
24756         PR sanitizer/80404
24757         PR sanitizer/80405
24758         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
24759         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
24760         op0 instead of fold_convert_loc (loc, type, arg0).
24762 2017-04-12  Jeff Law  <law@redhat.com>
24764         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
24765         has a delay slot in the generated code.
24767         * config/cris/cris.md (cris_preferred_reload_class): Return
24768         GENNONACR_REGS rather than GENERAL_REGS.
24770 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
24772         PR c/80163
24773         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
24774         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
24775         signedness of the result type.
24777 2017-04-12  Richard Biener  <rguenther@suse.de>
24778             Jeff Law  <law@redhat.com>
24780         PR tree-optimization/80359
24781         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
24782         trim stores to TARGET_MEM_REFs.
24784 2017-04-12  Richard Biener  <rguenther@suse.de>
24786         PR tree-optimization/79390
24787         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
24788         threading case even more.
24790 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
24792         PR target/80382
24793         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
24794         for quad_address_p for TImode, instead of just not indexed_address.
24796 2017-04-12  Richard Biener  <rguenther@suse.de>
24797             Bernd Edlinger  <bernd.edlinger@hotmail.de>
24799         PR middle-end/79671
24800         * alias.c (component_uses_parent_alias_set_from): Handle
24801         TYPE_TYPELESS_STORAGE.
24802         (get_alias_set): Likewise.
24803         * tree-core.h (tree_type_common): Add typeless_storage flag.
24804         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
24805         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
24806         for types containing members with TYPE_TYPELESS_STORAGE.
24807         (place_field): Likewise.
24808         (layout_type): Likewise for ARRAY_TYPE.
24809         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
24810         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
24811         TYPE_TYPELESS_STORAGE.
24812         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
24814 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
24816         PR sanitizer/80349
24817         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
24818         first argument to type.
24820 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24822         PR target/80376
24823         PR target/80315
24824         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
24825         CONST0_RTX (mode) rather than const0_rtx where appropriate.
24826         (rs6000_expand_binop_builtin): Likewise.
24827         (rs6000_expand_ternop_builtin): Likewise; also add missing
24828         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
24829         vshasigma built-ins.
24830         * doc/extend.texi: Document that vec_xxpermdi's third argument
24831         must be a constant.
24833 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
24835         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
24836         Use shift_const cost parameter when calculating gain of STV shifts.
24838 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
24840         PR rtl-optimization/70478
24841         * lra-constraints.c (process_alt_operands): Check memory for
24842         disfavoring memory insn operand.
24844 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
24846         PR middle-end/80100
24847         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
24848         left shift in unsigned HOST_WIDE_INT type.
24850         PR rtl-optimization/80385
24851         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
24852         (not (neg X)) into (plus X -1) for complex or non-integral modes.
24854         PR libgomp/80394
24855         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
24856         if they have any depend clauses.
24858 2017-04-11  Martin Liska  <mliska@suse.cz>
24860         PR ipa/80212
24861         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
24862         * ipa-split.c (split_function): Create a local comdat symbol
24863         if caller is in a comdat group.
24865 2017-04-11  Martin Liska  <mliska@suse.cz>
24867         PR ipa/80212
24868         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
24869         flags.
24871 2017-04-11  Martin Sebor  <msebor@redhat.com>
24873         PR middle-end/80364
24874         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
24875         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
24876         for INTEGER_TYPE.
24877         (directive::set_width, directive::set_precision, format_character):
24878         Adjust.
24879         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
24880         INTEGER_TYPE.
24882 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
24884         PR target/80389
24885         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
24886         conflict, set target->arch_name instead of target->cpu_name.
24888 2017-04-11  Richard Biener  <rguenther@suse.de>
24890         PR tree-optimization/80374
24891         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
24892         build_zero_cst, remove fold_convertible_p check again.
24894 2017-04-11  Martin Liska  <mliska@suse.cz>
24896         PR sanitizer/70878
24897         * ubsan.c (instrument_object_size): Do not instrument register
24898         variables.
24900 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
24902         PR target/80381
24903         * config/i386/i386-builtin-types.def
24904         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
24905         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
24906         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
24907         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
24908         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
24909         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
24910         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
24911         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
24912         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
24913         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
24914         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
24915         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
24916         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
24917         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
24918         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
24919         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
24920         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
24921         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
24922         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
24923         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
24924         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
24925         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
24926         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
24927         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
24928         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
24929         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
24930         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
24931         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
24932         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
24933         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
24934         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
24935         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
24936         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
24937         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
24938         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
24939         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
24940         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
24941         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
24942         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
24943         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
24944         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
24945         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
24946         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
24947         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
24948         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
24949         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
24950         aliases.
24951         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
24952         flag to second_arg_count, handle 4 argument function type _COUNT
24953         aliases, handle second_arg_count on second argument rather than last.
24955 2017-04-10  Jeff Law  <law@redhat.com>
24957         PR tree-optimization/80374
24958         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
24959         record anything if we can not convert integer_zero_node to the
24960         desired type.
24962 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
24964         PR target/80108
24965         * config/rs6000/rs6000.c (rs6000_option_override_internal):
24966         Enhance special handling given to the TARGET_P9_MINMAX option in
24967         relation to certain other options.
24969 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
24971         PR tree-optimization/80153
24972         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
24973         remove POINTER_PLUS_EXPR's base part directly, rather than through
24974         aff_tree.
24976 2017-04-10  Richard Biener  <rguenther@suse.de>
24977             Bin Cheng  <bin.cheng@arm.com>
24979         PR tree-optimization/80153
24980         * tree-affine.c (aff_combination_to_tree): Get base pointer from
24981         the first element of pointer type aff_tree.  Build result expr in
24982         aff_tree's type.
24983         (add_elt_to_tree): Convert to type unconditionally.  Remove other
24984         fold_convert calls.
24985         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
24986         (rewrite_use_nonlinear_expr): Check invariant using iv information.
24988 2017-04-10  Richard Biener  <rguenther@suse.de>
24990         * tree-ssa-structalias.c (find_func_aliases): Properly handle
24991         asm inputs.
24993 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
24995         PR rtl-optimization/70478
24996         * lra-constraints.c (curr_small_class_check): New.
24997         (update_and_check_small_class_inputs): New.
24998         (process_alt_operands): Update curr_small_class_check.  Disfavor
24999         alternative insn memory operands.  Check available regs for small
25000         class operands.
25002 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
25004         PR target/80057
25005         * config/mips/mips.opt (-mvirt): Update description.
25006         * doc/invoke.texi (-mvirt): Likewise.
25008 2017-04-10  Richard Biener  <rguenther@suse.de>
25010         PR middle-end/80362
25011         * fold-const.c (fold_binary_loc): Look at unstripped ops when
25012         looking for NEGATE_EXPR in -A / -B to A / B folding.
25014 2017-04-10  Martin Liska  <mliska@suse.cz>
25016         PR gcov-profile/80224
25017         * gcov.c (print_usage): Fix usage string.
25018         (get_gcov_intermediate_filename): Remove.
25019         (output_gcov_file): Use both for normal and intermediate format.
25020         (generate_results): Do not initialize special file for
25021         intermediate format.
25023 2017-04-10  Richard Biener  <rguenther@suse.de>
25025         PR tree-optimization/80304
25026         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
25027         for safelen.
25029 2017-04-10  Nathan Sidwell  <nathan@acm.org>
25031         PR target/79905
25032         * config/rs6000/rs6000.c (rs6000_vector_type): New.
25033         (rs6000_init_builtins): Use it.
25035 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25037         * config/arm/arm.md (<mrc>): Add mode to SET source.
25038         (<mrrc>): Likewise.
25040 2017-04-10  Richard Biener  <rguenther@suse.de>
25042         PR middle-end/80344
25043         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
25045 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
25047         PR target/80324
25048         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
25049         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
25050         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
25051         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
25052         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
25053         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
25054         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
25055         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
25056         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
25057         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
25058         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
25059         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
25060         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
25061         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
25062         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
25063         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
25064         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
25065         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
25066         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
25067         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
25068         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
25069         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
25070         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
25072 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
25074         PR rtl-optimization/70478
25075         * lra-constraints.c: Reverse the last patch.
25077 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
25079         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
25080         Add comment for WCHAR_T.
25082 2017-04-08  Martin Liska  <mliska@suse.cz>
25084         Revert:
25085         2017-04-07  Martin Liska  <mliska@suse.cz>
25087         PR ipa/80212
25088         * ipa-split.c (split_function): Add function part to a same comdat
25089         group.
25091 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25093         PR target/80358
25094         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
25096 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
25098         * rs6000/rs6000.c (vec_load_pendulum): Rename...
25099         (vec_pairing): ...to this.
25100         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
25101         (rs6000_sched_init): Adjust for name change.
25102         (struct rs6000_sched_context): Likewise.
25103         (rs6000_init_sched_context): Likewise.
25104         (rs6000_set_sched_context): Likewise.
25106 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
25108         PR target/80322
25109         PR target/80323
25110         PR target/80325
25111         PR target/80326
25112         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
25113         intrinsics.
25114         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
25115         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
25116         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
25118 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
25120         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
25122 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25124         PR rtl-optimization/70703
25125         * ira-color.c (update_conflict_hard_regno_costs): Use
25126         int64_t instead of HOST_WIDE_INT.
25128 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25130         PR rtl-optimization/70478
25131         * lra-constraints.c (process_alt_operands): Disfavor alternative
25132         insn memory operands.
25134 2017-04-07  Jeff Law  <law@redhat.com>
25136         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
25137         CALL and NOTE_INSN_CALL_ARG_LOCATION.
25139 2017-04-07  Martin Liska  <mliska@suse.cz>
25141         PR target/79889
25142         * config/aarch64/aarch64.c (aarch64_process_target_attr):
25143         Show error message instead of an ICE.
25145 2017-04-07  Martin Liska  <mliska@suse.cz>
25147         PR ipa/80212
25148         * ipa-split.c (split_function): Add function part to a same comdat
25149         group.
25151 2017-04-07  Richard Biener  <rguenther@suse.de>
25153         PR middle-end/80341
25154         * tree.c (get_unwidened): Also handle ! for_type case for
25155         INTEGER_CSTs.
25156         * convert.c (do_narrow): Split out from ...
25157         (convert_to_integer_1): ... here.  Do not pass final truncation
25158         type to get_unwidened for TRUNC_DIV_EXPR.
25160 2017-04-07  Richard Biener  <rguenther@suse.de>
25162         * tree-affine.c (wide_int_ext_for_comb): Take type rather
25163         than aff_tree.
25164         (aff_combination_const): Adjust.
25165         (aff_combination_scale): Likewise.
25166         (aff_combination_add_elt): Likewise.
25167         (aff_combination_add_cst): Likewise.
25168         (aff_combination_convert): Likewise.
25169         (add_elt_to_tree): Likewise.  Remove unused argument.
25170         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
25172 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25174         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
25175         definition.
25176         * config/arm/arm.c (arm_default_short_enums): Use
25177         ARM_DEFAULT_SHORT_ENUMS.
25178         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
25180 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
25182         PR debug/80234
25183         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
25184         members with redundant out-of-class redeclaration.
25186 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
25188         PR target/80286
25189         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
25190         * config/i386/i386.md (*zero_extendsidi2):
25191         Add (?*x,*x) and (?*v,*v) alternatives.
25193 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
25195         PR target/79733
25196         * config/i386/i386.c (ix86_expand_builtin)
25197         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
25198         mode from insn data. Convert operands to insn operand mode.
25199         Copy operands that don't satisfy insn predicate to a register.
25201 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
25203         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
25204         Update comments.
25206 2017-04-06  Richard Biener  <rguenther@suse.de>
25208         PR tree-optimization/80334
25209         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
25210         preserve alignment of accesses.
25212 2017-04-06  Richard Biener  <rguenther@suse.de>
25214         PR tree-optimization/80262
25215         * tree-sra.c (build_ref_for_offset): Preserve address-space
25216         information.
25217         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
25218         Drop useless address-space information on MEM_REF offsets.
25220 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
25222         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
25224 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
25226         PR rtl-optimization/70703
25227         * ira-color.c (update_conflict_hard_regno_costs): Use
25228         HOST_WIDE_INT instead of long.
25230 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
25232         PR target/80298
25233         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
25234         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
25235         is not defined.
25236         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
25237         for x86_64 target.  Handle -m3dnowa option.
25239 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
25241         PR rtl-optimization/70703
25242         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
25243         (update_conflict_hard_regno_costs): Use long instead of unsigned
25244         arithmetic for cost calculation.
25246 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
25247             Bernd Edlinger  <bernd.edlinger@hotmail.de>
25249         PR sanitizer/80308
25250         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
25251         for big endian.
25253 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
25255         PR target/78002
25256         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
25257         ptr_mode with Pmode throughout.
25258         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
25259         into probe_stack_range and use DImode.
25261 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25263         PR target/79890
25264         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
25265         call_eh_return is true.
25267 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25269         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
25270         Initialize last_match_fntype_index.
25272 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
25274         PR target/80310
25275         * tree-nvr.c: Include internal-fn.h.
25276         (pass_return_slot::execute): Ignore internal calls without
25277         direct optab.
25279 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
25280             Richard Biener  <rguenther@suse.de>
25282         PR c++/80297
25283         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
25284         captures used multiple times, except for the last use.
25285         * generic-match-head.c: Include gimplify.h.
25287 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
25289         PR tree-optimization/79390
25290         * target.h (struct noce_if_info): Declare.
25291         * targhooks.h (default_noce_conversion_profitable_p): Declare.
25292         * target.def (noce_conversion_profitable_p): New target hook.
25293         * ifcvt.h (struct noce_if_info): New type, moved from ...
25294         * ifcvt.c (struct noce_if_info): ... here.
25295         (noce_conversion_profitable_p): Renamed to ...
25296         (default_noce_conversion_profitable_p): ... this.  No longer
25297         static nor inline.
25298         (noce_try_store_flag_constants, noce_try_addcc,
25299         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
25300         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
25301         instead of noce_conversion_profitable_p.
25302         * config/i386/i386.c: Include ifcvt.h.
25303         (ix86_option_override_internal): Don't override
25304         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
25305         (ix86_noce_conversion_profitable_p): New function.
25306         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
25307         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
25308         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
25309         * doc/tm.texi: Regenerated.
25311 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25313         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
25314         correction.
25316 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25318         PR target/80307
25319         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
25320         instructions for small multiply cores.
25322 2017-04-04  Jeff Law  <law@redhat.com>
25324         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
25325         added member.
25326         (mips_expand_vec_perm_const): Initialize elements in orig_perm
25327         that are not set by the loop over the elements.
25329 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
25331         PR target/80286
25332         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
25333         int mode, convert_modes it to mode as unsigned, otherwise use
25334         lowpart_subreg to mode rather than SImode.
25335         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
25336         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
25337         Use DImode instead of SImode for the shift count operand.
25338         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
25339         Likewise.
25341 2017-04-04  Richard Biener  <rguenther@suse.de>
25343         PR middle-end/80281
25344         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
25345         arithmetic done for the negate or the plus.  Simplify.
25346         (A - (-B) -> A + B): Likewise.
25347         * fold-const.c (split_tree): Make sure to not negate pointers.
25349 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
25351         PR rtl-optimization/60818
25352         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
25353         a compare of comparisons with the thing compared if this results
25354         in a different machine mode.
25356 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
25358         * alias.c (base_alias_check): Fix typo in comment.
25359         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
25360         * cgraphunit.c (symbol_table::compile): Likewise.
25361         * collect2.c (maybe_run_lto_and_relink): Likewise.
25362         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
25363         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
25364         * config/avr/avr.c (avr_map_op_t): Likewise.
25365         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
25366         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
25367         * config/epiphany/epiphany.md (movcc): Likewise.
25368         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
25369         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
25370         Likewise.
25371         * config/mips/mips.c (mips_save_restore_reg): Likewise.
25372         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
25373         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
25374         * config/sh/sh.c (sh_rtx_costs): Likewise.
25375         * fold-const.c (fold_truth_andor): Likewise.
25376         * genautomata.c (collapse_flag): Likewise.
25377         * gengtype.h (struct type::u::s): Likewise.
25378         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
25379         * input.c (FORMAT_AMOUNT): Likewise.
25380         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
25381         (known_aggs_to_agg_replacement_list): Likewise.
25382         * ipa-inline-analysis.c: Likewise.
25383         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
25384         * ipa-polymorphic-call.c
25385         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
25386         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
25387         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
25388         Likewise.
25389         * modulo-sched.c (apply_reg_moves): Likewise.
25390         * omp-expand.c (build_omp_regions_1): Likewise.
25391         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
25392         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
25393         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
25394         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
25395         * value-prof.c: Likewise.
25396         * var-tracking.c (val_reset): Likewise.
25398 2017-04-03  Richard Biener  <rguenther@suse.de>
25400         PR tree-optimization/80275
25401         * fold-const.c (split_address_to_core_and_offset): Handle
25402         POINTER_PLUS_EXPR.
25404 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
25406         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
25407         descriptors is at least equal to that of functions.
25409 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
25411         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
25413 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
25415         PR target/80250
25416         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
25417         (mov<IMOD4:mode>): New expander.
25418         (*mov<IMOD4:mode>_internal): New insn and split pattern.
25420 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
25422         PR rtl-optimization/79405
25423         * fwprop.c (propagations_left): New variable.
25424         (forward_propagate_into): Decrement it.
25425         (fwprop_init): Initialize it.
25426         (fw_prop): If the variable has reached zero, stop propagating.
25427         (fwprop_addr): Ditto.
25429 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
25431         PR debug/79255
25432         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
25433         a FUNCTION_DECL, pass it as decl instead of origin to
25434         process_scope_var.
25436 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
25438         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
25439         string.
25441 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
25443         PR target/80107
25444         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
25445         TARGET_VSX_SMALL_INTEGER.
25447 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25449         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
25450         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
25452 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
25454         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
25455         extraction from odd-numbered MSA register.
25457 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
25459         PR middle-end/80173
25460         * expmed.c (store_bit_field_1): Don't attempt to create
25461         a word subreg out of hard registers wider than word if they
25462         have HARD_REGNO_NREGS of 1 for their mode.
25464         PR middle-end/80163
25465         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
25466         conversions to integer types wider than word and pointer.
25468         PR debug/80025
25469         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
25470         (rtx_equal_for_cselib_p): Pass 0 to it.
25471         * cselib.c (cselib_hasher::equal): Likewise.
25472         (rtx_equal_for_cselib_1): Add depth argument.  If depth
25473         is 128, don't look up VALUE locs and punt.  Increment
25474         depth in recursive calls when walking VALUE locs.
25476 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25478         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
25479         (make_gcov_file_name): Use the canonical path name for generating
25480         the MD5 value.
25481         (read_line): Fix handling of files with ascii null bytes.
25483 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
25485         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
25486         to initialise a vector register instead
25487         of using a const_int.
25489 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
25491         PR translation/80189
25492         * gimplify.c (omp_default_clause): Use %qs instead of %s in
25493         diagnostic messages.
25495 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
25497         PR target/80246
25498         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
25499         (dfp_diex_<mode>): Update mode of operand 1.
25500         * doc/extend.texi (dxex, dxexq): Document change to return type.
25501         (diex, diexq): Document change to argument type.
25503 2017-03-30  Martin Jambor  <mjambor@suse.cz>
25505         PR ipa/77333
25506         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
25507         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
25508         it reflects the signature changes performed at the callee side.
25509         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
25510         to cgraph_build_function_type_skip_args.
25511         (build_function_decl_skip_args): Adjust call to the above function.
25513 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
25515         PR target/80206
25516         * config/i386/sse.md
25517         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
25518         register as dest whenever it is a MEM not rtx_equal_p to the
25519         corresponding dup operand, and when forcing into reg move the
25520         reg into the memory afterwards.
25521         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
25522         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
25523         for the force_reg mode.
25524         (avx512vl_vextractf128<mode>): Use register as dest either
25525         always when a MEM, or when it is a MEM not rtx_equal_p to the
25526         corresponding dup operand, or even not when it is a CONST_VECTOR
25527         depending on the mode and lo vs. hi.
25528         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
25529         parens.
25530         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
25531         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
25532         Likewise.  Require that operands[2] is even.
25533         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
25534         Remove extraneous parens.  Require that operands[2] is a multiple
25535         of 4.
25536         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
25537         operands[0] is a MEM if <mask_applied>, the predicates/constraints
25538         disallow memory then.
25540 2017-03-30  Richard Biener  <rguenther@suse.de>
25542         PR tree-optimization/77498
25543         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
25544         to non-constants over backedges.
25546 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
25548         PR rtl-optimization/80233
25549         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
25550         as last_combined_insn.  Do not test for BARRIER_P separately.
25552 2017-03-29  Andreas Schwab  <schwab@suse.de>
25554         PR ada/80146
25555         * calls.c (prepare_call_address): Convert funexp to Pmode before
25556         copying to temp reg.
25558 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25560         PR tree-optimization/80158
25561         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
25562         Handle possible future case of more than one alternate
25563         interpretation.
25564         (replace_rhs_if_not_dup): Likewise.
25565         (replace_one_candidate): Likewise.
25567 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25569         PR rtl-optimization/80193
25570         * ira.c (ira): Do not check allocation for LRA.
25572 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
25574         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
25575         (nvptx_output_simt_exit): Declare.
25576         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
25577         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
25578         (init_softstack_frame): Move initialization of crtl->is_leaf to...
25579         (nvptx_declare_function_name): ...here.  Emit declaration of local
25580         memory space buffer for omp_simt_enter insn.
25581         (nvptx_output_unisimt_switch): New.
25582         (nvptx_output_softstack_switch): New.
25583         (nvptx_output_simt_enter): New.
25584         (nvptx_output_simt_exit): New.
25585         * config/nvptx/nvptx.h (struct machine_function): New fields
25586         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
25587         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
25588         (UNSPECV_SIMT_EXIT): Ditto.
25589         (omp_simt_enter_insn): New insn.
25590         (omp_simt_enter): New expansion.
25591         (omp_simt_exit): New insn.
25592         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
25594         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
25595         (expand_GOMP_SIMT_ENTER_ALLOC): New.
25596         (expand_GOMP_SIMT_EXIT): New.
25597         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
25598         (GOMP_SIMT_ENTER_ALLOC): Ditto.
25599         (GOMP_SIMT_EXIT): Ditto.
25600         * target-insns.def (omp_simt_enter): New insn.
25601         (omp_simt_exit): Ditto.
25602         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
25603         simt_dlist.
25604         (lower_rec_simd_input_clauses): Implement SIMT privatization.
25605         (lower_rec_input_clauses): Likewise.
25606         (lower_lastprivate_clauses): Handle SIMT privatization.
25608         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
25609         (ompdevlow_adjust_simt_enter): New.
25610         (find_simtpriv_var_op): New.
25611         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
25612         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
25614         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
25615         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
25616         (copy_decl_for_dup_finish): Ditto.
25618         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
25620 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
25622         PR target/53383
25623         * config/i386/i386.c (ix86_option_override_internal): Always
25624         allow -mpreferred-stack-boundary=3 for 64-bit targets.
25626 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
25628         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
25630 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
25632         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
25633         mark new edge's irreducible flag accordign to it.
25634         (vect_do_peeling): Check loop preheader edge's irreducible flag
25635         and pass it to function slpeel_add_loop_guard.
25637 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
25639         PR tree-optimization/80218
25640         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
25641         Update block frequencies and counts.
25643 2017-03-28  Richard Biener  <rguenther@suse.de>
25645         PR tree-optimization/78644
25646         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
25647         of a simplification result we may not use it at all.
25649 2017-03-28  Richard Biener  <rguenther@suse.de>
25651         PR ipa/80205
25652         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
25653         without arguments, generate default definition of a SSA name.
25655 2017-03-28  Richard Biener  <rguenther@suse.de>
25657         PR middle-end/80222
25658         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
25659         TYPE_REF_CAN_ALIAS_ALL references.
25660         * fold-const.c (fold_indirect_ref_1): Likewise.
25662 2017-03-28  Martin Liska  <mliska@suse.cz>
25664         PR ipa/80104
25665         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
25666         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
25668 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
25669             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
25671         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
25672         (EXTRA_SPECS): Define.
25673         (SUBTARGET_EXTRA_SPECS): Likewise.
25674         (SUBTARGET_CPP_SPEC): Likewise.
25675         * config/arc/elf.h (EXTRA_SPECS): Renamed to
25676         SUBTARGET_EXTRA_SPECS.
25677         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
25679 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
25681         * config/arc/simdext.md (vst64_insn): Update pattern.
25682         (vld32wh_insn): Likewise.
25683         (vld32wl_insn): Likewise.
25684         (vld64_insn): Likewise.
25685         (vld32_insn): Likewise.
25687 2017-03-28  Marek Polacek  <polacek@redhat.com>
25689         PR sanitizer/80067
25690         * fold-const.c (fold_comparison): Use protected_set_expr_location
25691         instead of SET_EXPR_LOCATION.
25693 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
25695         * tree.c (add_expr): Avoid name lookup warning.
25697 2017-03-27  Jeff Law  <law@redhat.com>
25699         PR tree-optimization/80216
25700         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
25701         function name.  Limit recursion depth.
25702         (record_temporary_equivalences): Corresponding changes.
25704 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
25706         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
25707         covered first.
25709 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
25711         PR target/80102
25712         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
25713         notes.
25714         * cfgcleanup.c (reg_note_cfa_p): New array.
25715         (insns_have_identical_cfa_notes): New function.
25716         (old_insns_match_p): Don't cross-jump in between /f
25717         and non-/f instructions.  If both i1 and i2 are frame related,
25718         verify all CFA notes, their order and content.
25720 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
25722         PR target/78543
25723         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
25724         HImode and SImode with zero extend to DImode to one insn.
25725         (bswap<mode>2_extenddi): Likewise.
25726         (bswapsi2_extenddi): Likewise.
25727         (bswaphi2_extendsi): Likewise.
25728         (bswaphi2): Combine bswap HImode and SImode into one insn.
25729         Separate memory insns from swapping register.
25730         (bswapsi2): Likewise.
25731         (bswap<mode>2): Likewise.
25732         (bswaphi2_internal): Delete, no longer used.
25733         (bswapsi2_internal): Likewise.
25734         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
25735         store, and gpr<-gpr swap insns.
25736         (bswap<mode>2_store): Likewise.
25737         (bswaphi2_reg): Register only splitter, combine with the splitter.
25738         (bswaphi2 splitter): Likewise.
25739         (bswapsi2_reg): Likewise.
25740         (bswapsi2 splitter): Likewise.
25741         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
25742         the insns into load, store, and register/register insns.
25743         (bswapdi2_ldbrx): Likewise.
25744         (bswapdi2_load): Likewise.
25745         (bswapdi2_store): Likewise.
25746         (bswapdi2_reg): Likewise.
25748 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
25750         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
25751         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
25753 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
25755         PR target/80103
25756         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
25757         add comments.
25758         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
25759         special handling for target option conflicts between dform
25760         options (-mpower9-dform, -mpower9-dform-vector,
25761         -mpower9-dform-scalar) and -mno-direct-move.
25763 2017-03-27  Richard Biener  <rguenther@suse.de>
25765         PR tree-optimization/80181
25766         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
25768 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
25770         * config/arc/predicates.md (move_double_src_operand): Replace the
25771         call to move_double_src_operand with a call to address_operand.
25773 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
25775         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
25776         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
25777         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
25779 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
25781         * config/arc/predicates.md (long_immediate_loadstore_operand):
25782         Consider scaled addresses cases.
25784 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
25786         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
25787         restored when in interrupt.
25788         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
25789         doesn't have delay slot.
25791 2017-03-27  Richard Biener  <rguenther@suse.de>
25793         PR ipa/79776
25794         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
25795         inlined thunk clones.
25797 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
25799         PR sanitizer/80168
25800         * asan.c (instrument_derefs): Copy over last operand from
25801         original COMPONENT_REF to the new COMPONENT_REF with
25802         DECL_BIT_FIELD_REPRESENTATIVE.
25803         * ubsan.c (instrument_object_size): Likewise.
25805 2017-03-27  Richard Biener  <rguenther@suse.de>
25807         PR tree-optimization/80170
25808         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
25809         sure DR/SCEV didnt fold in constants we do not see when looking
25810         at the reference base alignment.
25812 2017-03-27  Richard Biener  <rguenther@suse.de>
25814         PR middle-end/80171
25815         * gimple-fold.c (fold_ctor_reference): Properly guard against
25816         NULL return value from canonicalize_constructor_val.
25818 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
25820         PR target/80180
25821         * config/i386/i386.c (ix86_expand_builtin)
25822         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
25823         flags reg setting and flags reg using instructions.
25824         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
25825         clobbering instructions to zero extend op2.
25827 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
25829         * doc/install.texi (Configuration) <--with-aix-soname>:
25830         Update link to AIX ld.
25832 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
25834         PR rtl-optimization/80160
25835         PR rtl-optimization/80159
25836         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
25837         reg_alternate_class into account.
25839 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
25841         PR target/80148
25842         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
25843         to consider in curr_insn_transform.
25845 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
25847         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
25848         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
25849         and emit_mode_inner.
25851 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25853         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
25854         argument to the overloaded builtin variants.  Use the new flag to
25855         deprecate certain builtin variants.
25856         * config/s390/s390-builtin-types.def: Add new builtin types.
25857         * config/s390/s390-builtins.h: Support new flags field for
25858         overloaded builtins.
25859         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
25860         (s390_macro_to_expand): Enable vector float data type.
25861         (s390_cpu_cpp_builtins_internal): Indicate support of the new
25862         builtins by incrementing the __VEC__ version number.
25863         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
25864         vec_xst.
25865         (s390_resolve_overloaded_builtin): Emit error messages depending
25866         on the builtin flags.
25867         * config/s390/s390.c (s390_expand_builtin): Support additional
25868         flags argument.  Change error message to match the messages
25869         emitted in s390-c.c.
25870         * config/s390/s390.md: New UNSPEC_* constants.
25871         (op_type): Add new instruction types.
25872         * config/s390/vecintrin.h: Add new builtins and test data class
25873         constants.
25874         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
25875         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
25876         (VEC_INEXACT, VEC_NOINEXACT): New constants.
25877         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
25878         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
25879         ("vec_mergel<mode>"): V_HW -> VEC_HW.
25881         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
25882         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
25883         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
25884         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
25886         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
25887         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
25888         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
25889         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
25891         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
25892         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
25893         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
25894         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
25895         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
25896         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
25897         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
25899         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
25900         ("vec_scatter_element<V_HW_4:mode>_DI")
25901         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
25902         ("vec_fpint<mode>", "vflls")
25903         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
25904         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
25905         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
25906         ("*vec_cmphe<mode>_cc"): ... these.
25908         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
25909         mode constant instead of magic value.
25911 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25913         * config/s390/s390.c (s390_expand_vec_compare): Support other
25914         vector floating point modes than just V2DF.
25915         (s390_expand_vcond): Likewise.
25916         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
25917         (s390_cannot_change_mode_class): Prevent mode changes between TF
25918         and V1TF in vector registers.
25919         * config/s390/s390.md (DF, SF): New mode attributes.
25920         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
25921         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
25922         SFmode support for VRs.
25923         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
25924         vector fp modes.
25925         (VFT, VF_HW): New mode iterators.
25926         (vw, sdx): New mode attributes.
25927         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
25928         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
25929         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
25930         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
25931         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
25932         also the new vector floating point modes.  Renaming to ...
25934         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
25935         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
25936         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
25937         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
25938         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
25939         ("vec_unordered<mode>"): ... these.
25941         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
25942         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
25943         ("*vec_extendv2df"): New insn definitions.
25945 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25947         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
25948         ("mulditi3_2", "*muldi3_sign"): New patterns.
25949         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
25950         rename the pattern definition.
25952 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25954         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
25955         expander.
25956         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
25958 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25960         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
25961         instruction if possible.
25962         * config/s390/vector.md (vec_halfnumelts): New mode
25963         attribute.
25964         ("*vec_vllezlf<mode>"): New pattern.
25966 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25968         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
25969         ("popcountv4si2", "popcountv2di2"): Rename to ...
25970         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
25971         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
25972         condition.
25973         ("popcount<mode>2_vxe"): New pattern.
25975 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25977         * common/config/s390/s390-common.c (processor_flags_table): Add
25978         arch12.
25979         * config.gcc: Add arch12.
25980         * config/s390/driver-native.c (s390_host_detect_local_cpu):
25981         Default to arch12 for unknown CPU model numbers.
25982         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
25983         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
25984         PROCESSOR_max sanity check.
25985         * config/s390/s390-opts.h (enum processor_type): Add
25986         PROCESSOR_ARCH12.
25987         * config/s390/s390.c (processor_table): Add arch12.
25988         (s390_expand_builtin): Add check for B_VXE flag.
25989         (s390_issue_rate): Add PROCESSOR_ARCH12.
25990         (s390_get_sched_attrmask): Likewise.
25991         (s390_get_unit_mask): Likewise.
25992         (s390_sched_score): Enable z13 scheduling for arch12.
25993         (s390_sched_reorder): Likewise.
25994         (s390_sched_variable_issue): Likewise.
25995         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
25996         PF_VXE.
25997         (s390_tune_attr): Use z13 scheduling also for arch12.
25998         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
25999         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
26000         (TARGET_VXE_P): New macros.
26001         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
26002         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
26003         * config/s390/s390.opt: Add arch12 as processor_type.
26005 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26007         * config/s390/s390.md
26008         ("fixuns_truncdddi2", "fixuns_trunctddi2")
26009         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
26010         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
26012         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
26013         Rename expanders to ...
26015         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
26016         ("fixuns_truncdddi2_emu"): ... these.
26018         ("fixuns_trunc<mode>si2_emu"): New expander.
26020         ("*fixuns_truncdfdi2_z13"): Rename to ...
26021         ("*fixuns_truncdfdi2_vx"): ... this.
26023 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26025         * config/s390/2964.md: Remove the single element vector compare
26026         instructions which are no longer used.
26027         * config/s390/s390.c (s390_select_ccmode): Remove handling of
26028         vector CCmodes.
26029         (s390_canonicalize_comparison): Remove handling of DFmode
26030         compares.
26031         (s390_expand_vec_compare_scalar): Remove function.
26032         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
26033         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
26034         pattern.
26035         ("*cmp<mode>_ccs"): Add wfcdb instruction.
26037 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26039         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
26040         FP zero.
26041         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
26042         will anyway by matched by mov<mode>_64dfp.
26044 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26046         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
26047         vlef/vstef.  Add missing operand to vleif.
26049 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26051         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
26052         pair for all vector types with 64 bit elements.
26053         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
26054         * config/s390/vector.md (V_HW_64): ... here.
26055         (V_128_NOSINGLE): New mode iterator.
26056         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
26057         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
26058         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
26059         ("*vec_load_pairv2di"): Change to ...
26060         ("*vec_load_pair<mode>"): ... this one.
26062 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26064         * config/s390/constraints.md: Add comments.
26065         (jKK): Reject element sizes > 8 bytes.
26066         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
26067         s_operands.
26068         * config/s390/s390.md: Add the s_operand checks formerly in
26069         s390_split_ok_p to various splitters where they are still
26070         required.
26071         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
26072         for 128 bit vectors.  Plus two splitters.
26074 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26076         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
26077         the file.
26079 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26081         PR target/79893
26082         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
26083         error if the boundary argument is not constant.
26085 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
26087         PR rtl-optimization/80112
26088         * loop-doloop.c (doloop_condition_get): Don't check condition
26089         if cmp isn't SET with IF_THEN_ELSE src.
26091 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26093         PR tree-optimization/80158
26094         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
26095         replacing a candidate statement, also replace it for the
26096         candidate's alternate interpretation.
26097         (replace_rhs_if_not_dup): Likewise.
26098         (replace_one_candidate): Likewise.
26100 2017-03-24  Richard Biener  <rguenther@suse.de>
26102         PR tree-optimization/80167
26103         * graphite-isl-ast-to-gimple.c
26104         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
26105         properly.
26106         (translate_isl_ast_to_gimple::get_rename): Likewise.
26108 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26110         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
26111         handling of certain combinations of target options, including the
26112         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
26113         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
26115 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26117         PR target/71436
26118         * config/arm/arm.md (*load_multiple): Add reload_completed to
26119         matching condition.
26121 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26122             Richard Biener  <rguenth@suse.de>
26124         PR tree-optimization/79908
26125         PR tree-optimization/80136
26126         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
26127         been cast away, gimplify_and_add suffices.
26129 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
26131         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
26133 2017-03-23  Richard Biener  <rguenther@suse.de>
26135         PR tree-optimization/80032
26136         * gimplify.c (gimple_push_cleanup): Forced unconditional
26137         cleanups still have to go to the conditional_cleanups
26138         sequence.
26140 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
26142         PR tree-optimization/80072
26143         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
26144         to unsigned int.
26145         (next_operand_entry_id): Change type to unsigned int.
26146         (sort_by_operand_rank): Make sure to return the right return value
26147         even if unsigned fields are bigger than INT_MAX.
26148         (struct oecount): Change cnt and id type to unsigned int.
26149         (oecount_hasher::equal): Formatting fix.
26150         (oecount_cmp): Make sure to return the right return value
26151         even if unsigned fields are bigger than INT_MAX.
26152         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
26154         PR c++/80129
26155         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
26156         TREE_READONLY on result if writing it more than once.
26158         PR sanitizer/80110
26159         * doc/invoke.texi (-fsanitize=thread): Document that with
26160         -fnon-call-exceptions atomics are not able to throw
26161         exceptions.
26163         PR sanitizer/80110
26164         * tsan.c: Include tree-eh.h.
26165         (instrument_builtin_call): Call maybe_clean_eh_stmt or
26166         maybe_clean_or_replace_eh_stmt where needed.
26167         (instrument_memory_accesses): Add cfg_changed argument.
26168         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
26169         if it returned true.
26170         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
26172         PR rtl-optimization/63191
26173         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
26174         wrapper function, moved the whole old content into ...
26175         (ix86_delegitimize_address_1): ... this.  New inline function.
26176         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
26177         true as last argument instead of ix86_delegitimize_address.
26179 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
26181         * config/aarch64/aarch64.c (generic_branch_cost): Copy
26182         cortexa57_branch_cost.
26184 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
26186         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
26188 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26190         PR target/80123
26191         * doc/md.texi (Constraints): Document wA constraint.
26192         * config/rs6000/constraints.md (wA): New.
26193         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
26194         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
26195         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
26196         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
26198 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
26200         PR c++/80029
26201         * gimplify.c (is_oacc_declared): New function.
26202         (oacc_default_clause): Use it to set default flags for acc declared
26203         variables inside parallel regions.
26204         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
26205         declared variables.
26206         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
26207         declare attribute to any decl as necessary.
26209 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26211         PR target/80082
26212         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
26213         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
26214         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
26215         (arm_arch_lpae): This.
26216         * config/arm/arm.c (arm_arch7ve): Rename into ...
26217         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
26218         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
26219         arm_arch_lpae.
26221 2017-03-22  Martin Liska  <mliska@suse.cz>
26223         PR target/79906
26224         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
26225         error message instead of an ICE.
26227 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26229         * doc/extend.texi (6.11 Additional Floating Types): Revise.
26231 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26233         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
26234         comments.
26235         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
26236         comments.
26238 2017-03-21  Martin Sebor  <msebor@redhat.com>
26240         * doc/extend.texi: Use "cannot" instead of "can't."
26241         * doc/hostconfig.texi: Same.
26242         * doc/install.texi: Same.
26243         * doc/invoke.texi: Same.
26244         * doc/loop.texi: Same.
26245         * doc/md.texi: Same.
26246         * doc/objc.texi: Same.
26247         * doc/rtl.texi: Same.
26248         * doc/tm.texi: Same.
26249         * doc/tm.texi.in: Same.
26250         * doc/trouble.texi: Same.
26252 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
26254         PR debug/63238
26255         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
26256         (collect_checksum_attributes): Set it.
26257         (die_checksum_ordered): Use it.
26259 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26261         PR tree-optimization/79908
26262         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
26263         change: For a VA_ARG whose LHS has been cast away, use
26264         force_gimple_operand to construct the side effects.
26266 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
26268         PR translation/80001
26269         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
26270         more amenable to translation.
26271         (oacc_loop_auto_partitions): Likewise.
26273 2017-03-21  Marek Polacek  <polacek@redhat.com>
26274             Martin Sebor  <msebor@redhat.com>
26276         PR tree-optimization/80109
26277         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
26278         on INTEGRAL_TYPE_P.
26280 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
26281             Segher Boessenkool  <segher@kernel.crashing.org>
26283         PR target/80125
26284         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
26285         check reg_used_between_p between insn and one of succ or succ2
26286         depending on if succ is artificial insn not inserted into insn
26287         stream.
26289 2017-03-21  Martin Liska  <mliska@suse.cz>
26291         PR gcov-profile/80081
26292         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
26293         * doc/gcc.texi: Include gcov-dump stuff.
26294         * doc/gcov-dump.texi: New file.
26296 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
26298         PR rtl-optimization/79150
26299         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
26300         conditional jump, if the jump is the last insn of the loop.
26302 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26303             Richard Biener  <rguenth@suse.de>
26305         PR tree-optimization/79908
26306         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
26307         been cast away, use force_gimple_operand to construct the side
26308         effects.
26310 2017-03-21  Martin Liska  <mliska@suse.cz>
26312         PR libfortran/79956
26313         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
26314         to NULL.
26316 2017-03-21  Brad Spengler <spender@grsecurity.net>
26318         PR plugins/80094
26319         * plugin.c (htab_hash_plugin): New function.
26320         (add_new_plugin): Use it and adjust.
26321         (parse_plugin_arg_opt): Adjust.
26322         (init_one_plugin): Likewise.
26324 2017-03-21  Richard Biener  <rguenther@suse.de>
26326         PR tree-optimization/80032
26327         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
26328         if set force the cleanup to happen unconditionally.
26329         (gimplify_target_expr): Push inserted clobbers with force_uncond
26330         to avoid them being removed by control-dependent DCE.
26332 2017-03-21  Richard Biener  <rguenther@suse.de>
26334         PR tree-optimization/80122
26335         * tree-inline.c (copy_bb): Do not expans va-arg packs or
26336         va_arg_pack_len when the inlined call stmt requires pack
26337         expansion itself.
26338         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
26340 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
26342         PR sanitizer/78158
26343         * tsan.c (instrument_builtin_call): If the memory model argument
26344         is not a constant, assume it is valid.
26346         PR c/67338
26347         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
26348         avoid UB.
26350 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
26352         PR rtl-optimization/79910
26353         * combine.c (can_combine_p): Do not allow combining an I0 or I1
26354         if its dest is used by an insn before I2 (other than the combined
26355         insns themselves, which are properly handled already).
26357 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
26359         Revert:
26360         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
26362         * combine.c (record_used_regs): New static function.
26363         (try_combine): Handle situations where there is an additional
26364         instruction between I2 and I3 which needs to have a LOG_LINK
26365         updated.
26367         Revert:
26368         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
26370         * combine.c (try_combine): Delete redundant i1 test.  Call
26371         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
26373 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26375         PR target/80083
26376         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
26377         alternatives 13/14.
26379 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26381         PR tree-optimization/80054
26382         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
26383         the optimization if a PHI or any of its arguments is not dominated
26384         by the candidate's basis.  Use gphi* rather than gimple* as
26385         appropriate.
26386         (replace_profitable_candidates): Clean up a gimple* variable that
26387         should be a gphi* variable.
26389 2017-03-20  Martin Sebor  <msebor@redhat.com>
26391         PR c++/52477
26392         * doc/extend.texi (attribute constructor): Document present limitation.
26394 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26396         PR target/79963
26397         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
26398         __POWER9_VECTOR__ #ifdef control, change template definition to
26399         use Power9-specific built-in function.
26400         (vec_any_eq): Likewise.
26401         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
26402         to control outcomes from this test.
26403         (vector_ae_<mode>p): For VEC_F modes, likewise.
26405 2017-03-20  Ian Lance Taylor  <iant@google.com>
26407         * config/i386/i386.c (ix86_function_regparm): Save an extra
26408         register for -fsplit-stack with DECL_STATIC_CHAIN.
26410 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
26412         PR target/79912
26413         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
26414         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
26416 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
26418         * config/riscv/riscv.c (riscv_print_operand): Use "fence
26419         iorw,ow".
26420         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
26421         iorw,iorw".
26423 2017-03-20  Marek Polacek  <polacek@redhat.com>
26425         PR sanitizer/80063
26426         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
26428 2017-03-20  Richard Biener  <rguenther@suse.de>
26430         PR tree-optimization/80113
26431         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
26432         allocate extra SSA name for PHI def.
26433         (add_close_phis_to_outer_loops): Likewise.
26434         (add_close_phis_to_merge_points): Likewise.
26435         (copy_loop_close_phi_args): Likewise.
26436         (copy_cond_phi_nodes): Likewise.
26438 2017-03-20  Martin Liska  <mliska@suse.cz>
26440         PR middle-end/79753
26441         * tree-chkp.c (chkp_build_returned_bound): Do not build
26442         returned bounds for a LHS that's not a BOUNDED_P type.
26444 2017-03-20  Martin Liska  <mliska@suse.cz>
26446         PR target/79769
26447         PR target/79770
26448         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
26449         COMPLEX_CST and VECTOR_CST.
26451 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26453         PR target/78857
26454         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
26455         target operand.  A new splitter adds the clobber statement in case
26456         the target operand is dead anyway.
26458 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
26460         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
26461         to age-old versions of binutils and glibc.
26463 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
26465         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
26467 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
26469         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
26471 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
26473         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
26474         requirement for binutils 2.13.
26476 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
26478         * combine.c (try_combine): Delete redundant i1 test.  Call
26479         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
26481 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
26483         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
26484         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
26485         contents.
26486         <riscv64-*-elf>: Re-arrange section
26487         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
26488         <riscv32-*-linux>: Likewise.
26489         <riscv64-*-elf>: Likewise
26490         <riscv64-*-linux>: Likewise.
26492 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
26494         PR target/80052
26495         * aarch64.opt(verbose-cost-dump): Fix typo.
26497 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
26499         PR target/79951
26500         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
26501         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
26503 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
26505         * reload.c (find_reloads): When reloading a nonoffsettable address,
26506         use RELOAD_OTHER for it and its address reloads.
26508         PR rtl-optimization/79910
26509         * combine.c (record_used_regs): New static function.
26510         (try_combine): Handle situations where there is an additional
26511         instruction between I2 and I3 which needs to have a LOG_LINK
26512         updated.
26514 2017-03-17  Jeff Law  <law@redhat.com>
26516         PR tree-optimization/71437
26517         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
26518         conditional in the hash table first.
26519         (vrp_dom_walker::before_dom_children): Extract condition from
26520         ASSERT_EXPR.  Record condition, its inverion and any implied
26521         conditions as well.
26523 2017-03-17  Marek Polacek  <polacek@redhat.com>
26524             Markus Trippelsdorf  <markus@trippelsdorf.de>
26526         PR tree-optimization/80079
26527         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
26528         m_stores_head.
26530 2017-03-17  Richard Biener  <rguenther@suse.de>
26532         PR middle-end/80075
26533         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
26534         Properly verify the LHS before the RHS possibly claims to be
26535         handled.
26536         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
26537         do not throw.
26539 2017-03-17  Martin Jambor  <mjambor@suse.cz>
26541         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
26542         (List of -O2 options): Likewise.
26543         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
26544         (-fipa-vrp) New.
26546 2017-03-17  Tom de Vries  <tom@codesourcery.com>
26548         * gcov-dump.c (print_usage): Print bug_report_url.
26550 2017-03-17  Richard Biener  <rguenther@suse.de>
26552         PR middle-end/80050
26553         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
26554         (parser::peek): Likewise.
26556 2017-03-17  Richard Biener  <rguenther@suse.de>
26558         PR tree-optimization/80048
26559         * sese.c (free_sese_info): Properly release rename_map and
26560         copied_bb_map elements.
26562 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
26564         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
26565         Add linked-list forward and backlinks.  Insert on
26566         construction, remove on destruction.
26567         (class pass_store_merging): Add m_stores_head field.
26568         (pass_store_merging::terminate_and_process_all_chains):
26569         Iterate over m_stores_head list.
26570         (pass_store_merging::terminate_all_aliasing_chains):
26571         Likewise.
26572         (pass_store_merging::execute): Check for debug stmts first.
26573         Push new chains onto the m_stores_head stack.
26575 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
26577         PR target/71294
26578         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
26579         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
26580         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
26582 2017-03-16  Jeff Law  <law@redhat.com>
26584         PR tree-optimization/71437
26585         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
26586         member function.  Implementation moved into after_dom_children
26587         member function and into the threader's thread_outgoing_edges
26588         function.
26589         (dom_opt_dom_walker::after_dom_children): Simplify by moving
26590         some code into new thread_outgoing_edges.
26591         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
26592         definition.  Simplify marker handling (do it here).   Assume we always
26593         have the available expression and the const/copies tables.
26594         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
26595         and tree-vrp.c
26596         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
26597         * tree-vrp.c (equiv_stack): No longer file scoped.
26598         (vrp_dom_walker): New class.
26599         (vrp_dom_walker::before_dom_children): New member function.
26600         (vrp_dom_walker::after_dom_children): Likewise.
26601         (identify_jump_threads):  Setup domwalker.  Use it rather than
26602         walking edges in a random order by hand.  Simplify setup/finalization.
26603         (finalize_jump_threads): Remove.
26604         (vrp_finalize): Do not call identify_jump_threads here.
26605         (execute_vrp): Do it here instead and call thread_through_all_blocks
26606         here too.
26608         PR tree-optimization/71437
26609         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
26610         callers changed.
26611         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
26612         callers changed.
26613         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
26614         (dom_opt_dom_walker::thread_across_edge): Remove
26615         handle_dominating_asserts argument.  All callers changed.
26616         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
26617         changes.  Remove calls to lhs_of_dominating_assert.  Other
26618         uses of handle_dominating_asserts turn into unconditional code
26619         (simplify_control_stmt_condition_1): Likewise.
26620         (simplify_control_stmt_condition): Likewise.
26621         (thread_through_normal_block, thread_across_edge): Likewise.
26622         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
26623         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
26624         object if it is not an SSA_NAME.
26625         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
26626         before calling into the VRP specific simplifiers.
26627         (identify_jump_threads): Remove handle_dominating_asserts
26628         argument.
26630 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
26632         PR fortran/79886
26633         * tree-diagnostic.c (default_tree_printer): No longer static.
26634         * tree-diagnostic.h (default_tree_printer): New prototype.
26636 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
26638         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
26639         Change ins into fmov.
26641 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26643         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
26644         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
26645         Use h_con constraint for operand 1.
26646         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
26647         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
26649 2017-03-15  Jeff Law  <law@redhat.com>
26651         PR tree-optimization/71437
26652         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
26653         (record_temporary_equivalences): Use it.
26655         PR tree-optimization/71437
26656         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
26657         tree-ssa-scopedtables.
26658         (lookup_avail_expr, build_and_record_new_cond): Likewise.
26659         (record_conditions, record_cond, vuse_eq): Likewise.
26660         (record_edge_info): Adjust to API tweak of record_conditions.
26661         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
26662         (record_temporary_equivalences, optimize_stmt): Likewise.
26663         (eliminate_redundant_computations): Likewise.
26664         (record_equivalences_from_stmt): Likewise.
26665         * tree-ssa-scopedtables.c: Include options.h and params.h.
26666         (vuse_eq): New function, moved from tree-ssa-dom.c
26667         (build_and_record_new_cond): Likewise.
26668         (record_conditions): Likewise.  Accept vector of conditions rather
26669         than edge_equivalence structure for first argument.
26670         for the first argument.
26671         (avail_exprs_stack::lookup_avail_expr): New member function, moved
26672         from tree-ssa-dom.c.
26673         (avail_exprs_stack::record_cond): Likewise.
26674         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
26675         from tree-ssa-dom.c.
26676         (avail_exprs_stack): Add new member functions lookup_avail_expr
26677         and record_cond.
26678         (record_conditions): Declare.
26680 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
26682         PR target/80017
26683         * lra-constraints.c (process_alt_operands): Increase reject for
26684         reloading an input/output operand.
26686 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
26688         PR target/79038
26689         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
26690         insns to convert from signed/unsigned char/short to IEEE 128-bit
26691         floating point.
26692         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
26694 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
26696         PR target/80019
26697         * config/i386/i386.c (ix86_vector_duplicate_value): Create
26698         subreg of inner mode for values already in registers.
26700 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
26702         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
26703         iteration reg is used after the loop.
26705 2017-03-14  Martin Sebor  <msebor@redhat.com>
26707         PR tree-optimization/79800
26708         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
26709         precision in negative-positive range.
26710         (format_floating): Call non-const overload with adjusted precision.
26712 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26714         PR target/79947
26715         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
26716         -mpowerpc-gfxopt.
26718 2017-03-14  Martin Sebor  <msebor@redhat.com>
26720         PR middle-end/80020
26721         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
26722         * builtins.def (aligned_alloc): Use it.
26724         PR c/79936
26725         * Makefile.in (GTFILES): Add calls.c.
26726         * calls.c: Include "gt-calls.h".
26728 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
26730         PR rtl-optimization/79728
26731         * regs.h (struct target_regs): New field
26732         x_contains_allocatable_regs_of_mode.
26733         (contains_allocatable_regs_of_mode): New macro.
26734         * reginfo.c (init_reg_sets_1): Initialize it, and change
26735         contains_reg_of_mode so it includes global regs as well.
26736         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
26737         rather than contains_regs_of_mode.
26739 2017-03-14  Martin Liska  <mliska@suse.cz>
26741         * doc/invoke.texi: Document options that can't be combined with
26742         -fcheck-pointer-bounds.
26744 2017-03-14  Martin Liska  <mliska@suse.cz>
26746         PR middle-end/79831
26747         * doc/invoke.texi (-Wchkp): Document the option.
26749 2017-03-14  Martin Liska  <mliska@suse.cz>
26751         * Makefile.in: Install gcov-dump.
26753 2017-03-14  Martin Liska  <mliska@suse.cz>
26755         * multiple_target.c (expand_target_clones): Bail out for
26756         an invalid attribute.
26758 2017-03-14  Richard Biener  <rguenther@suse.de>
26760         * alias.c (struct alias_set_entry): Pack properly.
26761         * cfgloop.h (struct loop): Likewise.
26762         * cse.c (struct set): Likewise.
26763         * ipa-utils.c (struct searchc_env): Likewise.
26764         * loop-invariant.c (struct invariant): Likewise.
26765         * lra-remat.c (struct cand): Likewise.
26766         * recog.c (struct change_t): Likewise.
26767         * rtl.h (struct address_info): Likewise.
26768         * symbol-summary.h (function_summary): Likewise.
26769         * tree-loop-distribution.c (struct partition): Likewise.
26770         * tree-object-size.c (struct object_size_info): Likewise.
26771         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
26772         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
26773         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
26774         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
26775         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
26776         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
26777         (struct _stmt_vec_info): Likewise.
26779 2017-03-14  Martin Liska  <mliska@suse.cz>
26781         PR target/79892
26782         * multiple_target.c (create_dispatcher_calls): Check that
26783         a target can create a function dispatcher.
26785 2017-03-14  Martin Liska  <mliska@suse.cz>
26787         PR lto/66295
26788         * multiple_target.c (expand_target_clones): Drop local.local
26789         flag for default implementation.
26791 2017-03-14  Richard Biener  <rguenther@suse.de>
26793         PR tree-optimization/80030
26794         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
26796 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
26798         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
26799         gcc_fallthrough() instead of __attribute__((fallthrough));
26801 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
26803         * doc/gcc.texi: Remove "up" link to (DIR).
26804         * doc/gccint.texi: Ditto.
26806 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
26808         * doc/install.texi (Specific) <avr>: Remove reference to
26809         binutils 2.13.
26811 2017-03-13  Jeff Law  <law@redhat.com>
26813         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
26814         attribute rather than comments.
26816         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
26817         match_scratch operand is highest.
26819 2017-03-13  Martin Liska  <mliska@suse.cz>
26821         PR middle-end/78339
26822         * ipa-pure-const.c (warn_function_noreturn): If the declarations
26823         is a CHKP clone, use original declaration.
26825 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
26827         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
26828         (arc_conditional_register_usage): Use a different allocation order
26829         when optimizing for size.
26830         * common/config/arc/arc-common.c (arc_option_optimization_table):
26831         Section anchors default on when optimizing for size.
26833 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
26835         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
26837 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
26839         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
26840         * config/arc/arc.md (cpu_facility): Add cd variant.
26841         (*movqi_insn): Add code density variant.
26842         (*movhi_insn): Likewise.
26843         (*movqi_insn): Likewise.
26844         (*addsi3_mixed): Likewise.
26845         (subsi3_insn): Likewise.
26847 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
26849         * config/arc/arc.md (movsi_cond_exec): Update constraint.
26851 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
26853         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
26854         expressions with MINUS and UNARY ops.
26856 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26858         PR target/79911
26859         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
26860         Rename to...
26861         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
26862         between vec_select and vector argument.
26863         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
26864         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
26865         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
26866         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
26867         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
26868         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
26870 2017-03-13  Richard Biener  <rguenther@suse.de>
26872         PR other/79991
26873         * params.def (vect-max-peeling-for-alignment): Fix typo.
26875 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
26877         * doc/install.texi (Specific) <mips-*-*>: Remove description of
26878         issue that only occurred with binutils below 2.18.
26880 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
26882         * doc/install.texi (Specific) <cris-axis-elf>: No longer
26883         refer to binutils 2.11/2.12 minimum.
26885 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
26887         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
26888         ftp.kernel.org and simplify binutils requirement.
26890 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
26892         * doc/invoke.texi (Warning Options): Fix spelling of link-time
26893         optimization.
26894         (Optimize Options): Ditto.  Also remove redundancy.
26896 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
26898         PR translation/79848
26899         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
26900         "%qs".
26901         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
26902         to G_ to avoid double translation.
26904 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
26906         PR translation/79923
26907         * auto-profile.c (get_combined_location): Convert leading
26908         character of diagnostics to lower case and remove trailing period.
26909         (read_profile): Likewise for various diagnostics.
26910         * config/arm/arm.c (arm_option_override): Remove trailing period
26911         from various diagnostics.
26912         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
26913         (msp430_expand_delay_cycles): Likewise.
26915 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
26917         PR target/79925
26918         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
26919         full command-line argument, rather than just "str".
26920         (aarch64_validate_march): Likewise.
26921         (aarch64_validate_mtune): Likewise.
26923 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
26925         PR rtl-optimization/78911
26926         * lra-assigns.c (must_not_spill_p): New function.
26927         (spill_for): Use it.
26929 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
26931         PR tree-optimization/79981
26932         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
26933         ATOMIC_COMPARE_EXCHANGE ifn result.
26934         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
26935         IFN_ATOMIC_COMPARE_EXCHANGE.
26937 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
26939         PR driver/79875
26940         * opts.c (parse_sanitizer_options): Add missing question mark to
26941         "did you mean" message.
26943 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26945         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
26946         built-in.
26947         (VMULEUH_UNS): Likewise.
26948         (VMULOUB_UNS): Likewise.
26949         (VMULOUH_UNS): Likewise.
26950         * config/rs6000/rs6000.c (builtin_function_type): Remove
26951         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
26953 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
26955         PR bootstrap/79952
26956         * read-rtl-function.c (function_reader::read_rtx_operand): Update
26957         x with result of extra_parsing_for_operand_code_0.
26958         (function_reader::extra_parsing_for_operand_code_0): Convert
26959         return type from void to rtx, returning x.  When reading
26960         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
26961         larger size containing struct block_symbol.
26963 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
26965         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
26966         -mfloat128-hardware without -m64.
26968 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
26970         PR target/79941
26971         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
26972         entries to the case statement that marks unsigned arguments to
26973         overloaded functions.
26975 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
26977         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
26978         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
26980 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
26982         PR target/79907
26983         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
26984         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
26986 2017-03-10  Martin Liska  <mliska@suse.cz>
26988         PR target/65705
26989         PR target/69804
26990         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
26991         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
26992         FIELD != NULL.
26994 2017-03-10  Olivier Hainque  <hainque@adacore.com>
26996         * tree-switch-conversion (array_value_type): Start by resetting
26997         candidate type to it's main variant.
26999 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
27001         PR rtl-optimization/79909
27002         * combine.c (try_combine): Use simplify_replace_rtx on individual
27003         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
27004         of the whole CALL_INSN_FUNCTION_USAGE.
27006         PR tree-optimization/79972
27007         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
27008         get_range_info on SSA_NAMEs.  Formatting fixes.
27010 2017-03-10  Richard Biener  <rguenther@suse.de>
27011             Jakub Jelinek  <jakub@redhat.com>
27013         PR tree-optimization/77975
27014         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
27015         edge to be constant.
27016         (get_val_for): For constant x return it.  Formatting fix.
27017         (loop_niter_by_eval): Avoid pointless looping if the next iteration
27018         would use the same bases as the current one.
27020 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27022         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
27023         instead of vec_select for V1TImode.
27024         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
27025         longer needed.
27026         (VSX_LE_128): Add V1TI to this mode iterator.
27027         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
27028         (*vsx_le_perm_store_<mode>): Likewise.
27029         (pre-reload splitter for VSX stores): Likewise.
27030         (post-reload splitter for VSX stores): Likewise.
27031         (*vsx_xxpermdi2_le_<mode>): Likewise.
27032         (*vsx_lxvd2x2_le_<mode>): Likewise.
27033         (*vsx_stxvd2x2_le_<mode>): Likewise.
27035 2017-03-09  Michael Eager  <eager@eagercon.com>
27037         Correct failures with --enable-checking=yes,rtl.
27039         * config/microblaze/microblaze.c (microblaze_expand_shift):
27040         Replace GET_CODE test with CONST_INT_P and INTVAL test with
27041         test for const0_rtx.
27042         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
27043         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
27045 2017-03-09  Richard Biener  <rguenther@suse.de>
27047         PR tree-optimization/79977
27048         * graphite-scop-detection.c (scop_detection::merge_sese):
27049         Handle the case of extra exits to blocks dominating the entry.
27051 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
27053         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
27054         Document rdynamic.
27056 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
27058         PR rtl-optimization/79949
27059         * lra-constraints.c (process_alt_operands): Check memory when
27060         trying to predict a cycle.  Print about the overall increase.
27062 2017-03-09  Richard Biener  <rguenther@suse.de>
27064         PR middle-end/79971
27065         * gimple-expr.c (useless_type_conversion_p): Preserve
27066         TYPE_SATURATING for fixed-point types.
27068 2017-03-09  Richard Biener  <rguenther@suse.de>
27070         PR ipa/79970
27071         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
27072         alignment of BLKmode params.
27074 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27076         PR target/79913
27077         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
27078         (VALL_NO_V2Q): Likewise.
27079         (VDQF_DF): Delete.
27080         * config/aarch64/aarch64-simd.md
27081         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
27082         iterator.
27083         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
27084         VALL_NO_V2Q mode iterator.
27085         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
27087 2017-03-09  Martin Liska  <mliska@suse.cz>
27089         PR tree-optimization/79631
27090         * tree-chkp-opt.c (chkp_is_constant_addr): Call
27091         tree_int_cst_sign_bit just for INTEGER constants.
27093 2017-03-09  Martin Liska  <mliska@suse.cz>
27095         PR target/65705
27096         PR target/69804
27097         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
27098         sanitizers.
27100 2017-03-09  Marek Polacek  <polacek@redhat.com>
27102         PR c++/79672
27103         * tree.c (inchash::add_expr): Handle TREE_VEC.
27105 2017-03-09  Martin Liska  <mliska@suse.cz>
27107         PR ipa/79764
27108         (chkp_narrow_size_and_offset): New function.
27109         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
27110         (void chkp_parse_bit_field_ref): New function.
27111         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
27112         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
27114 2017-03-09  Martin Liska  <mliska@suse.cz>
27116         PR ipa/79761
27117         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
27118         (chkp_find_bounds_1): Remove gcc_unreachable.
27120 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
27122         PR sanitizer/79944
27123         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
27124         BUILT_IN_SYNC*, determine the access type from the size suffix and
27125         always build a MEM_REF with that type.  Handle forgotten
27126         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
27128         PR target/79932
27129         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
27130         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
27131         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
27132         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
27133         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
27134         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
27135         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
27136         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
27137         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
27138         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
27139         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
27140         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
27141         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
27142         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
27143         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
27144         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
27145         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
27146         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
27147         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
27148         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
27149         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
27150         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
27151         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
27152         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
27153         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
27154         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
27155         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
27156         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
27157         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
27158         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
27159         definitions outside of __OPTIMIZE__ guarded section.
27161         PR target/79932
27162         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
27163         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
27164         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
27165         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
27166         guarded section.
27168 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27170         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
27171         ("vfenez<mode>"): Add missing constraints.
27173 2017-03-08  Martin Sebor  <msebor@redhat.com>
27175         PR target/79928
27176         * config/nds32/nds32.c (nds32_option_override):
27177         Fix misspelled diagnostic.
27179 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
27181         PR c/79940
27182         * gimplify.c (gimplify_omp_for): Replace index var in outer
27183         taskloop statement with an artificial variable and add
27184         OMP_CLAUSE_PRIVATE clause for it.
27186 2017-03-08  Richard Biener  <rguenther@suse.de>
27188         PR tree-optimization/79955
27189         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
27190         for accesses that are completely outside of the variable.
27192 2017-03-08  Andrew Haley  <aph@redhat.com>
27194         PR tree-optimization/79943
27195         * tree-ssa-loop-split.c (compute_new_first_bound): When
27196         calculating the new upper bound, (END-BEG) should be added, not
27197         subtracted.
27199 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
27201         * config/avr/avr.md (setmemhi): Make sure match_dup
27202         operand number comes before match_scratch.
27204 2017-03-08  Richard Biener  <rguenther@suse.de>
27206         PR tree-optimization/79920
27207         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
27208         with ncopies == 1 to ...
27209         (vect_transform_slp_perm_load): ... here.  Properly compute
27210         all element loads by iterating VF times over the group.  Do
27211         not handle ncopies (computed in a broken way) in
27212         vect_create_mask_and_perm.
27214 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
27216         PR sanitizer/79904
27217         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
27218         is a uniform vector, use uniform_vector_p return value instead of
27219         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
27221 2017-03-07  Marek Polacek  <polacek@redhat.com>
27223         PR middle-end/79809
27224         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
27225         (alloca_call_type): Likewise.
27227 2017-03-07  Martin Liska  <mliska@suse.cz>
27229         * gcov.c (process_args): Put comment to correct location.
27231 2017-03-07  Martin Liska  <mliska@suse.cz>
27233         PR middle-end/68270
27234         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
27235         Use array_at_struct_end_p instead of DECL_CHAIN (field).
27236         (chkp_narrow_bounds_for_field): Likewise.
27237         (chkp_parse_array_and_component_ref): Pass one more argument to
27238         call.
27240 2017-03-07  Richard Biener  <rguenther@suse.de>
27242         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
27243         preheaders.
27245 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
27247         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
27248         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
27250 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27252         PR c/79855
27253         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
27254         to end of description.
27255         (PARAM_MAX_STORES_TO_MERGE): Likewise.
27257 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
27259         PR rtl-optimization/79901
27260         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
27261         ...
27262         (*avx512f_<code><mode>3<mask_name>): ... this.
27263         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
27264         iterator instead of VI8_AVX2_AVX512BW.
27266         PR rtl-optimization/79901
27267         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
27268         min/max expander, expand it using expand_vec_cond_expr.
27270         PR sanitizer/79897
27271         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
27272         temporary.
27274 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
27276         PR c++/79821
27277         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
27278         to void * for PCH reasons.
27279         * dwarf2out.c (output_loc_operands, output_die): Cast
27280         v.val_vec.array to unsigned char *.
27282 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
27284         PR target/77850
27285         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
27286         vector types.
27288 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
27290         PR rtl-optimization/79571
27291         * lra-constraints.c (process_alt_operands): Calculate static
27292         reject and subtract it from overall when only addresses will be
27293         reloaded.
27295 2017-03-06  Julia Koval  <julia.koval@intel.com>
27297         PR target/79793
27298         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
27299         incoming stack boundary to 128 for 64-bit targets.
27301 2017-03-06  Richard Biener  <rguenther@suse.de>
27303         PR tree-optimization/79894
27304         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
27305         to NULL after folding it.
27307 2017-03-06  Richard Biener  <rguenther@suse.de>
27309         PR tree-optimization/79824
27310         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
27311         check disabling peeling for gaps.
27313 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
27315         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
27316         attributes): Document gettimeofday.
27318 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27320         * config/s390/s390.c (s390_option_override_internal): Set
27321         PARAM_MIN_VECT_LOOP_BOUND
27323 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
27325         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
27326         * config/s390/s390.md: Likewise.
27328 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
27330         PR target/79812
27331         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
27332         (<avx2_avx512>_perm<mode>): Rename to ...
27333         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
27334         of VI8F_256_512.
27335         (<avx512>_perm<mode>_mask): Rename to ...
27336         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
27337         of VI8F_256_512.
27338         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
27339         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
27340         instead of VI8F_256_512.
27341         (avx512f_perm<mode>): New define_expand.
27342         (avx512f_perm<mode>_mask): Likewise.
27343         (avx512f_perm<mode>_1<mask_name>): New define_insn.
27344         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
27346 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
27348         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
27349         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
27350         if_then_else.
27351         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
27353 2017-03-06  Martin Liska  <mliska@suse.cz>
27355         PR sanitize/79783
27356         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
27357         when having a SSA NAME w/o VAR_DECL assigned to it.
27359 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
27361         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
27362         msa_dpsub_<su>_d): Fix MODE for vec_select.
27364 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
27366         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
27367         argument.
27368         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
27370 2017-03-06  Richard Biener  <rguenther@suse.de>
27372         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
27373         * plugin.c (register_plugin_info): Likewise.
27374         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
27376 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
27378         * config/i386/sse.md (sse_storehps, sse_storelps,
27379         avx_<castmode><avxsizesuffix>_<castmode>,
27380         avx512f_<castmode><avxsizesuffix>_<castmode>,
27381         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
27382         in condition that at least one operand is not a MEM.
27384 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
27386         PR middle-end/79805
27387         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
27388         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
27389         ECF_NOTHROW.
27390         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
27391         gimple_call_nothrow_p flag based on whether original builtin can throw.
27392         If it can, emit following stmts on the fallthrough edge.
27393         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
27394         don't create new bb if inserting just debug stmts on the edge, try to
27395         insert them on the fallthru bb or just reset debug stmts.
27397 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
27399         PR target/43763
27400         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
27401         restore recog_data (including the operand rtxes inside it) around
27402         the call to get_insn_template.
27404 2017-03-03  Martin Sebor  <msebor@redhat.com>
27406         PR tree-optimization/79699
27407         * context.c (context::~context): Free MPFR caches to avoid
27408         a memory leak on program exit.
27410 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27412         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
27413         Use wide_int::ulow () instead of .elt (0).
27415 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
27417         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
27418         (*pushxf): Limit oF constraint to 32bit targets and add oC
27419         constraint for 64bit targets.
27420         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
27421         (*pushdf): Change rmF constraint to rmC.
27423 2017-03-03  Martin Liska  <mliska@suse.cz>
27425         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
27426         Remove unused variable.
27428 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
27430         PR target/79807
27431         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
27432         is a memory operand, increase num_memory.
27433         (ix86_expand_args_builtin): Likewise.
27435 2017-03-03  Jan Hubicka  <jh@suse.cz>
27437         PR lto/79760
27438         * ipa-devirt.c (maybe_record_node): Properly handle
27439         __cxa_pure_virtual visibility.
27441 2017-03-03  Martin Liska  <mliska@suse.cz>
27443         PR tree-optimization/79803
27444         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
27445         assert.
27446         (pass_loop_prefetch::execute): Disabled optimization if an
27447         assumption about L1 cache size is not met.
27449 2017-03-03  Martin Liska  <mliska@suse.cz>
27451         PR rtl-optimization/79574
27452         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
27453         (hash_scan_set): Likewise.
27454         (dump_hash_table): Likewise.
27455         (hoist_code): Likewise.
27457 2017-03-03  Richard Biener  <rguenther@suse.de>
27459         * fixed-value.c (fixed_from_string): Restore use of elt (1)
27460         in place of uhigh ().
27461         (fixed_convert_from_real): Likewise.
27463 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
27465         PR target/79514
27466         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
27468 2017-03-03  Richard Biener  <rguenther@suse.de>
27470         PR middle-end/79818
27471         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
27472         TYPE_OVERFLOW_UNDEFINED check.
27474 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27476         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
27477         numbers.
27478         (vector_ae_<mode>_p): Likewise.
27479         (vector_nez_<mode>_p): Likewise.
27480         (vector_ne_v2di_p): Likewise.
27481         (vector_ae_v2di_p): Likewise.
27482         (vector_ne_<mode>_p): Likewise.
27483         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
27484         numbers.
27485         (vsx_tsqrt<mode>2_fe): Likewise.
27487 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
27489         PR target/79514
27490         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
27492 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
27494         PR rtl-optimization/79780
27495         * cprop.c (one_cprop_pass): When second and further conditional trap
27496         in a single basic block is turned into an unconditional trap, turn it
27497         into a deleted note to avoid RTL verification failures.
27499 2017-03-02  Richard Biener  <rguenther@suse.de>
27501         * fold-const.c (const_binop): Use ulow () instead of elt (0).
27503 2017-03-02  Richard Biener  <rguenther@suse.de>
27505         PR tree-optimization/79345
27506         PR c++/42000
27507         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
27508         param and abort the walk, returning -1 if it is hit.
27509         (walk_aliased_vdefs): Take a limit param and pass it on.
27510         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
27511         defaulting to 0 and return a signed int.
27512         * tree-ssa-uninit.c (struct check_defs_data): New struct.
27513         (check_defs): New helper.
27514         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
27515         about uninitialized memory.
27516         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
27517         bogus uninitialized warning.
27518         (fixed_convert_from_real): Likewise.
27520 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
27522         PR tree-optimization/66768
27523         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
27524         iv_use if base object can't be determined.
27526 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
27528         PR tree-optimization/79345
27529         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
27530         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
27531         (get_pattern_stats): Initialize it.
27532         * genemit.c (gen_expand): Verify match_scratch numbers come after
27533         match_operand/match_dup numbers.
27534         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
27535         match_scratch numbers.
27536         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
27537         Likewise.
27538         * config/s390/s390.md (trunctdsd2): Likewise.
27540 2017-03-02  Richard Biener  <rguenther@suse.de>
27542         * wide-int.h (wide_int_storage::operator=): Implement in terms
27543         of wi::copy.
27545 2017-03-02  Richard Biener  <rguenther@suse.de>
27547         PR tree-optimization/79777
27548         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
27549         the to insert expression to sth existing.
27551 2017-03-01  Martin Sebor  <msebor@redhat.com>
27553         PR middle-end/79692
27554         * gimple-ssa-sprintf.c
27555         (directive::known_width_and_precision): New function.
27556         (format_integer): Use it.
27557         (get_mpfr_format_length): Consider the full range of precision
27558         when computing %g output with the # flag.  Set the likely byte
27559         count to 3 rather than 1 when precision is indeterminate.
27560         (format_floating): Correct the lower bound of precision.
27562 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27564         * doc/invoke.texi: Document default code model for 64-bit Linux.
27566 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
27568         PR target/79752
27569         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
27570         udiv rather than div since input pattern is unsigned.
27572 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
27574         * config/i386/i386.c (print_reg): Warn for values of
27575         unsupported size in integer register.
27577 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
27579         PR target/79439
27580         * config/rs6000/predicates.md (current_file_function_operand): Do
27581         not allow self calls to be local if the function is replaceable.
27583 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
27585         PR target/79395
27586         * config/rs6000/altivec.h (vec_ctz and others): Change the
27587         preprocessor macro that controls conditional compilation from
27588         _ARCH_PWR9 to __POWER9_VECTOR__.
27589         (vec_all_ne): Change parameterization of __altivec_scalar_pred
27590         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
27591         control (instead of _ARCH_PWR9 control) so that template
27592         definition uses power9-specific function.
27593         (vec_any_eq): Likewise.
27594         (vec_all_ne): Change macro definition to use a power9-specific
27595         expansion under #ifdef __POWER9_VECTOR__ control (instead of
27596         _ARCH_PWR9 control).
27597         (vec_any_eq) Likewise.
27598         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
27599         expansion for CMPNEF to remove support for xvcmpnesp instruction.
27600         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
27601         support for xvcmpnedp instruction.
27602         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
27603         macro expansion so that Power9 implementation of vec_all_ne does
27604         not use the AltiVec predicate framework.
27605         (VCMPNEH_P): Likewise.
27606         (VCMPNEW_P): Likewise.
27607         (VCMPNED_P): Likewise.
27608         (VCMPNEFP_P): Likewise.
27609         (VCMPNEDP_P): Likewise.
27610         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
27611         implementation of vec_any_eq to not use AltiVec predicate
27612         framework.
27613         (VCMPAEH_P): Likewise.
27614         (VCMPAEW_P): Likewise.
27615         (VCMPAED_P): Likewise.
27616         (VCMPAEFP_P): Likewise.
27617         (VCMPAEDP_P): Likewise.
27618         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
27619         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
27620         not use the AltiVec predicate framework.
27621         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
27622         of vec_any_eq to not use AltiVec predicate framework.
27623         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
27624         support for predefined __POWER9_VECTOR__ macro to indicate that
27625         Power9 instruction selection is enabled.
27626         (altivec_overloaded_builtins): Remove extraneous
27627         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
27628         function argument types RS6000_BTI_bool_V16QI and
27629         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
27630         entry for overloaded function argument types RS6000_BTI_bool_V4SI
27631         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
27632         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
27633         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
27634         Power9 for implementations of vec_cmpne.  Change the signature for
27635         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
27636         (representing vec_all_ne) to remove the previously described first
27637         argument of type RS6000_BTI_INTSI, as this was an artifact of
27638         reliance on the AltiVec predicate framework, which is no longer
27639         used in the implementation of these functions.  Add
27640         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
27641         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
27642         since, unlike the AltiVec predicate framework implementation, we
27643         do not share function descriptors between vec_alle and vec_anyeq.
27644         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
27645         set of modes that receive special treatment even when
27646         TARGET_P9_VECTOR is true.  The special treatment emits code that
27647         does not depend on Power9 instructions.
27648         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
27649         define_expand to not rely on AltiVec predicate framework.
27650         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
27651         function.
27652         (vector_ne_v2di_p): Change this define_expand to not rely on
27653         AltiVec predicate framework.
27654         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
27655         function.
27656         (vector_ne_<mode>_p): Change this define_expand to not rely on
27657         AltiVec predicate framework.
27658         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
27659         function.
27660         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
27661         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
27662         define_insn pattern.
27663         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
27664         define_insn pattern because the xvcmpne<VSs>. instruction is not
27665         supported.
27666         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
27667         instruction is not supported.
27669 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
27671         * config/nvptx/nvptx.c: Include intl.h.
27673 2017-03-01  Martin Jambor  <mjambor@suse.cz>
27675         PR lto/78140
27676         * ipa-prop.h (ipa_bits): Removed field known.
27677         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
27678         to pointers.  Adjusted their comments to warn about their sharing.
27679         (ipcp_transformation_summary): Change bits to a vector of pointers.
27680         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
27681         (ipa_get_ipa_bits_for_value): Declare.
27682         * tree-vrp.h (value_range): Mark as GTY((for_user)).
27683         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
27684         (ipa_bits_hash_table): Likewise.
27685         (ipa_vr_ggc_hash_traits): Likewise.
27686         (ipa_vr_hash_table): Likewise.
27687         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
27688         being pointers and vr_known being removed.
27689         (ipa_set_jf_unknown): Likewise.
27690         (ipa_get_ipa_bits_for_value): New function.
27691         (ipa_set_jfunc_bits): Likewise.
27692         (ipa_get_value_range): New overloaded functions.
27693         (ipa_set_jfunc_vr): Likewise.
27694         (ipa_compute_jump_functions_for_edge): Use the above functions to
27695         construct bits and vr parts of jump functions.
27696         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
27697         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
27698         exist.
27699         (ipcp_grow_transformations_if_necessary): Also allocate
27700         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
27701         exist.
27702         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
27703         them.  Fix too long lines.
27704         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
27705         vr_known being removed.
27706         (ipa_read_jump_function): Use new setter functions to construct bits
27707         and vr parts of jump functions or set them to NULL.
27708         (write_ipcp_transformation_info): Adjust for bits being pointers.
27709         (read_ipcp_transformation_info): Likewise.
27710         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
27711         space.
27712         Include gt-ipa-prop.h.
27713         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
27714         being pointers.
27715         (ipcp_store_bits_results): Likewise.
27716         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
27717         Do not write to existing jump functions but use a temporary instead.
27719 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
27721         PR c++/79681
27722         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
27723         attempt to use its first operand as BIT_FIELD_REF base.
27725 2017-03-01  Richard Biener  <rguenther@suse.de>
27727         PR middle-end/79721
27728         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
27729         interpolating formula in wrapping arithmetic.
27730         (chrec_apply): Convert chrec_evaluate return value to wanted type.
27732 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
27734         PR tree-optimization/79734
27735         * tree-vect-generic.c (expand_vector_condition): Optimize
27736         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
27737         Handle VEC_COND_EXPR where comparison has different inner width from
27738         type's inner width.
27740 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
27742         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
27743         markup, and similar issues.  Remove @opindex entries for things
27744         that aren't options.  Add missing -mmpy-option entries.
27746 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
27748         PR tree-optimization/79737
27749         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
27750         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
27751         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
27752         instead of byte_size.  Formatting fix.
27753         (shift_bytes_in_array_right): Formatting fix.
27755 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
27757         PR target/79749
27758         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
27759         condition on optimize for the leaf function test.
27761 2017-02-28  Martin Liska  <mliska@suse.cz>
27763         PR lto/79625
27764         * read-rtl-function.c (function_reader::handle_unknown_directive):
27765         Bail out when one uses -flto.
27767 2017-02-28  Martin Liska  <mliska@suse.cz>
27769         * common.opt: Replace space with tabular for options of <number>
27770         type.
27771         * config/i386/i386.opt: Show <number> value for
27772         -mlarge-data-threshold.
27773         * opts.c (print_filtered_help): Do not display number in hexadecimal
27774         format.
27776 2017-02-28  Martin Liska  <mliska@suse.cz>
27778         * common.opt: Fix --help=option -Q for options which are of
27779         an enum type.
27781 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
27783         * config/i386/i386.c (print_reg): Error out for values
27784         of 8-bit size in invalid integer register.
27786 2017-02-28  Martin Sebor  <msebor@redhat.com>
27788         PR tree-optimization/79691
27789         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
27791 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
27793         PR target/79729
27794         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
27795         gcc_unreachable with output_operand_lossage.
27797 2017-02-28  Richard Biener  <rguenther@suse.de>
27799         PR tree-optimization/79740
27800         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
27801         inserts.
27802         (visit_nary_op): Insert the nary into the hashtable if we
27803         pattern-matched sth.
27804         * tree-ssa-pre.c (eliminate_insert): Robustify.
27806 2017-02-28  Richard Biener  <rguenther@suse.de>
27808         PR middle-end/79731
27809         * fold-const.c (decode_field_reference): Reject out-of-bound
27810         accesses.
27812 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
27814         * config/i386/i386.c: Include intl.h.
27815         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
27816         instead of just cond ? "..." : "...".
27817         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
27818         * coverage.c (read_counts_file): Likewise.
27819         * omp-offload.c: Include intl.h.
27820         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
27821         of just cond ? "..." : "...".
27822         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
27823         of just cond ? "..." : "...".
27825 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
27827         PR target/79742
27828         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
27829         entry, if present.
27830         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
27831         'tune for' CPU name.
27832         * config/arm/arm-cpu-data.h: Regenerated.
27834 2017-02-28  Richard Biener  <rguenther@suse.de>
27836         PR tree-optimization/79732
27837         * tree-inline.c (expand_call_inline): Do not shadow var.
27839 2017-02-28  Richard Biener  <rguenther@suse.de>
27841         PR tree-optimization/79723
27842         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
27843         address-space properly.
27845 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
27847         * doc/optinfo.texi (Optimization groups): Fix option used for
27848         OPTGROUP_ALL.
27849         * doc/invoke.texi (-fopt-info): Document "omp".
27850         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
27851         (OPTGROUP_ALL): Add OPTGROUP_OMP.
27852         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
27853         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
27854         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
27856         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
27857         all users.
27858         * dumpfile.c (optgroup_options): Instead of "openmp", associate
27859         OPTGROUP_OMP with "omp".
27861 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
27863         PR target/79544
27864         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
27865         for arithmetic shift of unsigned V2DI.
27867 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
27869         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
27870         arc/linux.h headers.
27871         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
27872         (LINK_SPEC): Likewise.
27873         (ARC_TLS_EXTRA_START_SPEC): Likewise.
27874         (EXTRA_SPECS): Likewise.
27875         (STARTFILE_SPEC): Likewise.
27876         (ENDFILE_SPEC): Likewise.
27877         (LIB_SPEC): Likewise.
27878         (TARGET_SDATA_DEFAULT): Likewise.
27879         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
27880         (MULTILIB_DEFAULTS): Likewise.
27881         (DWARF2_UNWIND_INFO): Likewise.
27882         * config/arc/big.h: New file.
27883         * config/arc/elf.h: Likewise.
27884         * config/arc/linux.h: Likewise.
27885         * config/arc/t-uClibc: Remove.
27887 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
27889         PR tree-optimization/77536
27890         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
27891         (tree_transform_and_unroll_loop): Use above function to compute the
27892         estimated niter of unrolled loop and use it when scaling profile.
27893         Also use count info rather than frequency if it's non-zero.
27894         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
27895         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
27896         (vect_transform_loop): Call above function.
27898 2017-02-27  Richard Biener  <rguenther@suse.de>
27900         PR tree-optimization/45397
27901         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
27902         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
27903         (visit_nary_op): Add pattern matching for CSEing sign-changed
27904         or truncated operations with wider ones.
27906 2017-02-27  Richard Biener  <rguenther@suse.de>
27908         PR tree-optimization/79690
27909         * tree-vect-stmts.c (vectorizable_store): Use vector type
27910         built from the DR with address-space.
27912 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
27914         * doc/invoke.texi (Optimize Options): Refine the description
27915         of asan-use-after-return.
27917 2017-02-25  Alan Modra  <amodra@gmail.com>
27919         PR rtl-optimization/79584
27920         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
27921         base, not ad->base_term, the reg within base.  Remove assertion
27922         that ad->base == ad->base_term.  Replace gen_int_mode using
27923         bogus mode with const0_rtx.
27925 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
27927         PR middle-end/79396
27928         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
27929         FMA_EXPR like tcc_binary or tcc_unary.
27931         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
27933         PR debug/77589
27934         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
27935         bitfield.
27936         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
27937         (output_loc_operands): Handle DW_OP_call_ref and
27938         DW_OP_GNU_variable_value.
27939         (struct variable_value_struct): New type.
27940         (struct variable_value_hasher): Likewise.
27941         (variable_value_hash): New variable.
27942         (string_types): Remove.
27943         (copy_loc_descr): New function.
27944         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
27945         (prepend_loc_descr_to_each): New function.
27946         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
27947         instead of add_loc_descr_to_each if the first argument is single
27948         location list and the second has multiple.
27949         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
27950         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
27951         when looking for variable value which doesn't have other location info.
27952         (loc_list_from_tree): Formatting fix.
27953         (gen_array_type_die): Simplify DW_AT_string_length handling.
27954         (adjust_string_types): Remove.
27955         (gen_subprogram_die): Don't call adjust_string_types nor test/set
27956         string_types.  Call resolve_variable_values.
27957         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
27958         (resolve_addr_in_expr): Likewise.  Add A argument.
27959         (copy_deref_exprloc): Remove deref argument.  Adjust for the
27960         original expression being DW_OP_GNU_variable_value with optionally
27961         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
27962         optionally after it.
27963         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
27964         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
27965         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
27966         (variable_value_hasher::hash, variable_value_hasher::equal): New
27967         methods.
27968         (resolve_variable_value_in_expr, resolve_variable_value,
27969         resolve_variable_values, note_variable_value_in_expr,
27970         note_variable_value): New functions.
27971         (dwarf2out_early_finish): Call note_variable_value on all toplevel
27972         DIEs.
27974 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
27976         PR c/79677
27977         * opts.h (handle_generated_option): Add GENERATED_P argument.
27978         * opts-common.c (handle_option): Adjust function comment.
27979         (handle_generated_option): Add GENERATED_P argument, pass it to
27980         handle_option.
27981         (control_warning_option): Pass false to handle_generated_option
27982         GENERATED_P.
27983         * opts.c (maybe_default_option): Pass true to handle_generated_option
27984         GENERATED_P.
27985         * optc-gen.awk: Likewise.
27987 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
27989         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
27990         a REG, look at the REG it is a SUBREG of.
27991         (splitter for cmpeqsi_t): Ditto.
27993 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
27995         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
27996         the special USEs with the pattern of the insn, not the insn itself.
27998 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
28000         PR target/79473
28001         * doc/invoke.texi: Document -mload-store-pairs.
28003 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
28004             Sandra Loosemore  <sandra@codesourcery.com>
28006         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
28007         argument isn't a CONST_INT.
28008         (nios2_alternate_compare_const): Assert op is a CONST_INT.
28009         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
28010         (nios2_validate_compare): Bypass alternate compare logic if *op2
28011         is not a CONST_INT.
28012         (ldstwm_operation_p): Return false if first_base is not a REG or
28013         if first_offset is not a CONST_INT.
28015 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
28017         * config/cris/cris.md: Use correct operand in a define_peephole2.
28019 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
28021         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
28023 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
28025         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
28026         this_insn if it is an INSN or JUMP_INSN.
28027         (force_offsettable): Look at base, not at addr.
28028         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
28029         on things that aren't necessarily CONST_INTs.
28031 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
28033         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
28034         -mfpmath=sse is the default also for x86-32 targets with SSE2
28035         instruction set when @option{-ffast-math} is enabled
28037 2017-02-24  Jeff Law  <law@redhat.com>
28039         PR rtl-optimizatoin/79286
28040         * ira.c (update_equiv_regs): Drop may_trap_p exception to
28041         dominance test.
28043 2017-02-24  Richard Biener  <rguenther@suse.de>
28045         PR tree-optimization/79389
28046         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
28047         debug insns.
28049 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
28051         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
28052         function comment to reflect reality.
28053         (loop_exits_before_overflow): Fix typo in function description.
28055 2017-02-24  Richard Biener  <rguenther@suse.de>
28057         PR tree-optimization/79389
28058         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
28059         properly that a threading opportunity exists.  Detect conditional
28060         copy/constant propagation opportunities.
28062 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
28064         * config/visium/visium.md (type): Add trap.
28065         (b): New mode attribute.
28066         (*btst): Rename into...
28067         (*btst<mode>): ...this and adjust.
28068         (*cbranchsi4_btst_insn): Rename into...
28069         (*cbranch<mode>4_btst_insn): ...this and adjust.
28070         (trap): New define_insn.
28072 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
28074         PR tree-optimization/79389
28075         * ifcvt.c (struct noce_if_info): Add rev_cond field.
28076         (noce_reversed_cond_code): New function.
28077         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
28078         reversed_comparison_code.  Formatting fix.
28079         (noce_try_store_flag): Test rev_cond != NULL in addition to
28080         reversed_comparison_code.
28081         (noce_try_store_flag_constants): Likewise.
28082         (noce_try_store_flag_mask): Likewise.
28083         (noce_try_addcc): Use rev_cond if non-NULL instead of
28084         reversed_comparison_code.
28085         (noce_try_cmove_arith): Likewise.  Formatting fixes.
28086         (noce_try_minmax, noce_try_abs): Clear rev_cond.
28087         (noce_find_if_block): Initialize rev_cond.
28088         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
28089         instead of false as last argument never attempt to reverse it
28090         afterwards.
28092 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
28094         PR tree-optimization/79663
28095         * tree-predcom.c (combine_chains): Process refs in reverse order
28096         only for ZERO length chains, and add explaining comment.
28098 2017-02-23  Jeff Law  <law@redhat.com>
28100         PR tree-optimization/79578
28101         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
28102         in call to operand_equal_p.
28104 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
28106         PR target/71017
28107         * config/i386/cpuid.h: Fix another undefined behavior.
28109 2017-02-23  Richard Biener  <rguenther@suse.de>
28111         PR tree-optimization/79683
28112         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
28113         vector types for data-refs.
28115 2017-02-23  Martin Liska  <mliska@suse.cz>
28117         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
28119 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
28121         PR middle-end/79665
28122         * internal-fn.c (get_range_pos_neg): Moved to ...
28123         * tree.c (get_range_pos_neg): ... here.  No longer static.
28124         * tree.h (get_range_pos_neg): New prototype.
28125         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
28126         are known to be in between 0 and signed maximum inclusive, try to
28127         expand both unsigned and signed divmod and use the cheaper one from
28128         those.
28130 2017-02-22  Jeff Law  <law@redhat.com>
28132         PR tree-optimization/79578
28133         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
28134         to compare base operands.
28136 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
28138         PR target/79211
28139         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
28140         gpc_reg_operand instead of fpr_reg_operand.
28142 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
28144         * config/mips/mips.c (mips_return_in_memory): Force FP
28145         vector types to be returned in memory for o32 ABI.
28147 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
28149         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
28150         instead of DW_TAG_member for static data member declarations and don't
28151         set no_linkage_name for static inline data members.
28152         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
28153         to DW_TAG_member.
28155 2017-02-22  Martin Liska  <mliska@suse.cz>
28157         * doc/invoke.texi: Replace inequality signs with square brackets
28158         for -Wnormalized.
28160 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28162         PR tree-optimization/68644
28163         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
28165 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
28167         PR target/78660
28168         * lra-constraints.c (simplify_operand_subreg): Handle
28169         WORD_REGISTER_OPERATIONS targets.
28171 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
28173         PR target/70465
28174         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
28175         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
28176         elimination by swapping fld*.
28178 2017-02-22  Richard Biener  <rguenther@suse.de>
28180         PR tree-optimization/79673
28181         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
28182         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
28183         irrelevant address-space qualifiers and avoiding a
28184         ADDR_SPACE_CONVERT_EXPR from fold_convert.
28186 2017-02-22  Richard Biener  <rguenther@suse.de>
28188         PR tree-optimization/79666
28189         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
28190         to not symbolically negate if that may introduce undefined
28191         overflow.
28193 2017-02-22  Martin Liska  <mliska@suse.cz>
28195         PR lto/79587
28196         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
28197         * data-streamer-out.c (streamer_write_gcov_count_stream):
28198         Likewise.
28199         * value-prof.c (stream_out_histogram_value): Make assert more
28200         precise based on type of counter.
28202 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
28204         PR target/79593
28205         * config/i386/i386.md (standard_x87sse_constant_load splitter):
28206         Use nonimmediate_operand instead of memory_operand for operand 1.
28207         (float-extend standard_x87sse_constant_load splitter): Ditto.
28209 2017-02-21  Jeff Law  <law@redhat.com>
28211         PR tree-optimization/79621
28212         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
28213         blocks with edges to themselves.
28215 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
28217         PR target/79633
28218         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
28219         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
28220         Use gimple_call_builtin_p.
28222         PR target/79570
28223         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
28224         on temporarily removed DEBUG_INSNs.
28226         PR tree-optimization/79649
28227         * tree-loop-distribution.c (classify_partition): Give up on
28228         non-generic address space loads/stores.
28230 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
28232         * doc/loop.texi (Loop manipulation): Remove nonexistent
28233         tree_ssa_loop_version from the documentation.
28234         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
28236 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
28238         PR target/79494
28239         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
28240         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
28241         * config/rs6000/rs6000.c: Include except.h.
28242         (rs6000_expand_split_stack_prologue): Call
28243         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
28245 2017-02-21  Martin Jambor  <mjambor@suse.cz>
28247         PR lto/79579
28248         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
28249         have been analyzed.
28251 2017-02-21  Martin Jambor  <mjambor@suse.cz>
28253         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
28254         for backward compatibility only.
28255         * doc/invoke.texi (Option Summary): Remove all references to
28256         -fipa-cp-alignment.
28258 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
28260         PR target/78660
28261         Revert:
28262         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
28264         * lra-constraints.c (curr_insn_transform): Handle
28265         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
28267 2017-02-21  Martin Liska  <mliska@suse.cz>
28269         * config/i386/i386.opt: Replace -masm-dialect with -masm.
28271 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
28273         PR translation/79638
28274         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
28276 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
28278         PR ada/67205
28279         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
28280         (arm_function_ok_for_sibcall): Return false for an indirect call by
28281         descriptor if all the argument registers are used.
28282         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
28283         alignment of the function.
28285 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
28287         PR tree-optimization/61441
28288         * simplify-rtx.c (simplify_const_unary_operation): For
28289         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
28290         the sNaN unmodified.
28292 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28294         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
28295         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
28296         instead of SYSTEM_HEADER_DIR.
28298 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
28299             Martin LiÅ¡ka  <mliska@suse.cz>
28301         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
28302         Fix typos and grammar, use active voice, and clarify.
28304 2017-02-20  Marek Polacek  <polacek@redhat.com>
28306         PR middle-end/79537
28307         * gimplify.c (gimplify_expr): Handle unused *&&L;.
28309         PR sanitizer/79558
28310         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
28312 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
28314         PR target/79568
28315         * config/i386/i386.c (ix86_expand_builtin): Handle
28316         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
28317         ix86_builtins_isa[fcode].isa as a requirement of those
28318         flags and any other flag in the bitmask.
28319         (ix86_init_mmx_sse_builtins): Use 0 instead of
28320         ~OPTION_MASK_ISA_64BIT as mask.
28321         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
28322         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
28323         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
28324         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
28326 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
28328         PR target/78012
28329         * lra-constraints.c (split_reg): Check requested split mode
28330         is supported by the register.
28332 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
28334         * lra-constraints.c (simplify_operand_subreg): Remove early
28335         return false.
28337 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
28339         PR target/78660
28340         * lra-constraints.c (curr_insn_transform): Tighten condition
28341         for converting SUBREG reloads from OP_OUT to OP_INOUT.
28343 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
28345         PR target/78660
28346         * lra-constraints.c (curr_insn_transform): Handle
28347         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
28349 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
28351         Revert:
28352         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
28354         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
28356 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
28358         PR c++/69523
28359         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
28360         description.
28362 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28364         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
28365         for FMA_EXPR.
28367 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
28369         * final.c (last_columnnum, override_columnnum): New variables.
28370         (final_start_function): Set last_columnnum, pass it to begin_prologue
28371         hook and pass 0 to dwarf2out_begin_prologue.
28372         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
28373         to source_line debug hook.
28374         (notice_source_line): Compute last_columnnum and for debug_column_info
28375         return true on column changes.
28376         * debug.h (struct gcc_debug_hooks): Add column argument to
28377         source_line and begin_prologue hooks.
28378         (debug_nothing_int_charstar_int_bool): Remove prototype.
28379         (debug_nothing_int_int_charstar,
28380         debug_nothing_int_int_charstar_int_bool): New prototypes.
28381         (dwarf2out_begin_prologue): Add column argument.
28382         * debug.c (do_nothing_debug_hooks): Adjust source_line and
28383         begin_prologue hooks.
28384         (debug_nothing_int_charstar_int_bool): Remove.
28385         (debug_nothing_int_int_charstar,
28386         debug_nothing_int_int_charstar_int_bool): New functions.
28387         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
28388         through to dwarf2out_source_line.
28389         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
28390         (dwarf2out_source_line): Add column argument, emit it if requested.
28391         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
28392         arguments.
28393         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
28394         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
28395         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
28396         through to dwarf2out_begin_prologue.
28397         (vmsdbgout_source_line): Add column argument, pass it through to
28398         dwarf2out_source_line.
28399         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
28400         dbxout_source_line caller.
28401         (dbxout_source_line): Add column argument.
28403         * common.opt (gno-column-info, gcolumn-info): New options.
28404         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
28405         (check_die): Also test for multiple DW_AT_decl_column attributes.
28406         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
28407         DW_AT_decl_column if requested.
28408         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
28409         if requested.
28410         (gen_variable_die): Likewise.
28411         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
28412         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
28414         PR target/79569
28415         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
28416         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
28417         (ix86_handle_option): Handle OPT_m3dnowa.
28418         * doc/invoke.texi (-m3dnowa): Document.
28419         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
28420         -m3dnowa instead of -m3dnow -march=athlon.
28422         PR target/79559
28423         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
28424         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
28426 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28428         PR target/79261
28429         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
28430         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
28431         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
28432         generator for vsx_xxpermdi_<mode>_be.
28433         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
28434         force big-endian semantics.
28435         (vsx_xxpermdi_<mode>_be): New define_expand with same
28436         implementation as previous version of vsx_xxpermdi_<mode>.
28438 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
28440         PR tree-optimization/79327
28441         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
28442         variable, its initialization and use.
28444 2017-02-17  Julia Koval  <julia.koval@intel.com>
28446         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
28447         (OPTION_MASK_ISA_PKU_UNSET): New.
28448         (ix86_handle_option): Handle -mrdpid.
28449         * config/i386/cpuid.h (bit_RDPID): New.
28450         * config/i386/driver-i386.c (host_detect_local_cpu):
28451         Detect RDPID feature.
28452         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
28453         * config/i386/i386-c.c (ix86_target_macros_internal):
28454         Handle RDPID flag.
28455         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
28456         (ix86_valid_target_attribute_inner_p): Add "rdpid".
28457         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
28458         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
28459         * config/i386/i386.md (define_insn "rdpid"): New.
28460         * config/i386/i386.opt Add -mrdpid.
28461         * config/i386/immintrin.h (_rdpid_u32): New.
28463 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
28465         PR rtl-optimization/79541
28466         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
28467         instead of transforming it into USE.
28469 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
28471         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
28472         If HONOR_SNANS (SFmode) force the input to a register.
28473         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
28474         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
28475         an frsp or similar insn.
28477 2017-02-17  Martin Liska  <mliska@suse.cz>
28479         PR rtl-optimization/79577
28480         * params.def (selsched-max-sched-times): Increase minimum to 1.
28482 2017-02-17  Martin Liska  <mliska@suse.cz>
28484         PR rtl-optimization/79574
28485         * gcse.c (want_to_gcse_p): Prevent integer overflow.
28487 2017-02-17  Martin Liska  <mliska@suse.cz>
28489         PR tree-optimization/79529
28490         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
28491         ssa_defined_default_def_p to handle cases which are implicitly
28492         defined.
28493         * tree-ssa.c (ssa_defined_default_def_p): New function.
28494         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
28495         which are implicitly defined.
28496         * tree-ssa.h (ssa_defined_default_def_p): Declare.
28498 2017-02-17  Richard Biener  <rguenther@suse.de>
28500         PR middle-end/79576
28501         * params.def (max-ssa-name-query-depth): Limit to 10.
28503 2017-02-17  Richard Biener  <rguenther@suse.de>
28505         PR tree-optimization/79552
28506         * tree-ssa-structalias.c (visit_loadstore): Properly verify
28507         default defs.
28509 2017-02-17  Richard Biener  <rguenther@suse.de>
28511         PR bootstrap/79567
28512         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
28514 2017-02-17  Marek Polacek  <polacek@redhat.com>
28516         PR middle-end/79536
28517         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
28518         (fold_negate_expr): New wrapper.
28520 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
28522         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
28523         Correct terminology and de-emphasize pre-standard behavior.
28525 2017-02-16  Alan Modra  <amodra@gmail.com>
28527         PR rtl-optimization/79286
28528         * ira.c (def_dominates_uses): New function.
28529         (update_equiv_regs): Don't create an equivalence for insns that
28530         may trap where the register def does not dominate the use.
28532 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
28534         PR rtl-optimization/78127
28535         * lra.c (lra): Call lra_eliminate before finish the loop after
28536         lra_constraint.
28538 2017-02-16  Richard Biener  <rguenther@suse.de>
28540         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
28541         isl/isl_val.h.
28542         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
28543         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
28544         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
28545         (isl_val_int_from_wi): New function.
28546         (extract_affine_gmp): Rename to ...
28547         (extract_affine_wi): ... this, take a widest_int.
28548         (extract_affine_int): Just wrap extract_affine_wi.
28549         (add_param_constraints): Use isl_val_int_from_wi.
28550         (add_loop_constraints): Likewise, and extract_affine_wi.
28552 2017-02-15  Jeff Law  <law@redhat.com>
28554         PR middle-end/79521
28555         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
28556         ira_init_register_move_cost_if_necessary.
28558 2017-02-15  Martin Sebor  <msebor@redhat.com>
28560         PR middle-end/32003
28561         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
28562         removed in a prior commit.
28564 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
28566         PR tree-optimization/79347
28567         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
28568         counters during peeling.
28570 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
28572         * Makefile.in (site.exp): Remove "set ISLVER".
28574 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
28576         PR target/79487
28577         * real.c (real_from_integer): Call real_convert even for decimal.
28579 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28581         PR target/79421
28582         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
28584 2017-02-14  Andrew Pinski  <apinski@cavium.com>
28586         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
28587         cores and change the partno/implementer to be correct.
28588         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
28589         the 'B" as the implementer.
28590         * config/aarch64/aarch64-tune.md: Regenerate.
28592 2017-02-14  Carl Love  <cel@us.ibm.com>
28594         * config/rs6000/rs6000.c: Add case statement entry to make the
28595         xvcvuxdsp built-in argument unsigned.
28596         * config/rs6000/vsx.md: Fix the source and return operand types so they
28597         match the instruction definitions from the ISA document.  Fix typo
28598         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
28599         statement.
28601 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
28603         PR target/79282
28604         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
28605         member early_clobber_alts.
28606         * lra-lives.c (reg_early_clobber_p): New.
28607         (process_bb_lives): Use it.
28608         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
28609         (debug_operand_data): Initialize early_clobber_alts.
28610         (setup_operand_alternative): Set up early_clobber_alts.
28611         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
28612         alternatives to new_insn_reg.
28613         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
28614         it.
28615         (lra_update_insn_regno_info): Pass the new arg.
28617 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
28619         PR middle-end/79505
28620         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
28621         (new_oacc_loop_raw): Don't clear already cleared fields.
28623         PR target/79481
28624         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
28625         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
28626         _mm512_prefetch_i64gather_ps): New inline functions and macros.
28628 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
28630         PR target/79495
28631         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
28633 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
28635         PR target/79498
28636         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
28637         the extra instruction to the right place to store 128-bit constant
28638         when needed.
28640 2017-02-14  Martin Sebor  <msebor@redhat.com>
28642         PR middle-end/79448
28643         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
28644           warning for strings of unknown length.
28646 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
28648         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
28650 2017-02-14  Jeff Law  <law@redhat.com>
28652         PR target/79404
28653         * ira-costs.c (scan_one_insn): Initialize register move costs
28654         for pseudos seen in USE/CLOBBER insns.
28656         PR tree-optimization/79095
28657         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
28658         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
28659         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
28660         if the operands are known to be not equal, then the resulting range
28661         is ~[0,0].
28662         (intersect_ranges): If the new range is ~[0,0] and the old range is
28663         wide, then prefer ~[0,0].
28664         * tree-vrp.c (overflow_comparison_p_1): New function.
28665         (overflow_comparison_p): New function.
28666         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
28667         if NAME is used in an overflow test.
28668         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
28669         overflow check that can be expressed as an equality test, then adjust
28670         ops to be that equality test.
28672 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28674         * config/s390/s390-builtin-types.def: Remove flags argument.
28675         * config/s390/s390.c (s390_init_builtins): Likewise.
28677 2017-02-14  Martin Liska  <mliska@suse.cz>
28679         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
28680         vector.  Fix trailing white spaces.
28682 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
28684         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
28685         HFmode.
28687 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28689         PR rtl-optimization/68664
28690         * config/arm/arm.c (arm_sched_can_speculate_insn):
28691         New function.  Declare prototype.
28692         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
28694 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28696         PR rtl-optimization/68664
28697         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
28698         New function.
28699         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
28701 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
28703         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
28704         max skip bytes for function, loop and jump.
28706 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
28708         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
28709         ABS_EXPR for gimple dump.
28711 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
28713         PR target/79462
28714         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
28716         PR tree-optimization/79408
28717         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
28718         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
28719         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
28720         also if rhs1 is INTEGER_CST.
28722 2017-02-14  Richard Biener  <rguenther@suse.de>
28724         PR middle-end/79432
28725         * tree-into-ssa.c (insert_phi_nodes): When the function can
28726         have abnormal edges rewrite SSA names with broken use-def
28727         dominance out of SSA and register them for PHI insertion.
28729 2017-02-13  Martin Sebor  <msebor@redhat.com>
28731         PR middle-end/79496
28732         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
28733         clearing info.nowrite flag when snprintf size argument is a range.
28735 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
28737         * cprop.c (cprop_jump): Add missing space in string literal.
28738         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
28739         (get_constraint_for_component_ref): Likewise.
28740         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
28741         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
28742         * lra-constraints.c (process_alt_operands): Likewise.
28743         * ipa-inline.c (inline_small_functions): Likewise.
28744         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
28745         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
28746         * trans-mem.c (diagnose_tm_1_op): Likewise.
28747         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
28748         (grid_parallel_clauses_gridifiable): Likewise.
28750         * config/nvptx/mkoffload.c (process): Add space in between
28751         , and %d.
28753         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
28754         "MOD4_SSE_REGS" and "ALL_REGS".
28756         * spellcheck.c (test_data): Add , in between "foo" and "food".
28758 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28760         PR target/79449
28761         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
28762         boundary crossing check and subsequent code generation agree.
28764 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28766         * config/aarch64/aarch64.c (has_memory_op): Delete.
28767         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
28768         has_memory_op.
28770 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
28772         PR rtl-optimization/79388
28773         PR rtl-optimization/79450
28774         * combine.c (distribute_notes): When removing TEM_INSN for which
28775         corresponding dest has last value recorded, invalidate that last
28776         value.
28778 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28780         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
28781         of explicit '@'.  Add missing assembly comment marker on branch costs
28782         printout.
28784 2017-02-13  Nathan Sidwell  <nathan@acm.org>
28786         * gengtype-lex.l (<in_struct>): Add '/'.
28788 2017-02-13  Martin Liska  <mliska@suse.cz>
28790         PR c/79471
28791         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
28793 2017-02-13  Richard Biener  <rguenther@suse.de>
28795         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
28796         Remove.
28797         * configure: Re-generate.
28798         * config.in: Likewise.
28799         * graphite-dependences.c: Simplify as if
28800         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
28801         * graphite-isl-ast-to-gimple.c: Likewise.
28802         * graphite-optimize-isl.c: Likewise.
28803         * graphite-poly.c: Likewise.
28804         * graphite-sese-to-poly.c: Likewise.
28805         * graphite.h: Likewise.
28806         * toplev.c: Include isl/version.h and use isl_version () for
28807         printing the ISL version.
28808         * doc/install.texi: Update ISL requirement.
28810 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
28812         * doc/standards.texi (Standards): Update reference to
28813         Objective-C 2.0.
28815 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
28817         * doc/extend.texi (Named Address Spaces): sourceware.org now
28818         defaults to https.
28819         * doc/install.texi (Binaries): Ditto.
28820         (Specific): Ditto.
28822 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
28824         * doc/cpp.texi: Replace "stringify"/"stringification" with C
28825         standard terminology "stringize"/"stringizing" throughout.
28826         * doc/cppinternals.texi: Likewise.
28828 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
28830         * doc/extend.texi: Fix some spelling mistakes and typos.
28831         * doc/invoke.texi: Likewise.
28833 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
28835         PR ipa/79224
28836         * params.def (inline-min-speedup) Change from 10 to 8.
28838 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
28840         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
28841         4.5.
28843 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
28845         PR ipa/79224
28846         * ipa-inline-analysis.c (get_minimal_bb): New function.
28847         (record_modified): Use it.
28848         (remap_edge_change_prob): Handle also ancestor functions.
28850 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
28852         * doc/contrib.texi (Contributors): Remove broken link into
28853         the Mauve CVS repository.
28855 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
28857         PR middle-end/79454
28858         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
28859         result computation whenever lhs doesn't have vector mode, not
28860         just when it has BLKmode.
28862 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
28864         * doc/makefile.texi (profiledbootstrap): Refer to the
28865         installation instructions only in textual form.
28867 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
28869         PR target/79295
28870         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
28872 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
28874         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
28875         (Specific): Update mingw-w64 reference.
28876         (Binaries): Ditto.
28877         (Specific): Remove broken link to Renesas RX processor.
28879 2017-02-10  Richard Biener  <rguenther@suse.de>
28881         * toplev.c (process_options): Do not mention obsolete graphite
28882         options when printing sorry message about missing graphite support.
28883         Mention -floop-nest-optimize.
28885 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
28887         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
28888         (vtst_p16): Likewise.
28889         (vtstq_p8): Likewise.
28890         (vtstq_p16): Likewise.
28891         (vtst_p64): New.
28892         (vtstq_p64): Likewise.
28893         * config/arm/arm_neon.h (vgetq_lane_p64): New.
28894         (vset_lane_p64): New.
28895         (vsetq_lane_p64): New.
28897 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
28899         PR tree-optimization/79411
28900         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
28901         stmt operands are SSA_NAMEs used in abnormal phis.
28902         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
28903         phis.
28905 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
28907         PR ipa/70795
28908         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
28909         flag if needed.
28911 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
28913         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
28915 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
28917         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
28918         to avoid warning.
28920         PR c/79413
28921         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
28922         not arbitrary TREE_CONSTANT.
28924         PR c/79431
28925         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
28926         "omp declare target link" attribute unless is_global_var.
28927         * omp-offload.c (find_link_var_op): Likewise.
28929 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
28930             Chung-Lin Tang  <cltang@codesourcery.com>
28932         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
28933         OMP_CLAUSE_TILE.
28934         (gimplify_adjust_omp_clauses): Don't delete TILE.
28935         (gimplify_omp_for): Deal with TILE.
28936         * internal-fn.c (expand_GOACC_TILE): New function.
28937         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
28938         (GOACC_TILE): New.
28939         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
28940         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
28941         element fields.
28942         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
28943         avoid DIV for outermost collapse var.
28944         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
28945         Remove out of date comments, fix whitespace.
28946         * omp-general.c (omp_extract_for_data): Deal with tiling.
28947         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
28948         adjust OLF_DIM_BASE value.
28949         (struct omp_for_data): Add tiling field.
28950         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
28951         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
28952         for auto loops.  Remove default auto determining, moved to
28953         oacc_loop_fixed_partitions.
28954         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
28955         stmts, add e_mask field.
28956         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
28957         (oacc_thread_numbers): Use oacc_dim_call.
28958         (oacc_xform_tile): New.
28959         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
28960         (finish_oacc_loop): Adjust for ifns vector.
28961         (oacc_loop_discover_walk): Append loop abstraction sites to list,
28962         add case for GOACC_TILE fns.
28963         (oacc_loop_xform_loop): Delete.
28964         (oacc_loop_process): Iterate over call list directly, and add
28965         handling for GOACC_TILE fns.
28966         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
28967         dump partitioning.
28968         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
28969         vector partitioning to outer loops.  Assign 2 partitions to loops
28970         when available. Add TILE handling.
28971         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
28972         (execite_oacc_device_lower): Process GOACC_TILE fns,
28973         ignore unknown specs.
28974         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
28975         * tree.c (omp_clause_num_ops): Adjust TILE ops.
28976         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
28978 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
28980         * configure.ac (ACX_BUGURL): Update.
28981         * configure: Regenerate.
28983 2017-02-09  Richard Biener  <rguenther@suse.de>
28985         PR tree-optimization/69823
28986         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
28987         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
28989 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
28991         * config/arc/arc-c.def: Add __NPS400__ definition.
28992         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
28993         (TARGET_NPS400): Define.
28995 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
28997         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
28998         file.
28999         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
29000         pointer, arch_info.
29001         (arc_cpu_types): Fill the arch_info field with a pointer into the
29002         arc_arch_types table.
29003         (arc_selected_cpu): Declare.
29004         * config/arc/arc.c (arc_selected_cpu): Make global.
29005         (arc_selected_arch): Delete.
29006         (arc_base_cpu): Delete.
29007         (arc_override_options): Remove references to deleted variables,
29008         update access to arch information.
29009         (ARC_OPT): Update access to arch information.
29010         (ARC_OPTX): Likewise.
29011         * config/arc/arc.h (arc_base_cpu): Remove declaration.
29012         (TARGET_ARC600): Update access to arch information.
29013         (TARGET_ARC601): Likewise.
29014         (TARGET_ARC700): Likewise.
29015         (TARGET_EM): Likewise.
29016         (TARGET_HS): Likewise.
29017         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
29018         information.
29020 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
29022         PR target/78604
29023         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
29024         condition/operands for integer GE/LE/GEU/LEU operations.
29026 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
29028         PR translation/79397
29029         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
29030         of AltiVec.
29032 2017-02-08  Martin Jambor  <mjambor@suse.cz>
29034         PR ipa/79375
29035         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
29036         whether allocation happened.
29037         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
29038         nothing was allocated.
29040 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
29042         PR tree-optimization/79408
29043         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
29044         constant, but SSA_NAME with a known integer range, use the minimum
29045         of that range instead of op1 to determine if modulo can be replaced
29046         with its first operand.
29048 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29050         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
29052 2017-02-08  Richard Biener  <rguenther@suse.de>
29054         PR tree-optimization/71824
29055         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
29056         Check all loops contained in the merged region.
29058 2017-02-07  Andrew Pinski  <apinski@cavium.com>
29060         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
29062 2017-02-07  Andrew Pinski  <apinski@cavium.com>
29064         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
29065         (thunderxt88): Likewise.
29066         (thunderxt81): Disable LSE and change v8.1 to v8.
29067         (thunderxt83): Likewise.
29069 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
29070             Richard Biener  <rguenther@suse.de>
29072         PR middle-end/79399
29073         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
29074         type from int to size_t.
29075         * ira-costs.c (struct_costs_size): Change type from int to size_t.
29077 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
29079         PR rtl-optimization/79386
29080         * cprop.c (bypass_conditional_jumps): Initialize
29081         bypass_last_basic_block already before splitting bbs after
29082         unconditional traps...
29083         (bypass_conditional_jumps): ... rather than here.
29085         PR target/79299
29086         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
29087         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
29088         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
29089         fix -masm=intel patterns.
29091 2017-02-07  Richard Biener  <rguenther@suse.de>
29093         PR tree-optimization/79256
29094         PR middle-end/79278
29095         * builtins.c (get_object_alignment_2): Use min_align_of_type
29096         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
29097         and ADJUST_FIELD_ALIGN.
29099         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
29100         type parameter.
29101         * doc/tm.texi: Regenerate.
29102         * stor-layout.c (layout_decl): Adjust.
29103         (update_alignment_for_field): Likewise.
29104         (place_field): Likewise.
29105         (min_align_of_type): Likewise.
29106         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
29107         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
29108         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
29109         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
29110         * config/frv/frv.c (frv_adjust_field_align): Likewise.
29111         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
29112         * config/i386/i386.c (x86_field_alignment): Likewise.
29113         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
29114         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
29115         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29116         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29117         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
29118         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
29119          Likewise.
29121         Revert
29122         2017-01-30  Richard Biener  <rguenther@suse.de>
29124         PR tree-optimization/79256
29125         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
29126         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
29127         alignment on TYPE.
29129 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
29131         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
29132         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
29133         builtins to SImode and emit a zero-extend, if necessary.
29135 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
29137         * docs/invoke.texi (RISC-V Options): Alphabetize.
29139 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
29141         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
29142         options.
29144 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
29146         * config/riscv/riscv.c: New file.
29147         * common/config/riscv/riscv-common.c: Likewise.
29148         * config.gcc: Likewise.
29149         * config/riscv/constraints.md: Likewise.
29150         * config/riscv/elf.h: Likewise.
29151         * config/riscv/generic.md: Likewise.
29152         * config/riscv/linux.h: Likewise.
29153         * config/riscv/multilib-generator: Likewise.
29154         * config/riscv/peephole.md: Likewise.
29155         * config/riscv/pic.md: Likewise.
29156         * config/riscv/predicates.md: Likewise.
29157         * config/riscv/riscv-builtins.c: Likewise.
29158         * config/riscv/riscv-c.c: Likewise.
29159         * config/riscv/riscv-ftypes.def: Likewise.
29160         * config/riscv/riscv-modes.def: Likewise.
29161         * config/riscv/riscv-opts.h: Likewise.
29162         * config/riscv/riscv-protos.h: Likewise.
29163         * config/riscv/riscv.h: Likewise.
29164         * config/riscv/riscv.md: Likewise.
29165         * config/riscv/riscv.opt: Likewise.
29166         * config/riscv/sync.md: Likewise.
29167         * config/riscv/t-elf-multilib: Likewise.
29168         * config/riscv/t-linux: Likewise.
29169         * config/riscv/t-linux-multilib: Likewise.
29170         * config/riscv/t-riscv: Likewise.
29171         * configure.ac: Likewise.
29172         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
29173         Waterman as RISC-V maintainers.
29174         * doc/install.texi: Add RISC-V entries.
29175         * doc/invoke.texi: Add RISC-V options section.
29176         * doc/md.texi: Add RISC-V constraints section.
29177         * configure: Regenerated.
29179 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29181         PR target/66144
29182         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
29183         false values to be constant vectors with all 0 or all 1 bits set.
29184         (vcondu<mode><mode>): Likewise.
29185         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
29186         predicate.
29187         (fpmask_comparison_operator): Update comment.
29188         (vecint_comparison_operator): New predicate.
29189         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
29190         vector conditionals when the true and false values are constant
29191         vectors with all 0 bits or all 1 bits set.
29193 2017-02-06  Martin Sebor  <msebor@redhat.com>
29195         PR  tree-optimization/79376
29196         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
29198 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
29200         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
29201         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
29202         to simplify split condition.
29204 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
29206         * omp-expand.c (oxpand_omp_atomic_fetch_op,
29207         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
29208         false.
29210 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
29212         PR rtl-optimization/68664
29213         * target.def (can_speculate_insn): New hook.
29214         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
29215         * doc/tm.texi: Regenerate.
29216         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
29217         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
29218         (rs6000_sched_can_speculate_insn): New function.
29220 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
29222         PR tree-optimization/79284
29223         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
29224         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
29225         vectorizable_mask_load_store, vectorizable_operation,
29226         vect_is_simple_cond, get_same_sized_vectype): Use it instead
29227         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
29228         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
29229         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
29230         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
29231         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
29232         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
29233         is_gimple_assign (stmt).  Replace another such test with
29234         is_gimple_assign (stmt).
29236 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
29238         PR target/78883
29239         * config/avr/avr.c (rtl-iter.h): Include it.
29240         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
29241         (avr_legitimate_combined_insn): ...and implementation.
29243 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29245         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
29246         * config/s390/s390.c (s390_const_operand_ok)
29247         (s390_canonicalize_comparison, s390_extract_part)
29248         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
29249         (s390_contiguous_bitmask_p, s390_rtx_costs)
29250         (legitimize_pic_address): Likewise.
29251         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
29252         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
29253         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
29254         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
29255         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
29257 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
29259         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
29260         REGNO($0) == REGNO($1).
29262 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29264         * config/s390/linux.h(SIZE_TYPE): Add comment.
29266 2017-02-06  Julian Brown  <julian@codesourcery.com>
29267             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
29268             Virendra Pathak  <virendra.pathak@broadcom.com>
29270         * config/aarch64/aarch64-cores.def: Change the scheduler
29271         to Thunderx2t99.
29272         * config/aarch64/aarch64.md: Include thunderx2t99.md.
29273         * config/aarch64/thunderx2t99.md: New file.
29275 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
29277         * doc/standards.texi (Go Language): Update link to language
29278         standard.
29280 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
29282         * tree-eh.c (lower_resx): Sanitize profile.
29283         (cleanup_empty_eh_move_lp): Likewise.
29285 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
29287         PR tree-ssa/79347
29288         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
29289         ELSE_PROB.
29290         * cfgloopmanip.h (loop_version): Update prototype.
29291         * modulo-sched.c (sms_schedule): Update call of loop_version.
29292         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
29293         * tree-parloops.c (gen_parallel_loop): Likewise.
29294         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
29295         * tree-ssa-loop-split.c (split_loop): Likewise.
29296         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
29297         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
29299 2017-02-05  Martin Liska  <mliska@suse.cz>
29301         PR bootstrap/78985
29302         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
29303         variable to NULL.
29304         (print_operand_address): Initialize a struct to zero.
29306 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
29308         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
29309         garbage collector only in textual form.
29311 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
29313         * doc/extend.texi (x86 specific memory model extensions for
29314         transactional memory): Simplify a phrase.
29316 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
29318         PR target/79353
29319         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
29320         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
29321         (atomic_storedi_1): Likewise.
29323 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
29325         PR tree-optimization/79338
29326         * tree-parloops.c (gather_scalar_reductions): Don't call
29327         vect_analyze_loop_form for loop->inner before destroying loop's
29328         loop_vinfo.
29330 2017-02-03  Martin Sebor  <msebor@redhat.com>
29332         PR tree-optimization/79327
29333         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
29334         when precision has resulted in leading zeros.
29335         (format_integer): Adjust the likely counter to assume an unknown
29336         argument that may be zero is non-zero.
29338 2017-02-03  Jason Merrill  <jason@redhat.com>
29340         PR c++/78689
29341         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
29342         avoid copying non-taken branch.
29344 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
29346         PR tree-optimization/79340
29347         * tree-vect-loop.c (vectorizable_reduction): Release
29348         vec_defs elements after safe_splicing them into other vectors.
29349         Formatting fixes.
29351         PR tree-optimization/79327
29352         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
29353         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
29354         dirtype.
29355         (format_integer): Use wide_int_to_tree instead of build_int_cst
29356         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
29357         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
29358         of shortest and longest sequence.
29360 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
29362         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
29363         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
29365 2017-02-03  Walter Lee  <walt@tilera.com>
29367         PR target/78862
29368         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
29369         after initial stackframe link reg save.
29370         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
29372 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
29374         PR target/79354
29375         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
29376         wu for stxssp alternative.
29378 2017-02-03  Martin Sebor  <msebor@redhat.com>
29380         PR tree-optimization/79352
29381         * gimple-fold.c (get_range_strlen): Add argument.
29382         (get_range_strlen): Change return type to bool.
29383         (get_maxval_strlen): Pass in a dummy argument.
29384         * gimple-fold.h (get_range_strlen): Change return type to bool.
29385         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
29386         * tree.h (array_at_struct_end_p): Add argument.
29387         * tree.c (array_at_struct_end_p): Handle it.
29389 2017-02-03  Martin Liska  <mliska@suse.cz>
29391         PR lto/66295
29392         * multiple_target.c (create_dispatcher_calls): Redirect edge
29393         from a caller of a dispatcher.
29394         (expand_target_clones): Make the clones local.
29395         (ipa_target_clone): Do both target clones and resolvers.
29396         (ipa_dispatcher_calls): Remove the pass.
29397         (pass_dispatcher_calls::gate): Likewise.
29398         (make_pass_dispatcher_calls): Likewise.
29399         * passes.def (pass_target_clone): Put as very first IPA early
29400         pass.
29402 2017-02-03  Martin Liska  <mliska@suse.cz>
29404         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
29405         in case of a function with ifunc attribute.
29407 2017-02-03  Martin Liska  <mliska@suse.cz>
29409         * cgraph.c (cgraph_node::dump): Dump function version info.
29410         * symtab.c (symtab_node::dump_base): Add missing new line.
29412 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
29414         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
29415         (ifcombine_ifandif): Use it.
29417 2017-02-03  Martin Liska  <mliska@suse.cz>
29419         * doc/invoke.texi: Document default value for
29420         use-after-scope-direct-emission-threshold.
29422 2017-02-03  Martin Liska  <mliska@suse.cz>
29424         PR tree-optimization/79339
29425         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
29426         (format_floating): Likewise.
29428 2017-02-03  Martin Liska  <mliska@suse.cz>
29430         PR ipa/79337
29431         * ipa-prop.c (ipa_node_params_t::insert): Remove current
29432         implementation.
29433         (ipa_node_params_t::remove): Likewise.
29434         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
29435         initialization from removed ipa_node_params_t::insert.
29436         (ipa_node_params::~ipa_node_params): Move from removed
29437         ipa_node_params_t::release.
29438         * symbol-summary.h (symbol_summary::m_released): New member.
29439         Do not release a summary twice.  Do not allow to call finalizer
29440         for types of a summary that live in GGC memory.
29442 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
29444         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
29445         cmp_branch fusion.
29447 2017-02-02  Martin Sebor  <msebor@redhat.com>
29449         PR middle-end/79275
29450         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
29451         (format_string): Tighten up the range of output for non-constant
29452         strings and correct the expected range for wide non-constant strings.
29454 2017-02-02  Martin Sebor  <msebor@redhat.com>
29456         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
29458         PR middle-end/32003
29459         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
29460         index.
29461         (-fdump-tree-@var): Add to index and document how to come up
29462         with pass-specific option and dump file names.
29463         (-fdump-passes): Clarify where to look for output.
29465 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
29467         PR middle-end/77445
29468         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
29469         statistics of the analyzed path; allow threading for speed when
29470         any of BBs along the path are optimized for speed.
29472 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
29474         PR middle-end/78468
29475         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
29476         settings of the virtual registers.
29478         Revert again
29479         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29481         * explow.c (get_dynamic_stack_size): Take known alignment of stack
29482         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
29483         needed.
29485 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29487         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
29488         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
29490 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29492         * config/s390/s390.md: Add missing comments with the expanded
29493         mnemonics.
29494         * config/s390/vector.md: Likewise.
29495         * config/s390/vx-builtins.md: Likewise.
29497 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
29499         PR target/79197
29500         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
29501         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
29502         conditions on a single line.
29504 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29506         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
29507         __S390_VX__ to __VX__.
29509 2017-02-01  Andrew Pinski  <apinski@cavium.com>
29511         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
29512         stmt_info to record_stmt_cost.
29513         (vect_get_known_peeling_cost): Pass stmt_info if known to
29514         record_stmt_cost.
29515         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
29516         cpu_vector_cost field into
29517         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
29518         field into vec_int_stmt_cost and vec_fp_stmt_cost.
29519         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
29520         splitting of scalar_stmt_cost and vec_stmt_cost.
29521         (thunderx_vector_cost): Likewise.
29522         (cortexa57_vector_cost): LIkewise.
29523         (exynosm1_vector_cost): Likewise.
29524         (xgene1_vector_cost): Likewise.
29525         (thunderx2t99_vector_cost): Improve after the splitting of the two
29526         fields.
29527         (aarch64_builtin_vectorization_cost): Update for the splitting of
29528         scalar_stmt_cost and vec_stmt_cost.
29530 2017-02-01  Torvald Riegel  <triegel@redhat.com>
29531             Richard Henderson  <rth@redhat.com>
29533         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
29534         conditional on existance of a fast atomic load.
29535         * optabs-query.c (can_atomic_load_p): New function.
29536         * optabs-query.h (can_atomic_load_p): Declare it.
29537         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
29538         no fast atomic load is available for the particular size of access.
29539         (expand_atomic_compare_and_swap): Likewise.
29540         (expand_atomic_load): Likewise.
29541         (expand_atomic_store): Likewise.
29542         (expand_atomic_fetch_op): Likewise.
29543         * testsuite/lib/target-supports.exp
29544         (check_effective_target_sync_int_128): Remove x86 because it provides
29545         no fast atomic load.
29546         (check_effective_target_sync_int_128_runtime): Likewise.
29548 2017-02-01  Richard Biener  <rguenther@suse.de>
29550         * graphite.c: Include tree-vectorizer.h for find_loop_location.
29551         (graphite_transform_loops): Provide opt-info for optimized nests.
29552         * tree-parloop.c (parallelize_loops): Provide opt-info for
29553         parallelized loops.
29555 2017-02-01  Richard Biener  <rguenther@suse.de>
29557         PR middle-end/79315
29558         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
29559         was not set before.
29561 2017-02-01  Richard Biener  <rguenther@suse.de>
29563         PR tree-optimization/71824
29564         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
29565         Verify the loops are valid in the merged SESE region.
29566         (scop_detection::can_represent_loop_1): Check analyzing the
29567         evolution of the number of iterations in the region succeeds.
29569 2017-01-31  Ian Lance Taylor  <iant@golang.org>
29571         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
29572         REG_ARGS_SIZE note to 32-bit push insns and call insn.
29574 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
29576         PR preprocessor/79210
29577         * input.c (get_substring_ranges_for_loc): Replace line_width
29578         assertion with error-handling.
29580 2017-01-31  Richard Biener  <rguenther@suse.de>
29582         PR tree-optimization/77318
29583         * graphite-sese-to-poly.c (extract_affine): Fix assert.
29584         (create_pw_aff_from_tree): Take loop parameter.
29585         (add_condition_to_pbb): Pass loop of the condition to
29586         create_pw_aff_from_tree.
29588 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
29590         * config/s390/s390.c (s390_asan_shadow_offset): New function.
29591         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
29593 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
29595         PR target/78597
29596         PR target/79038
29597         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
29598         no longer used.
29599         (convert_int_to_float128): Likewise.
29600         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
29601         (convert_int_to_float128): Likewise.
29602         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
29603         (UNSPEC_IEEE128_CONVERT): Likewise.
29604         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
29605         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
29606         Use local variables for IBM extended format.
29607         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
29608         (fix_trunc<mode>si2_fprs): Likewise.
29609         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
29610         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
29611         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
29612         to know that we can now have integers of all sizes in vector
29613         registers.
29614         (fix<uns>_<mode>di2_hw): Likewise.
29615         (float<uns>_<mode>si2_hw): Likewise.
29616         (fix_<mode>si2_hw): Likewise.
29617         (fixuns_<mode>si2_hw): Likewise.
29618         (float<uns>_<mode>di2_hw): Likewise.
29619         (float_<mode>di2_hw): Likewise.
29620         (float_<mode>si2_hw): Likewise.
29621         (floatuns_<mode>di2_hw): Likewise.
29622         (floatuns_<mode>si2_hw): Likewise.
29623         (xscvqp<su>wz_<mode>): Delete, no longer used.
29624         (xscvqp<su>dz_<mode>): Likewise.
29625         (xscv<su>dqp_<mode>): Likewise.
29626         (ieee128_mfvsrd_64bit): Likewise.
29627         (ieee128_mfvsrd_32bit): Likewise.
29628         (ieee128_mfvsrwz): Likewise.
29629         (ieee128_mtvsrw): Likewise.
29630         (ieee128_mtvsrd_64bit): Likewise.
29631         (ieee128_mtvsrd_32bit): Likewise.
29633 2017-01-31  Martin Liska  <mliska@suse.cz>
29635         PR ipa/79285
29636         * ipa-prop.c (ipa_free_all_node_params): Call release method
29637         instead of ~sumbol_summary to not to trigger double times
29638         dtor of hash_map.
29640 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
29642         PR tree-optimization/71691
29643         * bitmap.h (class auto_bitmap): New.
29644         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
29645         is_maybe_undefined instead of ssa_undefined_value_p.
29647 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29649         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
29650         __S390_ARCH_LEVEL__ to __ARCH__.
29652 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
29654         PR tree-optimization/79267
29655         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
29656         if should_remove_lhs_p is true.
29658 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
29660         PR debug/63238
29661         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
29662         (add_alignment_attribute): New.
29663         (base_type_die): Add alignment attribute.
29664         (subrange_type_die): Likewise.
29665         (modified_type_die): Likewise.
29666         (gen_array_type_die): Likewise.
29667         (gen_descr_array_type_die: Likewise.
29668         (gen_enumeration_type_die): Likewise.
29669         (gen_subprogram_die): Likewise.
29670         (gen_variable_die): Likewise.
29671         (gen_field_die): Likewise.
29672         (gen_ptr_to_mbr_type_die): Likewise.
29673         (gen_struct_or_union_type_die): Likewise.
29674         (gen_subroutine_type_die): Likewise.
29675         (gen_typedef_die): Likewise.
29676         (base_type_cmp): Compare alignment attribute.
29678 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
29680         PR target/79170
29681         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
29682         (setb_unsigned) New pattern for setb with CCUNS.
29683         * config/rs6000/rs6000.c (expand_block_compare): Use a different
29684         subfc./subfe sequence to avoid overflow problems.  Generate a
29685         shorter sequence with cmpld/setb for power9.
29686         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
29687         for generating subfc. instruction.
29688         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
29689         now uses this instruction.
29691 2017-01-30  Ian Lance Taylor  <iant@google.com>
29693         PR debug/79289
29694         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
29695         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
29697 2017-01-30  Martin Sebor  <msebor@redhat.com>
29699         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
29700         Move constant to the right of a relational operator.
29701         (get_mpfr_format_length, format_character, format_string): Ditto.
29702         (should_warn_p, maybe_warn): Same.
29704         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
29706 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
29708         PR lto/79061
29709         * asan.c (get_translation_unit_decl): Remove function.
29710         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
29712 2017-01-30  Martin Liska  <mliska@suse.cz>
29714         PR gcov-profile/79259
29715         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
29716         -fprofile-generate.
29718 2017-01-30  Martin Liska  <mliska@suse.cz>
29720         PR bootstrap/78985
29721         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
29722         Initialize variables with NULL value.
29724 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
29726         PR target/79260
29727         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
29728         tm_p_file.
29729         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
29731 2017-01-30  Richard Biener  <rguenther@suse.de>
29733         PR tree-optimization/79276
29734         * tree-vrp.c (process_assert_insertions): Properly adjust common
29735         when removing a duplicate.
29737         * gcc.dg/torture/pr79276.c: New testcase.
29739 2017-01-30  Richard Biener  <rguenther@suse.de>
29741         PR tree-optimization/79256
29742         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
29743         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
29744         alignment on TYPE.
29745         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
29747 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29749         PR target/79240
29750         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
29751         ("*r<noxa>sbg_<mode>_sll_bitmask")
29752         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
29753         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
29754         Use contiguous_bitmask_nowrap_operand.
29756 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29758         PR target/79268
29759         * config/rs6000/altivec.h (vec_xl): Revise #define.
29760         (vec_xst): Likewise.
29762 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
29764         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
29766 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
29768         PR rtl-optimization/79194
29769         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
29770         traps before call to bypass_conditional_jumps.
29772 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
29774         PR tree-optimization/71374
29775         * lra-constraints.c (check_conflict_input_operands): New.
29776         (match_reload): Use it.
29778 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
29780         PR target/79131
29781         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
29782         account to calculate conflict_set.
29784 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
29786         PR rtl-optimization/78559
29787         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
29788         other_insn in combine.
29790 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
29792         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
29793         uint16_type_node for BT_UINT16.
29795 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
29797         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
29798         "RTL Tests" to menu.
29799         (GIMPLE Tests): New node.
29800         (RTL Tests): New node.
29802 2017-01-27  Richard Biener  <rguenther@suse.de>
29804         PR tree-optimization/79245
29805         * tree-loop-distribution.c (distribute_loop): Apply cost
29806         modeling also to detected patterns.
29808 2017-01-27  Richard Biener  <rguenther@suse.de>
29810         PR tree-optimization/71433
29811         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
29812         (compare_assert_loc): New function.
29813         (process_assert_insertions): Sort and optimize assert locations
29814         to remove duplicates and push down identical assertions on
29815         edges to their destination block.
29817 2017-01-27  Richard Biener  <rguenther@suse.de>
29819         PR tree-optimization/79244
29820         * tree-vrp.c (remove_range_assertions): Forcefully propagate
29821         out SSA names even if abnormal.
29823 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
29825         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
29826         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
29827         instead of MPFR_RNDN.
29829 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
29831         PR target/79239
29832         * arm.c (arm_option_override): Don't call build_target_option_node
29833         until after doing all option overrides.
29834         (arm_valid_target_attribute_tree): Likewise.
29836 2017-01-27  Martin Liska  <mliska@suse.cz>
29838         * doc/invoke.texi (-fprofile-arcs): Document profiling support
29839         for {cd}tors and C++ {cd}tors.
29841 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29843         * config/s390/s390.md ("*setmem_long_and")
29844         ("*setmem_long_and_31z"): Use zero_extend instead of and.
29846 2017-01-26  Martin Sebor  <msebor@redhat.com>
29848         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
29849         of precision.
29851 2017-01-26  Martin Sebor  <msebor@redhat.com>
29853         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
29854         HAVE_DFmode before using XFmode or DFmode.
29855         (parse_directive): Avoid using the z length modifier to avoid
29856         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
29858         PR middle-end/78703
29859         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
29860         to accept adjustment as an array.
29861         (get_int_range): New function.
29862         (struct directive): Make width and prec arrays.
29863         (directive::set_width, directive::set_precision): Call get_int_range.
29864         (format_integer, format_floating): Handle width and precision ranges.
29865         (format_string, parse_directive): Same.
29867 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
29869         PR debug/79129
29870         * dwarf2out.c (generate_skeleton_bottom_up): For children with
29871         comdat_type_p set, just clone them, but keep the children in the
29872         original DIE.
29874         PR debug/78835
29875         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
29876         which have direct callers with -fvar-tracking-assignments enabled
29877         in the current TU.
29878         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
29879         inside of type units.
29881 2017-01-26  Martin Sebor  <msebor@redhat.com>
29883         PR middle-end/78703
29884         * gimple-ssa-sprintf.c (struct result_range): Add likely and
29885         unlikely counters.
29886         (struct format_result): Replace number_chars, number_chars_min,
29887         and number_chars_max with a single member of struct result_range.
29888         Remove bounded.
29889         (format_result::operator+=): Adjust.
29890         (struct fmtresult): Remove bounded.  Handle likely and unlikely
29891         counters.
29892         (fmtresult::adjust_for_width_or_precision): New function.
29893         (fmtresult:type_max_digits): New function.
29894         (bytes_remaining): Handle likely and unlikely counters.
29895         (min_bytes_remaining): Remove.
29896         (format_percent): Simplify.
29897         (format_integer, format_floating): Set likely and unlikely counters.
29898         (get_string_length, format_character, format_string): Same.
29899         (format_plain, should_warn_p): New function.
29900         (maybe_warn): Call should_warn_p.  Update diagnostic messages
29901         and handle those for all directives, including plain strings.
29902         (format_directive): Handle likely and unlikely counters.
29903         Remove unnecessary quoting from diagnostics.  Add an informational
29904         note.
29905         (add_bytes): Remove.
29906         (pass_sprintf_length::compute_format_length): Simplify.
29907         (try_substitute_return_value): Handle likely and unlikely counters.
29909 2017-01-26  Carl Love  <cel@us.ibm.com>
29911         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
29912         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
29914 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
29916         PR target/79131
29917         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
29918         endianess for subregs into account.
29919         * lra-constraints.c (lra_constraints): Do risky transformations
29920         always on the first iteration.
29921         * lra-lives.c (check_pseudos_live_through_calls): Add arg
29922         last_call_used_reg_set.
29923         (process_bb_lives): Define and use last_call_used_reg_set.
29924         * lra.c (lra): Always continue after lra_constraints on the first
29925         iteration.
29927 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
29929         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
29930         constant.
29931         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
29933 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
29935         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
29936         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
29937         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
29938         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
29939         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
29940         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
29941         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
29942         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
29943         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
29945 2017-01-26  Marek Polacek  <polacek@redhat.com>
29947         PR c/79199
29948         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
29949         for the third operand.
29951 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
29953         PR middle-end/79236
29954         * omp-low.c (struct omp_context): Add simt_stmt field.
29955         (scan_omp_for): Return omp_context *.
29956         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
29957         context to the _simt_ SIMD stmt.
29958         (lower_omp_for): For combined SIMD with sibling _simt_
29959         SIMD, make sure to use the same decls in _looptemp_
29960         clauses as in the sibling.
29962 2017-01-26  David Sherwood  <david.sherwood@arm.com>
29964         PR middle-end/79212
29965         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
29966         all contexts.
29968 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
29970         PR target/70465
29971         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
29972         emit fld b; fld a; if possible.
29974         * brig-builtins.def: Update copyright years.
29975         * config/arm/arm_acle_builtins.def: Update copyright years.
29977 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
29979         PR target/79179
29980         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
29981         constraint instead of o for the stxsd instruction.
29983 2017-01-25  Carl Love  <cel@us.ibm.com>
29985         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
29986         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
29988 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
29990         * doc/invoke.texi (C++ Dialect Options): Fix typo.
29992 2017-01-25  Richard Biener  <rguenther@suse.de>
29994         PR tree-optimization/69264
29995         * target.def (vector_alignment_reachable): Improve documentation.
29996         * doc/tm.texi: Regenerate.
29997         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
29998         and add a comment.
29999         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
30000         earlier changes with respect to TYPE_USER_ALIGN.
30001         (vector_alignment_reachable_p): Likewise.  Improve dumping.
30003 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30005         PR target/79145
30006         * config/arm/arm.md (xordi3): Force constant operand into a register
30007         for TARGET_IWMMXT.
30009 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30011         * doc/invoke.texi (-fstore-merging): Correct default optimization
30012         levels at which it is enabled.
30013         (-O): Move -fstore-merging from list to...
30014         (-O2): ... Here.
30016 2017-01-25  Richard Biener  <rguenther@suse.de>
30018         PR debug/78363
30019         * omp-expand.c: Include debug.h.
30020         (expand_omp_taskreg): Make sure to generate early debug before
30021         outlining anything from a function.
30022         (expand_omp_target): Likewise.
30023         (grid_expand_target_grid_body): Likewise.
30025 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
30027         PR lto/79061
30028         * asan.c (get_translation_unit_decl): New function.
30029         (asan_add_global): Extract modules file name from globals
30030         TRANSLATION_UNIT_DECL name.
30032 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
30034         PR target/77439
30035         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
30036         for long calls with APCS frame and VFP.
30038 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
30040         * cfg.c (original_copy_tables_initialized_p): New function.
30041         * cfg.h (original_copy_tables_initialized_p): New decl.
30042         * cfgrtl.c (relink_block_chain): Guard the call to
30043         free_original_copy_tables with a call to
30044         original_copy_tables_initialized_p.
30045         * cgraph.h (symtab_node::native_rtl_p): New decl.
30046         * cgraphunit.c (symtab_node::native_rtl_p): New function.
30047         (symtab_node::needed_p): Don't assert for early assembly output
30048         for __RTL functions.
30049         (cgraph_node::finalize_function): Set "force_output" for __RTL
30050         functions.
30051         (cgraph_node::analyze): Bail out early for __RTL functions.
30052         (analyze_functions): Update assertion to support __RTL functions.
30053         (cgraph_node::expand): Bail out early for __RTL functions.
30054         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
30055         __RTL functions.
30056         * function.h (struct function): Update comment for field
30057         "pass_startwith".
30058         * gimple-expr.c: Include "tree-pass.h".
30059         (gimple_has_body_p): Return false for __RTL functions.
30060         * Makefile.in (OBJS): Add run-rtl-passes.o.
30061         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
30062         accessor.
30063         (gcc::pass_manager::get_clean_slate): New accessor.
30064         * passes.c: Include "insn-addr.h".
30065         (should_skip_pass_p): Add logging.  Update logic for running
30066         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
30067         property-provider override so it is only done for gimple passes.
30068         Don't skip dfinit.
30069         (skip_pass): New function.
30070         (execute_one_pass): Call skip_pass when skipping passes.
30071         * read-md.c (md_reader::read_char): Support filtering
30072         the input to a subset of line numbers.
30073         (md_reader::md_reader): Initialize fields
30074         m_first_line and m_last_line.
30075         (md_reader::read_file_fragment): New function.
30076         * read-md.h (md_reader::read_file_fragment): New decl.
30077         (md_reader::m_first_line): New field.
30078         (md_reader::m_last_line): New field.
30079         * read-rtl-function.c (function_reader::create_function): Only
30080         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
30081         curr_properties.  Set DECL_INITIAL to a dummy block.
30082         (read_rtl_function_body_from_file_range): New function.
30083         * read-rtl-function.h (read_rtl_function_body_from_file_range):
30084         New decl.
30085         * run-rtl-passes.c: New file.
30086         * run-rtl-passes.h: New file.
30088 2017-01-24  Jeff Law  <law@redhat.com>
30090         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
30091         buffer size.
30093 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
30095         PR tree-optimization/79159
30096         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
30097         (record_nonwrapping_iv): Improve boundary using above function if no
30098         value range information.
30100 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
30101             Martin Jambor  <mjambor@suse.cz>
30103         * brig-builtins.def: New file.
30104         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
30105         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
30106         (DEF_HSAIL_SAT_BUILTIN): Likewise.
30107         (DEF_HSAIL_INTR_BUILTIN): Likewise.
30108         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
30109         * builtin-types.def (BT_INT8): New.
30110         (BT_INT16): Likewise.
30111         (BT_UINT8): Likewise.
30112         (BT_UINT16): Likewise.
30113         (BT_FN_ULONG): Likewise.
30114         (BT_FN_UINT_INT): Likewise.
30115         (BT_FN_UINT_ULONG): Likewise.
30116         (BT_FN_UINT_LONG): Likewise.
30117         (BT_FN_UINT_PTR): Likewise.
30118         (BT_FN_ULONG_PTR): Likewise.
30119         (BT_FN_INT8_FLOAT): Likewise.
30120         (BT_FN_INT16_FLOAT): Likewise.
30121         (BT_FN_UINT32_FLOAT): Likewise.
30122         (BT_FN_UINT16_FLOAT): Likewise.
30123         (BT_FN_UINT8_FLOAT): Likewise.
30124         (BT_FN_UINT64_FLOAT): Likewise.
30125         (BT_FN_UINT16_UINT32): Likewise.
30126         (BT_FN_UINT32_UINT16): Likewise.
30127         (BT_FN_UINT16_UINT16_UINT16): Likewise.
30128         (BT_FN_INT_PTR_INT): Likewise.
30129         (BT_FN_UINT_PTR_UINT): Likewise.
30130         (BT_FN_LONG_PTR_LONG): Likewise.
30131         (BT_FN_ULONG_PTR_ULONG): Likewise.
30132         (BT_FN_VOID_UINT64_UINT64): Likewise.
30133         (BT_FN_UINT8_UINT8_UINT8): Likewise.
30134         (BT_FN_INT8_INT8_INT8): Likewise.
30135         (BT_FN_INT16_INT16_INT16): Likewise.
30136         (BT_FN_INT_INT_INT): Likewise.
30137         (BT_FN_UINT_FLOAT_UINT): Likewise.
30138         (BT_FN_FLOAT_UINT_UINT): Likewise.
30139         (BT_FN_ULONG_UINT_UINT): Likewise.
30140         (BT_FN_ULONG_UINT_PTR): Likewise.
30141         (BT_FN_ULONG_ULONG_ULONG): Likewise.
30142         (BT_FN_UINT_UINT_UINT): Likewise.
30143         (BT_FN_VOID_UINT_PTR): Likewise.
30144         (BT_FN_UINT_UINT_PTR: Likewise.
30145         (BT_FN_UINT32_UINT64_PTR): Likewise.
30146         (BT_FN_INT_INT_UINT_UINT): Likewise.
30147         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
30148         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
30149         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
30150         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
30151         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
30152         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
30153         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
30154         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
30155         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
30156         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
30157         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
30158         * doc/frontends.texi: List BRIG FE.
30159         * doc/install.texi (Testing): Add BRIG tesring requirements.
30160         * doc/invoke.texi (Overall Options): Mention BRIG.
30161         * doc/standards.texi (Standards): Doucment BRIG HSA version.
30163 2017-01-24  Richard Biener  <rguenther@suse.de>
30165         PR translation/79208
30166         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
30168 2017-01-24  Martin Jambor  <mjambor@suse.cz>
30170         PR bootstrap/79198
30171         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
30172         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
30173         and known_contexts.
30175 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
30177         PR middle-end/79123
30178         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
30179         casts from signed to unsigned really don't have a range.
30181 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
30183         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
30184         GMP_RNDx for compatiblity.
30186 2017-01-24  Martin Liska  <mliska@suse.cz>
30188         PR bootstrap/79132
30189         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
30190         that would prevent us to call alloca with -1 as argument.
30192 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
30194         * dwarf2out.c (output_compilation_unit_header, output_file_names):
30195         Avoid -Wformat-security warning.
30197 2017-01-23  Andrew Pinski  <apinski@cavium.com>
30199         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
30200         cost table.
30202 2017-01-23  Martin Sebor  <msebor@redhat.com>
30204         PR middle-end/78703
30205         * gimple-ssa-sprintf.c (warn_level): New global.
30206         (format_integer): Use it here and throughout the rest of the file.
30207         Use the same switch to compute sign as base.
30208         (maybe_warn): New function.
30209         (format_directive): Factor out warnings into maybe_warn.
30210         Add debugging output.  Use warn_level.
30211         (add_bytes): Use warn_level.
30212         (pass_sprintf_length::compute_format_length): Add debugging output.
30213         (try_substitute_return_value): Same.
30214         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
30216         PR middle-end/78703
30217         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
30218         (struct fmtresult, format_integer, format_floating): Adjust.
30219         (fmtresult::fmtresult): Set max correctly in two argument ctor.
30220         (get_string_length, format_string,format_directive): Same.
30221         (pass_sprintf_length::compute_format_length): Same.
30222         (try_substitute_return_value): Simplify slightly.
30224         PR middle-end/78703
30225         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
30226         (fmtresult::operator+=): Outlined.
30227         (struct fmtresult): Add ctors.
30228         (struct conversion_spec): Rename...
30229         (struct directive): ...to this.  Add and remove data members.
30230         (directive::set_width, directive::set_precision): New functions.
30231         (format_percent): Use fmtresult ctor.
30232         (get_width_and_precision): Remove.
30233         (format_integer): Make naming changes.  Avoid computing width and
30234         precision.
30235         (format_floating): Same.  Adjust indentation.
30236         (format_character, format_none): New functions.
30237         (format_string): Moved character handling to format_character.
30238         (format_directive): Remove arguments, change return type.
30239         (parse_directive): New function.
30240         (pass_sprintf_length::compute_format_length): Move directive
30241         parsing to parse_directive.
30243 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
30245         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
30246         (assign_assembler_name_if_needed): ... this.
30247         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
30248         (assign_assembler_name_if_needed): ... this.
30249         (free_lang_data_in_cgraph): Adjust callers.
30250         * cgraphunit.c (cgraph_node::analyze): Likewise.
30251         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
30252         Likewise.
30254 2017-01-23  Richard Biener  <rguenther@suse.de>
30256         PR tree-optimization/79088
30257         PR tree-optimization/79188
30258         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
30259         resetting loop bounds after last path deletion.  Reset loop
30260         bounds of the target loop, make code match the comments.
30261         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
30262         Make sure loops need no fixups.
30264 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
30266         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
30267         exponent support with double type for first argument.
30268         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
30269         type returned by __builtin_vec_extract_sig,
30270         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
30271         functions from "vector int" to "vector unsigned int" or from
30272         "vector long long int" to "vector unsigned long long int".
30273         Changed type returned by __builtin_vec_extract_exp,
30274         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
30275         functions from "vector int" to "vector unsigned int" or from
30276         "vector long long int" to "vector unsigned long long int".
30277         Changed return type of __builtin_vec_test_data_class,
30278         __builtin_vec_test_data_class_sp, and
30279         __builtin_vec_test_data_class_dp from "vector int" to
30280         "vector bool int" or from "vector long long int" to "vector bool
30281         long long int" and changed second argument type from "unsigned
30282         int" to "int".  Added new overloaded function forms "vector float
30283         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
30284         "vector float __builtin_vec_insert_exp_sp (vector float, vector
30285         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
30286         double, vector unsigned long long int)" and "vector double
30287         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
30288         long int)".  Changed return type of
30289         __builtin_scalar_test_data_class and
30290         __builtin_scalar_test_data_class_sp and
30291         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
30292         int" and changed second argument from "unsigned int" to "int".
30293         Changed type returned by __builtin_scalar_test_neg,
30294         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
30295         from "int" to "bool int".  Added new overloaded function form
30296         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
30297         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
30298         exponent double-precision with floating point first argument.
30299         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
30300         documentation of scalar_test_data_class, scalar_test_neg,
30301         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
30302         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
30303         vec_test_data_class built-in functions to reflect refinements in
30304         their type signatures.
30306 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
30308         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
30309         size of buf.
30310         (aarch64_elf_asm_destructor): Likewise.
30312 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
30314         PR rtl-optimization/78634
30315         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
30316         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
30317         * ifcvt.c (noce_try_cmove): Add missing cost check.
30319         PR rtl-optimization/71724
30320         * combine.c (if_then_else_cond): Look for situations where it is
30321         beneficial to undo the work of one of the recursive calls.
30323 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
30325         PR tree-optimization/70754
30326         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
30327         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
30328         combined stmt before it if not NULL.
30329         (combine_chains): Process refs reversely and compute dominance point
30330         for root ref.
30332 2017-01-23  Martin Liska  <mliska@suse.cz>
30334         PR tree-optimization/79196
30335         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
30336         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
30337         instead of memcmp.
30338         (strlen_optimize_stmt): Call the renamed function.
30340 2017-01-23  Michael Matz  <matz@suse.de>
30342         PR tree-optimization/78384
30343         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
30345 2017-01-23  Richard Biener  <rguenther@suse.de>
30347         PR tree-optimization/79186
30348         * tree-vrp.c (register_new_assert_for): Make sure we've seen
30349         both incoming edges before moving an assert.
30351 2017-01-23  Martin Jambor  <mjambor@suse.cz>
30353         * ipa-prop.c (load_from_param_1): Removed.
30354         (load_from_unmodified_param): Bits from load_from_param_1 put back
30355         here.
30356         (load_from_param): Removed.
30357         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
30358         with stmt.  Reverted back to use of load_from_unmodified_param.
30360 2017-01-23  Martin Jambor  <mjambor@suse.cz>
30362         PR ipa/79108
30363         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
30364         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
30365         field a pointer to garbage collected vector, mark lattices and
30366         ipcp_orig_node with GTY((skip)).
30367         (ipa_get_param_count): Adjust to descriptors being a pointer.
30368         (ipa_get_param): Likewise.
30369         (ipa_get_type): Likewise.
30370         (ipa_get_param_move_cost): Likewise.
30371         (ipa_set_param_used): Likewise.
30372         (ipa_get_controlled_uses): Likewise.
30373         (ipa_set_controlled_uses): Likewise.
30374         (ipa_is_param_used): Likewise.
30375         (ipa_node_params_t): Move into garbage collector.  New methods insert
30376         and remove.
30377         (ipa_node_params_sum): Annotate wth GTY(()).
30378         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
30379         garbage collected.
30380         (ipa_load_from_parm_agg): Adjust declaration.
30381         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
30382         * ipa-profile.c (ipa_profile): Likewise.
30383         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
30384         (ipa_populate_param_decls): Make descriptors parameter garbage
30385         collected.
30386         (ipa_dump_param): Adjust to descriptors being a pointer.
30387         (ipa_alloc_node_params): Likewise.
30388         (ipa_initialize_node_params): Likewise.
30389         (load_from_param_1): Make descriptors parameter garbage collected.
30390         (load_from_unmodified_param): Likewise.
30391         (load_from_param): Likewise.
30392         (ipa_load_from_parm_agg): Likewise.
30393         (ipa_node_params::~ipa_node_params): Removed.
30394         (ipa_free_all_node_params): Remove call to delete operator.
30395         (ipa_node_params_t::insert): New.
30396         (ipa_node_params_t::remove): Likewise.
30397         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
30398         copy known_csts and known_contexts vectors.
30399         (ipa_read_node_info): Adjust to descriptors being a pointer.
30400         (ipcp_modif_dom_walker): Make m_descriptors field garbage
30401         collected.
30402         (ipcp_transform_function): Make descriptors variable garbage
30403         collected.
30405 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
30407         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
30408         * config/i386/avx512dqintrin.h: Ditto.
30409         * config/i386/avx512fintrin.h: Ditto.
30410         * config/i386/i386.c: Handle new builtins.
30411         * config/i386/i386-builtin.def: Add new builtins.
30412         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
30413         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
30415 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
30416             Martin Liska  <mliska@suse.cz>
30418         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
30419         * asan.c (asan_expand_poison_ifn): Support stores and use
30420         appropriate ASAN report function.
30421         * internal-fn.c (expand_ASAN_POISON_USE): New function.
30422         * internal-fn.def (ASAN_POISON_USE): Declare.
30423         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
30424         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
30425         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
30426         ASAN_POISON calls w/o LHS.
30427         * tree-ssa.c (execute_update_addresses_taken): Create clobber
30428         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
30429         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
30430         * gimplify.c (asan_poison_variables): Add attribute
30431         use_after_scope_memory to variables that really needs to live
30432         in memory.
30433         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
30434         having the attribute.
30436 2017-01-23  Martin Liska  <mliska@suse.cz>
30438         * asan.c (create_asan_shadow_var): New function.
30439         (asan_expand_poison_ifn): Likewise.
30440         * asan.h (asan_expand_poison_ifn): New declaration.
30441         * internal-fn.c (expand_ASAN_POISON): Likewise.
30442         * internal-fn.def (ASAN_POISON): New builtin.
30443         * sanopt.c (pass_sanopt::execute): Expand
30444         asan_expand_poison_ifn.
30445         * tree-inline.c (copy_decl_for_dup_finish): Make function
30446         external.
30447         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
30448         * tree-ssa.c (is_asan_mark_p): New function.
30449         (execute_update_addresses_taken): Rewrite local variables
30450         (identified just by use-after-scope as addressable) into SSA.
30452 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
30454         * doc/install.texi (Specific): opensource.apple.com uses https
30455         now. Remove trailing slash.
30457 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
30459         * README.Portability: Remove note on an Irix compatibility issue.
30461 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
30463         * gcov.c (INCLUDE_ALGORITHM): Define.
30464         (INCLUDE_VECTOR): Define.
30465         No longer include <vector> and <algorithm> directly.
30467 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
30469         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
30470         to https.
30471         * doc/invoke.texi (Code Gen Options): Ditto.
30473 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
30475         PR lto/78407
30476         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
30478 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
30480         rtl-optimization/79125
30481         * cprop.c (local_cprop_pass): Handle cases where we make an
30482         unconditional trap.
30484 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
30486         PR target/61729
30487         PR target/77850
30488         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
30489         read from, for big endian.
30491 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
30493         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
30494         register pauth builtins for LP64 only.
30496 2017-01-20  Marek Polacek  <polacek@redhat.com>
30498         PR c/79152
30499         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
30500         non-case labels.
30502 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
30504         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
30505         of safelen status.
30506         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
30507         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
30508         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
30510 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30512         PR target/71270
30513         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
30514         in big-endian mode when they are not a single duplicated value.
30516 2017-01-20  Richard Biener  <rguenther@suse.de>
30518         * BASE-VER: Bump to 7.0.1.
30520 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
30522         * omp-low.c (omplow_simd_context): New struct.  Use it...
30523         (lower_rec_simd_input_clauses): ...here and...
30524         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
30525         references to idx, lane, max_vf, is_simt.
30527 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
30529         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
30530         mcpu=nps400.
30532 2017-01-20  Martin Jambor  <mjambor@suse.cz>
30534         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
30535         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
30536         gt-hsa-common.h.
30537         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
30538         (GTFILES): Rename hsa.c to hsa-common.c.
30539         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
30540         * hsa-dump.c: Likewise.
30541         * hsa-gen.c: Likewise.
30542         * hsa-regalloc.c: Likewise.
30543         * ipa-hsa.c: Likewise.
30544         * omp-expand.c: Likewise.
30545         * omp-low.c: Likewise.
30546         * toplev.c: Likewise.
30548 2017-01-20  Marek Polacek  <polacek@redhat.com>
30550         PR c/64279
30551         * doc/invoke.texi: Document -Wduplicated-branches.
30552         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
30553         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
30554         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
30555         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
30556         return 0 only when not OEP_LEXICOGRAPHIC.
30557         (fold_build_cleanup_point_expr): Use the expression
30558         location when building CLEANUP_POINT_EXPR.
30559         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
30560         * tree.c (add_expr): Handle error_mark_node.
30562 2017-01-20  Martin Liska  <mliska@suse.cz>
30564         PR lto/69188
30565         * tree-profile.c (init_ic_make_global_vars): Do not call
30566         finalize_decl.
30567         (gimple_init_gcov_profiler): Likewise.
30569 2017-01-20  Martin Liska  <mliska@suse.cz>
30571         PR ipa/71190
30572         * cgraph.h (maybe_create_reference): Remove argument and
30573         update comment.
30574         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
30575         argument.
30576         * ipa-cp.c (create_specialized_node): Likewise.
30577         * symtab.c (symtab_node::maybe_create_reference): Handle
30578         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
30580 2017-01-20  Martin Liska  <mliska@suse.cz>
30582         * read-rtl-function.c (function_reader::create_function): Use
30583         build_decl instread of build_decl_stat.
30585 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
30587         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
30588         * config/i386/avx512dqintrin.h: Ditto.
30589         * config/i386/avx512fintrin.h: Ditto.
30590         * config/i386/i386-builtin-types.def: Add new types.
30591         * config/i386/i386.c: Handle new types.
30592         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
30593         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
30594         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
30595         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
30596         (__builtin_ia32_kshiftridi): New.
30597         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
30599 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
30601         PR target/78875
30602         PR target/79140
30603         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
30604         define to rs6000_init_stack_protect_guard.
30605         (rs6000_init_stack_protect_guard): New function.
30607 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
30608             Yunqiang Su  <yunqiang.su@imgtec.com>
30610         * config.gcc (supported_defaults): Add madd4.
30611         (with_madd4): Add validation.
30612         (all_defaults): Add madd4.
30613         * config/mips/mips.opt (mmadd4): New option.
30614         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
30615         mmadd4.
30616         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
30617         __mips_no_madd4.
30618         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
30619         (ISA_HAS_FUSED_MADD4): Likewise.
30620         * doc/invoke.texi (-mmadd4): Document the new option.
30621         * doc/install.texi (--with-madd4): Document the new option.
30623 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
30625         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
30626         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
30627         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
30628         (aarch64_init_pauth_hint_builtins): New.
30629         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
30630         (aarch64_expand_builtin): Expand new builtins.
30632 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
30634         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
30635         * combine-stack-adj.c (no_unhandled_cfa): Handle
30636         REG_CFA_TOGGLE_RA_MANGLE.
30637         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
30638         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
30639         info for return address signing.
30640         (aarch64_expand_epilogue): Likewise.
30642 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
30644         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
30645         * config/aarch64/aarch64-protos.h
30646         (aarch64_return_address_signing_enabled): New declaration.
30647         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
30648         New function.
30649         (aarch64_expand_prologue): Sign return address before it's pushed onto
30650         stack.
30651         (aarch64_expand_epilogue): Authenticate return address fetched from
30652         stack.
30653         (aarch64_override_options): Sanity check for ILP32 and ISA level.
30654         (aarch64_attributes): New function attributes for "sign-return-address".
30655         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
30656         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
30657         ("*do_return"): Generate combined instructions according to key index.
30658         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
30659         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
30660         iterators.
30661         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
30662         * config/aarch64/aarch64.opt (msign-return-address=): New.
30663         * doc/extend.texi (AArch64 Function Attributes): Documents
30664         "sign-return-address=".
30665         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
30667 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
30669         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
30670         overall option summary.
30672 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
30674         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
30675         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
30676         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
30677         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
30679 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
30681         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
30682         -mpower9-minmax by default for -mcpu=power9.
30683         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
30684         128-bit floating point.
30686 2017-01-20  Alan Modra  <amodra@gmail.com>
30688         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
30689         optimizing for size.
30691 2017-01-20  Alan Modra  <amodra@gmail.com>
30693         PR target/79144
30694         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
30695         for strcmp and strncmp from corresponding builtin decl.
30697 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
30699         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
30700         instead of i386/rtems-64.h.
30701         * config/i386/rtems-64.h: Remove.
30703 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
30705         PR target/78478
30706         Revert:
30707         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
30709         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
30711 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
30713         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
30714         Change int to HOST_WIDE_INT.
30715         * config/aarch64/aarch64-protos.h
30716         (aarch64_simd_gen_const_vector_dup): Likewise.
30717         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
30719 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
30721         * langhooks-def.h (lhd_type_for_size): New decl.
30722         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
30723         * langhooks.c (lhd_type_for_size): New function, taken from
30724         lto_type_for_size.
30726 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
30728         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
30729         define_bypass for CR latency.
30730         (power9-cracked-alu): Update bypass latency and remove power9-branch.
30731         (power9-alu2): Add define_bypass for CR latency.
30732         (power9-cmp): New.
30733         (power9-mul): Update insn latency.
30734         (power9-mul-compare): Update insn latency, bypass latency and remove
30735         power9-branch.
30737 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30739         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
30740         Delete.
30741         * config/aarch64/aarch64.md
30742         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
30743         aarch64_nopcrelative_literal_loads.
30744         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
30746 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
30748         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
30749         TARGET_LOONGSON_3A.
30750         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
30752 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
30754         PR target/78176
30755         * config.gcc (supported_defaults): Add lxc1-sxc1.
30756         (with_lxc1_sxc1): Add validation.
30757         (all_defaults): Add lxc1-sxc1.
30758         * config/mips/mips.opt (mlxc1-sxc1): New option.
30759         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
30760         mlxc1-sxc1.
30761         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
30762         __mips_no_lxc1_sxc1.
30763         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
30764         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
30765         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
30767 2017-01-19  Richard Biener  <rguenther@suse.de>
30769         PR tree-optimization/72488
30770         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
30771         sure to restore SSA info.
30772         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
30774 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
30776         PR rtl-optimization/79121
30777         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
30778         of the inner type when shifting an extended value.
30780 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
30782         PR lto/78407
30783         * symtab.c (symtab_node::equal_address_to): Fix comparing of
30784         interposable aliases.
30786 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
30788         PR target/78516
30789         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
30790         Use the evmergelohi instruction.
30791         (mov_si<mode>_e500_subreg4_2_le): Likewise.
30792         (mov_sitf_e500_subreg8_2_be): Likewise.
30793         (mov_sitf_e500_subreg12_2_le): Likewise.
30794         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
30795         (mov_si<mode>_e500_subreg4_2_be): Likewise.
30796         (mov_sitf_e500_subreg8_2_le): Likewise.
30797         (mov_sitf_e500_subreg12_2_be): Likewise.
30799 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30801         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
30802         attribute from vecsimple to vecperm.
30803         (altivec_vbpermq2): Likewise.
30805 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30807         PR target/79040
30808         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
30810 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
30811         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
30812         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
30813         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
30814         case where N arg is SIZE_MAX.
30815         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
30816         (cmpstrsi): Add pattern.
30818 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
30820         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30821         __builtin_vec_revb builtins.
30822         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
30823         built-in functions to support generation of the ISA 3.0 XXBR<x>
30824         vector byte reverse instructions.
30825         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
30826         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
30827         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
30828         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
30829         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
30830         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
30831         (P9V_BUILTIN_VEC_REVB): Likewise.
30832         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
30833         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
30834         (p9_xxbrq_v16qi): Likewise.
30835         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
30836         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
30837         (p9_xxbrh_v8hi): Likewise.
30838         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
30839         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
30840         vec_revb built-in functions.
30842 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
30844         PR rtl-optimization/78952
30845         * config/i386/i386.md (any_extract): New code iterator.
30846         (*insvqi_2): Use any_extract for source operand.
30847         (*insvqi_3): Use any_shiftrt for source operand.
30849 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
30851         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
30852         New function.
30853         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
30855 2017-01-18  Matthias Klose  <doko@ubuntu.com>
30857         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
30859 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30861         * config/rs6000/altivec.h (vec_bperm): Change #define.
30862         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
30863         (altivec_vbpermq2): New define_insn.
30864         (altivec_vbpermd): Likewise.
30865         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
30866         function interface.
30867         (VBPERMD): Likewise.
30868         (VBPERM): New polymorphic function interface.
30869         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
30870         Add entries for P9V_BUILTIN_VEC_VBPERM.
30871         * doc/extend.texi: Add interfaces for vec_bperm.
30873 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30875         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
30876         first letter of error messages.
30877         (s390_resolve_overloaded_builtin): Likewise.
30878         * config/s390/s390.c (s390_expand_builtin): Likewise.
30879         (s390_invalid_arg_for_unprototyped_fn): Likewise.
30880         (s390_valid_target_attribute_inner_p): Likewise.
30881         * config/s390/s390.md ("tabort"): Likewise.
30883 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
30885         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
30886         (ISA_AVOID_DIV_HILO): New macro.
30887         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
30888         (ISA_HAS_DDIV): Likewise.
30890 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
30892         * doc/invoke.texi (fabi-version): Correct number of occurrences.
30894 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
30896         * doc/invoke.texi (fabi-version): Spelling fix.
30898 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
30900         PR c++/70182
30901         * doc/invoke.texi (fabi-version): Mention mangling fix for
30902         operator names.
30904 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
30906         PR c++/77489
30907         * doc/invoke.texi (fabi-version): Document discriminator mangling.
30909 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
30911         PR target/78875
30912         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
30913         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
30914         the new options.
30915         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
30916         flexible settings.
30917         (stack_protect_test): Ditto.
30918         * config/rs6000/rs6000.opt (mstack-protector-guard=,
30919         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
30920         options.
30921         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
30922         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
30923         -mstack-protector-guard-offset=.
30924         (RS/6000 and PowerPC Options): Ditto.
30926 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
30928         * config/i386/i386.h (MASK_CLASS_P): New define.
30929         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
30930         there are no registers from different register sets also when
30931         mask registers are used.  Update function comment.
30932         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
30933         to (*k/*r) and (*k/*km) alternatives.
30935 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
30937         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
30938         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
30939         (EH_RETURN_HANDLER_RTX): New define.
30940         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
30941         Force frame pointer in EH return functions.
30942         (aarch64_expand_epilogue): Add barrier for eh_return.
30943         (aarch64_final_eh_return_addr): Remove.
30944         (aarch64_eh_return_handler_rtx): New function.
30945         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
30946         Remove.
30947         (aarch64_eh_return_handler_rtx): New prototype.
30949 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30951         * config/rs6000/altivec.h (vec_rlmi): New #define.
30952         (vec_vrlnm): Likewise.
30953         (vec_rlnm): Likewise.
30954         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
30955         (UNSPEC_VRLNM): Likewise.
30956         (VIlong): New mode iterator.
30957         (altivec_vrl<VI_char>mi): New define_insn.
30958         (altivec_vrl<VI_char>nm): Likewise.
30959         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
30960         function entry.
30961         (VRLDNM): Likewise.
30962         (RLNM): New polymorphic function entry.
30963         (VRLWMI): New monomorphic function entry.
30964         (VRLDMI): Likewise.
30965         (RLMI): New polymorphic function entry.
30966         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
30967         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
30968         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
30969         vec_vrlnm.
30971 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
30973         PR debug/78839
30974         * dwarf2out.c (field_byte_offset): Restore the
30975         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
30976         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
30977         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
30978         of build2 + fold.
30980 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
30982         PR ada/67205
30983         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
30985 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
30987         PR debug/71669
30988         * dwarf2out.c (add_data_member_location_attribute): For constant
30989         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
30990         instead of DW_AT_data_member_location, DW_AT_bit_offset and
30991         DW_AT_byte_size attributes.
30993 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
30995         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
30996         after forcing to constant memory when the code model is medium.
30998 2017-01-17  Julia Koval  <julia.koval@intel.com>
31000         PR target/76731
31001         * config/i386/avx512fintrin.h
31002         (_mm512_i32gather_ps): Change __addr type to void const*.
31003         (_mm512_mask_i32gather_ps): Ditto.
31004         (_mm512_i32gather_pd): Ditto.
31005         (_mm512_mask_i32gather_pd): Ditto.
31006         (_mm512_i64gather_ps): Ditto.
31007         (_mm512_mask_i64gather_ps): Ditto.
31008         (_mm512_i64gather_pd): Ditto.
31009         (_mm512_mask_i64gather_pd): Ditto.
31010         (_mm512_i32gather_epi32): Ditto.
31011         (_mm512_mask_i32gather_epi32): Ditto.
31012         (_mm512_i32gather_epi64): Ditto.
31013         (_mm512_mask_i32gather_epi64): Ditto.
31014         (_mm512_i64gather_epi32): Ditto.
31015         (_mm512_mask_i64gather_epi32): Ditto.
31016         (_mm512_i64gather_epi64): Ditto.
31017         (_mm512_mask_i64gather_epi64): Ditto.
31018         (_mm512_i32scatter_ps): Change __addr type to void*.
31019         (_mm512_mask_i32scatter_ps): Ditto.
31020         (_mm512_i32scatter_pd): Ditto.
31021         (_mm512_mask_i32scatter_pd): Ditto.
31022         (_mm512_i64scatter_ps): Ditto.
31023         (_mm512_mask_i64scatter_ps): Ditto.
31024         (_mm512_i64scatter_pd): Ditto.
31025         (_mm512_mask_i64scatter_pd): Ditto.
31026         (_mm512_i32scatter_epi32): Ditto.
31027         (_mm512_mask_i32scatter_epi32): Ditto.
31028         (_mm512_i32scatter_epi64): Ditto.
31029         (_mm512_mask_i32scatter_epi64): Ditto.
31030         (_mm512_i64scatter_epi32): Ditto.
31031         (_mm512_mask_i64scatter_epi32): Ditto.
31032         (_mm512_i64scatter_epi64): Ditto.
31033         (_mm512_mask_i64scatter_epi64): Ditto.
31034         * config/i386/avx512pfintrin.h
31035         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
31036         (_mm512_mask_prefetch_i32gather_ps): Ditto.
31037         (_mm512_mask_prefetch_i64gather_pd): Ditto.
31038         (_mm512_mask_prefetch_i64gather_ps): Ditto.
31039         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
31040         (_mm512_prefetch_i32scatter_ps): Ditto.
31041         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
31042         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
31043         (_mm512_prefetch_i64scatter_pd): Ditto.
31044         (_mm512_prefetch_i64scatter_ps): Ditto.
31045         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
31046         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
31047         * config/i386/avx512vlintrin.h
31048         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
31049         (_mm_mmask_i32gather_ps): Ditto.
31050         (_mm256_mmask_i32gather_pd): Ditto.
31051         (_mm_mmask_i32gather_pd): Ditto.
31052         (_mm256_mmask_i64gather_ps): Ditto.
31053         (_mm_mmask_i64gather_ps): Ditto.
31054         (_mm256_mmask_i64gather_pd): Ditto.
31055         (_mm_mmask_i64gather_pd): Ditto.
31056         (_mm256_mmask_i32gather_epi32): Ditto.
31057         (_mm_mmask_i32gather_epi32): Ditto.
31058         (_mm256_mmask_i32gather_epi64): Ditto.
31059         (_mm_mmask_i32gather_epi64): Ditto.
31060         (_mm256_mmask_i64gather_epi32): Ditto.
31061         (_mm_mmask_i64gather_epi32): Ditto.
31062         (_mm256_mmask_i64gather_epi64): Ditto.
31063         (_mm_mmask_i64gather_epi64): Ditto.
31064         (_mm256_i32scatter_ps): Change __addr type to void*.
31065         (_mm256_mask_i32scatter_ps): Ditto.
31066         (_mm_i32scatter_ps): Ditto.
31067         (_mm_mask_i32scatter_ps): Ditto.
31068         (_mm256_i32scatter_pd): Ditto.
31069         (_mm256_mask_i32scatter_pd): Ditto.
31070         (_mm_i32scatter_pd): Ditto.
31071         (_mm_mask_i32scatter_pd): Ditto.
31072         (_mm256_i64scatter_ps): Ditto.
31073         (_mm256_mask_i64scatter_ps): Ditto.
31074         (_mm_i64scatter_ps): Ditto.
31075         (_mm_mask_i64scatter_ps): Ditto.
31076         (_mm256_i64scatter_pd): Ditto.
31077         (_mm256_mask_i64scatter_pd): Ditto.
31078         (_mm_i64scatter_pd): Ditto.
31079         (_mm_mask_i64scatter_pd): Ditto.
31080         (_mm256_i32scatter_epi32): Ditto.
31081         (_mm256_mask_i32scatter_epi32): Ditto.
31082         (_mm_i32scatter_epi32): Ditto.
31083         (_mm_mask_i32scatter_epi32): Ditto.
31084         (_mm256_i32scatter_epi64): Ditto.
31085         (_mm256_mask_i32scatter_epi64): Ditto.
31086         (_mm_i32scatter_epi64): Ditto.
31087         (_mm_mask_i32scatter_epi64): Ditto.
31088         (_mm256_i64scatter_epi32): Ditto.
31089         (_mm256_mask_i64scatter_epi32): Ditto.
31090         (_mm_i64scatter_epi32): Ditto.
31091         (_mm_mask_i64scatter_epi32): Ditto.
31092         (_mm256_i64scatter_epi64): Ditto.
31093         (_mm256_mask_i64scatter_epi64): Ditto.
31094         (_mm_i64scatter_epi64): Ditto.
31095         (_mm_mask_i64scatter_epi64): Ditto.
31096         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
31097         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
31098         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
31099         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
31100         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
31101         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
31102         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
31103         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
31104         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
31105         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
31106         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
31107         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
31108         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
31109         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
31110         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
31111         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
31112         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
31113         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
31114         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
31115         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
31116         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
31117         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
31118         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
31119         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
31120         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
31121         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
31122         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
31123         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
31124         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
31125         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
31126         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
31127         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
31128         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
31129         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
31130         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
31131         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
31132         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
31133         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
31134         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
31135         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
31136         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
31137         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
31138         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
31139         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
31140         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
31141         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
31142         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
31143         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
31144         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
31145         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
31146         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
31147         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
31148         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
31149         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
31150         definitions accordingly.
31152 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
31153             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
31155         PR target/79079
31156         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
31157         gen_lowpart.
31159 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
31161         PR target/79058
31162         * ira-conflicts.c (ira_build_conflicts): Update total conflict
31163         hard regs for inner regno.
31165 2017-01-17  Martin Liska  <mliska@suse.cz>
31167         PR ipa/71207
31168         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
31169         assumption and add comment.
31171 2017-01-17  Nathan Sidwell  <nathan@acm.org>
31173         * ipa-visibility.c (localize_node): New function, broken out of ...
31174         (function_and_variable_visibility): ... here. Call it.
31176 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
31178         PR middle-end/77445
31179         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
31180         correctly set frequency of oudgoing edge.
31181         (duplicate_thread_path): Fix profile updating.
31183 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
31185         PR other/79046
31186         * configure.ac: Add GCC_BASE_VER.
31187         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
31188         version from BASE-VER file.
31189         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
31190         (gcc.o): Depend on $(BASEVER).
31191         * common.opt (dumpfullversion): New option.
31192         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
31193         * doc/invoke.texi: Document -dumpfullversion.
31194         * doc/install.texi: Document --with-gcc-major-version-only.
31195         * configure: Regenerated.
31197 2017-01-17  Richard Biener  <rguenther@suse.de>
31199         PR tree-optimization/71433
31200         * tree-vrp.c (register_new_assert_for): Merge same asserts
31201         on all incoming edges.
31202         (process_assert_insertions_for): Handle insertions at the
31203         beginning of BBs.
31205 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
31207         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
31208         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
31210 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
31212         PR target/78633
31213         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
31214         RTL sharing.
31216 2017-01-17  Alan Modra  <amodra@gmail.com>
31218         PR target/79066
31219         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
31220         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
31221         symbolic stack limit when pic.
31223 2017-01-16  Martin Sebor  <msebor@redhat.com>
31225         PR tree-optimization/78608
31226         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
31228 2017-01-16  Jeff Law  <law@redhat.com>
31230         Revert:
31231         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
31232         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
31233         for several include directories that may be relative to sysroot.
31234         * config/i386/x-mingw32 (gplus_includedir): Define.
31235         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
31236         (native_system_includedir): Likewise.
31237         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
31238         override if TARGET_SYSTEM_ROOT is defined.
31239         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
31241         PR tree-optimization/79090
31242         PR tree-optimization/33562
31243         PR tree-optimization/61912
31244         PR tree-optimization/77485
31245         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
31246         and computed trims into the dump file.
31248 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
31250         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
31252 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
31254         PR c/79089
31255         * gimplify.c (gimplify_init_constructor): If want_value and
31256         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
31257         fix.
31259         PR target/79080
31260         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
31261         sequence.  Formatting fixes.
31262         (doloop_optimize): Formatting fixes.
31264         PR driver/49726
31265         * gcc.c (debug_level_greater_than_spec_func): New function.
31266         (static_spec_functions): Add debug-level-gt spec function.
31267         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
31268         !g0.
31269         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
31270         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
31271         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
31272         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
31273         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
31274         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
31276 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
31278         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
31279         QImode fixups to general and mask registers only.
31281 2017-01-16  Carl Love  <cel@us.ibm.com>
31283         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
31284         for built-in functions
31285         vector signed char vec_nabs (vector signed char)
31286         vector signed short vec_nabs (vector signed short)
31287         vector signed int vec_nabs (vector signed int)
31288         vector signed long long vec_nabs (vector signed long long)
31289         vector float vec_nabs (vector float)
31290         vector double vec_nabs (vector double)
31291         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
31292         and NABS overload.
31293         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
31294         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
31295         * doc/extend.texi: Update the documentation file for the new built-in
31296         functions.
31298 2017-01-16  Martin Sebor  <msebor@redhat.com>
31300         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
31301         message.
31303 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31305         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
31306         UNSPEC_VSX__XXSPLTD to require special splat handling.
31308 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
31310         PR bootstrap/78616
31311         * system.h: Poison strndup.
31313 2017-01-16  Alan Modra  <amodra@gmail.com>
31315         PR target/79098
31316         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
31317         use a switch.
31319 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
31321         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
31323 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
31325         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
31326         call recog here.  Assert that INSN_CODE (insn) is non-negative.
31328 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
31330         PR target/72749
31331         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
31332         fallthrough.
31333         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
31334         in the currently scheduled RTL fragment.
31336 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
31338         PR rtl-optimization/78751
31339         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
31340         give up.
31342 2017-01-14  Jeff Law  <law@redhat.com>
31344         PR tree-optimization/79090
31345         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
31346         variable length stores.
31347         (compute_trims): Delete dead assignment to *trim_tail.
31348         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
31349         zero length.
31351 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
31353         PR rtl-optimization/78626
31354         PR rtl-optimization/78727
31355         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
31356         of a block, and split such blocks after everything else is finished.
31358 2017-01-14  Alan Modra  <amodra@gmail.com>
31360         PR target/72749
31361         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
31362         target legitimate_combined_insn.
31363         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
31364         (rs6000_legitimate_combined_insn): New function.
31365         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
31366         all uses.
31367         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
31368         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
31369         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
31371 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
31373         * doc/frontends.texi (G++ and GCC): Remove references to Java.
31375 2017-01-13  Jeff Law  <law@redhat.com>
31377         PR tree-optimization/33562
31378         PR tree-optimization/61912
31379         PR tree-optimization/77485
31380         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
31381         a statement.
31382         (delete_dead_assignment): Likewise.
31383         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
31384         statement to delete_dead_call and delete_dead_assignment.
31386 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
31388         PR c/78304
31389         * substring-locations.c (format_warning_va): Strengthen case 1 so
31390         that both endpoints of the substring must be within the format
31391         range for just the substring to be printed.
31393 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
31395         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
31396         * config/i386/i386.c (ix86_target_string): Add missing options
31397         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
31398         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
31399         flags_other and ix86_target_other to flags2_other.  Display unknown
31400         isa2 options.
31401         (ix86_valid_target_attribute_inner_p): Add missing options and
31402         reorder options by implied ISAs, as in ix86_target_string.
31404 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
31406         * hash-table.h (hash_table::too_empty_p): New function.
31407         (hash_table::expand): Use it.
31408         (hash_table::traverse): Likewise.
31409         (hash_table::empty_slot): Use sizeof (value_type) instead of
31410         sizeof (PTR) to convert bytes to elements.  Shrink the table
31411         if the current size is excessive for the current number of
31412         elements.
31414 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
31416         * ira-costs.c (record_reg_classes): Break from the inner loop
31417         early once alt_fail is known to be true.  Update outer loop
31418         handling accordingly.
31420 2017-01-13  Jeff Law  <law@redhat.com>
31422         * tree-ssa-dse.c (decrement_count): New function.
31423         (increment_start_addr, maybe_trim_memstar_call): Likewise.
31424         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
31425         when we know the partially dead statement is a mem* function.
31427         PR tree-optimization/61912
31428         PR tree-optimization/77485
31429         * tree-ssa-dse.c: Include expr.h.
31430         (maybe_trim_constructor_store): New function.
31431         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
31433         PR tree-optimization/33562
31434         PR tree-optimization/61912
31435         PR tree-optimization/77485
31436         * doc/invoke.texi: Document new dse-max-object-size param.
31437         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
31438         * tree-ssa-dse.c: Include params.h.
31439         (dse_store_status): New enum.
31440         (initialize_ao_ref_for_dse): New, partially extracted from
31441         dse_optimize_stmt.
31442         (valid_ao_ref_for_dse, normalize_ref): New.
31443         (setup_live_bytes_from_ref, compute_trims): Likewise.
31444         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
31445         (maybe_trim_partially_dead_store): Likewise.
31446         (maybe_trim_complex_store): Likewise.
31447         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
31448         Track what bytes live from the original store.  Return tri-state
31449         for dead, partially dead or live.
31450         (dse_dom_walker): Add constructor, destructor and new private members.
31451         (delete_dead_call, delete_dead_assignment): New extracted from
31452         dse_optimize_stmt.
31453         (dse_optimize_stmt): Make a member of dse_dom_walker.
31454         Use initialize_ao_ref_for_dse.
31456         PR tree-optimization/33562
31457         PR tree-optimization/61912
31458         PR tree-optimization/77485
31459         * sbitmap.h (bitmap_count_bits): Prototype.
31460         (bitmap_clear_range, bitmap_set_range): Likewise.
31461         * sbitmap.c (bitmap_clear_range): New function.
31462         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
31464 2017-01-13  Martin Liska  <mliska@suse.cz>
31466         PR ipa/79043
31467         * function.c (set_cfun): Add new argument force.
31468         * function.h (set_cfun): Likewise.
31469         * ipa-inline-transform.c (inline_call): Use the function when
31470         strict alising from is dropped for function we inline to.
31472 2017-01-13  Richard Biener  <rguenther@suse.de>
31474         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
31475         for dumping GIMPLE INTEGER_CSTs.
31477 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31479         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
31480         to 201112L since C++17.
31482 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
31484         PR sanitizer/78887
31485         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
31486         if -fsanitize=kernel-address is present.
31488 2017-01-13  Richard Biener  <rguenther@suse.de>
31490         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
31491         as _Literal ( type ) number in case usual suffixes do not
31492         preserve all information.
31494 2017-01-13  Richard Biener  <rguenther@suse.de>
31496         PR tree-optimization/77283
31497         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
31498         and ssa-iterators.h.
31499         (is_feasible_trace): Implement a cost model based on joiner
31500         PHI node uses.
31502 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31504         PR target/79004
31505         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
31506         char or short to __float128/_Float128 directly.
31508 2017-01-12  Martin Sebor  <msebor@redhat.com>
31510         to -Wformat-overflow.
31511         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
31512         (min_bytes_remaining): Same.
31513         (get_string_length): Same.
31514         (format_string): Same.
31515         (format_directive): Same.
31516         (add_bytes): Same.
31517         (pass_sprintf_length::handle_gimple_call): Same.
31519 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
31521         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
31522         info.nowrite calls with no lhs that can't throw.  Return bool
31523         whether gsi_remove has been called or not.
31524         (pass_sprintf_length::handle_gimple_call): Return bool whether
31525         try_substitute_return_value called gsi_remove.  Formatting fix.
31526         (pass_sprintf_length::execute): Don't use gsi_remove if
31527         handle_gimple_call returned true.
31529         PR bootstrap/79069
31530         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
31531         be removed due to side-effects, don't remove following barrier nor
31532         turn the successor edge into fallthru edge.
31534 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31536         PR target/79044
31537         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
31538         element-reversing loads and stores as not swappable.
31540 2017-01-12  Nathan Sidwell  <nathan@acm.org>
31541             Nicolai Stange  <nicstange@gmail.com>
31543         * combine.c (try_combine): Don't ignore result of overlap checking
31544         loop.  Combine overlap & asm check into single loop.
31546 2017-01-12  Richard Biener  <rguenther@suse.de>
31548         * tree-pretty-print.c (dump_generic_node): Provide -gimple
31549         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
31551 2017-01-12  Richard Biener  <rguenther@suse.de>
31553         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
31554         and TS_TARGET_OPTION directly derive from TS_BASE.
31555         * tree-core.h (tree_optimization_option): Derive from tree_base.
31556         (tree_target_option): Likewise.
31558 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
31560         * config/i386/i386.c (memory_address_length): Increase len
31561         only when rip_relative_addr_p returns false.
31563 2017-01-11  Julia Koval  <julia.koval@intel.com>
31565         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
31566         (OPTION_MASK_ISA_SGX_SET): New.
31567         (ix86_handle_option): Handle OPT_msgx.
31568         * config.gcc: Added sgxintrin.h.
31569         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
31570         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
31571         * config/i386/i386.c (ix86_target_string): Add -msgx.
31572         (PTA_SGX): New.
31573         (ix86_option_override_internal): Handle new options.
31574         (ix86_valid_target_attribute_inner_p): Add sgx.
31575         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
31576         * config/i386/i386.opt: Add msgx.
31577         * config/i386/sgxintrin.h: New file.
31578         * config/i386/x86intrin.h: Add sgxintrin.h.
31580 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
31582         PR c++/71537
31583         * fold-const.c (maybe_nonzero_address): Return 1 for function
31584         local objects.
31585         (tree_single_nonzero_warnv_p): Don't handle function local objects
31586         here.
31588         PR c++/72813
31589         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
31590         of c-header.
31592 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
31594         PR driver/78877
31595         * opts.c: Include "spellcheck.h"
31596         (struct string_fragment): New struct.
31597         (struct edit_distance_traits<const string_fragment &>): New
31598         struct.
31599         (get_closest_sanitizer_option): New function.
31600         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
31602 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
31604         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
31605         by 12.
31606         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
31607         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
31608         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
31609         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
31610         for initial die_offset if dwarf_split_debug_info.
31611         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
31612         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
31613         fields.
31614         (output_skeleton_debug_sections): Formatting fix.  Use
31615         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
31616         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
31618 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
31620         * config/arm/cortex-a53.md: Add bypasses for
31621         cortex_a53_r2f_cvt.
31622         (cortex_a53_r2f): Only use for transfers.
31623         (cortex_a53_f2r): Likewise.
31624         (cortex_a53_r2f_cvt): Add reservation for conversions.
31625         (cortex_a53_f2r_cvt): Likewise.
31627 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
31629         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
31630         to all inlined functions, change static to extern.
31632 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
31634         PR target/78253
31635         * config/arm/arm.c (legitimize_pic_address): Handle reference to
31636         weak symbol.
31637         (arm_assemble_integer): Likewise.
31639 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
31641         * config.gcc: Use new awk script to check CPU, FPU and architecture
31642         parameters for --with-... options.
31643         * config/arm/parsecpu.awk: New file
31644         * config/arm/arm-cpus.in: New file.
31645         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
31646         files.
31647         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
31648         files.
31649         * config/arm/t-arm: Update dependency rules.
31650         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
31651         of processing .def files.
31652         * config/arm/genopt.sh: Deleted.
31653         * config/arm/gentune.sh: Deleted.
31654         * config/arm/arm-cores.def: Deleted.
31655         * config/arm/arm-arches.def: Deleted.
31656         * config/arm/arm-fpus.def: Deleted.
31657         * config/arm/arm-tune.md: Regenerated.
31658         * config/arm/arm-tables.opt: Regenerated.
31659         * config/arm/arm-cpu.h: New generated file.
31660         * config/arm/arm-cpu-data.h: New generated file.
31661         * config/arm/arm-cpu-cdata.h: New generated file.
31663 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
31665         PR lto/79042
31666         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
31667         bit.
31668         (input_varpool_node): Unpack dynamically_initialized bit.
31670 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
31672         PR rtl-optimization/79032
31673         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
31674         the alignment of the adjusted memory reference against that of MODE,
31675         instead of the alignment of the original memory reference.
31677 2017-01-11  Martin Jambor  <mjambor@suse.cz>
31679         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
31680         test.
31681         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
31682         decorated functions.
31684 2017-01-11  Richard Biener  <rguenther@suse.de>
31686         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
31687         set range/nonnull info for PHI results.  Do not set it on
31688         stmts marked for removal.
31690 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
31692         * expr.c (store_field): In the bitfield case, fetch the return value
31693         from the registers before applying a single big-endian adjustment.
31694         Always do a final load for a BLKmode value not larger than a word.
31696 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
31698         PR c++/77949
31699         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
31700         that we correctly handle column numbers greater than
31701         LINE_MAP_MAX_COLUMN_NUMBER.
31703 2017-01-10  Martin Sebor  <msebor@redhat.com>
31705         PR middle-end/78245
31706         * gimple-ssa-sprintf.c (get_destination_size): Call
31707         {init,fini}object_sizes.
31708         * tree-object-size.c (addr_object_size): Adjust.
31709         (pass_through_call): Adjust.
31710         (pass_object_sizes::execute): Adjust.
31711         * tree-object-size.h (fini_object_sizes): Declare.
31713 2017-01-10  Martin Sebor  <msebor@redhat.com>
31715         PR tree-optimization/78775
31716         * builtins.c (get_size_range): Move...
31717         * calls.c: ...to here.
31718         (alloc_max_size): Accept zero argument.
31719         (operand_signed_p): Remove.
31720         (maybe_warn_alloc_args_overflow): Call get_size_range.
31721         * calls.h (get_size_range): Declare.
31723 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
31725         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
31726         from TI's devices.csv file as of September 2016.
31727         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
31729 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
31731         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
31732         * doc/invoke.texi: Likewise.
31733         * doc/md.texi: Likewise.
31734         * doc/objc.texi: Likewise.
31736 2017-01-10  Joshua Conner  <joshconner@google.com>
31738         * config/arm/fuchsia-elf.h: New file.
31739         * config/fuchsia.h: New file.
31740         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
31741         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
31742         targets.
31743         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
31745 2016-01-10  Richard Biener  <rguenther@suse.de>
31747         PR tree-optimization/79034
31748         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
31749         Propagate out degenerate PHIs in the joiner.
31751 2017-01-10  Martin Liska  <mliska@suse.cz>
31753         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
31754         (sort_congruence_classes_by_decl_uid): Likewise.
31755         (sort_congruence_class_groups_by_decl_uid): Likewise.
31756         (sem_item_optimizer::merge_classes): Sort class, groups in these
31757         classes and members in the groups by DECL_UID of declarations.
31758         This would make merge operations stable.
31760 2017-01-10  Martin Liska  <mliska@suse.cz>
31762         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
31763         usage of m_classes_vec.
31764         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
31765         (sem_item_optimizer::get_group_by_hash): Likewise.
31766         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
31767         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
31768         (sem_item_optimizer::verify_classes): Likewise.
31769         (sem_item_optimizer::process_cong_reduction): Likewise.
31770         (sem_item_optimizer::dump_cong_classes): Likewise.
31771         (sem_item_optimizer::merge_classes): Likewise.
31772         * ipa-icf.h (congruence_class_hash): Rename from
31773         congruence_class_group_hash.  Remove declaration of m_classes_vec.
31775 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
31777         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
31778         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
31779         * config.gcc: Add avx512vpopcntdqintrin.h.
31780         * config/i386/avx512vpopcntdqintrin.h: New.
31781         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
31782         * config/i386/i386-builtin-types.def: Add new types.
31783         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
31784         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
31785         __builtin_ia32_vpopcountq_v8di_mask): New.
31786         * config/i386/i386-c.c (ix86_target_macros_internal): Define
31787         __AVX512VPOPCNTDQ__.
31788         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
31789         (PTA_AVX512VPOPCNTDQ): Define.
31790         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
31791         TARGET_AVX512VPOPCNTDQ_P): Define.
31792         * config/i386/i386.opt: Add mavx512vpopcntdq.
31793         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
31794         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
31796 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31798         PR middle-end/77484
31799         * predict.def (PRED_CALL): Set to 67.
31801 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
31803         * expr.c (store_field): In the bitfield case, if the value comes from
31804         a function call and is of an aggregate type returned in registers, do
31805         not modify the field mode; extract the value in all cases if the mode
31806         is BLKmode and the size is not larger than a word.
31808 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
31810         PR target/71017
31811         * config/i386/cpuid.h: Fix undefined behavior.
31813 2017-01-04  Jeff Law  <law@redhat.com>
31815         PR tree-optimization/79007
31816         PR tree-optimization/67955
31817         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
31818         conservative for pt.null when flag_non_call_exceptions is on.
31820 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
31822         PR translation/79019
31823         PR translation/79020
31824         * params.def (PARAM_INLINE_MIN_SPEEDUP,
31825         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
31826         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
31827         in descriptions.
31828         * config/avr/avr.opt (maccumulate-args): Likewise.
31829         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
31830         * common.opt (freport-bug): Likewise.
31831         * cif-code.def (CIF_FINAL_ERROR): Likewise.
31832         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
31833         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
31834         translatable string.
31835         * config/i386/i386.c (function_value_32): Likewise.
31836         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
31837         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
31838         Likewise.
31839         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
31840         * common/config/msp430/msp430-common.c (msp430_handle_option):
31841         Likewise.
31842         * symtab.c (symtab_node::verify_base): Likewise.
31843         * opts.c (set_debug_level): Likewise.
31844         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
31845         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
31846         missing whitespace to translatable strings.
31847         * config/avr/avr.md (bswapsi2): Fix typo in comment.
31848         * config/sh/superh.h: Likewise.
31849         * config/i386/xopintrin.h: Likewise.
31850         * config/i386/znver1.md: Likewise.
31851         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
31852         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
31853         * double-int.h (struct double_int): Likewise.
31854         * double-int.c (div_and_round_double): Likewise.
31855         * wide-int.cc: Likewise.
31856         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
31857         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
31858         * cfgcleanup.c (crossjumps_occured): Renamed to ...
31859         (crossjumps_occurred): ... this.
31860         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
31861         Adjust all uses.
31863         PR tree-optimization/78899
31864         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
31865         returning bool return struct loop *, NULL for failure and the new
31866         loop on success.
31867         (versionable_outer_loop_p): Don't version outer loop if it has
31868         dont_vectorized bit set.
31869         (tree_if_conversion): When versioning outer loop, ensure
31870         tree_if_conversion is performed also on the inner loop of the
31871         non-vectorizable outer loop copy.
31872         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
31873         LOOP_VECTORIZED in inner loop of the scalar outer loop and
31874         prevent vectorization of it.
31875         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
31876         the outer loop vectorization of the non-scalar version is attempted
31877         before vectorization of the inner loop in scalar version.  If
31878         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
31879         vectorization of its inner loop.
31880         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
31881         has 2 inner loops, rename also on edges from bb whose single pred
31882         is outer_loop->header.  Fix typo in function comment.
31884 2017-01-09  Martin Sebor  <msebor@redhat.com>
31886         PR bootstrap/79033
31887         * asan.c (asan_emit_stack_protection): Increase local buffer size
31888         to avoid snprintf truncation warning.
31890 2017-01-09  Andrew Pinski  <apinski@cavium.com>
31892         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
31893         to reference thunderx2t99 for the tuning structure
31894         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
31895         Rename to ...
31896         (thunderx2t99_extra_costs): This.
31897         * config/aarch64/aarch64-tune.md: Regenerate.
31898         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
31899         (vulcan_addrcost_table): This.
31900         (vulcan_regmove_cost): Rename to ...
31901         (thunderx2t99_regmove_cost): This.
31902         (vulcan_vector_cost): Rename to ...
31903         (thunderx2t99_vector_cost): this.
31904         (vulcan_branch_cost): Rename to ...
31905         (thunderx2t99_branch_cost): This.
31906         (vulcan_tunings): Rename to ...
31907         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
31908         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
31910 2017-01-09  Martin Jambor  <mjambor@suse.cz>
31912         PR ipa/78365
31913         PR ipa/78599
31914         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
31915         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
31916         (propagate_vr_accross_jump_function): Use the above function for all
31917         value range computations for pass-through jump functions and type
31918         converasion from explicit value range values.
31919         (ipcp_propagate_stage): Do not attempt to deduce types of formal
31920         parameters from TYPE_ARG_TYPES.
31921         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
31922         (ipa_write_node_info): Stream type of the actual argument.
31923         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
31925 2017-01-09  Martin Liska  <mliska@suse.cz>
31927         PR pch/78970
31928         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
31929         (lookup_compiler): Do not show error message with have_E.
31931 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
31933         PR tree-optimization/78938
31934         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
31935         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
31936         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
31937         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
31938         fixes.
31940 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31942         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
31943         is const0_rtx.
31945 2017-01-09  Richard Biener  <rguenther@suse.de>
31947         PR tree-optimization/78997
31948         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
31949         name condition properly.
31951 2017-01-09  Richard Biener  <rguenther@suse.de>
31953         PR debug/79000
31954         * dwarf2out.c (is_cxx): New overload with context.
31955         (is_naming_typedef_decl): Use it.
31957 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
31959         * invoke.texi (Option Summary): Correct spacing in option lists
31960         and add line breaks to fix over-long lines.
31962 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
31964         PR middle-end/17660
31966         * extend.texi (Common Variable Attributes): Add xref to GCC
31967         Internals manual to explain mode attribute keywords.
31969 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
31971         PR other/16519
31972         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
31973         and Preprocessor Options.
31974         (Options for Linking): Document -pthread here....
31975         (RS/6000 and PowerPC Options): ...not here.
31976         (Solaris 2 Options): ...or here.
31977         * doc/cppopts.texi: Document -pthread.
31979 2017-01-08  Martin Sebor  <msebor@redhat.com>
31981         PR middle-end/77708
31982         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
31983         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
31984         New member functions.
31985         (format_directive): Used them.
31986         (add_bytes): Same.
31987         (pass_sprintf_length::handle_gimple_call): Same.
31988         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
31989         to avoid truncation for any argument.
31990         (extract_affine_mul): Same.
31991         * tree.c (get_file_function_name): Same.
31993 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
31995         PR middle-end/77484
31996         * predict.def (PRED_INDIR_CALL): Set to 86.
31998 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
32000         PR preprocessor/54124
32001         * doc/cppopts.texi: Reformat -d subtable to list the full name
32002         of the options.  Add cross-reference to the docs for the general
32003         compiler -d options.
32004         * doc/invoke.texi (Developer Options): Add cross-reference to the
32005         preprocessor-specific -d option documentation.
32007 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
32009         PR preprocessor/13498
32010         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
32011         redudant material, and reflect new command-line options.
32012         (System Headers): Likewise.
32014 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
32016         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
32017         -isystem, and -idirafter.  Copy-edit.
32018         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
32019         default for -ftrack-macro-expansion.  Delete obsolete and
32020         badly-formatted implementation details about -fdebug-cpp output.
32021         * doc/cppwarnopts.texi: Copy-edit.
32023 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
32025         PR c++/72803
32026         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
32027         that the transition from a max line width >= 1<<10 to narrower
32028         lines works correctly.
32030 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
32032         * doc/options.texi (PerFunction): New.
32033         * opt-functions.awk (switch_flags): Map both Optimization and
32034         PerFunction to CL_OPTIMIZATION.
32035         * opth-gen.awk: Test for PerFunction flag along with
32036         Optimization.
32037         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
32038         it only when the latter is present.  Skip those that don't in
32039         the hash function generator.
32040         * common.opt (fvar-tracking): Mark as PerFunction instead of
32041         Optimization.
32042         (fvar-tracking-assignments): Likewise.
32043         (fvar-tracking-assignments-toggle): Likewise.
32044         (fvar-tracking-uninit): Likewise.
32046 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
32048         PR translation/79018
32049         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
32050         the and store.
32052 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
32054         PR target/57583
32055         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
32056         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
32057         TARGET_LONG_JUMP_TABLE_OFFSETS.
32058         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
32059         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
32060         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
32061         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
32062         * config/m68k/m68k.md (tablejump expander): Likewise.
32063         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
32064         TARGET_LONG_JUMP_TABLE_OFFSETS.
32065         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
32066         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
32068 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
32069             David Holsgrove <david.holsgrove@xilinx.com>
32071         * common/config/microblaze/microblaze-common.c
32072         (TARGET_EXCEPT_UNWIND_INFO): Remove.
32073         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
32074         New prototype.
32075         * config/microblaze/microblaze.c (microblaze_must_save_register)
32076         (microblaze_expand_epilogue, microblaze_return_addr): Handle
32077         calls_eh_return.
32078         (microblaze_eh_return): New function.
32079         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
32080         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
32081         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
32082         * config/microblaze/microblaze.md (eh_return): New pattern.
32084 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
32086         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
32087         GCC_DIAGNOSTIC_STRINGIFY): Define.
32089         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
32091 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32093         * config/arm/arm.md (<mcrr>): New.
32094         (<mrrc>): New.
32095         * config/arm/arm.c (arm_arch5te): New.
32096         (arm_option_override): Set arm_arch5te.
32097         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
32098         and mrrc2.
32099         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
32100         (arm_mcrr_qualifiers): ... this. New.
32101         (MRRC_QUALIFIERS): Define to...
32102         (arm_mrrc_qualifiers): ... this. New.
32103         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
32104         __arm_mrrc2): New.
32105         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
32106         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
32107         (MRRCI, mrrc, MRRC): New.
32108         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
32109         VUNSPEC_MRRC2): New.
32111 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32113         * config/arm/arm.md (<mcr>): New.
32114         (<mrc>): New.
32115         * config/arm/arm.c (arm_coproc_builtin_available): Add
32116         support for mcr, mrc, mcr2 and mrc2.
32117         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
32118         (arm_mcr_qualifiers): ... this. New.
32119         (MRC_QUALIFIERS): Define to ...
32120         (arm_mrc_qualifiers): ... this. New.
32121         (MCR_QUALIFIERS): Define to ...
32122         (arm_mcr_qualifiers): ... this. New.
32123         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
32124         __arm_mrc2): New.
32125         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
32126         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
32127         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
32128         VUNSPEC_MRC2): New.
32130 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32132         * config/arm/arm.md (*ldc): New.
32133         (*stc): New.
32134         (<ldc>): New.
32135         (<stc>): New.
32136         * config/arm/arm.c (arm_coproc_builtin_available): Add
32137         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
32138         (arm_coproc_ldc_stc_legitimate_address): New.
32139         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
32140         'qualifier_const_pointer'.
32141         (LDC_QUALIFIERS): Define to...
32142         (arm_ldc_qualifiers): ... this. New.
32143         (STC_QUALIFIERS): Define to...
32144         (arm_stc_qualifiers): ... this. New.
32145         * config/arm/arm-protos.h
32146         (arm_coproc_ldc_stc_legitimate_address): New.
32147         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
32148         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
32149         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
32150         stc2, stcl, stc2l): New.
32151         * config/arm/constraints.md (Uz): New.
32152         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
32153         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
32154         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
32155         VUNSPEC_STC2L): New.
32157 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32159         * config/arm/arm.md (<cdp>): New.
32160         * config/arm/arm.c (neon_const_bounds): Rename this ...
32161         (arm_const_bounds): ... this.
32162         (arm_coproc_builtin_available): New.
32163         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
32164         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
32165         (CDP_QUALIFIERS): Define to...
32166         (arm_cdp_qualifiers): ... this. New.
32167         (void_UP): Define.
32168         (arm_expand_builtin_args): Add case for 6 arguments.
32169         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
32170         (arm_const_bounds): ... this.
32171         (arm_coproc_builtin_available): New.
32172         * config/arm/arm_acle.h (__arm_cdp): New.
32173         (__arm_cdp2): New.
32174         * config/arm/arm_acle_builtins.def (cdp): New.
32175         (cdp2): New.
32176         * config/arm/iterators.md (CDPI,CDP,cdp): New.
32177         * config/arm/neon.md: Rename all 'neon_const_bounds' to
32178         'arm_const_bounds'.
32179         * config/arm/types.md (coproc): New.
32180         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
32181         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
32182         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
32183         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
32185 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32187         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
32188         (UBINOP_QUALIFIERS): New.
32189         (si_UP): Define.
32190         (acle_builtin_data): New. Change comment.
32191         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
32192         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
32193         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
32194         arm_acle_builtins.def.
32195         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
32196         (arm_init_acle_builtins): New.
32197         (CRC32_BUILTIN): Remove.
32198         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
32199         crc32cb, crc32ch and crc32cw.
32200         (arm_init_crc32_builtins): Remove.
32201         (arm_init_builtins): Use arm_init_acle_builtins rather
32202         than arm_init_crc32_builtins.
32203         (arm_expand_acle_builtin): New.
32204         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
32205         * config/arm/arm_acle_builtins.def: New.
32207 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32209         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
32210         (arm_builtin_datum): ... this.
32211         (arm_init_neon_builtin): Rename to ...
32212         (arm_init_builtin): ... this. Add a new parameters PREFIX
32213         and USE_SIG_IN_NAME.
32214         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
32215         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
32216         'arm_builtin_datum'.
32217         (arm_init_vfp_builtins): Likewise.
32218         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
32219         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
32220         (arm_expand_neon_args): Rename to ...
32221         (arm_expand_builtin_args): ... this. Rename builtin_arg
32222         enum values and differentiate between ARG_BUILTIN_MEMORY
32223         and ARG_BUILTIN_NEON_MEMORY.
32224         (arm_expand_neon_builtin_1): Rename to ...
32225         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
32226         values, arm_expand_builtin_args and add bool parameter NEON.
32227         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
32228         (arm_expand_vfp_builtin): Likewise.
32229         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
32231 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
32233         PR middle-end/77484
32234         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
32235         * predict.c (tree_estimate_probability_bb): Reverse direction of
32236         polymorphic call predictor.
32238 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
32240         * passes.c (execute_one_pass): Split out pass-skipping logic into...
32241         (determine_pass_name_match): ...this new function and...
32242         (should_skip_pass_p): ...this new function.
32244 2017-01-06  Nathan Sidwell  <nathan@acm.org>
32246         * ipa-visibility.c (function_and_variable_visibility): Reformat
32247         comments and long lines.  Remove extrneous if.
32248         * symtab.c (symtab_node::make_decl_local): Fix code format.
32249         (symtab_node::set_section_for_node): Fix comment typo.
32251 2017-01-06  Martin Liska  <mliska@suse.cz>
32253         PR bootstrap/79003
32254         * lra-constraints.c: Rename invariant to lra_invariant.
32255         * predict.c (set_even_probabilities): Initialize e to NULL.
32257 2017-01-05  Martin Sebor  <msebor@redhat.com>
32259         PR tree-optimization/78910
32260         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
32261         (format_integer): Correct off-by-one error in the handling
32262         of precision with negative numbers in signed conversions..
32264 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
32266         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
32268 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
32270         PR tree-optimization/71016
32271         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
32272         factor_out_conditional_conversion.  Formatting fix.
32273         (factor_out_conditional_conversion): Add cond_stmt argument.
32274         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
32275         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
32276         Formatting fix.
32278 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
32280         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
32281         read-rtl-function.o, and selftest-rtl.o.
32282         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
32283         (selftest::aarch64_test_loading_full_dump): New function.
32284         (selftest::aarch64_run_selftests): New function.
32285         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
32286         selftest::aarch64_run_selftests.
32287         * config/i386/i386.c
32288         (selftest::ix86_test_loading_dump_fragment_1): New function.
32289         (selftest::ix86_test_loading_call_insn): New function.
32290         (selftest::ix86_test_loading_full_dump): New function.
32291         (selftest::ix86_test_loading_unspec): New function.
32292         (selftest::ix86_run_selftests): Call the new functions.
32293         * emit-rtl.c (maybe_set_max_label_num): New function.
32294         * emit-rtl.h (maybe_set_max_label_num): New decl.
32295         * function.c (instantiate_decls): Guard call to
32296         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
32297         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
32298         "static".
32299         * gensupport.c (gen_reader::gen_reader): Pass "false"
32300         for new "compact" param of rtx_reader.
32301         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
32302         rather than an empty string for NULL strings.
32303         * read-md.c: Potentially include config.h rather than bconfig.h.
32304         Wrap include of errors.h with #ifdef GENERATOR_FILE.
32305         (have_error): New global, copied from errors.c.
32306         (md_reader::read_name): Rename to...
32307         (md_reader::read_name_1): ...this, adding "out_loc" param,
32308         and converting "missing name or number" to returning false, rather
32309         than failing.
32310         (md_reader::read_name): Reimplement in terms of read_name_1.
32311         (md_reader::read_name_or_nil): New function.
32312         (md_reader::read_string): Handle "(nil)" by returning NULL.
32313         (md_reader::md_reader): Add new param "compact".
32314         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
32315         (md_reader::read_file): New method.
32316         * read-md.h (md_reader::md_reader): Add new param "compact".
32317         (md_reader::read_file): New method.
32318         (md_reader::is_compact): New accessor.
32319         (md_reader::read_name): Convert return type from void to file_location.
32320         (md_reader::read_name_or_nil): New decl.
32321         (md_reader::read_name_1): New decl.
32322         (md_reader::m_compact): New field.
32323         (noop_reader::noop_reader): Pass "false" for new "compact" param
32324         of rtx_reader.
32325         (rtx_reader::rtx_reader): Add new "compact" param.
32326         (rtx_reader::read_rtx_operand): Make virtual and convert return
32327         type from void to rtx.
32328         (rtx_reader::read_until): New decl.
32329         (rtx_reader::handle_any_trailing_information): New virtual function.
32330         (rtx_reader::postprocess): New virtual function.
32331         (rtx_reader::finalize_string): New virtual function.
32332         (rtx_reader::m_in_call_function_usage): New field.
32333         (rtx_reader::m_reuse_rtx_by_id): New field.
32334         * read-rtl-function.c: New file.
32335         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
32336         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
32337         (selftest::verify_three_block_rtl_cfg): New decl.
32338         * read-rtl-function.h: New file.
32339         * read-rtl.c: Potentially include config.h rather than bconfig.h.
32340         For host, include function.h, memmodel.h, and emit-rtl.h.
32341         (one_time_initialization): New function.
32342         (struct compact_insn_name): New struct.
32343         (compact_insn_names): New array.
32344         (find_code): Handle insn codes in compact dumps.
32345         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
32346         (bind_subst_iter_and_attr): Likewise.
32347         (add_condition_to_string): Likewise.
32348         (add_condition_to_rtx): Likewise.
32349         (apply_attribute_uses): Likewise.
32350         (add_current_iterators): Likewise.
32351         (apply_iterators): Likewise.
32352         (initialize_iterators): Guard usage of apply_subst_iterator with
32353         #ifdef GENERATOR_FILE.
32354         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
32355         (md_reader::read_mapping): Likewise.
32356         (add_define_attr_for_define_subst): Likewise.
32357         (add_define_subst_attr): Likewise.
32358         (read_subst_mapping): Likewise.
32359         (check_code_iterator): Likewise.
32360         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
32361         logic to...
32362         (one_time_initialization): New function.
32363         (rtx_reader::read_until): New method.
32364         (read_flags): New function.
32365         (parse_reg_note_name): New function.
32366         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
32367         Handle reuse_rtx ids.
32368         Wrap iterator lookup within #ifdef GENERATOR_FILE.
32369         Add parsing support for RTL dumps, mirroring the special-cases in
32370         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
32371         values, and calling handle_any_trailing_information.
32372         (rtx_reader::read_rtx_operand): Convert return type from void
32373         to rtx, returning return_rtx.  Handle case 'e'.  Call
32374         finalize_string on XSTR and XTMPL fields.
32375         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
32376          "(nil)" values were omitted.  Call the postprocess vfunc on the
32377         return_rtx.
32378         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
32379         class ctor.  Initialize m_in_call_function_usage.  Call
32380         one_time_initialization.
32381         * rtl-tests.c (selftest::test_uncond_jump): Call
32382         set_new_first_and_last_insn.
32383         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
32384         * selftest-rtl.c: New file.
32385         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
32386         (selftest::get_insn_by_uid): New decl.
32387         * selftest-run-tests.c (selftest::run_tests): Call
32388         read_rtl_function_c_tests.
32389         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
32390         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
32391         dumps.
32393 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
32395         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
32396         operands in a special way.  Assert that pos+len <= mode precision.
32398 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
32400         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
32401         3 argument Alias with unlimited for the negative form.
32402         (fno-vect-cost-model): Removed.
32404 2017-01-05  Martin Liska  <mliska@suse.cz>
32406         * hsa-gen.c (gen_hsa_divmod): New function.
32407         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
32409 2017-01-05  Martin Liska  <mliska@suse.cz>
32411         PR pch/78970
32412         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
32413         header.
32415 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32417         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
32418         small constant length operands.
32420 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
32422         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
32423         between loop iterations.
32425 2017-01-05  Martin Liska  <mliska@suse.cz>
32427         PR sanitizer/78815
32428         * gimplify.c (gimplify_decl_expr): Compare to
32429         asan_poisoned_variables instread of checking flags.
32430         (gimplify_target_expr): Likewise.
32431         (gimplify_expr): Likewise.
32432         (gimplify_function_tree): Conditionally initialize
32433         asan_poisoned_variables.
32435 2017-01-04  Jeff Law  <law@redhat.com>
32437         PR tree-optimizatin/78812
32438         * rtl.h (contains_mem_rtx_p): Prototype.
32439         * ifcvt.c (containts_mem_rtx_p): Move from here to...
32440         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
32441         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
32442         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
32443         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
32445 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
32447         * input.c (assert_char_at_range): Default-initialize actual_range.
32449 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
32451         * df-scan.c (df_ref_create_structure): Make regno unsigned,
32452         to match the caller.
32454 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
32456         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
32457         insns after final jump in test to emit dummy move.
32459 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
32461         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
32462         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
32464 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
32466         * multiple_target.c (create_dispatcher_calls): Init e_next.
32467         * tree-ssa-loop-split.c (split_loop): Init border.
32468         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
32469         scalar_type.
32471 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
32473         PR target/71977
32474         PR target/70568
32475         PR target/78823
32476         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
32477         (altivec_register_operand): Do not return true if the operand
32478         contains a SUBREG mixing SImode and SFmode.
32479         (vsx_register_operand): Likewise.
32480         (vsx_reg_sfsubreg_ok): New predicate.
32481         (vfloat_operand): Do not return true if the operand contains a
32482         SUBREG mixing SImode and SFmode.
32483         (vint_operand): Likewise.
32484         (vlogical_operand): Likewise.
32485         (gpc_reg_operand): Likewise.
32486         (int_reg_operand): Likewise.
32487         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
32488         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
32489         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
32490         SImode and SFmode.
32491         (rs6000_emit_move_si_sf_subreg): New helper function.
32492         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
32493         fixup SUBREGs involving SImode and SFmode.
32494         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
32495         numbers for the new peephole2 optimization.
32496         (peephole2 for SFmode unions): New peephole2 to optimize cases in
32497         the GLIBC math library that do AND/IOR/XOR operations on single
32498         precision floating point.
32499         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
32500         target macros to say whether we need to avoid SUBREGs mixing
32501         SImode and SFmode.
32502         (TARGET_ALLOW_SF_SUBREG): Likewise.
32503         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
32504         (UNSPEC_SI_FROM_SF): Likewise.
32505         (iorxor): Change spacing.
32506         (and_ior_xor): New iterator for AND, IOR, and XOR.
32507         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
32508         (movdi_from_sf_zero_ext): Likewise.
32509         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
32510         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
32511         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
32512         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
32513         (fms<mode>4): Likewise.
32514         (fnma<mode>4): Likewise.
32515         (fnms<mode>4): Likewise.
32516         (nfma<mode>4): Likewise.
32517         (nfms<mode>4): Likewise.
32519 2017-01-04  Marek Polacek  <polacek@redhat.com>
32521         PR c++/64767
32522         * doc/invoke.texi: Document -Wpointer-compare.
32524 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
32526         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
32527         RejectNegative.
32529         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
32530         descriptions for -gdwarf-5 and emit them as uleb128 instead of
32531         2-byte data.
32533 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
32535         PR target/78056
32536         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
32537         documentation of the powerpc_popcntb_ok attribute.
32538         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
32539         code to issue warning messages if a requested CPU configuration is
32540         not supported by the binary (assembler and loader) toolchain.
32541         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
32542         made to define a built-in function that has been disabled.
32543         (paired_init_builtins): Add assertion to prevent ICE if attempt is
32544         made to define a built-in function that has been disabled.
32545         (altivec_init_builtins): Add comment explaining why definition
32546         of the DST built-in functions is not preceded by an assertion
32547         check.  Add assertions to prevent ICE if attempts are made to
32548         define an altivec predicate or an abs* built-in function that has
32549         been disabled.
32550         (htm_init_builtins): Add comment explaining why definition of the
32551         htm built-in functions is not preceded by an assertion check.
32553 2017-01-04  Jeff Law  <law@redhat.com>
32555         PR tree-optimizatin/67955
32556         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
32557         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
32558         the points-to solution does not include pt_null.  Use DECL_PT_UID
32559         unconditionally.
32561 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
32563         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
32564         Use gen_int_mode instead of gen_lopwart for const_int operands.
32566 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
32568         PR tree-optimization/71563
32569         * match.pd: Simplify X << Y into X if Y is known to be 0 or
32570         out of range value - has low bits known to be zero.
32572 2017-01-04  Alan Modra  <amodra@gmail.com>
32574         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
32575         * configure: Regenerate.
32576         * config.in: Regenerate.
32578 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
32580         PR bootstrap/77569
32581         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
32582         a substring of the message, but strcmp with the whole message.  Ifdef
32583         ENABLE_NLS, translate the message first using dgettext.
32585 2017-01-03  Jeff Law  <law@redhat.com>
32587         PR tree-optimizatin/78856
32588         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
32589         (mark_threaded_blocks): Remove code to truncate thread paths that
32590         cross multiple loop headers.  Instead invalidate the cached loop
32591         iteration information and handle case of a thread path walking
32592         into an irreducible region.
32594 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
32596         PR target/78900
32597         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
32598         assertions.  Add support for doing the signbit if the IEEE 128-bit
32599         floating point value is in a GPR.
32600         * config/rs6000/rs6000.md (Fsignbit): Delete.
32601         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
32602         Update the length attribute if the value is in a GPR.
32603         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
32604         the sign or zero extension instruction, since the value is always 0/1.
32605         (signbit<mode>2_dm2): Delete using <Fsignbit>.
32607         PR target/78953
32608         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
32609         extracting SImode to a GPR register so that we can generate a
32610         store, limit the vector to be in a traditional Altivec register
32611         for the vextuwrx instruction.
32613 2017-01-03  Ian Lance Taylor  <iant@google.com>
32615         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
32617 2017-01-03  Martin Sebor  <msebor@redhat.com>
32619         PR tree-optimization/78696
32620         * gimple-ssa-sprintf.c (format_floating): Correct handling of
32621         precision.  Use MPFR for %f for greater fidelity.  Correct handling
32622         of %g.
32623         (pass_sprintf_length::compute_format_length): Set width and precision
32624         specified by asrerisk to void_node for vararg functions.
32625         (try_substitute_return_value): Adjust dump output.
32627 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
32629         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
32631 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
32633         * doc/invoke.texi (SPARC options): Document -mlra as the default.
32634         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
32635         -mlra/-mno-lra was passed to the compiler.
32637 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
32639         PR rtl-optimization/65618
32640         * emit-rtl.c (try_split): Move initialization of "before" and
32641         "after" to just before the call to emit_insn_after_setloc.
32643 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
32645         * doc/md.texi (Standard Names): Remove reference to Java frontend.
32647 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
32649         * dwarf2out.c (gen_enumeration_type_die): When
32650         -gno-strict-dwarf, add a DW_AT_encoding attribute.
32652 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
32654         PR tree-optimization/78965
32655         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
32656         Change first argument from const call_info & to call_info &.  For %n
32657         set info.nowrite to false.
32659         PR middle-end/78901
32660         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
32661         possibly throwing calls.
32663         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
32664         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
32665         and fns handling, rather than in a separate case SSA_NAME.
32667 2017-01-02  Jeff Law  <law@redhat.com>
32669         * config/darwin-driver.c (darwin_driver_init): Const-correctness
32670         fixes for first_period and second_period variables.
32672 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
32674         PR target/78967
32675         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
32676         (*insvqi_1): New insn pattern.
32677         (*insvqi_1_mem_rex64): Ditto.
32678         (*insvqi_2): Ditto.
32679         (*insvqi_3): Rename from *insvqi.
32681         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
32683 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
32685         * doc/cfg.texi (Edges): Remove reference to Java.
32686         (Maintaining the CFG): Ditto.
32688 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
32690         PR middle-end/77674
32691         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
32692         transparent aliases.
32694 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
32696         PR middle-end/77484
32697         * predict.def (PRED_CALL): Update hitrate.
32698         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
32699         * predict.c (tree_estimate_probability_bb): Split CALL predictor
32700         into direct/indirect/polymorphic variants.
32702 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
32704         Update copyright years.
32706         * gcc.c (process_command): Update copyright notice dates.
32707         * gcov-dump.c (print_version): Ditto.
32708         * gcov.c (print_version): Ditto.
32709         * gcov-tool.c (print_version): Ditto.
32710         * gengtype.c (create_file): Ditto.
32711         * doc/cpp.texi: Bump @copying's copyright year.
32712         * doc/cppinternals.texi: Ditto.
32713         * doc/gcc.texi: Ditto.
32714         * doc/gccint.texi: Ditto.
32715         * doc/gcov.texi: Ditto.
32716         * doc/install.texi: Ditto.
32717         * doc/invoke.texi: Ditto.
32719 Copyright (C) 2017 Free Software Foundation, Inc.
32721 Copying and distribution of this file, with or without modification,
32722 are permitted in any medium without royalty provided the copyright
32723 notice and this notice are preserved.