Disable -gstatement-frontiers for nvptx
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-12-27  Tom de Vries  <tom@codesourcery.com>
2
3         * config/nvptx/nvptx.c (nvptx_option_override): Disable
4         -gstatement-frontiers.
5
6 2017-12-26  Alexander Monakov  <amonakov@ispras.ru>
7
8         PR rtl-optimization/83513
9         * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
10         before priority comparison.
11
12 2017-12-25  Jakub Jelinek  <jakub@redhat.com>
13
14         PR target/83488
15         * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from
16         ix86_isa_flags2 to ix86_isa_flags.
17         * config/i386/i386-c.c (ix86_target_macros_internal): Test
18         OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in
19         isa_flags rather than isa_flags2.
20         * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq
21         and -mavx512bitalg from isa2_opts to isa_opts.
22         (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ
23         in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit
24         and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2.
25         Formatting fixes.
26         (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or
27         OPTION_MASK_ISA_AVX512F ored with another option similarly to
28         OPTION_MASK_ISA_AVX512VL.  Even for OPTION_MASK_ISA_AVX512VL don't
29         clear it if mask is just OPTION_MASK_ISA_AVX512VL itself.
30         (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and
31         OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle
32         OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way.
33         * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG
34         builtins from bdesc_args2 to bdesc_args section.
35         (__builtin_ia32_compressstoreuqi512_mask,
36         __builtin_ia32_compressstoreuhi512_mask,
37         __builtin_ia32_compressstoreuqi256_mask,
38         __builtin_ia32_expandloadqi512_mask,
39         __builtin_ia32_expandloadqi512_maskz,
40         __builtin_ia32_expandloadhi512_mask,
41         __builtin_ia32_expandloadhi512_maskz,
42         __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask,
43         __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask,
44         __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask,
45         __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask,
46         __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask,
47         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask,
48         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask,
49         __builtin_ia32_vpshldv_v32hi_maskz,
50         __builtin_ia32_vpopcountb_v64qi_mask,
51         __builtin_ia32_vpopcountw_v32hi_mask,
52         __builtin_ia32_vpshufbitqmb512_mask,
53         __builtin_ia32_vpshufbitqmb256_mask): Add
54         " | OPTION_MASK_ISA_AVX512BW".
55         (__builtin_ia32_expandloadqi256_mask,
56         __builtin_ia32_expandloadqi256_maskz,
57         __builtin_ia32_vpopcountb_v32qi_mask): Add
58         " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW".
59         (__builtin_ia32_expandloadhi256_mask,
60         __builtin_ia32_expandloadhi256_maskz,
61         __builtin_ia32_expandloadqi128_mask,
62         __builtin_ia32_expandloadqi128_maskz,
63         __builtin_ia32_expandloadhi128_mask,
64         __builtin_ia32_expandloadhi128_maskz,
65         __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask,
66         __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask,
67         __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask,
68         __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask,
69         __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask,
70         __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask,
71         __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask,
72         __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask,
73         __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask,
74         __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask,
75         __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask,
76         __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask,
77         __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask,
78         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi,
79         __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz,
80         __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask,
81         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si,
82         __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz,
83         __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask,
84         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di,
85         __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz,
86         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
87         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
88         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
89         __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask,
90         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si,
91         __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz,
92         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
93         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
94         __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz,
95         __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi,
96         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi,
97         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
98         __builtin_ia32_vpopcountw_v8hi_mask): Add
99         " | OPTION_MASK_ISA_AVX512VL".
100         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
101         _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
102         _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64,
103         _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
104         _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64,
105         _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32,
106         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
107         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16,
108         _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32,
109         _mm512_shldv_epi64, _mm512_mask_shldv_epi64,
110         _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics.
111         * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask,
112         _mm_mask_bitshuffle_epi64_mask): Likewise.
113         * common/config/i386/i386-common.c
114         (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
115         OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET.
116         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
117         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and
118         OPTION_MASK_ISA_AVX512BITALG_UNSET.
119         (OPTION_MASK_ISA2_AVX512F_UNSET,
120         OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define.
121         (ix86_handle_option): For -mno-general-regs-only, clear from
122         ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than
123         just OPTION_MASK_ISA_MPX.  For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and
124         -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from
125         ix86_isa_flags2.  For -mno-avx512f likewise, instead of masking
126         individually listed ISAs.  For -m{,no-}avx512{vpopcntdq,bitalg} adjust
127         for moving from ix86_isa_flags2 to ix86_isa_flags.
128
129 2017-12-23  Jakub Jelinek  <jakub@redhat.com>
130
131         PR c++/83553
132         * fold-const.c (struct contains_label_data): New type.
133         (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
134         inside of a SWITCH_BODY seen during the walk.
135         (contains_label_p): Use walk_tree instead of
136         walk_tree_without_duplicates, prepare data for contains_label_1 and
137         provide own pset.
138
139 2017-12-22  Jakub Jelinek  <jakub@redhat.com>
140
141         PR debug/83547
142         * tree-iterator.c (alloc_stmt_list): Start with cleared
143         TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated
144         or old one reused.
145
146         PR target/83488
147         * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor
148         enable avx512f explicitly in #pragma GCC target.
149         * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si,
150         __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz,
151         __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask,
152         __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si,
153         __builtin_ia32_vpdpbusds_v8si_mask,
154         __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si,
155         __builtin_ia32_vpdpbusds_v4si_mask,
156         __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si,
157         __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz,
158         __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask,
159         __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si,
160         __builtin_ia32_vpdpwssds_v8si_mask,
161         __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si,
162         __builtin_ia32_vpdpwssds_v4si_mask,
163         __builtin_ia32_vpdpwssds_v4si_maskz): Use
164         OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of
165         just OPTION_MASK_ISA_AVX512VNNI.
166
167 2017-12-22  Martin Jambor  <mjambor@suse.cz>
168
169         PR lto/82027
170         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
171         clones.
172
173 2017-12-22  Julia Koval  <julia.koval@intel.com>
174             Sebastian Peryt  <sebastian.peryt@intel.com>
175
176         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET,
177         OPTION_MASK_ISA_AVX512BITALG_UNSET): New.
178         (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting.
179         * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h.
180         * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16,
181         _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16,
182         _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8,
183         _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8,
184         _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16,
185         _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
186         _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8,
187         _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8,
188         _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics.
189         * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64,
190         _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32,
191         _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64,
192         _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64,
193         _mm256_maskz_popcnt_epi64): New intrinsics.
194         * config/i386/cpuid.h (bit_AVX512BITALG): New bit.
195         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg.
196         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI,
197         V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI,
198         V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types.
199         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di,
200         __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di,
201         __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si,
202         __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si,
203         __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi,
204         __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi,
205         __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi,
206         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi,
207         __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi,
208         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
209         __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask,
210         __builtin_ia32_vpshufbitqmb256_mask,
211         __builtin_ia32_vpshufbitqmb512_mask): New builtins.
212         * config/i386/i386-c.c (__AVX512BITALG__): New.
213         * config/i386/i386.c (isa2_opts): Add -mavx512bitalg.
214         (ix86_valid_target_attribute_inner_p): Ditto.
215         (ix86_expand_args_builtin): Handle new types.
216         * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New.
217         * config/i386/i386.opt: Add -mavx512bitalg.
218         * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and
219         avx512bitalgintrin.h.
220         * config/i386/sse.md (VI48_AVX512VLBW): New iterator.
221         (vpopcount<mode><mask_name>): Add more types.
222         (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New.
223         * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq.
224
225 2017-12-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
226
227         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET):
228         Or in OPTION_MASK_ISA_AVX512F_SET.
229         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
230         OPTION_MASK_ISA_AVX512VNNI_UNSET.
231         (ix86_handle_option): Adjust for
232         OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags.
233         * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2
234         section to ARGS.
235         * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in
236         isa_flag instead of isa_flag2.
237         * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from
238         isa_opts2 to isa_opts.
239         * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2
240         to ix86_isa_flags.
241
242 2017-12-22  Mike Stump  <mikestump@comcast.net>
243             Eric Botcazou  <ebotcazou@adacore.com>
244
245         * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll.
246
247 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
248
249         PR middle-end/83487
250         * config/i386/i386.c (ix86_function_arg_boundary): Return
251         PARM_BOUNDARY for TYPE_EMPTY_P types.
252
253         PR c/83448
254         * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
255         if navail is >= dir.len.
256
257 2017-12-21  Steve Ellcey  <sellcey@cavium.com>
258
259         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix
260         triplet for ilp32.
261
262 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
263
264         PR rtl-optimization/80747
265         PR rtl-optimization/83512
266         * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
267         succ edge from ENTRY, copy partition from e->dest to the newly
268         created bb.
269         * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
270         ENTRY, use BB_PARTITION of its successor block as current_partition.
271         Don't copy partition when splitting succ edge from ENTRY.
272
273         PR tree-optimization/83523
274         * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
275         for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
276         (convert_mult_to_fma): Likewise.
277
278         PR tree-optimization/83521
279         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
280         gimple_build_assign without code on result of
281         fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
282         a VIEW_CONVERT_EXPR.
283
284 2017-12-21  Andrew Pinski  <apinski@cavium.com>
285             Steve Ellcey  <sellcey@cavium.com>
286
287         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle
288         multi-arch for ilp32.
289
290 2017-12-21  Uros Bizjak  <ubizjak@gmail.com>
291
292         PR target/83467
293         * config/i386/i386.md (*ashl<mode>3_mask): Add operand
294         constraints to operand 2.
295         (*ashl<mode>3_mask_1): Ditto.
296         (*<shift_insn><mode>3_mask): Ditto.
297         (*<shift_insn><mode>3_mask_1): Ditto.
298         (*<rotate_insn><mode>3_mask): Ditto.
299         (*<rotate_insn><mode>3_mask_1): Ditto.
300
301 2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
302
303         * reorg.c (make_return_insns): Reemit each insn with its own location.
304
305 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
306
307         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
308         generation for cases where splatting a value is not useful.
309         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
310         across a vec_duplicate and a paradoxical subreg forming a vector
311         mode to a vec_concat.
312
313 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
314
315         * combine.c (simplify_set): Do not transform subregs to zero_extends
316         if the destination is not a scalar int mode.
317
318 2017-12-21  Eric Botcazou  <ebotcazou@adacore.com>
319
320         PR c++/82872
321         * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the
322         shared zero if the input has overflowed.
323
324 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
325
326         * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod
327         support for Cortex-A55 and Cortex-A75.
328
329 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
330
331         * common/config/arm/arm-common.c (compare_opt_names): Add function
332         comment.  Use strcmp instead of manual loop.
333
334 2017-12-21  Martin Liska  <mliska@suse.cz>
335
336         PR gcov-profile/83509
337         * gcov-dump.c (dump_gcov_file): Do not read info about
338         support_unexecuted_blocks for gcda files.
339
340 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
341
342         PR rtl-optimization/82973
343         * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ...
344         (valid_for_const_vector_p): ... this.
345         * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ...
346         (valid_for_const_vector_p): ... this.  Adjust function comment.
347         (gen_vec_duplicate): Adjust caller.
348         * optabs.c (expand_vector_broadcast): Likewise.
349         * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into
350         CONST_VECTOR if some element isn't simplified valid_for_const_vector_p
351         constant.
352         (simplify_const_binary_operation): Likewise.  Use CONST_FIXED_P macro
353         instead of GET_CODE == CONST_FIXED.
354         (simplify_subreg): Use CONST_FIXED_P macro instead of
355         GET_CODE == CONST_FIXED.
356
357         PR target/83488
358         * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and
359         -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe,
360         -mclzero and -mmwaitx entries from isa_opts to isa_opts2.
361         (ix86_option_override_internal): Adjust for
362         OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2
363         and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags.
364         (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks.
365         (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling.
366         Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX
367         and OPTION_MASK_ISA_CLZERO builtins.  Use def_builtin instead of
368         def_builtin2 for CET builtins.
369         (ix86_expand_builtin): Remove bdesc_special_args2 handling.  Fix
370         up formatting in IX86_BUILTIN_RDPID code.
371         * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2
372         section to SPECIAL_ARGS and from ARGS2 section to ARGS.
373         * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from
374         ix86_isa_flags2 to ix86_isa_flags.
375         (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to
376         ix86_isa_flags2.
377         * config/i386/i386-c.c (ix86_target_macros_internal): Check for
378         OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag.
379         Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead
380         of isa_flag2.
381         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET):
382         Or in OPTION_MASK_ISA_AVX512F_SET.
383         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
384         OPTION_MASK_ISA_AVX512VBMI2_UNSET.
385         (ix86_handle_option): Adjust for
386         OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags
387         and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2.
388
389 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
390             Alan Hayward  <alan.hayward@arm.com>
391             David Sherwood  <david.sherwood@arm.com>
392
393         * tree-data-ref.h (prune_runtime_alias_test_list): Take the
394         factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
395         * tree-data-ref.c (prune_runtime_alias_test_list): Likewise.
396         Track polynomial offsets.
397
398 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
399             Alan Hayward  <alan.hayward@arm.com>
400             David Sherwood  <david.sherwood@arm.com>
401
402         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
403         Treat drb->init as a poly_int.  Fail if its misalignment wrt
404         vector_alignment isn't known.
405
406 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
407             Alan Hayward  <alan.hayward@arm.com>
408             David Sherwood  <david.sherwood@arm.com>
409
410         * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold
411         field.
412         (LOOP_VINFO_VERSIONING_THRESHOLD): New macro
413         (vect_loop_versioning): Take the loop versioning threshold as a
414         separate parameter.
415         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
416         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
417         versioning_threshold.
418         (vect_analyze_loop_2): Compute the loop versioning threshold
419         whenever loop versioning is needed, and store it in the new
420         field rather than combining it with the cost model threshold.
421         (vect_transform_loop): Update call to vect_loop_versioning.
422         Try to combine the loop versioning and cost thresholds here.
423
424 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
425             Alan Hayward  <alan.hayward@arm.com>
426             David Sherwood  <david.sherwood@arm.com>
427
428         * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as
429         poly_uint64_pod rather than an unsigned HOST_WIDE_INT.
430         * tree-loop-distribution.c (classify_builtin_st): Update accordingly.
431         * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from
432         an unsigned HOST_WIDE_INT to a poly_uint64_pod.
433         (group_compare_offset): Update accordingly.
434         (split_small_address_groups_p): Likewise.
435         (record_use): Take addr_offset as a poly_uint64 rather than
436         an unsigned HOST_WIDE_INT.
437         (strip_offset): Return the offset as a poly_uint64 rather than
438         an unsigned HOST_WIDE_INT.
439         (record_group_use, split_address_groups): Track polynomial offsets.
440         (add_iv_candidate_for_use): Likewise.
441         (addr_offset_valid_p): Take the offset as a poly_int64 rather
442         than a HOST_WIDE_INT.
443         (strip_offset_1): Return the offset as a poly_int64 rather than
444         a HOST_WIDE_INT.
445
446 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
447             Alan Hayward  <alan.hayward@arm.com>
448             David Sherwood  <david.sherwood@arm.com>
449
450         * tree.h (get_binfo_at_offset): Take the offset as a poly_int64
451         rather than a HOST_WIDE_INT.
452         * tree.c (get_binfo_at_offset): Likewise.
453
454 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
455             Alan Hayward  <alan.hayward@arm.com>
456             David Sherwood  <david.sherwood@arm.com>
457
458         * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64
459         rather than a HOST_WIDE_INT.
460         * tree-sra.c (build_ref_for_offset): Likewise.
461
462 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
463             Alan Hayward  <alan.hayward@arm.com>
464             David Sherwood  <david.sherwood@arm.com>
465
466         * fold-const.h (mem_ref_offset): Return a poly_offset_int rather
467         than an offset_int.
468         * tree.c (mem_ref_offset): Likewise.
469         (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints.
470         * builtins.c (get_object_alignment_2): Likewise.
471         * expr.c (get_inner_reference, expand_expr_real_1): Likewise.
472         * gimple-fold.c (get_base_constructor): Likewise.
473         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
474         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
475         Likewise.
476         * ipa-polymorphic-call.c
477         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
478         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
479         (get_ancestor_addr_info): Likewise.
480         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise.
481         * match.pd: Likewise.
482         * tree-data-ref.c (dr_analyze_innermost): Likewise.
483         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
484         * tree-eh.c (tree_could_trap_p): Likewise.
485         * tree-object-size.c (addr_object_size): Likewise.
486         * tree-ssa-address.c (copy_ref_info): Likewise.
487         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
488         (indirect_refs_may_alias_p): Likewise.
489         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
490         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
491         (non_rewritable_mem_ref_base): Likewise.
492         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
493         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
494         * varasm.c (decode_addr_const): Likewise.
495
496 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
497             Alan Hayward  <alan.hayward@arm.com>
498             David Sherwood  <david.sherwood@arm.com>
499
500         * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial
501         offsets for MEM_REFs.
502
503 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
504             Alan Hayward  <alan.hayward@arm.com>
505             David Sherwood  <david.sherwood@arm.com>
506
507         * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
508         as a poly_uint64 rather than an unsigned int.
509         * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.
510
511 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
512             Alan Hayward  <alan.hayward@arm.com>
513             David Sherwood  <david.sherwood@arm.com>
514
515         * varasm.c (addr_const::offset): Change from HOST_WIDE_INT
516         to poly_int64.
517         (decode_addr_const): Update accordingly.
518
519 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
520             Alan Hayward  <alan.hayward@arm.com>
521             David Sherwood  <david.sherwood@arm.com>
522
523         * tree.h (bit_field_size, bit_field_offset): New functions.
524         * hsa-gen.c (gen_hsa_addr): Use them.
525         * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise.
526         (simplify_vector_constructor): Likewise.
527         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
528         * tree-cfg.c (verify_expr): Require the sizes and offsets of a
529         BIT_FIELD_REF to be poly_uint64s rather than uhwis.
530         * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with
531         tree_fits_uhwi_p.
532
533 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
534             Alan Hayward  <alan.hayward@arm.com>
535             David Sherwood  <david.sherwood@arm.com>
536
537         * expr.h (emit_group_load, emit_group_load_into_temps)
538         (emit_group_store): Take the size as a poly_int64 rather than an int.
539         * expr.c (emit_group_load_1, emit_group_load): Likewise.
540         (emit_group_load_into_temp, emit_group_store): Likewise.
541
542 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
543             Alan Hayward  <alan.hayward@arm.com>
544             David Sherwood  <david.sherwood@arm.com>
545
546         * ira-int.h (ira_spilled_reg_stack_slot::width): Change from
547         an unsigned int to a poly_uint64.
548         * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the
549         sizes as poly_uint64s rather than unsigned ints.
550         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot):
551         Likewise.
552
553 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
554             Alan Hayward  <alan.hayward@arm.com>
555             David Sherwood  <david.sherwood@arm.com>
556
557         * lra-constraints.c (emit_inc): Change inc_amount from an int
558         to a poly_int64.
559
560 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
561             Alan Hayward  <alan.hayward@arm.com>
562             David Sherwood  <david.sherwood@arm.com>
563
564         * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT
565         to a poly_uint64.
566         (add_stack_var, stack_var_cmp, partition_stack_vars)
567         (dump_stack_var_partition): Update accordingly.
568         (alloc_stack_frame_space): Take the size as a poly_int64 rather
569         than a HOST_WIDE_INT.
570         (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes.
571         (defer_stack_allocation, estimated_stack_frame_size): Likewise.
572         (account_stack_vars, expand_one_var): Likewise.  Return a poly_uint64
573         rather than a HOST_WIDE_INT.
574
575 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
576             Alan Hayward  <alan.hayward@arm.com>
577             David Sherwood  <david.sherwood@arm.com>
578
579         * target.def (return_pops_args): Treat both the input and output
580         sizes as poly_int64s rather than HOST_WIDE_INTS.
581         * targhooks.h (default_return_pops_args): Update accordingly.
582         * targhooks.c (default_return_pops_args): Likewise.
583         * doc/tm.texi: Regenerate.
584         * emit-rtl.h (incoming_args): Change pops_args, size and
585         outgoing_args_size from int to poly_int64_pod.
586         * function.h (expr_status): Change x_pending_stack_adjust and
587         x_stack_pointer_delta from int to poly_int64.
588         (args_size::constant): Change from HOST_WIDE_INT to poly_int64.
589         (ARGS_SIZE_RTX): Update accordingly.
590         * calls.c (highest_outgoing_arg_in_use): Change from int to
591         unsigned int.
592         (stack_usage_watermark, stored_args_watermark): New variables.
593         (stack_region_maybe_used_p, mark_stack_region_used): New functions.
594         (emit_call_1): Change the stack_size and rounded_stack_size
595         parameters from HOST_WIDE_INT to poly_int64.  Track n_popped
596         as a poly_int64.
597         (save_fixed_argument_area): Check stack_usage_watermark.
598         (initialize_argument_information): Change old_pending_adj from
599         a HOST_WIDE_INT * to a poly_int64_pod *.
600         (compute_argument_block_size): Return the size as a poly_int64
601         rather than an int.
602         (finalize_must_preallocate): Track polynomial argument sizes.
603         (compute_argument_addresses): Likewise.
604         (internal_arg_pointer_based_exp): Track polynomial offsets.
605         (mem_overlaps_already_clobbered_arg_p): Rename to...
606         (mem_might_overlap_already_clobbered_arg_p): ...this and take the
607         size as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
608         Check stored_args_used_watermark.
609         (load_register_parameters): Update accordingly.
610         (check_sibcall_argument_overlap_1): Likewise.
611         (combine_pending_stack_adjustment_and_call): Take the unadjusted
612         args size as a poly_int64 rather than an int.  Return a bool
613         indicating whether the optimization was possible and return
614         the new adjustment by reference.
615         (check_sibcall_argument_overlap): Track polynomail argument sizes.
616         Update stored_args_watermark.
617         (can_implement_as_sibling_call_p): Handle polynomial argument sizes.
618         (expand_call): Likewise.  Maintain stack_usage_watermark and
619         stored_args_watermark.  Update calls to
620         combine_pending_stack_adjustment_and_call.
621         (emit_library_call_value_1): Handle polynomial argument sizes.
622         Call stack_region_maybe_used_p and mark_stack_region_used.
623         Maintain stack_usage_watermark.
624         (store_one_arg): Likewise.  Update call to
625         mem_overlaps_already_clobbered_arg_p.
626         * config/arm/arm.c (arm_output_function_prologue): Add a cast to
627         HOST_WIDE_INT.
628         * config/avr/avr.c (avr_outgoing_args_size): Likewise.
629         * config/microblaze/microblaze.c (microblaze_function_prologue):
630         Likewise.
631         * config/cr16/cr16.c (cr16_return_pops_args): Update for new
632         TARGET_RETURN_POPS_ARGS interface.
633         (cr16_compute_frame, cr16_initial_elimination_offset): Add casts
634         to HOST_WIDE_INT.
635         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
636         * config/i386/i386.c (ix86_return_pops_args): Update for new
637         TARGET_RETURN_POPS_ARGS interface.
638         (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT.
639         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
640         * config/m68k/m68k.c (m68k_return_pops_args): Update for new
641         TARGET_RETURN_POPS_ARGS interface.
642         * config/vax/vax.c (vax_return_pops_args): Likewise.
643         * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64.
644         (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size.
645         * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise.
646         * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
647         * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
648         * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise.
649         * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
650         * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
651         * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise.
652         * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust
653         and x_stack_pointer_delta from int to poly_int64.
654         * dojump.c (do_pending_stack_adjust): Update accordingly.
655         * explow.c (allocate_dynamic_stack_space): Handle polynomial
656         stack_pointer_deltas.
657         * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64.
658         (pad_to_arg_alignment): Track polynomial offsets.
659         (assign_parm_find_stack_rtl): Likewise.
660         (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes.
661         * toplev.c (output_stack_usage): Update reference to
662         current_function_pushed_stack_size.
663
664 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
665             Alan Hayward  <alan.hayward@arm.com>
666             David Sherwood  <david.sherwood@arm.com>
667
668         * function.c (in_arg_offset, var_offset, dynamic_offset)
669         (out_arg_offset, cfa_offset): Change from int to poly_int64.
670         (instantiate_new_reg): Return the new offset as a poly_int64_pod
671         rather than a HOST_WIDE_INT.
672         (instantiate_virtual_regs_in_rtx): Track polynomial offsets.
673         (instantiate_virtual_regs_in_insn): Likewise.
674
675 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
676             Alan Hayward  <alan.hayward@arm.com>
677             David Sherwood  <david.sherwood@arm.com>
678
679         * rtl.h (get_args_size, add_args_size_note): New functions.
680         (find_args_size_adjust): Return a poly_int64 rather than a
681         HOST_WIDE_INT.
682         (fixup_args_size_notes): Likewise.  Make the same change to the
683         end_args_size parameter.
684         * rtlanal.c (get_args_size, add_args_size_note): New functions.
685         * builtins.c (expand_builtin_trap): Use add_args_size_note.
686         * calls.c (emit_call_1): Likewise.
687         * explow.c (adjust_stack_1): Likewise.
688         * cfgcleanup.c (old_insns_match_p): Update use of
689         find_args_size_adjust.
690         * combine.c (distribute_notes): Track polynomial arg sizes.
691         * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size,
692         end_true_args_size, beg_delay_args_size and end_delay_args_size
693         from HOST_WIDE_INT to poly_int64.
694         (add_cfi_args_size): Take the args_size as a poly_int64 rather
695         than a HOST_WIDE_INT.
696         (notice_args_size, notice_eh_throw, maybe_record_trace_start)
697         (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track
698         polynomial arg sizes.
699         * emit-rtl.c (try_split): Use get_args_size.
700         * recog.c (peep2_attempt): Likewise.
701         * reload1.c (reload_as_needed): Likewise.
702         * expr.c (find_args_size_adjust): Return the adjustment as a
703         poly_int64 rather than a HOST_WIDE_INT.
704         (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT
705         to a poly_int64 and change the return type in the same way.
706         (emit_single_push_insn): Track polynomial arg sizes.
707
708 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
709             Alan Hayward  <alan.hayward@arm.com>
710             David Sherwood  <david.sherwood@arm.com>
711
712         * expr.h (push_block, emit_push_insn): Change the "extra" parameter
713         from HOST_WIDE_INT to poly_int64.
714         * expr.c (push_block, emit_push_insn): Likewise.
715
716 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
717             Alan Hayward  <alan.hayward@arm.com>
718             David Sherwood  <david.sherwood@arm.com>
719
720         * function.h (frame_space): Change start and length from HOST_WIDE_INT
721         to poly_int64.
722         (get_frame_size): Return the size as a poly_int64 rather than a
723         HOST_WIDE_INT.
724         (frame_offset_overflow): Take the offset as a poly_int64 rather
725         than a HOST_WIDE_INT.
726         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
727         (assign_stack_temp): Likewise for the size.
728         * function.c (get_frame_size): Return a poly_int64 rather than
729         a HOST_WIDE_INT.
730         (frame_offset_overflow): Take the offset as a poly_int64 rather
731         than a HOST_WIDE_INT.
732         (try_fit_stack_local): Take the start, length and size as poly_int64s
733         rather than HOST_WIDE_INTs.  Return the offset as a poly_int64_pod
734         rather than a HOST_WIDE_INT.
735         (add_frame_space): Take the start and end as poly_int64s rather than
736         HOST_WIDE_INTs.
737         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
738         (assign_stack_temp): Likewise for the size.
739         (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
740         to poly_int64.
741         (find_temp_slot_from_address): Handle polynomial offsets.
742         (combine_temp_slots): Likewise.
743         * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
744         to poly_int64.
745         * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
746         poly_int64 rather than a HOST_WIDE_INT.
747         (expand_one_stack_var_at): Take the offset as a poly_int64 rather
748         than a HOST_WIDE_INT.
749         (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
750         polynomial frame offsets.
751         * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
752         as a poly_int64 rather than an int.
753         * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
754         * config/v850/v850-protos.h (compute_frame_size): Likewise.
755         * config/v850/v850.c (compute_frame_size): Likewise.
756         * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
757         * config/xtensa/xtensa.c (compute_frame_size): Likewise.
758         * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
759         * config/pa/pa.c (pa_compute_frame_size): Likewise.
760         * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
761         rather than a HOST_WIDE_INT.
762         * explow.c (get_dynamic_stack_base): Likewise.
763         * final.c (final_start_function): Use the constant lower bound
764         of the frame size for -Wframe-larger-than.
765         * ira.c (do_reload): Adjust for new get_frame_size return type.
766         * lra.c (lra): Likewise.
767         * reload1.c (reload): Likewise.
768         * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
769         * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
770         * rtlanal.c (get_initial_register_offset): Return the offset as
771         a poly_int64 rather than a HOST_WIDE_INT.
772
773 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
774             Alan Hayward  <alan.hayward@arm.com>
775             David Sherwood  <david.sherwood@arm.com>
776
777         * reload1.c (elim_table): Change initial_offset, offset and
778         previous_offset from HOST_WIDE_INT to poly_int64_pod.
779         (offsets_at): Change the target array's element type from
780         HOST_WIDE_INT to poly_int64_pod.
781         (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn)
782         (elimination_costs_in_insn, update_eliminable_offsets)
783         (verify_initial_elim_offsets, set_offsets_for_label)
784         (init_eliminable_invariants): Update after above changes.
785
786 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
787             Alan Hayward  <alan.hayward@arm.com>
788             David Sherwood  <david.sherwood@arm.com>
789
790         * reload.h (reload::inc): Change from an int to a poly_int64_pod.
791         * reload.c (combine_reloads, debug_reload_to_stream): Likewise.
792         (decomposition): Change start and end from HOST_WIDE_INT
793         to poly_int64_pod.
794         (decompose, immune_p): Update accordingly.
795         (find_inc_amount): Return a poly_int64 rather than an int.
796         * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
797         rather than an int.
798
799 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
800             Alan Hayward  <alan.hayward@arm.com>
801             David Sherwood  <david.sherwood@arm.com>
802
803         * tree.h (get_inner_reference): Return the bitsize and bitpos
804         as poly_int64_pods rather than HOST_WIDE_INT.
805         * fold-const.h (ptr_difference_const): Return the pointer difference
806         as a poly_int64_pod rather than a HOST_WIDE_INT.
807         * expr.c (get_inner_reference): Return the bitsize and bitpos
808         as poly_int64_pods rather than HOST_WIDE_INT.
809         (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
810         offsets and sizes.
811         * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
812         rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
813         (optimize_bit_field_compare): Update call to get_inner_reference.
814         (decode_field_reference): Likewise.
815         (fold_unary_loc): Track polynomial offsets and sizes.
816         (split_address_to_core_and_offset): Return the bitpos as a
817         poly_int64_pod rather than a HOST_WIDE_INT.
818         (ptr_difference_const): Likewise for the pointer difference.
819         * asan.c (instrument_derefs): Track polynomial offsets and sizes.
820         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
821         * dbxout.c (dbxout_expand_expr): Likewise.
822         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
823         (loc_list_from_tree_1, fortran_common): Likewise.
824         * gimple-laddress.c (pass_laddress::execute): Likewise.
825         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
826         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
827         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
828         * tree-affine.c (tree_to_aff_combination): Likewise.
829         (get_inner_reference_aff): Likewise.
830         * tree-data-ref.c (split_constant_offset_1): Likewise.
831         (dr_analyze_innermost): Likewise.
832         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
833         * tree-sra.c (ipa_sra_check_caller): Likewise.
834         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
835         * ubsan.c (maybe_instrument_pointer_overflow): Likewise.
836         (instrument_bool_enum_load, instrument_object_size): Likewise.
837         * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
838         to get_inner_reference.
839         * hsa-gen.c (gen_hsa_addr): Likewise.
840         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
841         * tsan.c (instrument_expr): Likewise.
842         * match.pd: Update call to ptr_difference_const.
843
844 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
845             Alan Hayward  <alan.hayward@arm.com>
846             David Sherwood  <david.sherwood@arm.com>
847
848         * fold-const.c (fold_comparison): Track sizes and offsets as
849         poly_int64s rather than HOST_WIDE_INTs when folding address
850         comparisons.
851
852 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
853             Alan Hayward  <alan.hayward@arm.com>
854             David Sherwood  <david.sherwood@arm.com>
855
856         * expr.h (get_bit_range): Return the bitstart and bitend as
857         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Return the bitpos
858         as a poly_int64 rather than a HOST_WIDE_INT.
859         * expr.c (get_bit_range): Likewise.
860         (expand_assignment): Update call accordingly.
861         * fold-const.c (optimize_bit_field_compare): Likewise.
862
863 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
864             Alan Hayward  <alan.hayward@arm.com>
865             David Sherwood  <david.sherwood@arm.com>
866
867         * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum.
868         (aarch64_legitimate_address_p): Use it instead of an rtx code,
869         as an optional final parameter.
870         * config/aarch64/aarch64.c (aarch64_classify_address): Likewise.
871         (aarch64_legitimate_address_p): Likewise.
872         (aarch64_print_address_internal): Take an aarch64_addr_query_type
873         instead of an rtx code.
874         (aarch64_address_valid_for_prefetch_p): Update calls accordingly.
875         (aarch64_legitimate_address_hook_p): Likewise.
876         (aarch64_print_ldpstp_address): Likewise.
877         (aarch64_print_operand_address): Likewise.
878         (aarch64_address_cost): Likewise.
879         * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise.
880         * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise.
881         (aarch64_mem_pair_lanes_operand): Likewise.
882
883 2017-12-20  Richard Biener  <rguenther@suse.de>
884
885         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call
886         update_stmt_if_modified.
887
888 2017-12-20  Wilco Dijkstra  <wdijkstr@arm.com>
889
890         PR tree-optimization/83491
891         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME
892         before walking uses.  Improve coding style and comments.
893
894 2017-12-20  Tom de Vries  <tom@codesourcery.com>
895
896         * gimple-fold.c (fold_internal_goacc_dim): Simplify.
897
898 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
899
900         PR ipa/83506
901         * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
902         todo_flags_finish.
903         (pass_ipa_free_fn_summary): Add small_p private data member,
904         initialize to false in the ctor.
905         (pass_ipa_free_fn_summary::clone,
906         pass_ipa_free_fn_summary::set_pass_param,
907         pass_ipa_free_fn_summary::gate): New methods.
908         (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
909         | TODO_dump_symtab if small_p.
910         * passes.def: Add true parm for the existing pass_ipa_free_fn_summary
911         entry and add another instance of the pass with false parm after
912         ipa-pure-const.
913         * ipa-pure-const.c (pass_ipa_pure_const): Don't call
914         ipa_free_fn_summary here.
915
916 2017-12-20  Paolo Carlini  <paolo.carlini@oracle.com>
917
918         * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check.
919
920 2017-12-20  Martin Sebor  <msebor@redhat.com>
921
922         PR testsuite/83131
923         * builtins.c (expand_builtin_strlen): Use get_callee_fndecl.
924         (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
925         (expand_builtin_strncmp): Same.
926
927 2017-12-20  Alexandre Oliva  <aoliva@redhat.com>
928
929         PR bootstrap/83396
930         * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
931         allowed debug stmts before labels.
932         (expand_gimple_basic_block): Likewise.
933         * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
934         * gimple-iterator.h (gsi_after_labels): Likewise.
935         * tree-cfgcleanup (remove_forwarder_block): Likewise, but
936         rename reused variable, and simplify using gsi_move_before.
937         * tree-ssa-tail-merge.c (find_duplicate): Likewise.
938         * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
939         (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
940         (gimple_verify_flow_info, gimple_block_label): Likewise.
941         (make_blocks): Move debug markers after adjacent labels.
942         * cfgrtl.c (skip_insns_after_block): Revert SFN changes that
943         allowed debug insns outside blocks.
944         * df-scan.c (df_insn_delete): Likewise.
945         * lra-constraints.c (update_ebb_live_info): Likewise.
946         * var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
947         (vt_initialize, delete_vta_debug_insns): Likewise.
948         (reemit_marker_as_note): Drop BB parm.  Adjust callers.
949
950 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
951             Alan Hayward  <alan.hayward@arm.com>
952             David Sherwood  <david.sherwood@arm.com>
953
954         * poly-int-types.h (round_down_to_byte_boundary): New macro.
955         (round_up_to_byte_boundary): Likewise.
956         * expr.h (get_bit_range): Add temporary shim.
957         * gimple-ssa-store-merging.c (store_operand_info): Change the
958         bitsize, bitpos, bitregion_start and bitregion_end fields from
959         unsigned HOST_WIDE_INT to poly_uint64.
960         (merged_store_group): Likewise load_align_base.
961         (compatible_load_p, compatible_load_p): Update accordingly.
962         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
963         (split_group, imm_store_chain_info::output_merged_store): Likewise.
964         (mem_valid_for_store_merging): Return the bitsize, bitpos,
965         bitregion_start and bitregion_end as poly_uint64s rather than
966         unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
967         (handled_load): Take the bitsize, bitpos,
968         bitregion_start and bitregion_end as poly_uint64s rather than
969         unsigned HOST_WIDE_INTs.
970         (pass_store_merging::process_store): Update call to
971         mem_valid_for_store_merging.
972
973 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
974             Alan Hayward  <alan.hayward@arm.com>
975             David Sherwood  <david.sherwood@arm.com>
976
977         * builtins.c (get_object_alignment_2): Track polynomial offsets
978         and sizes.  Update the alignment handling.
979
980 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
981             Alan Hayward  <alan.hayward@arm.com>
982             David Sherwood  <david.sherwood@arm.com>
983
984         * tree.h (get_inner_reference): Add a version that returns the
985         offset and size as poly_int64_pods rather than HOST_WIDE_INTs.
986         * cfgexpand.c (expand_debug_expr): Track polynomial offsets.  Simply
987         the case in which bitpos is not associated with the first byte.
988
989 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
990             Alan Hayward  <alan.hayward@arm.com>
991             David Sherwood  <david.sherwood@arm.com>
992
993         * tree-affine.h (get_inner_reference_aff): Return the size as a
994         poly_widest_int.
995         * tree-affine.c (get_inner_reference_aff): Likewise.
996         * tree-data-ref.c (dr_may_alias_p): Update accordingly.
997         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise.
998
999 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1000             Alan Hayward  <alan.hayward@arm.com>
1001             David Sherwood  <david.sherwood@arm.com>
1002
1003         * fold-const.c (pointer_may_wrap_p): Take the offset as a
1004         HOST_WIDE_INT rather than a poly_int64.
1005
1006 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1007             Alan Hayward  <alan.hayward@arm.com>
1008             David Sherwood  <david.sherwood@arm.com>
1009
1010         * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
1011         HOST_WIDE_INT to poly_int64_pod.
1012         (perform_symbolic_merge): Update accordingly.
1013         (bswap_replace): Likewise.
1014
1015 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1016             Alan Hayward  <alan.hayward@arm.com>
1017             David Sherwood  <david.sherwood@arm.com>
1018
1019         * tree-affine.h (aff_tree::offset): Change from widest_int
1020         to poly_widest_int.
1021         (wide_int_ext_for_comb): Delete.
1022         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
1023         constants as poly_widest_int rather than widest_int.
1024         (aff_combination_constant_multiple_p): Return the multiplier
1025         as a poly_widest_int.
1026         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
1027         polynomial offsets.
1028         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
1029         version static and add an overload for poly_widest_int.
1030         (aff_combination_const, aff_combination_add_cst)
1031         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
1032         the constants as poly_widest_int rather than widest_int.
1033         (tree_to_aff_combination): Generalize INTEGER_CST case to
1034         poly_int_tree_p.
1035         (aff_combination_to_tree): Track offsets as poly_widest_ints.
1036         (aff_combination_add_product, aff_combination_mult): Handle
1037         polynomial offsets.
1038         (aff_combination_constant_multiple_p): Return the multiplier
1039         as a poly_widest_int.
1040         * tree-predcom.c (determine_offset): Return the offset as a
1041         poly_widest_int.
1042         (split_data_refs_to_components, suitable_component_p): Update
1043         accordingly.
1044         (valid_initializer_p): Update call to
1045         aff_combination_constant_multiple_p.
1046         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
1047         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
1048         as a poly_int64 rather than a HOST_WIDE_INT.
1049         (get_address_cost): Handle polynomial offsets.
1050         (iv_elimination_compare_lt): Likewise.
1051         (rewrite_use_nonlinear_expr): Likewise.
1052
1053 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1054             Alan Hayward  <alan.hayward@arm.com>
1055             David Sherwood  <david.sherwood@arm.com>
1056
1057         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
1058         as a poly_int64_pod rather than a HOST_WIDE_INT.
1059         (get_addr_base_and_unit_offset): Likewise.
1060         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
1061         (get_addr_base_and_unit_offset): Likewise.
1062         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
1063         to poly_int64 in example.
1064         * fold-const.c (fold_binary_loc): Update call to
1065         get_addr_base_and_unit_offset.
1066         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
1067         (maybe_canonicalize_mem_ref_addr): Likewise.
1068         (gimple_fold_stmt_to_constant_1): Likewise.
1069         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1070         Likewise.
1071         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
1072         * match.pd: Likewise.
1073         * omp-low.c (lower_omp_target): Likewise.
1074         * tree-sra.c (build_ref_for_offset): Likewise.
1075         (build_debug_ref_for_model): Likewise.
1076         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1077         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
1078         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
1079         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1080         (constant_pointer_difference): Likewise.
1081         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1082         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
1083         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1084         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
1085         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
1086         (set_ssa_val_to): Likewise.
1087         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
1088         (maybe_diag_stxncpy_trunc): Likewise.
1089         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
1090         * tree.c (build_simple_mem_ref_loc): Likewise.
1091         (array_at_struct_end_p): Likewise.
1092
1093 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1094             Alan Hayward  <alan.hayward@arm.com>
1095             David Sherwood  <david.sherwood@arm.com>
1096
1097         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
1098         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1099         (get_ref_base_and_extent_hwi): Declare.
1100         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
1101         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1102         (get_ref_base_and_extent_hwi): New function.
1103         * cfgexpand.c (expand_debug_expr): Update call to
1104         get_ref_base_and_extent.
1105         * dwarf2out.c (add_var_loc_to_decl): Likewise.
1106         * gimple-fold.c (get_base_constructor): Return the offset as a
1107         poly_int64_pod rather than a HOST_WIDE_INT.
1108         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
1109         * ipa-polymorphic-call.c
1110         (ipa_polymorphic_call_context::set_by_invariant)
1111         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
1112         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
1113         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
1114         rather than get_ref_base_and_extent.
1115         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1116         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
1117         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
1118         Likewise.
1119         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
1120         call to get_ref_base_and_extent.
1121         * tree-sra.c (create_access, get_access_for_expr): Likewise.
1122         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
1123         (stmt_kills_ref_p): Likewise.
1124         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1125         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
1126         Likewise.
1127         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
1128         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
1129         when calling native_encode_expr.
1130         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
1131         call to get_ref_base_and_extent.
1132         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
1133         get_ref_base_and_extent.
1134         * var-tracking.c (track_expr_p): Likewise.
1135
1136 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1137             Alan Hayward  <alan.hayward@arm.com>
1138             David Sherwood  <david.sherwood@arm.com>
1139
1140         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
1141         HOST_WIDE_INT to poly_int64_pod.
1142         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
1143         polynomail parameter offsets.
1144
1145 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1146             Alan Hayward  <alan.hayward@arm.com>
1147             David Sherwood  <david.sherwood@arm.com>
1148
1149         * gengtype.c (main): Handle poly_int64_pod.
1150         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
1151         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
1152         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
1153         from HOST_WIDE_INT to poly_int64_pod.
1154         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
1155         (copy_cfa): New function.
1156         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
1157         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
1158         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
1159         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
1160         (initial_return_save): Treat offsets as poly_ints.
1161         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
1162         offset is nonconstant.
1163         (reg_save): Take the offset as a poly_int64.  Fall back to
1164         DW_CFA_expression for nonconstant offsets.
1165         (queue_reg_save): Take the offset as a poly_int64.
1166         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
1167
1168 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1169             Alan Hayward  <alan.hayward@arm.com>
1170             David Sherwood  <david.sherwood@arm.com>
1171
1172         * rtl.h (operand_subword, operand_subword_force): Take the offset
1173         as a poly_uint64 an unsigned int.
1174         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
1175
1176 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1177             Alan Hayward  <alan.hayward@arm.com>
1178             David Sherwood  <david.sherwood@arm.com>
1179
1180         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
1181         'p' format code.  Use INT_LIST rather than SUBREG as the example of
1182         a code with an XINT and an XEXP.  Remove the implication that
1183         accessing an rtx field using XINT is expected to work.
1184         * rtl.def (SUBREG): Change format from "ei" to "ep".
1185         * rtl.h (rtunion::rt_subreg): New field.
1186         (XCSUBREG): New macro.
1187         (SUBREG_BYTE): Use it.
1188         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
1189         Update constructor accordingly.
1190         (subreg_shape::operator ==): Update accordingly.
1191         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
1192         than an unsigned int.
1193         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
1194         a poly_uint64 rather than an unsigned int.
1195         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
1196         than an unsigned int.
1197         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
1198         (subreg_size_highpart_offset): Return a poly_uint64 rather than
1199         an unsigned int.  Take the sizes as poly_uint64s.
1200         (subreg_offset_from_lsb): Return a poly_uint64 rather than
1201         an unsigned int.  Take the shift as a poly_uint64 rather than
1202         an unsigned int.
1203         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
1204         as a poly_uint64 rather than an unsigned int.
1205         (simplify_subreg_regno): Likewise.
1206         (byte_lowpart_offset): Return the memory offset as a poly_int64
1207         rather than an int.
1208         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1209         poly_uint64 rather than an unsigned int.
1210         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
1211         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
1212         poly_uint64 rather than an unsigned int.
1213         * rtl.c (rtx_format): Describe 'p' in comment.
1214         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
1215         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
1216         offset as a poly_uint64 rather than an unsigned int.
1217         (byte_lowpart_offset): Return the memory offset as a poly_int64
1218         rather than an int.
1219         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1220         poly_uint64 rather than an unsigned int.
1221         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
1222         mode sizes as poly_uint64s rather than unsigned ints.  Return a
1223         poly_uint64 rather than an unsigned int.
1224         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
1225         (copy_insn_1): Handle 'p'.
1226         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
1227         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
1228         an unsigned int.  Return the shift in the same way.
1229         (subreg_lsb): Return the shift as a poly_uint64 rather than an
1230         unsigned int.
1231         (subreg_size_offset_from_lsb): Take the sizes and shift as
1232         poly_uint64s rather than unsigned ints.  Return the offset as
1233         a poly_uint64.
1234         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
1235         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
1236         an unsigned int.
1237         * rtlhash.c (add_rtx): Handle 'p'.
1238         * genemit.c (gen_exp): Likewise.
1239         * gengenrtl.c (type_from_format, gendef): Likewise.
1240         * gensupport.c (subst_pattern_match, get_alternatives_number)
1241         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
1242         (subst_dup): Likewise.
1243         * gengtype.c (adjust_field_rtx_def): Likewise.
1244         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
1245         (match_pattern_2): Likewise.
1246         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
1247         (rtx_test::subreg_field): New function.
1248         (operator ==, safe_to_hoist_p, transition_parameter_type)
1249         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
1250         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
1251         * genpeep.c (match_rtx): Likewise.
1252         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
1253         (rtx_writer::print_rtx_operand): Handle 'p'.
1254         (print_value): Handle SUBREG.
1255         * read-rtl.c (apply_int_iterator): Likewise.
1256         (rtx_reader::read_rtx_operand): Handle 'p'.
1257         * alias.c (rtx_equal_for_memref_p): Likewise.
1258         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
1259         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
1260         as poly_ints.
1261         * calls.c (expand_call): Likewise.
1262         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
1263         (make_extraction, gen_lowpart_for_combine): Likewise.
1264         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
1265         Likewise.
1266         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
1267         rather than an unsigned int.  Treat subreg offsets as poly_ints.
1268         (exp_equiv_p): Handle 'p'.
1269         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
1270         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
1271         * dse.c (find_shift_sequence): Likewise.
1272         * dwarf2out.c (rtl_for_decl_location): Likewise.
1273         * expmed.c (extract_low_bits): Likewise.
1274         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
1275         (expand_expr_real_2): Likewise.
1276         * final.c (alter_subreg): Likewise.
1277         (leaf_renumber_regs_insn): Handle 'p'.
1278         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
1279         Treat subreg offsets as poly_ints.
1280         * fwprop.c (forward_propagate_and_simplify): Likewise.
1281         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
1282         * ira.c (get_subreg_tracking_sizes): Likewise.
1283         * ira-conflicts.c (go_through_subreg): Likewise.
1284         * ira-lives.c (process_single_reg_class_operands): Likewise.
1285         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
1286         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
1287         as a poly_uint64 rather than an unsigned int.
1288         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
1289         subreg offsets as poly_ints.
1290         * lra-constraints.c (operands_match_p): Handle 'p'.
1291         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
1292         * lra-spills.c (assign_mem_slot): Likewise.
1293         * postreload.c (move2add_valid_value_p): Likewise.
1294         * recog.c (general_operand, indirect_operand): Likewise.
1295         * regcprop.c (copy_value, maybe_mode_change): Likewise.
1296         (copyprop_hardreg_forward_1): Likewise.
1297         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
1298         (record_subregs_of_mode): Likewise.
1299         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
1300         * reload.c (operands_match_p): Handle 'p'.
1301         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
1302         * reload1.c (alter_reg, choose_reload_regs): Likewise.
1303         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
1304         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
1305         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
1306         (simplify_const_poly_int_tests<N>::run): Likewise.
1307         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
1308         a poly_uint64 rather than an unsigned int.
1309         * valtrack.c (debug_lowpart_subreg): Likewise.
1310         * var-tracking.c (var_lowpart): Likewise.
1311         (loc_cmp): Handle 'p'.
1312
1313 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1314             Alan Hayward  <alan.hayward@arm.com>
1315             David Sherwood  <david.sherwood@arm.com>
1316
1317         * ira.c (get_subreg_tracking_sizes): New function.
1318         (init_live_subregs): Take an integer size rather than a register.
1319         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
1320         to init_live_subregs.
1321
1322 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1323             Alan Hayward  <alan.hayward@arm.com>
1324             David Sherwood  <david.sherwood@arm.com>
1325
1326         * expr.c (store_constructor_field): Change bitsize from a
1327         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
1328         HOST_WIDE_INT to a poly_int64.
1329         (store_constructor): Change size from a HOST_WIDE_INT to
1330         a poly_int64.
1331         (store_field): Likewise bitsize and bitpos.
1332
1333 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1334             Alan Hayward  <alan.hayward@arm.com>
1335             David Sherwood  <david.sherwood@arm.com>
1336
1337         * expmed.h (store_bit_field): Change bitregion_start and
1338         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
1339         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
1340         (store_bit_field_1, store_integral_bit_field, store_bit_field)
1341         (store_fixed_bit_field, store_split_bit_field): Likewise.
1342         * expr.c (store_constructor_field, store_field): Likewise.
1343         (optimize_bitfield_assignment_op): Likewise.  Make the same change
1344         to bitsize and bitpos.
1345         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
1346         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
1347         same change in the constructor arguments.
1348         (get_best_mode): Change bitregion_start and bitregion_end from
1349         unsigned HOST_WIDE_INT to poly_uint64.
1350         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1351         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
1352         poly_int64.
1353         (bit_field_mode_iterator::next_mode): Update for new types
1354         of m_bitregion_start and m_bitregion_end.
1355         (get_best_mode): Change bitregion_start and bitregion_end from
1356         unsigned HOST_WIDE_INT to poly_uint64.
1357
1358 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1359             Alan Hayward  <alan.hayward@arm.com>
1360             David Sherwood  <david.sherwood@arm.com>
1361
1362         * rtl.h (simplify_gen_subreg): Add a temporary overload that
1363         accepts poly_uint64 offsets.
1364         * expmed.h (extract_bit_field): Take bitsize and bitnum as
1365         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1366         * expmed.c (lowpart_bit_field_p): Likewise.
1367         (extract_bit_field_as_subreg): New function, split out from...
1368         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
1369         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
1370         extractions, check that BITSIZE matches the size of the extracted
1371         value and that BITNUM is an exact multiple of that size.
1372         If all else fails, try forcing the value into memory if
1373         BITNUM is variable, and adjusting the address so that the
1374         offset is constant.  Split the part that can only handle constant
1375         bitsize and bitnum out into...
1376         (extract_integral_bit_field): ...this new function.
1377         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
1378         rather than unsigned HOST_WIDE_INTs.
1379
1380 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1381             Alan Hayward  <alan.hayward@arm.com>
1382             David Sherwood  <david.sherwood@arm.com>
1383
1384         * expmed.h (store_bit_field): Take bitsize and bitnum as
1385         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1386         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
1387         that returns the byte size.
1388         (store_bit_field_1): Take bitsize and bitnum as
1389         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
1390         to simple_mem_bitfield_p.  Split the part that can only handle
1391         constant bitsize and bitnum out into...
1392         (store_integral_bit_field): ...this new function.
1393         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
1394         than unsigned HOST_WIDE_INTs.
1395         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
1396
1397 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1398             Alan Hayward  <alan.hayward@arm.com>
1399             David Sherwood  <david.sherwood@arm.com>
1400
1401         * lra-int.h (lra_reg): Change offset from int to poly_int64.
1402         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
1403         to poly_int64.
1404         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1405         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
1406         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
1407         offset as a poly_int64 rather than an int.
1408         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
1409         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
1410         * lra-constraints.c (equiv_address_substitution): Track offsets
1411         as poly_int64s.
1412         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
1413         (curr_insn_transform): Handle the new form of sp_offset.
1414         * lra-eliminations.c (lra_elim_table): Change previous_offset
1415         and offset from HOST_WIDE_INT to poly_int64.
1416         (print_elim_table, update_reg_eliminate): Update accordingly.
1417         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
1418         (get_elimination): Update accordingly.
1419         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
1420         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1421         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
1422         poly_int64 offsets generally.
1423         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
1424         (mark_not_eliminable, init_elimination): Update accordingly.
1425         (remove_reg_equal_offset_note): Return a bool and pass the new
1426         offset back by pointer as a poly_int64.
1427         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
1428         rather than a HOST_WIDE_INT.
1429         (do_remat): Track offsets poly_int64s.
1430         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
1431
1432 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1433             Alan Hayward  <alan.hayward@arm.com>
1434             David Sherwood  <david.sherwood@arm.com>
1435
1436         * rtl.h (mem_attrs): Add a default constructor.  Change size and
1437         offset from HOST_WIDE_INT to poly_int64.
1438         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
1439         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
1440         (widen_memory_access): Take the sizes and offsets as poly_int64s
1441         rather than HOST_WIDE_INTs.
1442         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
1443         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
1444         and ints.
1445         (adjust_offset_for_component_ref): Change the offset from a
1446         HOST_WIDE_INT to a poly_int64.
1447         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
1448         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
1449         * dce.c (find_call_stack_args): Likewise.
1450         * dse.c (record_store): Likewise.
1451         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
1452         * print-rtl.c (rtx_writer::print_rtx): Likewise.
1453         * read-rtl-function.c (test_loading_mem): Likewise.
1454         * rtlanal.c (may_trap_p_1): Likewise.
1455         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1456         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
1457         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
1458         (mem_attrs::mem_attrs): New function.
1459         (set_mem_attributes_minus_bitpos): Change bitpos from a
1460         HOST_WIDE_INT to poly_int64.
1461         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
1462         (clear_mem_offset, clear_mem_size, change_address)
1463         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
1464         initialize mem_attrs.
1465         (set_mem_offset, set_mem_size, adjust_address_1)
1466         (adjust_automodify_address_1, offset_address, widen_memory_access):
1467         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
1468
1469 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1470             Alan Hayward  <alan.hayward@arm.com>
1471             David Sherwood  <david.sherwood@arm.com>
1472
1473         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
1474         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
1475         rather than 0 to represent an unknown size.  Assert that the size
1476         is known when the mode isn't BLKmode.
1477         (may_trap_p_1): Use -1 for unknown sizes.
1478         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
1479
1480 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1481             Alan Hayward  <alan.hayward@arm.com>
1482             David Sherwood  <david.sherwood@arm.com>
1483
1484         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
1485         to poly_int64.  Update commentary for positions_needed.large.
1486         (read_info_type): Change offset and width from HOST_WIDE_INT
1487         to poly_int64.
1488         (set_usage_bits): Likewise.
1489         (canon_address): Return the offset as a poly_int64 rather than
1490         a HOST_WIDE_INT.  Use strip_offset_and_add.
1491         (set_all_positions_unneeded, any_positions_needed_p): Use
1492         positions_needed.large to track stores with non-constant widths.
1493         (all_positions_needed_p): Likewise.  Take the offset and width
1494         as poly_int64s rather than ints.  Assert that rhs is nonnull.
1495         (record_store): Cope with non-constant offsets and widths.
1496         Nullify the rhs of an earlier store if we can't tell which bytes
1497         of it are needed.
1498         (find_shift_sequence): Take the access_size and shift as poly_int64s
1499         rather than ints.
1500         (get_stored_val): Take the read_offset and read_width as poly_int64s
1501         rather than HOST_WIDE_INTs.
1502         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
1503         non-constant offsets and widths.
1504
1505 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1506             Alan Hayward  <alan.hayward@arm.com>
1507             David Sherwood  <david.sherwood@arm.com>
1508
1509         * inchash.h (inchash::hash::add_poly_int): New function.
1510         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
1511         Use poly_int64 rather than HOST_WIDE_INT.
1512         (ao_ref::max_size_known_p): New function.
1513         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
1514         rather than HOST_WIDE_INT.
1515         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
1516         to temporaries until its interface is adjusted to match.
1517         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
1518         (aliasing_component_refs_p, decl_refs_may_alias_p)
1519         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
1520         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
1521         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
1522         ao_ref fields.
1523         * alias.c (ao_ref_from_mem): Likewise.
1524         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1525         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
1526         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
1527         (maybe_trim_complex_store, maybe_trim_constructor_store)
1528         (live_bytes_read, dse_classify_store): Likewise.
1529         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
1530         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
1531         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
1532         (vn_reference_lookup_3): Likewise.
1533         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1534
1535 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1536             Alan Hayward  <alan.hayward@arm.com>
1537             David Sherwood  <david.sherwood@arm.com>
1538
1539         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
1540         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
1541         instead of ranges_overlap_p.
1542
1543 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1544             Alan Hayward  <alan.hayward@arm.com>
1545             David Sherwood  <david.sherwood@arm.com>
1546
1547         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
1548         sizes as poly_int64s rather than HOST_WIDE_INTs.
1549
1550 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1551             Alan Hayward  <alan.hayward@arm.com>
1552             David Sherwood  <david.sherwood@arm.com>
1553
1554         * gimple-fold.h (fold_ctor_reference): Take the offset and size
1555         as poly_uint64 rather than unsigned HOST_WIDE_INT.
1556         * gimple-fold.c (fold_ctor_reference): Likewise.
1557
1558 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1559             Alan Hayward  <alan.hayward@arm.com>
1560             David Sherwood  <david.sherwood@arm.com>
1561
1562         * target.def (dwarf_poly_indeterminate_value): New hook.
1563         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
1564         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
1565         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
1566         * doc/tm.texi: Regenerate.
1567         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
1568         offset as a poly_int64.
1569         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
1570         offset as a poly_int64.
1571         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
1572         Take the offset as a poly_int64.
1573         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
1574         (frame_pointer_fb_offset): Change to a poly_int64.
1575         (int_loc_descriptor): Take the offset as a poly_int64.  Use
1576         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
1577         (based_loc_descr): Take the offset as a poly_int64.
1578         Use strip_offset_and_add to handle (plus X (const)).
1579         Use new_reg_loc_descr instead of an open-coded version of the
1580         previous implementation.
1581         (mem_loc_descriptor): Handle CONST_POLY_INT.
1582         (compute_frame_pointer_to_fb_displacement): Take the offset as a
1583         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
1584
1585 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1586             Alan Hayward  <alan.hayward@arm.com>
1587             David Sherwood  <david.sherwood@arm.com>
1588
1589         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
1590         (gen_rtx_REG_offset): Take the offset as a poly_int64.
1591         * inchash.h (inchash::hash::add_poly_hwi): New function.
1592         * gengtype.c (main): Register poly_int64.
1593         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
1594         offset as a poly_int.
1595         (reg_attr_hasher::equal): Use must_eq to compare offsets.
1596         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
1597         offset as a poly_int64.
1598         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
1599         * print-rtl.c (print_poly_int): New function.
1600         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
1601         a poly_int.
1602         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
1603         functions.
1604         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
1605         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
1606         (vt_get_decl_and_offset): Return the offset as a poly_int64.
1607         Enforce track_offset_p for parts of a PARALLEL.
1608         (vt_add_function_parameter): Use const_offset for the final
1609         offset to track.  Use get_tracked_reg_offset for the parts
1610         of a PARALLEL.
1611
1612 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1613             Alan Hayward  <alan.hayward@arm.com>
1614             David Sherwood  <david.sherwood@arm.com>
1615
1616         * target.def (truly_noop_truncation): Take poly_uint64s instead of
1617         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
1618         * doc/tm.texi: Regenerate.
1619         * hooks.h (hook_bool_uint_uint_true): Delete.
1620         (hook_bool_puint64_puint64_true): Declare.
1621         * hooks.c (hook_bool_uint_uint_true): Delete.
1622         (hook_bool_puint64_puint64_true): New function.
1623         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
1624         instead of unsigned ints.
1625         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
1626         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
1627
1628 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1629             Alan Hayward  <alan.hayward@arm.com>
1630             David Sherwood  <david.sherwood@arm.com>
1631
1632         * optabs.h (expand_operand): Add an int_value field.
1633         (create_expand_operand): Add an int_value parameter and use it
1634         to initialize the new expand_operand field.
1635         (create_integer_operand): Replace with a declaration of a function
1636         that accepts poly_int64s.  Move the implementation to...
1637         * optabs.c (create_integer_operand): ...here.
1638         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
1639         the mode preserves the value of int_value, instead of calling
1640         const_int_operand on the rtx.  Use gen_int_mode to generate
1641         the new rtx.
1642
1643 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1644             Alan Hayward  <alan.hayward@arm.com>
1645             David Sherwood  <david.sherwood@arm.com>
1646
1647         * dumpfile.h (dump_dec): Declare.
1648         * dumpfile.c (dump_dec): New function.
1649         * pretty-print.h (pp_wide_integer): Turn into a function and
1650         declare a poly_int version.
1651         * pretty-print.c (pp_wide_integer): New function for poly_ints.
1652
1653 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1654             Alan Hayward  <alan.hayward@arm.com>
1655             David Sherwood  <david.sherwood@arm.com>
1656
1657         * doc/generic.texi (POLY_INT_CST): Document.
1658         * tree.def (POLY_INT_CST): New tree code.
1659         * treestruct.def (TS_POLY_INT_CST): New tree layout.
1660         * tree-core.h (tree_poly_int_cst): New struct.
1661         (tree_node): Add a poly_int_cst field.
1662         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
1663         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
1664         instead of a wide_int_ref.
1665         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
1666         of a HOST_WIDE_INT.
1667         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1668         instead of an unsigned HOST_WIDE_INT.
1669         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
1670         (ptrdiff_tree_p): Declare.
1671         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
1672         extern inline implementations if the target doesn't use POLY_INT_CST.
1673         (poly_int_tree_p): New function.
1674         (wi::unextended_tree): New class.
1675         (wi::int_traits <unextended_tree>): New override.
1676         (wi::extended_tree): Add a default constructor.
1677         (wi::extended_tree::get_tree): New function.
1678         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
1679         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
1680         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
1681         (wi::tree_to_poly_wide_ref): New typedefs.
1682         (wi::ints_for): Provide overloads for extended_tree and
1683         unextended_tree.
1684         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
1685         (wi::to_wide): New functions.
1686         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
1687         * tree.c (poly_int_cst_hasher): New struct.
1688         (poly_int_cst_hash_table): New variable.
1689         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
1690         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
1691         POLY_INT_CST.
1692         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
1693         (init_ttree): Initialize poly_int_cst_hash_table.
1694         (build_int_cst, build_int_cst_type, build_invariant_address): Take
1695         a poly_int64 instead of a HOST_WIDE_INT.
1696         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1697         instead of an unsigned HOST_WIDE_INT.
1698         (wide_int_to_tree): Rename to...
1699         (wide_int_to_tree_1): ...this.
1700         (build_new_poly_int_cst, build_poly_int_cst): New functions.
1701         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
1702         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
1703         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
1704         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
1705         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
1706         TS_POLY_INT_CST.
1707         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
1708         (streamer_read_tree_body): Likewise.
1709         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
1710         (streamer_write_tree_body): Likewise.
1711         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
1712         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
1713         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
1714         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
1715         * gimple-expr.h (is_gimple_constant): Likewise.
1716         * gimplify.c (maybe_with_size_expr): Likewise.
1717         * print-tree.c (print_node): Likewise.
1718         * tree-data-ref.c (data_ref_compare_tree): Likewise.
1719         * tree-pretty-print.c (dump_generic_node): Likewise.
1720         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1721         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
1722         * tree-vrp.c (compare_values_warnv): Likewise.
1723         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
1724         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
1725         (force_expr_to_var_cost): Likewise.
1726         * tree-ssa-loop.c (for_each_index): Likewise.
1727         * fold-const.h (build_invariant_address, size_int_kind): Take a
1728         poly_int64 instead of a HOST_WIDE_INT.
1729         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
1730         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
1731         POLY_INT_CST.
1732         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
1733         (int_const_binop_2): New function, split out from...
1734         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
1735         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
1736         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
1737         * gimple-ssa-strength-reduction.c (slsr_process_add)
1738         (slsr_process_mul): Check for INTEGER_CSTs before using them
1739         as candidates.
1740         * stor-layout.c (bits_from_bytes): New function.
1741         (bit_from_pos): Use it.
1742         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
1743         by BITS_PER_UNIT to get the TYPE_SIZE.
1744         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
1745         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
1746
1747 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1748             Alan Hayward  <alan.hayward@arm.com>
1749             David Sherwood  <david.sherwood@arm.com>
1750
1751         * doc/rtl.texi (const_poly_int): Document.  Also document the
1752         rtl sharing behavior.
1753         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
1754         * rtl.h (const_poly_int_def): New struct.
1755         (rtx_def::u): Add a cpi field.
1756         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
1757         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
1758         (wi::rtx_to_poly_wide_ref): New typedef
1759         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
1760         (poly_int_rtx_p): New functions.
1761         (trunc_int_for_mode): Declare a poly_int64 version.
1762         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1763         (immed_wide_int_const): Take a poly_wide_int_ref rather than
1764         a wide_int_ref.
1765         (strip_offset): Declare.
1766         (strip_offset_and_add): New function.
1767         * rtl.def (CONST_POLY_INT): New rtx code.
1768         * rtl.c (rtx_size): Handle CONST_POLY_INT.
1769         (shared_const_p): Use poly_int_rtx_p.
1770         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
1771         HOST_WIDE_INT.
1772         (gen_int_shift_amount): Likewise.
1773         * emit-rtl.c (const_poly_int_hasher): New class.
1774         (const_poly_int_htab): New variable.
1775         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
1776         (const_poly_int_hasher::hash): New function.
1777         (const_poly_int_hasher::equal): Likewise.
1778         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
1779         (immed_wide_int_const): Rename to...
1780         (immed_wide_int_const_1): ...this and make static.
1781         (immed_wide_int_const): New function, taking a poly_wide_int_ref
1782         instead of a wide_int_ref.
1783         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
1784         (gen_lowpart_common): Handle CONST_POLY_INT.
1785         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
1786         * cselib.c (cselib_hash_rtx): Likewise.
1787         * dwarf2out.c (const_ok_for_output_1): Likewise.
1788         * expr.c (convert_modes): Likewise.
1789         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
1790         * rtlhash.c (add_rtx): Likewise.
1791         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
1792         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1793         Handle existing CONST_POLY_INT rtxes.
1794         * expmed.h (expand_shift): Take a poly_int64 instead of a
1795         HOST_WIDE_INT.
1796         * expmed.c (expand_shift): Likewise.
1797         * rtlanal.c (strip_offset): New function.
1798         (commutative_operand_precedence): Give CONST_POLY_INT the same
1799         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
1800         and CONST_INT.
1801         * rtl-tests.c (const_poly_int_tests): New struct.
1802         (rtl_tests_c_tests): Use it.
1803         * simplify-rtx.c (simplify_const_unary_operation): Handle
1804         CONST_POLY_INT.
1805         (simplify_const_binary_operation): Likewise.
1806         (simplify_binary_operation_1): Fold additions of symbolic constants
1807         and CONST_POLY_INTs.
1808         (simplify_subreg): Handle extensions and truncations of
1809         CONST_POLY_INTs.
1810         (simplify_const_poly_int_tests): New struct.
1811         (simplify_rtx_c_tests): Use it.
1812         * wide-int.h (storage_ref): Add default constructor.
1813         (wide_int_ref_storage): Likewise.
1814         (trailing_wide_ints): Use GTY((user)).
1815         (trailing_wide_ints::operator[]): Add a const version.
1816         (trailing_wide_ints::get_precision): New function.
1817         (trailing_wide_ints::extra_size): Likewise.
1818
1819 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1820             Alan Hayward  <alan.hayward@arm.com>
1821             David Sherwood  <david.sherwood@arm.com>
1822
1823         * emit-rtl.h (gen_int_shift_amount): Declare.
1824         * emit-rtl.c (gen_int_shift_amount): New function.
1825         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
1826         instead of GEN_INT.
1827         * calls.c (shift_return_value): Likewise.
1828         * cse.c (fold_rtx): Likewise.
1829         * dse.c (find_shift_sequence): Likewise.
1830         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
1831         (expand_shift, expand_smod_pow2): Likewise.
1832         * lower-subreg.c (shift_cost): Likewise.
1833         * optabs.c (expand_superword_shift, expand_doubleword_mult)
1834         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
1835         (expand_vec_perm_var): Likewise.
1836         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1837         (simplify_binary_operation_1): Likewise.
1838         * combine.c (try_combine, find_split_point, force_int_to_mode)
1839         (simplify_shift_const_1, simplify_shift_const): Likewise.
1840         (change_zero_ext): Likewise.  Use simplify_gen_binary.
1841
1842 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1843
1844         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
1845
1846 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1847
1848         * doc/invoke.texi (ARM Options): Document accepted extension options
1849         for -march=armv8.3-a.
1850
1851 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
1852
1853         PR target/83105
1854         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
1855         or --with-float=softfp, set the default CPU to arm10e.
1856
1857 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
1858
1859         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
1860         * config/visium/predicates.md (const_shift_operand): Likewise.
1861         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
1862         (visium_legitimize_reload_address): Likewise.
1863
1864 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1865
1866         PR target/82975
1867         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
1868
1869 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
1870
1871         PR c++/83490
1872         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
1873
1874 2017-12-20  Julia Koval  <julia.koval@intel.com>
1875
1876         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
1877         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
1878         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
1879         * config.gcc: Include vpclmulqdqintrin.h.
1880         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
1881         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
1882         -mvpclmulqdq.
1883         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
1884         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
1885         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
1886         * config/i386/i386.c (isa2_opts): Add -mcx16.
1887         (isa_opts): Add -mpclmulqdq, remove -mcx16.
1888         (ix86_option_override_internal): Move mcx16 to flags2.
1889         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
1890         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
1891         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
1892         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
1893         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
1894         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
1895         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
1896         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
1897         * doc/invoke.texi: Add -mvpclmulqdq.
1898
1899 2017-12-20  Tom de Vries  <tom@codesourcery.com>
1900
1901         PR middle-end/83423
1902         * config/i386/i386.c (ix86_static_chain): Move
1903         DECL_STATIC_CHAIN test ...
1904         * calls.c (rtx_for_static_chain): ... here.  New function.
1905         * calls.h (rtx_for_static_chain): Declare.
1906         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
1907         instead of targetm.calls.static_chain.
1908         * df-scan.c (df_get_entry_block_def_set): Same.
1909
1910 2017-12-19  Tom de Vries  <tom@codesourcery.com>
1911
1912         PR tree-optimization/83493
1913         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
1914         and lb.
1915
1916 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1917
1918         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
1919         inform with hardcoded english plural handling.
1920
1921 2017-12-18  Jeff Law  <law@redhat.com>
1922
1923         PR tree-optimization/83477
1924         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
1925         a non-virtual PHI, always push a new range.
1926
1927 2017-12-19  Martin Sebor  <msebor@redhat.com>
1928
1929         PR middle-end/77608
1930         * builtins.c (compute_objsize): Handle non-constant offsets.
1931
1932 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1933
1934         PR tree-optimization/83444
1935         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
1936         character load case, if get_stridx on MEM_REF's operand doesn't
1937         look usable, retry with get_addr_stridx.
1938
1939 2017-12-19  Alexandre Oliva  <aoliva@redhat.com>
1940
1941         PR debug/83422
1942         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
1943         (variable_tracking_main_1): Keep markers even when VTA fails.
1944
1945         PR bootstrap/83396
1946         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
1947         even if there are markers before it.
1948         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
1949
1950 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1951
1952         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
1953         typical order conditions.
1954         * sel-sched.c (extract_new_fences_from): Likewise.
1955         * config/visium/constraints.md (J, K, L): Likewise.
1956         * config/visium/predicates.md (const_shift_operand): Likewise.
1957         * config/visium/visium.c (visium_legitimize_address,
1958         visium_legitimize_reload_address): Likewise.
1959         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
1960         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
1961         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
1962         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
1963         SET_DUMP_DETAIL): Likewise.
1964         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
1965         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
1966         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
1967         avr_set_core_architecture, avr_set_current_function,
1968         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
1969         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
1970         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
1971         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
1972         avr_map_decompose, avr_fold_builtin): Likewise.
1973         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
1974         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
1975         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
1976         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
1977         * config/m32c/m32c.c (m32c_conditional_register_usage,
1978         m32c_address_cost): Likewise.
1979         * config/m32c/predicates.md (shiftcount_operand,
1980         longshiftcount_operand): Likewise.
1981         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
1982         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
1983         can_use_cdx_ldstw): Likewise.
1984         * config/nios2/nios2.h (CDX_REG_P): Likewise.
1985         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
1986         Likewise.
1987         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
1988         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
1989         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
1990         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
1991         * config/vax/vax.c (adjacent_operands_p): Likewise.
1992         * config/ft32/constraints.md (L, b, KA): Likewise.
1993         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
1994         Likewise.
1995         * cfgexpand.c (expand_stack_alignment): Likewise.
1996         * gcse.c (insert_expr_in_table): Likewise.
1997         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
1998         * cgraphunit.c (cgraph_node::expand): Likewise.
1999         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
2000         * emit-rtl.c (add_insn): Likewise.
2001         * input.c (dump_location_info): Likewise.
2002         * passes.c (NEXT_PASS): Likewise.
2003         * read-rtl-function.c (parse_note_insn_name,
2004         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
2005         Likewise.
2006         * sched-rgn.c (sched_rgn_init): Likewise.
2007         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
2008         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
2009         if_then_else_cond, simplify_shift_const_1, simplify_comparison):
2010         Likewise.
2011         * explow.c (eliminate_constant_term): Likewise.
2012         * final.c (leaf_renumber_regs_insn): Likewise.
2013         * cfgrtl.c (print_rtl_with_bb): Likewise.
2014         * genhooks.c (emit_init_macros): Likewise.
2015         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
2016         * tree-data-ref.c (conflict_fn): Likewise.
2017         * selftest.c (assert_streq): Likewise.
2018         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
2019         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
2020         fold_binary_loc, multiple_of_p): Likewise.
2021         * reload.c (push_reload, find_equiv_reg): Likewise.
2022         * et-forest.c (et_nca, et_below): Likewise.
2023         * dbxout.c (dbxout_symbol_location): Likewise.
2024         * reorg.c (relax_delay_slots): Likewise.
2025         * dojump.c (do_compare_rtx_and_jump): Likewise.
2026         * gengtype-parse.c (type): Likewise.
2027         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
2028         simplify_const_relational_operation): Likewise.
2029         * reload1.c (do_output_reload): Likewise.
2030         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
2031         * gengtype.c (type_for_name): Likewise.
2032         * gimple-ssa-sprintf.c (format_directive): Likewise.
2033
2034 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2035
2036         PR target/82975
2037         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
2038         accessing it.  Adjust comment.
2039
2040 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2041
2042         PR middle-end/81914
2043         * predict.c (zero_one_minusone): New function.
2044         (apply_return_prediction): Avoid return prediction for functions
2045         returning only -1, 0 and 1 values, unless they only return -1 and 0
2046         or 0 and 1.
2047
2048 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2049
2050         * config/arc/arc.c (legitimate_scaled_address_p): Clean
2051         fall-through warning.
2052         (arc_compute_frame_size): Remove unused variables.
2053         (arc_print_operand): Fix fprintif format.
2054         (arc_can_follow_jump): Clean fall-through warning.
2055
2056 2017-12-19  Marek Polacek  <polacek@redhat.com>
2057
2058         PR c++/83489
2059         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
2060         on an error node.
2061
2062 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2063
2064         * config/arc/arc.c (overriderregs): New variable.
2065         (arc_override_options): Track fixed/call saved/call options.
2066         (arc_conditional_register_usage): Check against overrideregs
2067         variable whenever we change register properties.
2068
2069 2017-12-19  Nathan Sidwell  <nathan@acm.org>
2070
2071         * opts.c (finish_options): Don't prefix dump_base_name if it
2072         already contains directories.
2073
2074 2017-12-19  Martin Liska  <mliska@suse.cz>
2075
2076         PR rtl-optimization/82675
2077         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
2078         more element in sbitmap.
2079
2080 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
2081
2082         * gimplify.c (gimplify_expr): Use error_operand_p.
2083
2084 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2085
2086         PR target/83387
2087         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
2088         multilib.
2089
2090 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
2091
2092         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
2093         the jump is to a label.
2094
2095 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2096
2097         PR tree-optimization/83444
2098         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
2099         character loads.
2100
2101         PR ipa/82801
2102         PR ipa/83346
2103         * ipa-inline.c (flatten_remove_node_hook): New function.
2104         (ipa_inline): Keep only nodes with flatten attribute at the end of
2105         the array in the order from ipa_reverse_postorder, only walk that
2106         portion of array for flattening, if there is more than one such
2107         node, temporarily register a removal hook and ignore removed nodes.
2108
2109         PR tree-optimization/80631
2110         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
2111         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
2112         IFN_REDUC_MAX or IFN_REDUC_MIN.
2113
2114 2017-12-18  Jeff Law  <law@redhat.com>
2115
2116         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
2117         record symbolic equivalences from backedges in the CFG.
2118
2119         Revert
2120         2017-11-19  Jeff Law  <law@redhat.com>
2121
2122         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
2123         of degenerates resulting from ignoring an edge.
2124
2125 2017-12-18  Martin Sebor  <msebor@redhat.com>
2126
2127         PR middle-end/83373
2128         PR tree-optimization/78450
2129         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
2130         (handle_builtin_strlen): Call it.
2131
2132 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
2133
2134         PR rtl-optimization/83424
2135         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
2136
2137 2017-12-18  Marek Polacek  <polacek@redhat.com>
2138
2139         PR middle-end/83463
2140         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
2141         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
2142         values.
2143
2144 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2145
2146         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
2147         (umaddsidi4, umaddsidi_split): Likewise.
2148
2149 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2150
2151         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
2152         constants.
2153
2154 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2155
2156         PR target/83420
2157         * config/s390/s390.c (s390_option_override): Avoid strncpy.
2158
2159 2017-12-18  Richard Biener  <rguenther@suse.de>
2160
2161         PR tree-optimization/81877
2162         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
2163         (outermost_indep_loop): Adjust.
2164         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
2165         (can_sm_ref_p): Adjust.
2166
2167 2017-12-18  Richard Biener  <rguenther@suse.de>
2168
2169         PR middle-end/77291
2170         * tree.c (array_at_struct_end_p): Return true if the underlying
2171         object has space for at least one element in excess of what
2172         the array domain specifies.
2173
2174 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2175
2176         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
2177         example to avoid overfull hbox.
2178         * doc/invoke.texi (Option Summary): Add missing @gol.
2179         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
2180         overfull hbox.
2181
2182 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2183             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2184
2185         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
2186         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
2187         (AArch64 Options): Document -mverbose-cost-dump.
2188         (ARM Options): Likewise, plus -mflip-thumb.
2189
2190 2017-12-17  Martin Sebor  <msebor@redhat.com>
2191
2192         PR bootstrap/83446
2193         * gimple-ssa-warn-restrict.c
2194         (builtin_memref::offset_out_of_bounds): Correct the handling of
2195         anti-ranges.
2196
2197 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2198
2199         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
2200
2201 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
2202
2203         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
2204
2205 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
2206
2207         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
2208         latencies.
2209
2210 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
2211
2212         * doc/invoke.texi: Fix some typos.
2213
2214 2017-12-16  Martin Sebor  <msebor@redhat.com>
2215
2216         PR tree-optimization/78918
2217         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
2218         * builtins.c (check_sizes): Rename...
2219         (check_access): ...to this.  Rename function arguments for clarity.
2220         (check_memop_sizes): Adjust names.
2221         (expand_builtin_memchr, expand_builtin_memcpy): Same.
2222         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
2223         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
2224         (check_strncat_sizes, expand_builtin_strncat): Same.
2225         (expand_builtin_strncpy, expand_builtin_memset): Same.
2226         (expand_builtin_bzero, expand_builtin_memcmp): Same.
2227         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
2228         (maybe_emit_sprintf_chk_warning): Same.
2229         (expand_builtin_strcpy): Adjust.
2230         (expand_builtin_stpcpy): Same.
2231         (expand_builtin_with_bounds): Detect out-of-bounds accesses
2232         in pointer-checking forms of memcpy, memmove, and mempcpy.
2233         (gcall_to_tree_minimal, max_object_size): Define new functions.
2234         * builtins.h (max_object_size): Declare.
2235         * calls.c (alloc_max_size): Call max_object_size instead of
2236         hardcoding ssizetype limit.
2237         (get_size_range): Handle new argument.
2238         * calls.h (get_size_range): Add a new argument.
2239         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
2240         * doc/invoke.texi (-Wrestrict): Adjust, add example.
2241         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
2242         operations.
2243         (gimple_fold_builtin_memory_chk): Same.
2244         (gimple_fold_builtin_stxcpy_chk): New function.
2245         * gimple-ssa-warn-restrict.c: New source.
2246         * gimple-ssa-warn-restrict.h: New header.
2247         * gimple.c (gimple_build_call_from_tree): Propagate location.
2248         * passes.def (pass_warn_restrict): Add new pass.
2249         * tree-pass.h (make_pass_warn_restrict): Declare.
2250         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
2251         operations.
2252         (handle_builtin_strcat): Same.
2253         (strlen_optimize_stmt): Rename...
2254         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
2255         stpncpy, strncpy, and their checking forms.
2256
2257 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
2258
2259         PR rtl-optimization/82849
2260         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
2261         and get_max_loop_iterations_int.
2262
2263 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2264             Alan Hayward  <alan.hayward@arm.com>
2265             David Sherwood  <david.sherwood@arm.com>
2266
2267         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
2268         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
2269         size as a poly_uint64.
2270         (mode_for_vector, mode_for_int_vector): Take the number of vector
2271         elements as a poly_uint64.
2272         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
2273         size as a poly_uint64.
2274         (mode_for_vector, mode_for_int_vector): Take the number of vector
2275         elements as a poly_uint64.
2276
2277 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2278             Alan Hayward  <alan.hayward@arm.com>
2279             David Sherwood  <david.sherwood@arm.com>
2280
2281         * machmode.h (MACRO_MODE): New macro.
2282         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
2283         * targhooks.c (default_libcall_value, default_secondary_reload)
2284         (default_memory_move_cost, default_register_move_cost)
2285         (default_class_max_nregs): Likewise.
2286
2287 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2288             Alan Hayward  <alan.hayward@arm.com>
2289             David Sherwood  <david.sherwood@arm.com>
2290
2291         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
2292         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
2293         target C file.
2294         * genautomata.c (main): Likewise.
2295         * genconditions.c (write_header): Likewise.
2296         * genemit.c (main): Likewise.
2297         * genextract.c (print_header): Likewise.
2298         * genopinit.c (main): Likewise.
2299         * genoutput.c (output_prologue): Likewise.
2300         * genpeep.c (main): Likewise.
2301         * genpreds.c (write_insn_preds_c): Likewise.
2302         * genrecog.c (writer_header): Likewise.
2303         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
2304         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
2305         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
2306         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
2307         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
2308         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
2309         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
2310         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
2311         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
2312         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
2313         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
2314         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
2315         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
2316         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
2317         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
2318         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
2319         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
2320         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
2321         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
2322         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
2323         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
2324         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
2325         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
2326         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
2327         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
2328         * config/darwin.c (IN_TARGET_CODE): Likewise.
2329         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
2330         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
2331         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
2332         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
2333         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
2334         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
2335         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
2336         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
2337         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
2338         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
2339         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
2340         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
2341         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
2342         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
2343         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
2344         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
2345         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
2346         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
2347         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
2348         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
2349         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
2350         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
2351         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
2352         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
2353         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
2354         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
2355         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
2356         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
2357         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
2358         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
2359         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
2360         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
2361         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
2362         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
2363         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
2364         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
2365         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
2366         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
2367         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
2368         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
2369         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
2370         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
2371         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
2372         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
2373         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
2374         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
2375         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
2376         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
2377         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
2378         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
2379         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
2380         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
2381         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
2382         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
2383         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
2384         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
2385         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
2386         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
2387         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
2388         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
2389         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2390         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
2391         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
2392         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
2393         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
2394         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
2395         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
2396         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
2397         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
2398         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
2399         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
2400         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2401         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
2402         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
2403         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
2404         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
2405         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
2406         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
2407         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
2408         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
2409         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
2410         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
2411         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
2412         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
2413         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
2414         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
2415         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
2416         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
2417         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
2418         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
2419         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
2420         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
2421         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
2422         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
2423         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
2424         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
2425         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
2426         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
2427         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
2428         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
2429         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
2430         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
2431         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
2432         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
2433         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
2434         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
2435
2436 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2437             Alan Hayward  <alan.hayward@arm.com>
2438             David Sherwood  <david.sherwood@arm.com>
2439
2440         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
2441         checks for MEM_REF.
2442
2443 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2444             Alan Hayward  <alan.hayward@arm.com>
2445             David Sherwood  <david.sherwood@arm.com>
2446
2447         * doc/generic.texi (VEC_SERIES_EXPR): Document.
2448         * doc/md.texi (vec_series@var{m}): Document.
2449         * tree.def (VEC_SERIES_EXPR): New tree code.
2450         * tree.h (build_vec_series): Declare.
2451         * tree.c (build_vec_series): New function.
2452         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
2453         * tree-pretty-print.c (dump_generic_node): Likewise.
2454         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
2455         * tree-inline.c (estimate_operator_cost): Likewise.
2456         * expr.c (expand_expr_real_2): Likewise.
2457         * optabs-tree.c (optab_for_tree_code): Likewise.
2458         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2459         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
2460         * expmed.c (make_tree): Handle VEC_SERIES.
2461         * optabs.def (vec_series_optab): New optab.
2462         * optabs.h (expand_vec_series_expr): Declare.
2463         * optabs.c (expand_vec_series_expr): New function.
2464         * tree-vect-generic.c (expand_vector_operations_1): Check that
2465         the operands also have vector type.
2466
2467 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2468             Alan Hayward  <alan.hawyard@arm.com>
2469             David Sherwood  <david.sherwood@arm.com>
2470
2471         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
2472         (VEC_COND_EXPR): Add missing @tindex.
2473         * doc/md.texi (vec_duplicate@var{m}): Document.
2474         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
2475         * tree.c (build_vector_from_val): Add stubbed-out handling of
2476         variable-length vectors, using VEC_DUPLICATE_EXPR.
2477         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
2478         * cfgexpand.c (expand_debug_expr): Likewise.
2479         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2480         * tree-inline.c (estimate_operator_cost): Likewise.
2481         * tree-pretty-print.c (dump_generic_node): Likewise.
2482         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
2483         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
2484         (test_vec_duplicate_folding): New function.
2485         (fold_const_c_tests): Call it.
2486         * optabs.def (vec_duplicate_optab): New optab.
2487         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
2488         * optabs.h (expand_vector_broadcast): Declare.
2489         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
2490         vec_duplicate_optab.
2491         * expr.c (store_constructor): Try using vec_duplicate_optab for
2492         uniform vectors.
2493         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
2494
2495 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2496
2497         PR target/83358
2498         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
2499         div/mod latencies a bit.
2500
2501 2017-12-15  Jeff Law  <law@redhat.com>
2502
2503         PR tree-optimization/36550
2504         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
2505         (mark_threaded_blocks): Rewrite code to avoid block copying when
2506         optimizing for size.  Don't pessimize blocks which will be
2507         copied, but all the statements will be dead.
2508
2509 2017-12-15  Alexandre Oliva  <aoliva@redhat.com>
2510
2511         PR tree-optimization/81165
2512         * tree-ssa-threadupdate.c (uses_in_bb): New.
2513         (estimate_threading_killed_stmts): New.
2514         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
2515         * tree-ssa-threadedge.c
2516         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
2517         when its hit.
2518
2519 2017-12-15  Jeff Law  <law@redhat.com>
2520
2521         PR tree-optimization/83410
2522         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
2523         threads when parallelizing loops.
2524
2525 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
2526
2527         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
2528         handler fields.
2529         * config/alpha/alpha.c (vms_attribute_table): Swap
2530         affects_type_identity and handler fields, adjust comments.
2531         * config/mips/mips.c (mips_attribute_table): Likewise.
2532         * config/visium/visium.c (visium_attribute_table): Likewise.
2533         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
2534         * config/microblaze/microblaze.c (microblaze_attribute_table):
2535         Likewise.
2536         * config/spu/spu.c (spu_attribute_table): Likewise.
2537         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2538         * config/arc/arc.c (arc_attribute_table): Likewise.
2539         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
2540         * config/v850/v850.c (v850_handle_interrupt_attribute,
2541         v850_handle_data_area_attribute): Formatting fixes.
2542         (v850_attribute_table): Swap affects_type_identity and handler
2543         fields, adjust comments.
2544         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2545         * config/arm/arm.c (arm_attribute_table): Likewise.
2546         * config/avr/avr.c (avr_attribute_table): Likewise.
2547         * config/s390/s390.c (s390_attribute_table): Likewise.
2548         * config/sh/sh.c (sh_attribute_table): Likewise.
2549         * config/i386/i386.c (ix86_handle_cconv_attribute,
2550         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
2551         (ix86_attribute_table): Swap affects_type_identity and handler
2552         fields, adjust comments.
2553         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2554         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2555         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
2556         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
2557         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
2558         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2559         * config/rx/rx.c (rx_attribute_table): Likewise.
2560         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
2561         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2562         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
2563         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
2564         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2565         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
2566         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2567         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2568         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2569         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2570         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
2571         exclude.
2572         * attribs.c (empty_attribute_table): Swap affects_type_identity and
2573         handler fields.
2574         (register_scoped_attributes, decl_attributes): Formatting fixes.
2575
2576         PR tree-optimization/83269
2577         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
2578         subtraction in arg0's type if type is signed and arg0 is unsigned.
2579         Formatting fix.
2580
2581         PR sanitizer/81281
2582         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
2583         convert? on @0 instead of convert.  Check type of @1, not @0.
2584         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
2585         convert? on @0 instead of convert.  Check type of @1, not @0.
2586         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
2587         only optimize if either both @1 and @2 types are narrower
2588         precision, or both are wider or equal precision, and in the former
2589         case only if both have undefined overflow.
2590
2591 2017-12-15  Richard Biener  <rguenther@suse.de>
2592
2593         PR lto/83388
2594         * internal-fn.def (IFN_NOP): Add.
2595         * internal-fn.c (expand_NOP): Do nothing.
2596         * lto-streamer-in.c (input_function): Instead of removing
2597         sanitizer calls replace them with IFN_NOP calls.
2598
2599 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
2600             Alan Hayward  <alan.hayward@arm.com>
2601             David Sherwood  <david.sherwood@arm.com>
2602
2603         * dse.c (store_info, read_info_type): Replace begin and end with
2604         offset and width.
2605         (print_range): New function.
2606         (set_all_positions_unneeded, any_positions_needed_p)
2607         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
2608         accordingly.
2609         (record_store): Likewise.  Optimize the case in which all positions
2610         are unneeded.
2611         (get_stored_val): Replace read_begin and read_end with read_offset
2612         and read_width.
2613         (replace_read): Update call accordingly.
2614
2615 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
2616
2617         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
2618         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
2619         (loop_cand::loop_cand): Initialize above members.
2620         (loop_cand::supported_operations): Delete.
2621         (loop_cand::can_interchange_p): Inline above function.
2622         (loop_cand::classify_simple_reduction): Record number of constant
2623         initialized simple reductions.
2624         (should_interchange_loops): New parameters.  Check stmt cost of loops
2625         to be interchange.
2626         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
2627         Update call to should_interchange_loops.
2628         (should_interchange_loop_nest): Update call to
2629         should_interchange_loops.
2630
2631 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
2632
2633         PR target/66488
2634         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
2635         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
2636         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
2637
2638 2017-12-15  Julia Koval  <julia.koval@intel.com>
2639
2640         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
2641         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi):
2642         New.
2643         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
2644         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
2645         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
2646
2647 2017-12-15  Julia Koval  <julia.koval@intel.com>
2648
2649         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
2650         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
2651         * config/i386/sse.md (vaesenc_<mode>): New pattern.
2652         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
2653         _mm_aesenc_epi128): New intrinsics.
2654
2655 2017-12-15  Julia Koval  <julia.koval@intel.com>
2656
2657         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
2658         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi):
2659         New.
2660         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
2661         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
2662         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
2663
2664 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2665
2666         * gimple-ssa-strength-reduction.c (analyze_increments):
2667         Distinguish replacement costs for constant strides from those for
2668         unknown strides.
2669
2670 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2671
2672         * var-tracking.c (variable_tracking_main_1): Formatting fix.
2673
2674 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2675
2676         * doc/invoke.texi: Document -Wcast-function-type.
2677         * recog.h (stored_funcptr): Change signature.
2678         * tree-dump.c (dump_node): Avoid warning.
2679         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
2680
2681 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
2682
2683         PR middle_end/79538
2684         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
2685         array.
2686
2687 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
2688
2689         PR tree-optimization/83312
2690         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
2691         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
2692         "val" param, and to cope with arbitrary basic blocks.
2693         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
2694         handle NULL_TREE for "val", dropping "bb" param.
2695         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
2696         drop "bb" param.  Handle NULL_TREE for "val".
2697         (find_case_label_for_value): Make "switch_stmt" param const.
2698         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
2699         of dom_walker.
2700         (vrp_prop::check_all_array_refs): Reimplement as...
2701         (check_array_bounds_dom_walker::before_dom_children): ...this new
2702         vfunc.  Replace linear search through BB block list, excluding
2703         those with non-executable in-edges via dominator walk.
2704
2705 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2706
2707         * config/arm/arm.opt (mverbose-cost-dump): New option.
2708         * config/arm/arm.c (arm_rtx_costs): Use it.
2709
2710 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
2711
2712         PR bootstrap/83396
2713         * reload1.c (emit_input_reload_insns): Skip debug markers.
2714
2715 2017-12-14  Alexandre Oliva  <aoliva@redhat.com>
2716
2717         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
2718         for its nop_endbr.
2719
2720         PR bootstrap/83396
2721         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
2722         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
2723         * config/sh/sh.c: Skip debug insns besides notes.
2724         * config/sh/sh.md: Likewise.
2725         * config/sh/sh_treg_combine.cc: Likewise.
2726         * config/sh/sync.md: Likewise.
2727
2728 2017-12-14  Tom de Vries  <tom@codesourcery.com>
2729
2730         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2731         Add item for weak_undefined.
2732
2733 2017-12-14  Richard Biener  <rguenther@suse.de>
2734
2735         PR tree-optimization/67842
2736         * sese.h (bb_in_region): Remove #if 0'ed code.
2737
2738 2017-12-14  Richard Biener  <rguenther@suse.de>
2739
2740         PR tree-optimization/83326
2741         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
2742         may_be_zero parameter and handle it by not marking the first
2743         peeled copy as not exiting the loop.
2744         (try_peel_loop): Likewise.
2745         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
2746         to handle the case of constant or zero iterations and perform
2747         loop header copying on-the-fly.
2748
2749 2017-12-14  Richard Biener  <rguenther@suse.de>
2750
2751         PR tree-optimization/83418
2752         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
2753         Instead of asserting we don't get unfolded comparisons deal with them.
2754
2755 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2756
2757         PR bootstrap/83396
2758         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
2759         basic blocks.  Assert debug bind insns don't appear outside of bbs,
2760         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
2761         bb.  Simplify.
2762
2763         PR tree-optimization/83198
2764         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
2765         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
2766         value if arg is a REAL_CST with incompatible type.
2767
2768 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
2769             Bin Cheng  <bin.cheng@arm.com>
2770
2771         PR target/81228
2772         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
2773         to CCFPEmode.
2774         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
2775         LTGT.
2776
2777 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2778
2779         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
2780         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
2781
2782 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
2783             Alan Hayward  <alan.hayward@arm.com>
2784             David Sherwood  <david.sherwood@arm.com>
2785
2786         * poly-int.h: New file.
2787         * poly-int-types.h: Likewise.
2788         * coretypes.h: Include them.
2789         (POLY_INT_CONVERSION): Define.
2790         * target.def (estimated_poly_value): New hook.
2791         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
2792         * doc/tm.texi: Regenerate.
2793         * doc/poly-int.texi: New file.
2794         * doc/gccint.texi: Include it.
2795         * doc/rtl.texi: Describe restrictions on subreg modes.
2796         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
2797         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
2798         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
2799         * targhooks.h (default_estimated_poly_value): Declare.
2800         * targhooks.c (default_estimated_poly_value): New function.
2801         * target.h (estimated_poly_value): Likewise.
2802         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
2803         (wi::unary_traits): Delete.
2804         (wi::binary_traits::signed_shift_result_type): Define for
2805         offset_int << HOST_WIDE_INT, etc.
2806         (generic_wide_int::operator <<=): Define for all types and use
2807         wi::lshift instead of <<.
2808         (wi::hwi_with_prec): Add a default constructor.
2809         (wi::ints_for): New class.
2810         (operator <<): Define for all wide-int types.
2811         (operator /): New function.
2812         (operator %): Likewise.
2813         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
2814         (ASSERT_MAYBE_NE_AT): New macros.
2815
2816 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
2817             Dominik Vogt  <vogt@linux.vnet.ibm.com>
2818
2819         PR middle-end/78468
2820         * emit-rtl.c (init_emit): Remove ??? comment.
2821         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2822         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
2823         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
2824         alignment of 3 virtual registers to BITS_PER_WORD.
2825
2826         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
2827
2828 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
2829
2830         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
2831         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
2832
2833 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2834
2835         PR bootstrap/83396
2836         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
2837
2838 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
2839
2840         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
2841         with the exception of debug begin stmt markers appear before
2842         labels.
2843
2844         PR bootstrap/83396
2845         * final.c (rest_of_handle_final): Call variable_tracking_main only
2846         if !flag_var_tracking.
2847
2848 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2849             Jakub Jelinek  <jakub@redhat.com>
2850
2851         PR bootstrap/83396
2852         PR debug/83391
2853         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
2854         labels debug stmts that can only appear after labels.
2855
2856 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
2857
2858         PR rtl-optimization/82398
2859         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
2860         EXPR_USEFULNESS in priority comparison.
2861
2862 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
2863
2864         PR rtl-optimization/83393
2865         * combine.c (move_deaths): If reg_stat points to a too new insn in
2866         last_death, do not use it: find the proper insn instead.
2867
2868 2017-12-12  Jeff Law  <law@redhat.com>
2869
2870         PR tree-optimization/83298
2871         PR tree-optimization/83362
2872         PR tree-optimization/83383
2873         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
2874         push_value_range a public interface.  Add new argument to
2875         record_ranges_from_stmt.
2876         * gimple-ssa-evrp-analyze.c
2877         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
2878         Update comments.  Handle recording temporary equivalences.
2879         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
2880         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
2881         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
2882         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
2883         gimple-ssa-evrp-analyze.h.
2884         (record_temporary_equivalences_from_phis): Add new argument.  When
2885         the PHI arg is an SSA_NAME, set the result's range to the range
2886         of the PHI arg.
2887         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
2888         from statements too.
2889         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
2890         Pass it down to children as needed.
2891         (thread_outgoing_edges): Likewise.
2892         (thread_across_edge): Likewise.   Push/pop range state as needed.
2893         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
2894
2895 2017-12-12  Julia Koval  <julia.koval@intel.com>
2896
2897         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
2898         (PTA_CANNONLAKE): Remove PTA_CLWB.
2899
2900 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2901
2902         PR target/83332
2903         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
2904         (vcondv2div2df): Likewise.
2905         (vconduv2dfv2di): Likewise.
2906
2907 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2908
2909         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
2910         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
2911         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
2912         ATTR_MATHFN_FPROUNDING_ERRNO.
2913
2914 2017-12-12  Richard Biener  <rguenther@suse.de>
2915
2916         PR tree-optimization/83385
2917         * graphite-scop-detection.c (get_order, order): Remove.
2918         (bb_to_rpo): New global.
2919         (cmp_pbbs): Adjust.
2920         (build_scops): Sort pbbs in RPO order.
2921
2922 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
2923
2924         * combine.c (simplify_set): Do not transform subregs to zero_extends
2925         if the destination mode is a vector mode.
2926
2927 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2928
2929         PR tree-optimization/83359
2930         * tree-cfg.h (fold_loop_internal_call): Declare.
2931         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
2932         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
2933         (find_loop_dist_alias): New function.
2934         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
2935         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
2936         calls.
2937
2938         PR tree-optimization/80631
2939         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
2940         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
2941         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
2942         hardcoding zero as the value if COND_EXPR is never true.  For
2943         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
2944         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
2945         hardcoding MAX_EXPR as the reduction operation.
2946         (is_nonwrapping_integer_induction): Allow negative step.
2947         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
2948         vect_create_epilog_for_reduction, if no value is suitable, don't
2949         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
2950
2951 2017-12-12  Richard Biener  <rguenther@suse.de>
2952
2953         PR tree-optimization/81889
2954         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
2955         range info from the non-wrapping IV instead of just the range
2956         of the type.
2957
2958 2017-12-12  Julia Koval  <julia.koval@intel.com>
2959
2960         * config.gcc: Add vaesintrin.h.
2961         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
2962         New type.
2963         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
2964         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
2965         New builtins.
2966         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
2967         * config/i386/immintrin.h: Include vaesintrin.h.
2968         * config/i386/sse.md (vaesdec_<mode>): New pattern.
2969         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
2970         _mm_aesdec_epi128): New intrinsics.
2971
2972 2017-12-12  Julia Koval  <julia.koval@intel.com>
2973
2974         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
2975         OPTION_MASK_ISA_VAES_UNSET): New.
2976         (ix86_handle_option): Handle -mvaes.
2977         * config/i386/cpuid.h: Define bit_VAES.
2978         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
2979         * config/i386/i386-c.c (__VAES__): New.
2980         * config/i386/i386.c (ix86_target_string): Add -mvaes.
2981         (ix86_valid_target_attribute_inner_p): Ditto.
2982         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
2983         * config/i386/i386.opt: Add -mvaes.
2984         * doc/invoke.texi: Ditto.
2985
2986 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
2987
2988         * debug.h (gcc_debug_hooks): Add inline_entry.
2989         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
2990         * debug.c (do_nothing_debug_hooks): Likewise.
2991         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2992         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2993         (dwarf2_lineno_debug_hooks): Likewise.
2994
2995         * common.opt (gstatement-frontiers): New, setting
2996         debug_nonbind_markers_p.
2997         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
2998         * toplev.c (process_options): Autodetect value for debug statement
2999         frontiers option.
3000         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
3001         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
3002
3003         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
3004         markers.  Integrate source bind into debug stmt expand loop.
3005         (pass_expand::execute): Check debug marker limit.  Avoid deep
3006         TER and expand debug locations for debug bind insns only.
3007         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
3008         followed by them.
3009         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
3010         * final.c (reemit_insn_block_notes): Take current block from
3011         nonbind markers.  Declare note where it's first set.
3012         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
3013         begin stmt markers if enabled.
3014         (notice_source_line): Handle nonbind markers.  Fail if their
3015         location is unknown or that of builtins.
3016         (rest_of_handle_final): Convert begin stmt markers to notes if
3017         var-tracking didn't run.
3018         (rest_of_clean_state): Skip begin stmt markers.
3019         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
3020         markers.
3021         * function.c (allocate_struct_function): Set begin_stmt_markers.
3022         * function.h (struct function): Add debug_marker_count counter
3023         and debug_nonbind_markers flag.
3024         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
3025         * gimple-low.c (lower_function_body): Adjust
3026         debug_nonbind_markers.
3027         (lower_stmt): Drop or skip gimple debug stmts.
3028         (lower_try_catch): Skip debug stmts.
3029         * gimple.c (gimple_build_debug_begin_stmt): New.
3030         (gimple_copy): Increment debug_marker_count if copying one.
3031         * gimple.h (gimple_build_debug_begin_stmt): Declare.
3032         * gimplify.c (rexpr_location): New.
3033         (rexpr_has_location): New.
3034         (warn_switch_unreachable_r): Handle gimple debug stmts.
3035         (shortcut_cond_r): Call expr_location.
3036         (find_goto): New.
3037         (find_goto_label): New.
3038         (shortcut_cond_expr): Call expr_has_location, expr_location, and
3039         find_goto_label.
3040         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
3041         expr_location.
3042         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
3043         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
3044         (LANG_HOOKS_INITIALIZER): ... this.
3045         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
3046         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
3047         debug insns.
3048         (update_ebb_live_info): Skip debug insn markers.
3049         * lra.c (debug_insn_static_data): Rename to...
3050         (debug_bind_static_data): ... this.
3051         (debug_marker_static_data): New.
3052         (lra_set_insn_recog_data): Select one of the above depending
3053         on debug insn kind.
3054         (lra_update_isn_regno_info): Don't assume debug insns have
3055         freqs.
3056         (push_insns): Skip debug insns.
3057         * lto-streamer-in.c (input_function): Drop debug stmts
3058         depending on active options.  Adjust debug_nonbind_markers.
3059         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
3060         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
3061         begin stmt marker notes.
3062         (print_insn): Likewise.
3063         * recog.c (extract_insn): Recognize rtl for debug markers.
3064         * rtl.def (DEBUG_MARKER): New.
3065         * tree-inline.c: Include params.h.
3066         (remap_gimple_stmt): Handle nonbind markers.
3067         (maybe_move_debug_stmts_to_successors): Likewise.
3068         (copy_debug_stmt): Likewise.
3069         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
3070         markers regardless of no side effects.
3071         (tsi_link_before): Don't update container's side effects when adding
3072         a begin stmt marker.
3073         (tsi_link_after): Likewise.
3074         (expr_first): Skip begin stmt markers.
3075         (expr_last): Likewise.
3076         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
3077         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3078         Disregard nonbind markers.
3079         * tree.c (make_node_stat): Don't set side effects for begin stmt
3080         markers.
3081         (build1_stat): Likewise.
3082         * tree.def (DEBUG_BEGIN_STMT): New.
3083         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
3084         * var-tracking.c (delete_debug_insns): Renamed to...
3085         (delete_vta_debug_insns): ... this.
3086         (reemit_marker_as_note): New.
3087         (vt_initialize): Reemit markers.
3088         (delete_vta_debug_insns): Likewise.
3089         (vt_debug_insns_local): Reemit or delete markers.
3090         (variable_tracking_main_1): Likewise.
3091         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
3092         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
3093         (gimple_debug_nonbind_marker_p): New.
3094         (gimple_build_debug_bind): Adjust.
3095         (gimple_build_debug_begin_stmt): New.
3096         * doc/invoke.texi (max-debug-marker-count): New param.
3097         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
3098         (debug_parameter_ref, debug_marker): New.
3099         (NOTE_INSN_BEGIN_STMT): New.
3100         (DEBUG_INSN): Describe begin stmt markers.
3101
3102         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
3103         without debug insns, we wouldn't, but clean up debug insns
3104         after a control flow insn nevertheless.
3105
3106         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
3107         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
3108         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
3109         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
3110         (rtl_tidy_fallthru_edge): Likewise.
3111         (rtl_verify_fallthru): Likewise.
3112         (rtl_verify_bb_layout): Likewise.
3113         (skip_insns_after_block): Likewise.
3114         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
3115         * dwarf2out.c: Include print-rtl.h.
3116         (dwarf2out_next_real_insn): New.
3117         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
3118         Dump debug binds in asm comments.
3119         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
3120         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
3121         callers to use gsi_start_nondebug_bb instead.
3122         (gsi_after_labels): Skip gimple debug stmts.
3123         (gsi_start_nondebug): New.
3124         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
3125         (proper_loop_form_for_interchange): Adjust.
3126         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
3127         * gimple.h (gimple_seq_last_nondebug_stmt): New.
3128         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
3129         (collect_fallthrough_labels): Likewise.
3130         (should_warn_for_implicit_fallthrough): Likewise.
3131         (warn_implicit_fallthrough_r): Likewise.
3132         (expand_FALLTHROUGH_r): Likewise.
3133         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
3134         (graphite_copy_stmts_from_block): Skip nonbind markers.
3135         * haifa-sched.c (sched_extend_bb): Skip debug insns.
3136         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
3137         * jump.c (clean_barriers): Skip debug insns.
3138         * omp-expand.c (expand_parallel_call): Skip debug insns.
3139         (expand_task_call): Likewise.
3140         (remove_exit_barrier): Likewise.
3141         (expand_omp_taskreg): Likewise.
3142         (expand_omp_for_init_counts): Likewise.
3143         (expand_omp_for_generic): Likewise.
3144         (expand_omp_for_static_nochunk): Likewise.
3145         (expand_omp_for_static_chunk): Likewise.
3146         (expand_omp_simd): Likewise.
3147         (expand_omp_taskloop_for_outer): Likewise.
3148         (expand_omp_taskloop_for_inner): Likewise.
3149         (expand_oacc_for): Likewise.
3150         (expand_omp_sections): Likewise.
3151         (expand_omp_single): Likewise.
3152         (expand_omp_synch): Likewise.
3153         (expand_omp_atomic_load): Likewise.
3154         (expand_omp_atomic_store): Likewise.
3155         (expand_omp_atomic_fetch_op): Likewise.
3156         (expand_omp_atomic_pipeline): Likewise.
3157         (expand_omp_atomic_mutex): Likewise.
3158         (expand_omp_target): Likewise.
3159         (grid_expand_omp_for_loop): Likewise.
3160         (grid_expand_target_grid_body): Likewise.
3161         (build_omp_regions_1): Likewise.
3162         * omp-low.c (check_combined_parallel): Skip debug stmts.
3163         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
3164         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
3165         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
3166         test.
3167         * tree-cfg.c (make_blobs_1): Skip debug stmts.
3168         (make_edges): Likewise.
3169         (cleanup_dead_labels): Likewise.
3170         (gimple_can_merge_blocks_p): Likewise.
3171         (stmt_starts_bb_p): Likewise.
3172         (gimple_block_label): Likewise.
3173         (gimple_redirect_edge_and_branch): Likewise.
3174         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
3175         of debug stmts.
3176         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
3177         TDF_SLIM.
3178         * tree-pretty-print (print_declaration): Omit initializer in slim
3179         dumps.
3180         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
3181         markers.
3182         (eliminate_unnecessary_stmts): Stabilize block removal order.
3183         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
3184         * var-tracking.c (get_first_insn): New.
3185         (vt_emit_notes): Call it.
3186         (vt_initialize): Walk any insns before the first BB.
3187         (delete_debug_insns): Likewise.
3188
3189         * gimple.h (enum gimple_debug_subcode): Add
3190         GIMPLE_DEBUG_BEGIN_STMT.
3191         (gimple_debug_begin_stmt_p): New.
3192         (gimple_debug_nonbind_marker_p): New.
3193         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
3194         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
3195         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
3196         * insn-notes.def (BEGIN_STMT): New.
3197         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
3198         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
3199         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
3200         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
3201         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
3202         (INSN_DEBUG_MARKER_KIND): New.
3203         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
3204         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
3205         (INSN_VAR_LOCATION_PTR): New.
3206         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
3207         only.
3208         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
3209         deps only if debug bind insns are enabled.
3210         (pass_expand::execute): Avoid deep TER and expand
3211         debug locations for debug bind insns only.
3212         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
3213         debug stmts special handling down to debug bind stmts.
3214         * combine.c (try_combine): Narrow debug insns special handling
3215         down to debug bind insns.
3216         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
3217         Narrow debug insns preexisting special handling down to debug
3218         bind insns.
3219         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
3220         handling down to debug bind insns.
3221         * function.c (instantiate_virtual_regs): Skip debug markers,
3222         adjust handling of debug binds.
3223         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
3224         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
3225         * haifa-sched.c (schedule_insn): Narrow special handling of debug
3226         insns to debug bind insns.
3227         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
3228         special handling of debug stmts to debug bind stmts.
3229         * ipa-split.c (split_function): Likewise.
3230         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
3231         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
3232         debug insns.
3233         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
3234         * regrename.c (build_def_use): Likewise.
3235         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
3236         (pass_cprop_hardreg): Narrow special casing of debug insns to
3237         debug bind insns.
3238         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
3239         * reload1.c (reload): Likewise.
3240         * sese.c (sese_insert_phis_for_liveouts): Narrow special
3241         casing of debug stmts to debug bind stmts.
3242         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
3243         * ssa-iterators.h (num_imm_uses): Likewise.
3244         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
3245         debug stmts to debug bind stmts.
3246         * tree-inline.c (tree_function_versioning): Narrow special casing
3247         of debug stmts to debug bind stmts.
3248         * tree-loop-distribution.c (generate_loops_for_partition):
3249         Narrow special casing of debug stmts to debug bind stmts.
3250         * tree-sra.c (analyze_access_subtree): Narrow special casing
3251         of debug stmts to debug bind stmts.
3252         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
3253         stmts to debug bind stmts.
3254         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
3255         casing of debug stmts to debug bind stmts.
3256         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
3257         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
3258         casing of debug stmts to debug bind stmts.
3259         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3260         Likewise.
3261         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
3262         debug stmts to debug bind stmts.
3263         (gimple_replace_ssa_lhs): Likewise.
3264         (insert_debug_temp_for_var_def): Likewise.
3265         (insert_debug_temps_for_defs): Likewise.
3266         (reset_debug_uses): Likewise.
3267         * tree-ssanames.c (release_ssa_name_fn): Likewise.
3268         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
3269         (adjust_debug_stmts): Likewise.
3270         (adjust_phi_and_debug_stmts): Likewise.
3271         (vect_do_peeling): Likewise.
3272         * tree-vect-loop.c (vect_transform_loop): Likewise.
3273         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
3274         * var-tracking.c (adjust_mems): Narrow special casing of debug
3275         insns to debug bind insns.
3276         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
3277         (compute_bb_dataflow, vt_find_locations): Likewise.
3278         (vt_expand_loc, emit_notes_for_changes): Likewise.
3279         (vt_init_cfa_base): Likewise.
3280         (vt_emit_notes): Likewise.
3281         (vt_initialize): Likewise.
3282         (vt_finalize): Likewise.
3283
3284         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
3285         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
3286         (next_nonnote_nondebug_insn_bb): New.
3287         (prev_nonnote_nondebug_insn_bb): New.
3288         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
3289         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
3290         (prev_nonnote_nondebug_insn_bb): Declare.
3291         (next_nonnote_nondebug_insn_bb): Declare.
3292         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
3293         * cfgrtl.c (get_last_bb_insn): Likewise.
3294         * lra.c (push_insns): Likewise.
3295
3296 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
3297
3298         PR c/82050
3299         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
3300         to...
3301         * selftest.c (selftest::test_runner::test_runner): New ctor.
3302         (selftest::test_runner::~test_runner): New dtor.
3303         * selftest.h (class selftest::test_runner): New class.
3304
3305 2017-12-11  Carl Love  <cel@us.ibm.com>
3306
3307         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
3308         vec_extract_fp32_from_shortl]): Add #defines.
3309         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
3310         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
3311         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
3312         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
3313         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
3314         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
3315         * doc/extend.texi: Add documentation for the added builtins.
3316
3317 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
3318
3319         PR rtl-optimization/80693
3320         PR rtl-optimization/81019
3321         PR rtl-optimization/81020
3322         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
3323         are not mentioned in i3.  Place the REG_UNUSED note on i2,
3324         possibly modified to REG_DEAD, if it did not originate in i3.
3325
3326 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3327
3328         * recog.c (store_data_bypass_p_1): New function.
3329         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
3330         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
3331
3332 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
3333
3334         PR rtl-optimization/83361
3335         * ifcvt.c (if_convert): Call fixup_partitions.
3336
3337 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
3338
3339         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
3340         early folding of splat_u{8,16,32}.
3341
3342 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3343
3344         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
3345         output_operand_lossage first argument with capital letter.
3346         (aarch64_override_options): Don't start error and sorry first argument
3347         with capital letter.
3348
3349 2017-12-11  Andi Kleen  <ak@linux.intel.com>
3350
3351         PR gcov-profile/83355
3352         * auto-profile.c (string_table::get_index_by_decl): Don't
3353         recurse when abstract origin points to itself.
3354
3355 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
3356
3357         PR tree-optimization/83320
3358         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
3359         (prune_datarefs_not_in_loop): Ditto.
3360
3361 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
3362
3363         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
3364
3365 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
3366
3367         PR tree-optimization/83337
3368         * gimple-loop-interchange.cc (compute_access_stride): Handle
3369         bitfield DRs properly.
3370
3371 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
3372
3373         PR tree-optimization/83338
3374         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
3375         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
3376         vector of unsigned integers to vector of signed integers.
3377
3378 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
3379
3380         PR rtl-optimization/83317
3381         * lra-constraints.c (process_address_1): Add insn code check.
3382
3383 2017-12-08  Michael Matz  <matz@suse.de>
3384
3385         Fix PR tree-optimization/83323
3386         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
3387         head-controlled loops and loop BBs.
3388         * common.opt (funroll-and-jam): Remove, instead ...
3389         (floop-unroll-and-jam): ... reuse this option.
3390         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
3391         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
3392         (-floop-unroll-and-jam): ... this option.
3393
3394 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3395
3396         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
3397         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
3398         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
3399
3400 2017-12-08  Richard Biener  <rguenther@suse.de>
3401
3402         PR middle-end/81782
3403         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
3404         handle accesses outside of zero-sized vars.
3405
3406 2017-12-08  Martin Jambor  <mjambor@suse.cz>
3407
3408         PR tree-optimization/83141
3409         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
3410         test for MEM_REFs implicitely changing types with padding.  Remove
3411         inline keyword.
3412         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
3413
3414 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3415
3416         * config/arc/arc.c (arc_attribute_table): Add exclusions to
3417         the comment.
3418         * config/avr/avr.c (avr_attribute_table): Likewise.
3419         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
3420         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
3421         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
3422         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
3423         of struct attribute_spec.
3424         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
3425
3426 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
3427
3428         PR target/82960
3429         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
3430
3431 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
3432
3433         PR middle-end/83609
3434         * profile-count.c (profile_count::from_gcov_type): Move from
3435         profile-count.h; handle overflow.
3436         * profile-count.h (profile_count::from_gcov_type): Move offline.
3437
3438 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
3439
3440         PR rtl-optimization/83304
3441         * combine.c (move_deaths): If we do not know where a register died,
3442         search for it.
3443
3444 2017-12-08  Richard Biener  <rguenther@suse.de>
3445
3446         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
3447         Provide -fopt-info-loop feedback when we interchange in a nest.
3448
3449 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3450
3451         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
3452         for armv6 ARM CPU IDs.
3453
3454 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3455
3456         * common/config/arm/arm-common.c: Include <algorithm>.
3457         (INCLUDE_VECTOR): Define.
3458         (compare_opt_names): New function.
3459         (arm_rewrite_selected_arch): Only strip out extensions that can be
3460         expressed through -mfpu.  Sort the remaining extensions
3461         alphabetically.
3462
3463 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3464
3465         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
3466         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
3467         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
3468         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
3469
3470 2017-06-08  Tristan Gingold  <gindold@adacore.com>
3471
3472         PR ada/81470
3473         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
3474         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
3475
3476 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3477
3478         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
3479         of struct attribute_spec.
3480
3481 2017-12-08  Julia Koval  <julia.koval@intel.com>
3482
3483         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
3484         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
3485         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
3486         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
3487         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
3488         _mm_maskz_dpwssds_epi32): Ditto.
3489
3490 2017-12-08  Richard Biener  <rguenther@suse.de>
3491
3492         PR tree-optimization/81303
3493         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
3494         conditions try to create a comparison vector type matching
3495         the data vector type.
3496         (vectorizable_condition): Adjust.
3497         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3498         Leave invariant conditions alone in case we can vectorize those.
3499
3500 2017-12-08  Julia Koval  <julia.koval@intel.com>
3501
3502         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
3503         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
3504         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
3505         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
3506         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
3507
3508 2017-12-08  Julia Koval  <julia.koval@intel.com>
3509
3510         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
3511         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
3512         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
3513         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
3514         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
3515         _mm_maskz_dpbusds_epi32): New intrinsics.
3516
3517 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3518
3519         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
3520         operand.
3521         (ld<bh>io_signed): Likewise.
3522         (st<bhw>io): Likewise.
3523         * config/nios2/predicates.md (ldstio_memory_operand): Allow
3524         SMALL_INT12 constant integer operand.
3525
3526 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3527
3528         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
3529         Rename to...
3530         (nios2_large_constant_allowed): ...this.  Adjust uses.
3531         (nios2_plus_symbolic_constant_p): Rename to...
3532         (nios2_plus_large_constant_p): ...this.  Adjust uses.
3533         (nios2_legitimate_address_p): Correct CONST_INT handling.
3534         (nios2_symbolic_memory_operand_p): Rename to...
3535         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
3536         (nios2_large_constant_p): Check for large constant integers too.
3537         (nios2_split_large_constant): Handle constant integers.
3538         (nios2_split_symbolic_memory_operand): Rename to...
3539         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
3540         (nios2_legitimize_constant_address): Handle constant integers.
3541         (r0rel_constant_p): Handle small constant integers.
3542         (nios2_print_operand_address): Handle r0-relative integer addresses.
3543         * config/nios2/nios2-protos.h: Adjust for renamed functions.
3544         * config/nios2/nios2.md: Adjust for renamed functions.
3545
3546 2017-12-07  Andrew Waterman  <andrew@sifive.com>
3547
3548         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
3549         (TARGET_HAVE_SRODATA_SECTION): New define.
3550         (riscv_select_section): New function.
3551
3552 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
3553             Alexander Monakov  <amonakov@ispras.ru>
3554             Jakub Jelinek  <jakub@redhat.com>
3555
3556         PR target/81906
3557         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
3558
3559 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3560
3561         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
3562         a bool success value.  Don't call output_operand_lossage here.
3563         (aarch64_print_ldpstp_address): Return a bool success value.
3564         (aarch64_print_operand_address): Call output_addr_const if
3565         aarch64_print_address_internal fails.
3566         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
3567         'y'; call output_operand_lossage instead.  Call output_operand_lossage
3568         if aarch64_print_ldpstp_address fails.
3569
3570 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3571
3572         * tree-vector-builder.h
3573         (tree_vector_builder::binary_encoded_nelts): Declare.
3574         * tree-vector-builder.c
3575         (tree_vector_builder::binary_encoded_nelts): New function.
3576         * fold-const.c (negate_expr_p): Likewise.
3577         (operand_equal_p, fold_checksum_tree): Likewise.
3578         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
3579         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
3580         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
3581         (uniform_vector_p): Likewise.
3582         * varasm.c (const_hash_1, compare_constant): Likewise.
3583         * tree-ssa-ccp.c: Include tree-vector-builder.h.
3584         (valid_lattice_transition): Operate directly on the VECTOR_CST
3585         encoding.
3586         * ipa-icf.c: Include tree-vector-builder.h.
3587         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
3588         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
3589
3590 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3591
3592         * tree.c (build_vector): Delete.
3593         * tree.h (build_vector): Make static and move into the self-testing
3594         block.
3595
3596 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3597
3598         * vector-builder.h (vector_builder::derived): New const overload.
3599         (vector_builder::elt): New function.
3600         * tree-vector-builder.h (tree_vector_builder::type): New function.
3601         (tree_vector_builder::apply_step): Declare.
3602         * tree-vector-builder.c (tree_vector_builder::apply_step): New
3603         function.
3604         * gimple-fold.h (tree_vector_builder): Declare.
3605         (gimple_build_vector): Take a tree_vector_builder instead of a
3606         type and vector of elements.
3607         * gimple-fold.c (gimple_build_vector): Likewise.
3608         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
3609         accordingly.
3610         (get_initial_defs_for_reduction): Likewise.
3611         (vectorizable_induction): Likewise.
3612
3613 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3614
3615         * tree-vector-builder.h
3616         (tree_vector_builder::new_binary_operation): Declare.
3617         * tree-vector-builder.c
3618         (tree_vector_builder::new_binary_operation): New function.
3619         * fold-const.c (fold_relational_const): Use it.
3620         (const_binop): Likewise.  Check that both input vectors have
3621         the same number of elements, thus excluding things like WIDEN_SUM.
3622         Check whether it is possible to operate directly on the encodings
3623         of stepped inputs.
3624
3625 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3626
3627         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
3628         new_unary_operation, operating only on the encoded elements.
3629         (const_unop): Likewise.
3630         (exact_inverse): Likewise.
3631         (distributes_over_addition_p): New function.
3632         (const_binop): Use tree_vector_builder and new_unary_operation
3633         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
3634         on the encoded elements unless the encoding is strided and the
3635         operation does not distribute over addition.
3636         (fold_convert_const):  Use tree_vector_builder and
3637         new_unary_operation.  Operate only on the encoded elements
3638         for truncating integer conversions, or for non-stepped encodings.
3639
3640 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3641
3642         * config/sparc/sparc.c: Include tree-vector-builder.h.
3643         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
3644         * expmed.c: Include tree-vector-builder.h.
3645         (make_tree): Use tree_vector_builder instead of build_vector.
3646         * fold-const.c: Include tree-vector-builder.h.
3647         (const_binop): Use tree_vector_builder instead of build_vector.
3648         (const_unop): Likewise.
3649         (native_interpret_vector): Likewise.
3650         (fold_vec_perm): Likewise.
3651         (fold_ternary_loc): Likewise.
3652         * gimple-fold.c: Include tree-vector-builder.h.
3653         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
3654         of build_vector.
3655         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
3656         (simplify_vector_constructor): Use tree_vector_builder instead
3657         of build_vector.
3658         * tree-vect-generic.c: Include tree-vector-builder.h.
3659         (add_rshift): Use tree_vector_builder instead of build_vector.
3660         (expand_vector_divmod): Likewise.
3661         (optimize_vector_constructor): Likewise.
3662         * tree-vect-loop.c: Include tree-vector-builder.h.
3663         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
3664         of build_vector.  Explicitly use a stepped encoding for
3665         { 1, 2, 3, ... }.
3666         * tree-vect-slp.c: Include tree-vector-builder.h.
3667         (vect_get_constant_vectors): Use tree_vector_builder instead
3668         of build_vector.
3669         (vect_transform_slp_perm_load): Likewise.
3670         (vect_schedule_slp_instance): Likewise.
3671         * tree-vect-stmts.c: Include tree-vector-builder.h.
3672         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
3673         (vect_gen_perm_mask_any): Likewise.
3674         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
3675         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
3676         of build_vector.
3677         (build_vector_from_val): Likewise.  Explicitly use a duplicate
3678         encoding.
3679
3680 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
3681
3682         * doc/generic.texi (VECTOR_CST): Describe new representation of
3683         vector constants.
3684         * vector-builder.h: New file.
3685         * tree-vector-builder.h: Likewise.
3686         * tree-vector-builder.c: Likewise.
3687         * Makefile.in (OBJS): Add tree-vector-builder.o.
3688         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
3689         * tree-core.h (tree_base): Add a vector_cst field to the u union.
3690         (tree_vector): Change the number of elements to
3691         vector_cst_encoded_nelts.
3692         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
3693         (VECTOR_CST_ELTS): Delete.
3694         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
3695         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
3696         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
3697         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
3698         (VECTOR_CST_ENCODED_ELT): Likewise.
3699         (vector_cst_encoded_nelts): New function.
3700         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3701         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3702         (vector_cst_int_elt, vector_cst_elt): Declare.
3703         * tree.c: Include tree-vector-builder.h.
3704         (tree_code_size): Abort if passed VECTOR_CST.
3705         (tree_size): Update for new VECTOR_CST layout.
3706         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3707         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3708         (build_vector): Use tree_vector_builder.
3709         (vector_cst_int_elt, vector_cst_elt): New functions.
3710         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
3711         encoded elements and then create the vector in the canonical form.
3712         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
3713         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
3714         (tree_c_tests): Call test_vector_cst_patterns.
3715         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
3716         VECTOR_CST fields.
3717         (hash_tree): Likewise.
3718         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
3719         (streamer_write_tree_header): Likewise.
3720         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
3721         (streamer_alloc_tree): Likewise.  Update call to make_vector.
3722         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
3723
3724 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3725
3726         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
3727         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
3728         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
3729
3730 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
3731             Richard Biener  <rguenther@suse.de>
3732
3733         PR tree-optimization/81303
3734         * Makefile.in (gimple-loop-interchange.o): New object file.
3735         * common.opt (floop-interchange): Reuse the option from graphite.
3736         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
3737         -floop-interchange and mention it for -O3.
3738         * opts.c (default_options_table): Enable -floop-interchange at -O3.
3739         * gimple-loop-interchange.cc: New file.
3740         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
3741         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
3742         * passes.def (pass_linterchange): New pass.
3743         * timevar.def (TV_LINTERCHANGE): New time var.
3744         * tree-pass.h (make_pass_linterchange): New declaration.
3745         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
3746         interchange.  Record IV before/after increment in new parameters.
3747         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
3748         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
3749         path check into...
3750         (check_reduction_path): ...New function here.
3751         * tree-vectorizer.h (check_reduction_path): New declaration.
3752
3753 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
3754
3755         PR target/83252
3756         PR rtl-optimization/80818
3757         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
3758         always early clobbered.
3759         * lra-lives.c (process_bb_lives): Check input hard regs for early
3760         clobbered non-operand hard reg.
3761
3762 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
3763
3764         PR middle-end/83164
3765         * tree-cfg.c (verify_gimple_assign_binary): Don't require
3766         types_compatible_p, just that TYPE_MODE is the same.
3767
3768 2017-12-07  Martin Sebor  <msebor@redhat.com>
3769
3770         PR c/81544
3771         * attribs.c (empty_attribute_table): Initialize new member of
3772         struct attribute_spec.
3773         (decl_attributes): Add argument.  Handle mutually exclusive
3774         combinations of attributes.
3775         (selftests::test_attribute_exclusions): New function.
3776         (selftests::attribute_c_tests): Ditto.
3777         * attribs.h (decl_attributes): Add default argument.
3778         * selftest.h (attribute_c_tests): Declare.
3779         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
3780         * tree-core.h (attribute_spec::exclusions, exclude): New type and
3781         member.
3782         * doc/extend.texi (Common Function Attributes): Update const and pure.
3783         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
3784         of struct attribute_spec.
3785         * config/arc/arc.c (arc_attribute_table): Same.
3786         * config/arm/arm.c (arm_attribute_table): Same.
3787         * config/avr/avr.c ( avr_attribute_table): Same.
3788         * config/bfin/bfin.c (bfin_attribute_table): Same.
3789         * config/cr16/cr16.c (cr16_attribute_table): Same.
3790         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
3791         * config/h8300/h8300.c (h8300_attribute_table): Same.
3792         * config/i386/i386.c (ix86_attribute_table): Same.
3793         * config/ia64/ia64.c (ia64_attribute_table): Same.
3794         * config/m32c/m32c.c (m32c_attribute_table): Same.
3795         * config/m32r/m32r.c (m32r_attribute_table): Same.
3796         * config/m68k/m68k.c (m68k_attribute_table): Same.
3797         * config/mcore/mcore.c (mcore_attribute_table): Same.
3798         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
3799         * config/mips/mips.c (mips_attribute_table): Same.
3800         * config/msp430/msp430.c (msp430_attribute_table): Same.
3801         * config/nds32/nds32.c (nds32_attribute_table): Same.
3802         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
3803         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
3804         * config/rl78/rl78.c (rl78__attribute_table): Same.
3805         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
3806         * onfig/rx/rx.c (rx_attribute_table): Same.
3807         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
3808         * config/sh/sh.c (sh_attribute_table): Same.
3809         * config/sparc/sparc.c (sparc_attribute_table): Same.
3810         * config/spu/spu.c (spu_attribute_table): Same.
3811         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
3812         * config/v850/v850.c (v850_attribute_table): Same.
3813         * config/visium/visium.c (visium_attribute_table): Same.
3814
3815 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
3816
3817         PR target/82641
3818         * config/arm/arm.c (INCLUDE_STRING): Define.
3819         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
3820         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
3821         and .fpu.
3822
3823 2017-12-07  Michael Matz  <matz@suse.de>
3824
3825         Add unroll and jam pass
3826
3827         * gimple-loop-jam.c: New file.
3828         * Makefile.in (OBJS): Add gimple-loop-jam.o.
3829         * common.opt (funroll-and-jam): New option.
3830         * opts.c (default_options_table): Add unroll-and-jam at -O3.
3831         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
3832         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
3833         * passes.def: Add pass_loop_jam.
3834         * timevar.def (TV_LOOP_JAM): Add.
3835         * tree-pass.h (make_pass_loop_jam): Declare.
3836         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
3837         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
3838         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
3839         to flow_loop_tree_node_add.
3840         (duplicate_subloops, copy_loops_to): Append to sibling list.
3841         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
3842         * doc/invoke.texi (-funroll-and-jam): Document new option.
3843         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
3844
3845 2017-12-07  Richard Biener  <rguenther@suse.de>
3846
3847         PR tree-optimization/83296
3848         PR tree-optimization/67769
3849         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
3850         flow sensitive info in an unrelated BB.
3851         (value_replacement): Use reset_flow_sensitive_info.
3852         (minmax_replacement): Reset flow sensitive info on the def
3853         we move.  Do not reset flow sensitive info in the whole BB
3854         we move the stmt to.
3855         (abs_replacement): Likewise.
3856
3857 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3858
3859         PR target/43871
3860         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3861         rs6000_cpu to the given -mcpu=, or to the default processor.
3862
3863 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3864
3865         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
3866         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
3867         instead of rs6000_cpu_attr.
3868         (rs6000_adjust_cost): Ditto.
3869         (is_microcoded_insn): Ditto.
3870         (rs6000_adjust_priority): Ditto.
3871         (rs6000_issue_rate): Ditto.
3872         (rs6000_use_sched_lookahead): Ditto.
3873         (rs6000_use_sched_lookahead_guard): Ditto.
3874         (rs6000_sched_reorder): Ditto.
3875         (force_new_group): Ditto.
3876         * config/rs6000/rs6000.md (cpu attribute): Ditto.
3877         (group_ending_nop): Ditto.
3878
3879 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3880
3881         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
3882         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
3883         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
3884         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
3885         appropriate.
3886         (rs6000_reassociation_width): Ditto.
3887         (rs6000_emit_epilogue): Ditto.
3888         (rs6000_adjust_cost): Ditto.
3889         (is_microcoded_insn): Ditto.
3890         (is_cracked_insn): Ditto.
3891         (rs6000_adjust_priority): Ditto.
3892         (rs6000_sched_reorder): Ditto.
3893         (rs6000_sched_reorder2): Ditto.
3894         (insn_must_be_first_in_group): Ditto.
3895         (insn_must_be_last_in_group): Ditto.
3896         (rs6000_register_move_cost): Ditto.
3897         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
3898         rs6000_cpu.
3899
3900 2017-12-07  Julia Koval  <julia.koval@intel.com>
3901
3902         * config.gcc: Add vaesintrin.h.
3903         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3904         New type.
3905         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3906         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3907         New builtins.
3908         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3909         * config/i386/immintrin.h: Include vaesintrin.h.
3910         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3911         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3912         _mm_aesdec_epi128): New intrinsics.
3913
3914 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
3915
3916         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
3917         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
3918         c-family/c-spellcheck.cc.
3919         (best_macro_match::best_macro_match): Likewise.
3920         * spellcheck-tree.h
3921         (struct edit_distance_traits<cpp_hashnode *>): Move to
3922         c-family/c-spellcheck.h.
3923         (class best_macro_match): Likewise.
3924
3925 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3926
3927         PR tree-optimization/83293
3928         * gimple-ssa-strength-reduction.c (insert_initializers): Use
3929         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
3930         might insert into empty bb.
3931
3932         PR sanitizer/81281
3933         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
3934         simplify for plus with :c added, and pointer_plus without that.
3935         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
3936         with undefined overflow and the conversion is not widening,
3937         perform negation in utype and only convert to type afterwards.
3938         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
3939         simplify for plus with :c added, and pointer_plus without that.
3940         If type is integral with undefined overflow and the conversion is
3941         not widening, perform minus in utype and only convert to type
3942         afterwards.  Move the last pointer_diff_expr simplify into the
3943         two outermost ifs.
3944
3945 2017-12-06  Martin Sebor  <msebor@redhat.com>
3946
3947         PR tree-optimization/82646
3948         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
3949         strncpy, not maxlen.
3950
3951 2017-12-06  Martin Sebor  <msebor@redhat.com>
3952
3953         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
3954         nonstring.
3955
3956         PR tree-optimization/83075
3957         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
3958         strncat/strncpy don't change length of source string.
3959
3960 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
3961
3962         Revert
3963         2017-11-29  Martin Aberg  <maberg@gaisler.com>
3964
3965         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
3966         to prevent b2bst errata sequence.
3967         (sqrtdf2_fix): Likewise.
3968
3969 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3970
3971         PR tree-optimization/81945
3972         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
3973         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
3974         to dest_cfun has orig_loop_num set, either remap it to the new
3975         loop number if the loop got moved too, or clear it.
3976
3977 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
3978
3979         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
3980         to reservation.
3981         (thunderx2t99_nothing): New insn reservation.
3982         (thunderx2t99_mrs): New insn reservation.
3983         (thunderx2t99_multiple): New insn reservation.
3984         (thunderx2t99_alu_basi): Add bfx to reservation.
3985         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
3986
3987 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3988
3989         PR target/82248
3990         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
3991
3992 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
3993
3994         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
3995         tree-ssa-pre.c::remove_dead_inserted_code.
3996         * tree-ssa-dce.h: New file.
3997         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
3998         (remove_dead_inserted_code): Move and rename to function
3999         tree-ssa-dce.c::simple_dce_from_worklist.
4000         (pass_pre::execute): Update use.
4001
4002 2017-12-05  Richard Biener  <rguenther@suse.de>
4003
4004         PR tree-optimization/83277
4005         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
4006         to code-gen liveout vars.
4007
4008 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
4009
4010         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
4011         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
4012         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
4013         split condition.
4014
4015 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
4016
4017         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
4018         function.
4019         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
4020         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
4021         ASAN is enabled.
4022
4023 2017-12-05  Richard Biener  <rguenther@suse.de>
4024
4025         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
4026         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
4027         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
4028         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
4029
4030 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4031
4032         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
4033
4034 2017-12-05  Martin Liska  <mliska@suse.cz>
4035             Jakub Jelinek  <jakub@redhat.com>
4036
4037         * doc/invoke.texi: Document the options.
4038         * flag-types.h (enum sanitize_code): Add
4039         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4040         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
4041         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4042         * opts.c: Define new sanitizer options.
4043         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
4044         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
4045
4046 2017-12-05  Julia Koval  <julia.koval@intel.com>
4047
4048         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
4049         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
4050         (ix86_handle_option): Handle -mavx512vnni.
4051         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
4052         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
4053         * config/i386/i386-c (__AVX512VNNI__): New.
4054         * config/i386/i386.c (ix86_target_string): Handle new option.
4055         (ix86_valid_target_attribute_inner_p): Handle new option.
4056         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
4057         * config/i386/i386.opt (mavx512vnni): New option.
4058
4059 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4060
4061         PR target/81616
4062         * athlon.md: Disable for generic.
4063         * haswell.md: Enable for generic.
4064         * i386.c (ix86_sched_init_global): Add core hooks for generic.
4065         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
4066         to 4.
4067         (ix86_adjust_cost): Move generic to haswell path.
4068
4069 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
4070
4071         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
4072         instead of MEM_P in a couple more places.  Fix formatting issues.
4073
4074 2017-12-04  Jim Wilson  <jimw@sifive.com>
4075
4076         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
4077         instead of GP_REG_LAST-1.
4078         (riscv_adjust_libcall_cfi_prologue): Likewise.
4079         (riscv_adjust_libcall_cri_epilogue): Likewise.
4080         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
4081         comment.
4082
4083 2017-12-04  Luis Machado  <luis.machado@linaro.org>
4084
4085         * ipa-pure-const.c (check_decl): Add missing newline.
4086         (state_from_flags): Likewise.
4087
4088 2017-12-04  Jeff Law  <law@redhat.com>
4089
4090         PR tree-optimizatin/78496
4091         * gimple-ssa-evrp-analyze.h
4092         (evrp_range_analyzer::get_vr_values): Simplify.
4093         * gimple-ssa-evrp-analyze.c: Corresponding changes.
4094         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
4095         and gimple-ssa-evrp-analyze.h.
4096         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
4097         (simplify_stmt_for_jump_threading): Copy a blob of code from
4098         tree-vrp.c to use ranges to simplify statements.
4099         (dom_opt_dom_walker::before_dom_children): Call
4100         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
4101         (dom_opt_dom_walker::after_dom_children): Similarly for
4102         evrp_range_analyzer::leave.
4103         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
4104         conditionals.
4105
4106         * gimple-ssa-evrp-analyze.c
4107         (evrp_range_analyzer::extract_range_from_stmt):  Always use
4108         vr_values::update_value_range so preexisting range info is
4109         medged with new range info, even if the new range is VR_VARYING.
4110
4111 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4112
4113         * combine.c: Adjust comment.
4114         (use_crosses_set_p): Delete.
4115         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
4116         (try_combine): Ditto.
4117
4118 2017-12-04  Richard Biener  <rguenther@suse.de>
4119
4120         PR tree-optimization/83255
4121         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
4122         Re-add zero-iteration check.
4123
4124 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4125
4126         PR rtl-optimization/83245
4127         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
4128         hard registers as earlyclobber, also if not in an asm.
4129
4130 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4131
4132         PR bootstrap/83265
4133         Revert
4134         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4135
4136         PR target/43871
4137         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4138         rs6000_cpu based on cpu_index, not tune_index.
4139
4140 2017-12-04  Richard Biener  <rguenther@suse.de>
4141
4142         PR tree-optimization/83238
4143         * graphite-scop-detection.c (scop_detection::merge_sese): Make
4144         code match comment, rejecting invalid SESE regions.
4145
4146 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
4147
4148         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
4149         require base operand is a REG_POINTER prior to reload on targets
4150         with non-equivalent space registers.
4151
4152 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4153
4154         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
4155         (update_specialized_profile): Fix updating of counts.
4156         (perhaps_add_new_callers): Likewise.
4157
4158 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4159
4160         PR target/81616
4161         * x86-tune.def: Remove obsolette FIXMEs.
4162         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
4163         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
4164         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
4165         Enable for generic.
4166         (X86_TUNE_PAD_RETURNS): Disable for generic.
4167
4168 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
4169
4170         PR tree-optimization/83170
4171         PR tree-optimization/83241
4172         * gimple-ssa-store-merging.c
4173         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
4174         gimple_vuse (ins_stmt) in case it has changed.
4175         (imm_store_chain_info::output_merged_store): Likewise.
4176
4177         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
4178         POINTER_DIFF_EXPR.
4179
4180         PR c++/81212
4181         * tree-cfg.c (pass_warn_function_return::execute): Handle
4182         __builtin_ubsan_handle_missing_return like __builtin_unreachable
4183         with BUILTINS_LOCATION.
4184
4185         PR target/78643
4186         PR target/80583
4187         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
4188         is BLKmode for vector field with vector raw mode, use TYPE_MODE
4189         instead of DECL_MODE.
4190
4191         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
4192         last argument to rtx pointer.
4193         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
4194         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
4195         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
4196         depending on the chosen ISAs.
4197         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
4198         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
4199         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
4200         callers.
4201         * config/i386/sse.md (mov<mode>_internal): Likewise.
4202         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
4203
4204 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4205
4206         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
4207
4208 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4209
4210         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
4211         parameters from prototype.
4212         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
4213         parameters.  Don't print a comment.
4214         (emit_fusion_gpr_load): Adjust.
4215         (emit_fusion_load_store): Adjust.
4216         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
4217         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
4218         comment on the second line.
4219
4220 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4221
4222         PR target/43871
4223         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4224         rs6000_cpu based on cpu_index, not tune_index.
4225
4226 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4227
4228         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
4229         which_alternative instead of which_alternative + 1.
4230         (output_asm_insn): Print an extra tab if the template is short.
4231
4232 2017-12-01  Jim Wilson  <jimw@sifive.com>
4233
4234         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
4235         comment.
4236         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
4237         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
4238         reference.
4239         * doc/tm.texi: Regenerate.
4240
4241 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
4242
4243         PR target/81959
4244         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
4245         whether we can allocate pseudos before trying to fix an address.
4246         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
4247         memory address is indexed or indirect.
4248         (floatuns_<mode>si2_hw2): Likewise.
4249
4250 2017-12-01  Jason Merrill  <jason@redhat.com>
4251
4252         * Makefile.in (TAGS): Add c-family/*.cc.
4253
4254 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
4255
4256         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
4257         (call_value_insn): Likewise.
4258         (sibcall_insn): Likewise.
4259         (sibcall_value_insn): Likewise.
4260         (movsi_aarch64): Likewise.
4261         (movdi_aarch64): Likewise.
4262         (add_losym_): Likewise.
4263         (ldr_got_small_): Likewise.
4264         (ldr_got_small_sidi): Likewise.
4265         (ldr_got_small_28k_): Likewise.
4266         (ldr_got_small_28k_sidi): Likewise.
4267         * config/aarch64/aarch64.c (aarch64_print_address_internal):
4268         Move output_addr_const to symbolic case. Add error check.
4269
4270 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4271
4272         * config/s390/predicates.md (plus16_Q_operand): New predicate.
4273         * config/s390/s390.md: Disable MVC merging peephole if it would
4274         disable operand forwarding.
4275         (new peephole2): Split MVCs if it would turn them into up to 2
4276         forwardable MVCs.
4277
4278 2017-12-01  Richard Biener  <rguenther@suse.de>
4279
4280         PR tree-optimization/83232
4281         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
4282         detection of same access. Instead of breaking the group here
4283         do not consider the duplicate.  Add comment explaining real fix.
4284
4285 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
4286
4287         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
4288
4289 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
4290
4291         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
4292
4293 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
4294
4295         * function.h (struct function): Remove cilk_frame_decl,
4296         is_cilk_function and calls_cilk_spawn fields.
4297         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
4298         field.
4299         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
4300         cilk_elemental field.
4301         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
4302         * target.def: Adjust comment.
4303         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4304         Don't test cilk_elemental.
4305
4306         PR tree-optimization/83233
4307         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
4308         bswap_stat name for the struct.
4309
4310         PR c/79153
4311         * tree.h (SWITCH_BREAK_LABEL_P): Define.
4312         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
4313         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
4314         SWITCH_BREAK_LABEL_P set on the label.
4315         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
4316         added for default case if it was missing and not all cases covered.
4317         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
4318         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
4319         set on the label.
4320         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
4321         to avoid -Wimplicit-fallthrough warning.
4322         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
4323         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
4324
4325         PR tree-optimization/83221
4326         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
4327         down by 16.
4328         (init_reassoc): Formatting fix.
4329
4330         PR sanitizer/81275
4331         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
4332         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
4333         is diagnosed.
4334
4335         PR sanitizer/83219
4336         * tree-cfg.c: Include asan.h.
4337         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
4338
4339 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4340
4341         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
4342
4343 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4344
4345         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
4346         vpcmpeqd instruction.
4347
4348 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4349
4350         * config/i386/i386.c (standard_sse_constant_opcode): Fix
4351         registers type for 128bit mode.
4352
4353 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4354
4355         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
4356         of ;;.
4357         * gengtype-state.c (read_state_pair): Likewise.
4358         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
4359         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
4360         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
4361         * ifcvt.c (noce_try_store_flag_constants): Likewise.
4362         * tree-ssa-ccp.c (ccp_finalize): Likewise.
4363         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
4364         * builtins.c (fold_builtin_3): Likewise.
4365         * graphite-scop-detection.c
4366         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
4367         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
4368         Likewise.
4369
4370 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
4371
4372         PR sanitizer/81697
4373         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
4374         parameter. Return true if ignore_decl_rtl_set_p is true and other
4375         conditions are satisfied.
4376         * asan.h (asan_protect_global): Add new parameter.
4377         * varasm.c (categorize_decl_for_section): Pass true as second parameter
4378         to asan_protect_global calls.
4379
4380 2017-11-30  Jim Wilson  <jimw@sifive.com>
4381
4382         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
4383         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
4384         -mstrict-align, add info on default value.  Delete redundant lines for
4385         -mabi.  Add missing -mexplicit-relocs docs.
4386
4387 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4388
4389         * config/arc/arc.md (trap): New pattern.
4390
4391 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4392
4393         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
4394         instruction to end into a delay slot.
4395         * config/arc/arc.md (cond_delay_insn): Check if the instruction
4396         can be placed into a delay slot against reg_note.
4397
4398 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4399
4400         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
4401         labels number of usages.
4402
4403 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4404
4405         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
4406         function.
4407         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
4408
4409 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4410
4411         PR target/83210
4412         * internal-fn.c (expand_mul_overflow): Optimize unsigned
4413         multiplication by power of 2 constant into two shifts + comparison.
4414
4415 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
4416
4417         PR target/81616
4418         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
4419
4420 2017-11-30  Richard Biener  <rguenther@suse.de>
4421
4422         PR tree-optimization/83202
4423         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
4424         allow_peel argument and guard peeling.
4425         (canonicalize_loop_induction_variables): Likewise.
4426         (canonicalize_induction_variables): Pass false.
4427         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
4428         peeling from cunrolli.
4429
4430 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4431
4432         * combine.c (try_combine): Print a message to dump file whenever
4433         I0, I1, or I2 cannot be combined into I3.
4434
4435 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4436
4437         PR rtl-optimization/83156
4438         PR rtl-optimization/82621
4439         * combine.c (try_combine): Don't split an I2 if one of the dests is
4440         set again before I3.  Allow unused dests.
4441
4442 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4443
4444         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
4445
4446 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
4447
4448         PR rtl-optimization/80818
4449         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
4450         recursively.  Use insn code for clobber.
4451         (lra_set_insn_recog_data): Pass the new arg to
4452         collect_non_operand_hard_regs.
4453         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
4454         code for clobber.
4455         (lra_update_insn_regno_info): Pass insn to
4456         add_regs_to_insn_regno_info.
4457
4458 2017-11-29  Jim Wilson  <jimw@sifive.com>
4459             Andrew Waterman  <andrew@sifive.com>
4460
4461         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
4462         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
4463         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
4464         use SINGLE_SHIFT_COST.
4465         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
4466         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
4467
4468 2017-11-29  Julia Koval  <julia.koval@intel.com>
4469
4470         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
4471         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
4472         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
4473         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
4474         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
4475         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
4476         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
4477         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
4478         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
4479         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
4480         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
4481         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
4482         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
4483         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
4484         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
4485         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
4486         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
4487         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
4488         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
4489         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
4490         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
4491         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
4492         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
4493         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
4494         __builtin_ia32_vpshldv_v2di_mask,
4495         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
4496         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
4497         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
4498
4499 2017-11-29  Julia Koval  <julia.koval@intel.com>
4500
4501         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
4502         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
4503         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
4504         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
4505         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
4506         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
4507         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
4508         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
4509         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
4510         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
4511         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
4512         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
4513         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
4514         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
4515         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
4516         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
4517         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
4518         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
4519         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4520         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
4521         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
4522
4523 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4524
4525         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
4526         movsi_pic_gotdata_op instruction as a load for the UT699 errata
4527         workaround.
4528
4529 2017-11-29  Martin Aberg  <maberg@gaisler.com>
4530
4531         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4532         to prevent b2bst errata sequence.
4533         (sqrtdf2_fix): Likewise.
4534
4535 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4536
4537         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
4538         (div_sqrt_insn_p): New function.
4539         (sparc_do_work_around_errata): Insert NOP instructions to
4540         prevent sequences that could trigger the TN-0013 errata for
4541         certain LEON3 processors.
4542         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
4543         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
4544         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
4545         (in_branch_delay): Prevent div and sqrt in delay slot if
4546         fix_lost_divsqrt.
4547         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
4548
4549 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4550
4551         * config/sparc/sparc.c (atomic_insn_p): New function.
4552         (sparc_do_work_around_errata): Insert NOP instructions to
4553         prevent sequences that could trigger the TN-0010 errata for
4554         UT700.
4555         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
4556         instruction referable in atomic_insns_p.
4557
4558 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4559
4560         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
4561         (atomic_compare_and_swap_leon3_1): Likewise.
4562         (ldstub): Likewise.
4563
4564 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4565
4566         * config/sparc/sparc.c (fpop_insn_p): New function.
4567         (sparc_do_work_around_errata): Insert NOP instructions to
4568         prevent sequences that could trigger the TN-0012 errata for
4569         GR712RC.
4570         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
4571         * config/sparc/sparc.md (fix_gr712rc): New attribute.
4572         (in_branch_annul_delay): Prevent floating-point instructions
4573         in delay slot of annulled integer branch.
4574
4575 2017-11-29  Richard Biener  <rguenther@suse.de>
4576
4577         PR tree-optimization/83202
4578         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
4579         (bst_fail): Use it.
4580         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
4581         nodes vectorized to the same stmts multiple times.
4582         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
4583         (vect_analyze_slp_instance): Adjust.
4584         (scalar_stmts_to_slp_tree_map_t): New typedef.
4585         (vect_schedule_slp_instance): Add a map recording the SLP node
4586         representing the vectorized stmts for a set of scalar stmts.
4587         Avoid code-generating redundancies.
4588         (vect_schedule_slp): Allocate map and pass it down.
4589
4590 2017-11-29  Nathan Sidwell  <nathan@acm.org>
4591
4592         PR c++/83187
4593         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
4594         type if it is new.
4595
4596 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
4597
4598         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
4599         cases for printing LDP/STP memory addresses.
4600         (aarch64_print_address_internal): Renamed from
4601         aarch64_print_operand_address, added parameter, add Pmode check.
4602         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
4603         (aarch64_print_operand_address): Indirect to
4604         aarch64_print_address_internal.
4605         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
4606         'y' operand output specifier.
4607
4608 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
4609
4610         PR middle-end/83185
4611         * tree.c (build_simple_mem_ref_loc): Handle
4612         get_addr_base_and_unit_offset returning a MEM_REF.
4613
4614         PR middle-end/80929
4615         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
4616
4617         PR target/80819
4618         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
4619         alternative.
4620
4621 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
4622
4623         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
4624         m_x_offset.
4625         (layout::move_to_column): Likewise.
4626
4627 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4628
4629         PR sanitizer/81275
4630         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
4631         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
4632
4633 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4634             Martin Jambor  <mjambor@suse.cz>
4635
4636         PR ipa/82808
4637         * tree.h (expr_type_first_operand_type_p): Declare
4638         * tree.c (expr_type_first_operand_type_p): New function.
4639         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
4640         (ipa_value_from_jfunc): Adjust declaration.
4641         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
4642         Use it as result type for arithmetics, unless it is NULL in which case
4643         be more conservative.
4644         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
4645         ipa_get_jf_pass_through_result.
4646         (propagate_vals_across_pass_through): Likewise.
4647         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
4648         is to propagate_vals_across_pass_through.
4649         (propagate_constants_across_call): Pass PARM_TYPE to
4650         propagate_scalar_across_jump_function.
4651         (find_more_scalar_values_for_callers_subset): Pass parameter type to
4652         ipa_value_from_jfunc.
4653         (cgraph_edge_brings_all_scalars_for_node): Likewise.
4654         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
4655         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
4656         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
4657         target_type, pass it to ipa_value_from_jfunc.
4658         (update_indirect_edges_after_inlining): Pass parameter type to
4659         try_make_edge_direct_simple_call.
4660
4661 2017-11-28  Jeff Law  <law@redhat.com>
4662
4663         * gimple-ssa-evrp-analyze.c
4664         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
4665         refine ranges if scev_initialized_p returns true.
4666         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
4667
4668 2017-11-28  Julia Koval  <julia.koval@intel.com>
4669
4670         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
4671         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
4672         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
4673         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
4674         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
4675         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
4676         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
4677         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
4678         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
4679         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
4680         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
4681         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
4682         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
4683         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
4684         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
4685         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
4686         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
4687         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
4688         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
4689         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
4690         __builtin_ia32_vpshrd_v2di_mask): New builtins.
4691         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
4692
4693 2017-11-28  Julia Koval  <julia.koval@intel.com>
4694
4695         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
4696         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
4697         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
4698         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
4699         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
4700         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
4701         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
4702         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
4703         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
4704         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
4705         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
4706         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
4707         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
4708         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
4709         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
4710         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
4711         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
4712         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
4713         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
4714         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
4715         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
4716         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
4717         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
4718         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
4719         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
4720         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
4721         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
4722         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
4723         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
4724         __builtin_ia32_vpshld_v2di_mask): New builtins.
4725         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4726         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
4727
4728 2017-11-28  Richard Biener  <rguenther@suse.de>
4729
4730         PR tree-optimization/80776
4731         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
4732         Declare.
4733         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
4734         New function.
4735         (evrp_range_analyzer::record_ranges_from_incoming_edges):
4736         If the incoming edge is an effective fallthru because the other
4737         edge only reaches a __builtin_unreachable () then record ranges
4738         derived from the controlling condition in SSA info.
4739         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
4740         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4741
4742 2017-11-28  Olivier Hainque  <hainque@adacore.com>
4743
4744         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
4745         on mingw build hosts.
4746
4747 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4748
4749         PR debug/81307
4750         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
4751
4752 2017-11-28  Richard Biener  <rguenther@suse.de>
4753
4754         PR middle-end/83141
4755         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
4756         copies generated from memcpy use a character array as reference
4757         type.
4758
4759 2017-11-28  Julia Koval  <julia.koval@intel.com>
4760             Sebastian Peryt  <sebastian.peryt@intel.com>
4761
4762         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
4763         c-family/c-cilkplus.o, c-family/array-notation-common.o,
4764         cilk-common.o, cilk.h, cilk-common.c): Remove.
4765         * builtin-types.def
4766         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
4767         * builtins.c (is_builtin_name): Remove cilkplus condition.
4768         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
4769         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
4770         cilk-builtins.def, cilkplus.def): Remove.
4771         * cif-code.def (CILK_SPAWN): Remove.
4772         * cilk-builtins.def: Delete.
4773         * cilk-common.c: Ditto.
4774         * cilk.h: Ditto.
4775         * cilkplus.def: Ditto.
4776         * config/darwin.h (fcilkplus): Delete.
4777         * cppbuiltin.c: Ditto.
4778         * doc/extend.texi: Remove cilkplus doc.
4779         * doc/generic.texi: Ditto.
4780         * doc/invoke.texi: Ditto.
4781         * doc/passes.texi: Ditto.
4782         * gcc.c (fcilkplus): Remove.
4783         * gengtype.c (cilk.h): Remove.
4784         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
4785         support.
4786         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
4787         Remove.
4788         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
4789         gimplify_call_expr,
4790         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
4791         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
4792         cilkplus conditions.
4793         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
4794         inline_read_section): Ditto.
4795         * ipa-inline-analysis.c (cilk.h): Remove.
4796         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
4797         * lto-wrapper.c (merge_and_complain, append_compiler_options,
4798         append_linker_options): Remove condition for fcilkplus.
4799         * lto/lto-lang.c (cilk.h): Remove.
4800         (lto_init): Remove condition for fcilkplus.
4801         * omp-expand.c (expand_cilk_for_call): Delete.
4802         (expand_omp_taskreg, expand_omp_for_static_chunk,
4803         expand_omp_for): Remove cilkplus
4804         conditions.
4805         (expand_cilk_for): Delete.
4806         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
4807         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
4808         execute_lower_omp, diagnose_sb_0): Ditto.
4809         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
4810         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4811         * tree-nested.c: Ditto.
4812         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
4813         (dump_generic_node): Ditto.
4814         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4815         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
4816         Delete.
4817         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
4818
4819 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4820
4821         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
4822         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
4823         for vector mode and !TARGET_SIMD.
4824
4825 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4826
4827         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
4828         Adjust comment.
4829         * tree.h (SWITCH_LABELS): Remove.
4830         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
4831         assert SWITCH_BODY is non-NULL.
4832         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
4833         handling.
4834         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
4835
4836         PR tree-optimization/80788
4837         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
4838         has TREE_OVERFLOW set, call drop_tree_overflow.
4839
4840 2017-11-28  Richard Biener  <rguenther@suse.de>
4841
4842         PR tree-optimization/83158
4843         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
4844
4845 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
4846
4847         PR 81288/target
4848         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
4849         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
4850
4851 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
4852
4853         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
4854         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
4855
4856 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
4857
4858         PR middle_end/82333
4859         * varasm.c (compare_constant): Take the mode of the constants into
4860         account when comparing floating point constants.
4861
4862 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
4863
4864         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
4865         from explicit instantiation of debug_helper.
4866         * vec.h (DEFINE_DEBUG_VEC): Ditto.
4867
4868 2017-11-27  Richard Biener  <rguenther@suse.de>
4869
4870         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
4871         refactor a bit.
4872
4873 2017-11-27  Richard Biener  <rguenther@suse.de>
4874
4875         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
4876         (type_hash_canon): Also clear int_cst_hash_table entry for
4877         TYPE_MIN/MAX_VALUE.
4878         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
4879
4880 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
4881
4882         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4883         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4884         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4885
4886 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4887
4888         * hash-map.h (gt_cleare_cache): Avoid UB.
4889
4890 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
4891
4892         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
4893         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
4894         (decide_unroll_runtime_iterations): Likewise.
4895         (decide_unroll_stupid): Likewise.
4896
4897 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4898
4899         PR target/83109
4900         * config/i386/i386.md: Add a loop with incssp.
4901
4902 2017-11-27  Martin Jambor  <mjambor@suse.cz>
4903
4904         PR tree-optimization/81248
4905         * tree-sra.c (splice_param_accesses): Remove size check.
4906         (decide_one_param_reduction): Fix size check.
4907         * gimple-pretty-print.c (dump_profile): Silence warning.
4908         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
4909
4910 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
4911
4912         PR debug/81307
4913         * dbxout.c (lastlineno): New variable.
4914         (dbx_debug_hooks): Use dbxout_switch_text_section as
4915         switch_text_section debug hook.
4916         (dbxout_function_end): Switch to current_function_section
4917         rather than function_section.  If crtl->has_bb_partition,
4918         output just one N_FUN, depending on in_cold_section_p.
4919         (dbxout_source_line): Remember last lineno in lastlineno.
4920         (dbxout_switch_text_section): New function.
4921         (dbxout_function_decl): Adjust dbxout_block caller.
4922         (dbx_block_with_cold_children): New function.
4923         (dbxout_block): Return true if any LBRAC/RBRAC have been
4924         emitted.  Use dbx_block_with_cold_children at depth == 0
4925         in second partition.  Add PARENT_BLOCKNUM argument, pass
4926         it optionally adjusted to children.  Output LBRAC/RBRAC
4927         around recursive call only if the block is in the current
4928         partition, if not and anything was output, emit empty
4929         range LBRAC/RBRAC.
4930         * final.c (final_scan_insn): Compute cold_function_name
4931         before calling switch_text_section debug hook.  Call
4932         that hook even if dwarf2out_do_frame if not emitting
4933         dwarf debug info.
4934
4935         PR target/83100
4936         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
4937         TREE_READONLY decls.
4938
4939 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4940
4941         PR rtl-optimization/82488
4942         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
4943
4944 2017-11-26  Julia Koval  <julia.koval@intel.com>
4945
4946         * config/i386/i386.c (processor_target_table): Add skylake_cost for
4947         skylake-avx512.
4948         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
4949         skylake_cost): New.
4950
4951 2017-11-26  Julia Koval  <julia.koval@intel.com>
4952
4953         * config/i386/driver-i386.c (host_detect_local_cpu):
4954         Detect skylake-avx512.
4955
4956 2017-11-26  Julia Koval  <julia.koval@intel.com>
4957
4958         * config.gcc: Add -march=cannonlake.
4959         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
4960         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
4961         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
4962         (PTA_CANNONLAKE): New.
4963         (processor_target_table): Add cannonlake.
4964         (ix86_option_override_internal): Ditto.
4965         (fold_builtin_cpu): Ditto.
4966         (get_builtin_code_for_version): Handle cannonlake.
4967         (M_INTEL_COREI7_CANNONLAKE): New.
4968         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
4969         * doc/invoke.texi: Add -march=cannonlake.
4970
4971 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
4972
4973         * plugin.c (add_new_plugin): Use platform-specific library extensions.
4974         (try_init_one_plugin): Alternative implementation for MinGW.
4975         * Makefile.in (plugin_implib): New.
4976         (gengtype-lex.c): Fix broken AIX workaround.
4977         * configure: Regenerate.
4978         * doc/plugins.texi: Document support for MinGW.
4979
4980 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
4981
4982         PR rtl-optimization/81553
4983         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
4984         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
4985         is a shift where C1 has different mode than the whole shift, use C1's
4986         mode for MULT rather than the shift's mode.
4987
4988         PR target/82848
4989         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
4990         builtins not enabled in the currently selected ISA.
4991
4992 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
4993
4994         PR tree-optimization/71026
4995         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
4996         (insert_reciprocals): Change to insert reciprocals before a division
4997         by a square and to insert the square of a reciprocal.
4998         (execute_cse_reciprocals_1): Change to consider division by a square.
4999         (register_division_in): Add importance parameter.
5000
5001 2017-11-24  Richard Biener  <rguenther@suse.de>
5002
5003         PR tree-optimization/82402
5004         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
5005         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
5006
5007 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
5008
5009         * match.pd (0-ptr): New transformation.
5010
5011 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
5012
5013         PR bootstrap/83015
5014         * ipa-inline.c (inline_small_functions): Set current badnes correctly
5015         when skipping checking.
5016
5017 2017-11-24  Richard Biener  <rguenther@suse.de>
5018
5019         PR tree-optimization/83128
5020         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
5021         (vn_reference_lookup_3): Likewise.
5022
5023 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
5024
5025         PR sanitizer/83014
5026         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
5027         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
5028         tree_to_uhwi twice.
5029
5030         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
5031         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
5032         check for the latter with gimple_call_builtin_p.  Do not handle
5033         BUILT_IN_STPNCPY_CHK which is not a pass through call.
5034
5035 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
5036
5037         * config/arm/arm_neon.h: Fix pragma GCC push_options before
5038         vdot_u32.
5039
5040 2017-11-23  Julia Koval  <julia.koval@intel.com>
5041
5042         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
5043         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
5044         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
5045         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
5046         _mm512_maskz_expandloadu_epi16): New intrinsics.
5047         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
5048         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
5049         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
5050         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
5051         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
5052         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
5053         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
5054         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
5055         _mm256_maskz_expandloadu_epi8): New intrinsics.
5056         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
5057         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
5058         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
5059         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
5060         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
5061         * config/i386/sse.md (VI248_VLBW): New iterator.
5062         (expand<mode>_mask, expand<mode>_maskz): New patterns.
5063
5064 2017-11-23  Julia Koval  <julia.koval@intel.com>
5065
5066         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
5067         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
5068         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
5069         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
5070         _mm512_mask_compressstoreu_epi16): New.
5071         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
5072         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
5073         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
5074         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
5075         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
5076         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
5077         _mm256_mask_compressstoreu_epi8): New.
5078         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
5079         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
5080         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
5081         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
5082         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
5083         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
5084         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
5085         __builtin_ia32_compresshi128_mask,
5086         __builtin_ia32_compressstoreuqi512_mask,
5087         __builtin_ia32_compressstoreuhi512_mask,
5088         __builtin_ia32_compressstoreuqi256_mask,
5089         __builtin_ia32_compressstoreuqi128_mask,
5090         __builtin_ia32_compressstoreuhi256_mask,
5091         __builtin_ia32_compressstoreuhi128_mask): New builtins.
5092         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
5093         array for flags2.
5094         (ix86_expand_special_args_builtin): Handle new types.
5095         (s4fma_expand): Handle new builtin array.
5096         * config/i386/immintrin.h: Include new headers.
5097         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
5098         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
5099
5100 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5101
5102         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
5103         fixes.  Declare temp and g variables at the top in order to avoid
5104         {} in most of the cases.
5105
5106 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
5107
5108         * match.pd (ptr-0): New transformation.
5109
5110 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5111
5112         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
5113         (struct addr_mode_cost_table): New.
5114         (struct tune_params): Add field addr_mode_costs.
5115         * config/arm/arm.c (generic_addr_mode_costs): New.
5116         (arm_slowmul_tune): Initialise addr_mode_costs field.
5117         (arm_fastmul_tune): Likewise.
5118         (arm_strongarm_tune): Likewise.
5119         (arm_xscale_tune): Likewise.
5120         (arm_9e_tune): Likewise.
5121         (arm_marvell_pj4_tune): Likewise.
5122         (arm_v6t2_tune): Likewise.
5123         (arm_cortex_tune): Likewise.
5124         (arm_cortex_a8_tune): Likewise.
5125         (arm_cortex_a7_tune): Likewise.
5126         (arm_cortex_a15_tune): Likewise.
5127         (arm_cortex_a35_tune): Likewise.
5128         (arm_cortex_a53_tune): Likewise.
5129         (arm_cortex_a57_tune): Likewise.
5130         (arm_exynosm1_tune): Likewise.
5131         (arm_xgene1_tune): Likewise.
5132         (arm_cortex_a5_tune): Likewise.
5133         (arm_cortex_a9_tune): Likewise.
5134         (arm_cortex_a12_tune): Likewise.
5135         (arm_cortex_a73_tune): Likewise.
5136         (arm_v7m_tune): Likewise.
5137         (arm_cortex_m7_tune): Likewise.
5138         (arm_v6m_tune): Likewise.
5139         (arm_fa726te_tune): Likewise.
5140         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
5141
5142 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5143
5144         * config/arm/arm.c (arm_mem_costs): New function.
5145         (arm_rtx_costs_internal): Use arm_mem_costs.
5146
5147 2017-11-23  Mark Wielaard  <mark@klomp.org>
5148
5149         * dwarf2out.c (init_sections_and_labels): Use generation to create
5150         unique ranges_section_label and ranges_base_label. Return generation.
5151         (output_rnglists): Add generation argument. Use generation to create
5152         unique ranges labels.
5153         (dwarf2out_finish): Get generation from init_sections_and_labels
5154         and pass generation to output_rnglists.
5155
5156 2017-11-23  Mike Stump  <mikestump@comcast.net>
5157             Eric Botcazou  <ebotcazou@adacore.com>
5158
5159         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
5160         * cfgloop.h (struct loop): Add unroll field.
5161         * function.h (struct function): Add has_unroll bitfield.
5162         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
5163         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
5164         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
5165         (pass_rtl_unroll_loops::gate): Likewise.
5166         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
5167         for which loop->unroll==1.
5168         (decide_unroll_constant_iterations): Use note for consistency and
5169         take loop->unroll into account.  Return early if loop->unroll is set.
5170         Fix thinko in existing test.
5171         (decide_unroll_runtime_iterations): Use note for consistency and
5172         take loop->unroll into account.
5173         (decide_unroll_stupid): Likewise.
5174         * lto-streamer-in.c (input_cfg): Read loop->unroll.
5175         * lto-streamer-out.c (output_cfg): Write loop->unroll.
5176         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
5177         New case.
5178         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
5179         (print_loop): Print loop->unroll if set.
5180         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
5181         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
5182         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
5183         New case.
5184         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
5185         loop->unroll is set and smaller than the trip count.  Otherwise bypass
5186         entirely the heuristics if loop->unroll is set.  Remove dead note.
5187         Fix off-by-one bug in other note.
5188         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
5189         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
5190         is greater than 1.
5191         (tree_unroll_loops_completely): Make static.
5192         (pass_complete_unroll::execute): Use correct type for variable.
5193         (pass_complete_unrolli::execute): Fix formatting.
5194         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
5195
5196 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5197
5198         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
5199         enable when TARGET_PREFER_AVX128 is set.
5200
5201 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5202
5203         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
5204         frequency.
5205         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
5206         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
5207
5208 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5209
5210         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
5211         frequencies. Fix estimation of aggregate parameters.
5212
5213 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5214
5215         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
5216         when inlining.
5217
5218 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5219
5220         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
5221
5222 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5223
5224         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
5225         macro.
5226
5227 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
5228
5229         PR target/83111
5230         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
5231         sibcall_value_pcrel_fdpic): Use local variable instead of
5232         operands[3].
5233         (calli_tbr_rel): Add missing operand 2.
5234         (call_valuei_tbr_rel): Add missing operand 3.
5235
5236 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5237
5238         PR middle-end/82253
5239         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
5240         bitpos/bitsize covering the whole destination, use store_expr only if
5241         the complex mode is the same.  Otherwise, use expand_normal and if
5242         it returns CONCAT, subreg each part separately instead of trying to
5243         subreg the whole result.
5244
5245 2017-11-23  Richard Biener  <rguenther@suse.de>
5246
5247         PR tree-optimization/23094
5248         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
5249         come here from walking over backedges in the first iteration.
5250         (vn_reference_lookup_3): Skip clobbers that store the same value.
5251
5252 2017-11-23  Richard Biener  <rguenther@suse.de>
5253
5254         PR tree-optimization/81403
5255         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
5256         a block we need a leader relative to.
5257         (phi_translate_1): For nary processing require a leader from
5258         get_representative_for given we run expression simplification
5259         using match-and-simplify.  Remove previous fix.
5260
5261 2017-11-22  Jeff Law  <law@redhat.com>
5262
5263         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
5264         Use new method allocate_value_range rather than accessing the
5265         vrp_value_range_pool data member directly.
5266         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
5267         to use extract_range_from_stmt method to avoid need for
5268         extract_range_from_assignment method.
5269         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
5270         method rather than setting values_propgated data member directly.
5271         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
5272         and values propagated data members and extract_range_from_assignment
5273         method.  Reorder private data members to conform to standards.
5274         Add new methods set_lattice_propagation_complete and
5275         allocate_value_range.
5276
5277 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
5278
5279         PR rtl-optimization/83030
5280         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
5281         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
5282         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
5283         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
5284         CROSSING_JUMP_P flag is already set before setting it.
5285         * cfgrtl.c (fixup_partition_crossing): Likewise.
5286         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
5287         insn as useless.
5288
5289 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5290
5291         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
5292         Handle the case where both arguments are using gen_const_vec_series.
5293
5294 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
5295
5296         PR c++/62170
5297         * pretty-print.c (pp_format): Move quoting implementation to
5298         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
5299         to pass address of "quote" local.
5300         (pp_begin_quote): New function.
5301         (pp_end_quote): New function.
5302         * pretty-print.h (printer_fn): Convert penultimate param from bool
5303         to bool *.
5304         (pp_begin_quote): New decl.
5305         (pp_end_quote): New decl.
5306         * tree-diagnostic.c (default_tree_printer): Convert penultimate
5307         param from bool to bool *.
5308         * tree-diagnostic.h (default_tree_printer): Likewise.
5309
5310 2017-11-22  Jeff Law  <law@redhat.com>
5311
5312         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
5313         Initialize vr_values.
5314         (evrp_range_analyzer::try_find_new_range): Call methods attached to
5315         vr_values via vr_values class instance rather than delegators.
5316         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
5317         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
5318         (evrp_range_analyzer::push_value_range): Likewise.
5319         (evrp_range_analyzer::pop_value_range): Likewise.
5320         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
5321         most delegators.  Those remaining are exposed as public interfaces.
5322         Make vr_values a pointer and private.
5323         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
5324         vr_values.
5325         (evrp_range_analyzer::get_vr_value): New method.
5326         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
5327         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
5328         (class evrp_dom_walker): Attach evrp_folder class, initialize
5329         it in the ctor.  Remove temporary delegators.
5330         (evrp_dom_walker::before_dom_children): Call methods in attached
5331         evrp_range_analyzer class via class instance pointer.  Use
5332         free value_range_constant_singleton to remove need for
5333         op_with_constant_singleton_value delegator method.  Do not
5334         create a vrp_prop class instance for every call!  Narrow
5335         scope of a couple variables.
5336         (evrp_dom_walker::cleanup): Call methods in attached
5337         evrp_range_analyzer class via class instance pointer.
5338         * vr-values.h (class vr_values): Privatize many methods and
5339         data members.
5340
5341 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5342
5343         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
5344         * cfgexpand.c (expand_debug_expr): Remove handling for them.
5345         * expr.c (expand_expr_real_2): Likewise.
5346         * fold-const.c (const_unop): Likewise.
5347         * optabs-tree.c (optab_for_tree_code): Likewise.
5348         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
5349         * tree-inline.c (estimate_operator_cost): Likewise.
5350         * tree-pretty-print.c (dump_generic_node): Likewise.
5351         (op_code_prio): Likewise.
5352         (op_symbol_code): Likewise.
5353         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
5354         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
5355         * internal-fn.c (direct_internal_fn_optab): New function.
5356         (direct_internal_fn_array, direct_internal_fn_supported_p
5357         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
5358         * fold-const-call.c (fold_const_reduction): New function.
5359         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
5360         CFN_REDUC_MIN.
5361         * tree-vect-loop.c: Include internal-fn.h.
5362         (reduction_code_for_scalar_code): Rename to...
5363         (reduction_fn_for_scalar_code): ...this and return an internal
5364         function.
5365         (vect_model_reduction_cost): Take an internal_fn rather than
5366         a tree_code.
5367         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
5368         than assignments.
5369         (vectorizable_reduction): Use internal functions rather than tree
5370         codes for the reduction operation.  Update calls to the functions
5371         above.
5372         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
5373         Use calls to internal functions rather than REDUC tree codes.
5374         * config/aarch64/aarch64-simd.md: Update comment accordingly.
5375
5376 2017-11-22  Olivier Hainque  <hainque@adacore.com>
5377
5378         * config/vxworks.c (vxworks_override_options): Pick default
5379         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
5380         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
5381         DWARF_GNAT_ENCODINGS_DEFAULT.
5382         * config/vxworksae.h: Likewise.
5383
5384 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
5385
5386         PR tree-optimization/83104
5387         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
5388         not result.
5389
5390 2017-11-22  Marek Polacek  <polacek@redhat.com>
5391             H.J. Lu  <hongjiu.lu@intel.com>
5392             Jason Merrill  <jason@redhat.com>
5393
5394         PR c++/60336
5395         PR middle-end/67239
5396         PR target/68355
5397         * calls.c (initialize_argument_information): Call
5398         warn_parameter_passing_abi target hook.
5399         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
5400         argument onto stack.
5401         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
5402         * common.opt: Update -fabi-version description.
5403         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
5404         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
5405         int_size_in_bytes.
5406         (ix86_is_empty_record): New function.
5407         (ix86_warn_parameter_passing_abi): New function.
5408         (TARGET_EMPTY_RECORD_P): Redefine.
5409         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
5410         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
5411         * doc/tm.texi: Regenerated.
5412         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
5413         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
5414         * dwarf2out.c (get_ultimate_context): Move to tree.c.
5415         * explow.c (hard_function_value): Call arg_int_size_in_bytes
5416         instead of int_size_in_bytes.
5417         * expr.c (copy_blkmode_to_reg): Likewise.
5418         * function.c (aggregate_value_p): Return 0 for empty types.
5419         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
5420         target hook.
5421         (locate_and_pad_parm): Call arg size_in_bytes instead
5422         size_in_bytes.
5423         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
5424         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
5425         * target.def (empty_record_p, warn_parameter_passing_abi): New target
5426         hooks.
5427         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
5428         (std_gimplify_va_arg_expr): Skip empty records.  Call
5429         arg_size_in_bytes instead size_in_bytes.
5430         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
5431         * tree-core.h (tree_type_common): Add empty_flag.
5432         (tree_decl_common): Update comments.
5433         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
5434         DECL_PADDING_P.
5435         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5436         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
5437         DECL_PADDING_P.
5438         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5439         * tree.c (default_is_empty_type): New function.
5440         (default_is_empty_record): New function.
5441         (arg_int_size_in_bytes): New function.
5442         (arg_size_in_bytes): New function.
5443         (get_ultimate_context): New function.
5444         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
5445         TRANSLATION_UNIT_WARN_EMPTY_P.
5446         (default_is_empty_record, arg_int_size_in_bytes,
5447         arg_size_in_bytes, get_ultimate_context): Declare.
5448
5449 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5450
5451         * config/arm/arm.c (cmse_clear_registers): New function.
5452         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
5453         code by call to cmse_clear_registers.
5454         (cmse_nonsecure_entry_clear_before_return): Likewise.
5455
5456 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
5457
5458         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
5459         (vdot_s32, vdotq_s32): New.
5460         (vdot_lane_u32, vdotq_lane_u32): New.
5461         (vdot_lane_s32, vdotq_lane_s32): New.
5462
5463
5464 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5465
5466         PR middle-end/82547
5467         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
5468         for unsigned values with fewer HWIs than the precision.
5469         (test_overflow): New function.
5470         (wide_int_cc_tests): Call it.
5471
5472 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5473
5474         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
5475         has the same mode class as Pmode.
5476
5477 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5478
5479         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
5480         padding_bits_to_clear_ptr.
5481         (cmse_nonsecure_entry_clear_before_return): Likewise.
5482
5483 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5484
5485         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
5486         auto_sbitap instead of integer bitfield to control register needing
5487         clearing.
5488
5489 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5490
5491         PR tree-optimization/83044
5492         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
5493         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
5494         that need the upper bound.  Subtract offset from
5495         get_addr_base_and_unit_offset only if positive and subtract it
5496         before division by eltsize rather than after it.
5497
5498         PR debug/83084
5499         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
5500         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
5501         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
5502         asm.
5503
5504         PR middle-end/82875
5505         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
5506         expand_binop with *mul_widen_optab, make sure at least one of the
5507         operands doesn't have VOIDmode.
5508
5509         PR debug/83034
5510         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
5511
5512         PR rtl-optimization/82044
5513         PR tree-optimization/82042
5514         * dse.c (record_store): Check for overflow.
5515         (check_mem_read_rtx): Properly check for overflow if width == -1, call
5516         add_wild_read instead of clear_rhs_from_active_local_stores on
5517         overflow and log it into dump_file.
5518
5519 2017-11-22  Richard Biener  <rguenther@suse.de>
5520
5521         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
5522         fake edges to exit when looking for a place to insert.
5523         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
5524         and remove.
5525         (insert_into_preds_of_block): Commit edge insertion immediately,
5526         assert that doesn't require new BBs.
5527         (fini_pre): Release expressions.
5528         (pass_pre::execute): Shuffle things around a bit, if the fn
5529         is too large do not compute AVAIL either as this is really the
5530         quadratic bit.
5531
5532 2017-11-22  Richard Biener  <rguenther@suse.de>
5533
5534         PR tree-optimization/83089
5535         * tree-if-conv.c (pass_if_conversion::execute): If anything
5536         changed reset SCEV and free the number of iteration estimates.
5537
5538 2017-11-21  Martin Sebor  <msebor@redhat.com>
5539
5540         PR tree-optimization/82945
5541         * calls.h (warn_nonstring_bound): Remove unused function.
5542
5543 2017-11-21  Martin Sebor  <msebor@redhat.com>
5544
5545         PR tree-optimization/82945
5546         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
5547         * calls.h (maybe_warn_nonstring_arg): Declare new function.
5548         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
5549         functions.
5550         (initialize_argument_information): Call maybe_warn_nonstring_arg.
5551         * calls.h (get_attr_nonstring_decl): Declare new function.
5552         * doc/extend.texi (attribute nonstring): Update.
5553         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
5554         get_attr_nonstring_decl and handle it.
5555         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
5556         detection of nul-termination.
5557         (strlen_to_stridx): Change to a pointer.
5558         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
5559         (pass_strlen::execute): Same.
5560
5561 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5562
5563         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
5564         for the new option -mprefer-vector-width=[none|128|256|512].
5565         * config/i386/i386.c (ix86_target_string): remove old style options
5566         -mprefer-avx256 and make -mprefer-avx128 as alias.
5567         (ix86_option_override_internal):  Apply defaults for the
5568         -mprefer-vector-width=[128|256] option.
5569         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
5570         Implement macros to work with -mprefer-vector-width=.
5571         * config/i386/i386.opt: Implemented option
5572         -mprefer-vector-width=[none|128|256|512].
5573         * doc/invoke.texi: Documentation for
5574         -mprefer-vector-width=[none|128|256|512].
5575
5576 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
5577
5578         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5579
5580 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
5581
5582         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
5583
5584 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
5585
5586         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
5587         POINTER_PLUS_EXPR.
5588         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
5589         * expr.c (expand_expr_real_2): Likewise.
5590         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
5591         fold_binary_loc): Likewise.
5592         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
5593         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
5594         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
5595         MINUS_EXPR transformations.
5596         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
5597         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
5598         * tree-inline.c (estimate_operator_cost): Likewise.
5599         * tree-pretty-print.c (dump_generic_node, op_code_prio,
5600         op_symbol_code): Likewise.
5601         * tree-vect-stmts.c (vectorizable_operation): Likewise.
5602         * vr-values.c (extract_range_from_binary_expr): Likewise.
5603         * varasm.c (initializer_constant_valid_p_1): Likewise.
5604         * tree.def: New tree code POINTER_DIFF_EXPR.
5605
5606 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
5607
5608         * config/i386/i386.md (*bswap<mode>2_movbe): Add
5609         integer suffix to movbe mnemonic.
5610         (*bswaphi2_movbe): Ditto.
5611         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
5612
5613 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5614
5615         PR c++/83045
5616         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
5617         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
5618         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
5619
5620 2017-11-21  Martin Liska  <mliska@suse.cz>
5621
5622         * tree-inline.c (expand_call_inline): Remove not needed
5623         xstrdup_for_dump.
5624
5625 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
5626             Jakub Jelinek  <jakub@redhat.com>
5627
5628         PR target/82880
5629         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5630         Remove static keyword from f variable.
5631
5632 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5633
5634         PR tree-optimization/83086
5635         * gimple-ssa-store-merging.c
5636         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
5637         rather than n.base_addr.
5638
5639 2017-11-21  Martin Liska  <mliska@suse.cz>
5640
5641         PR rtl-optimization/82044
5642         PR tree-optimization/82042
5643         * dse.c (check_mem_read_rtx): Check for overflow.
5644
5645 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5646
5647         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
5648         typo in comment.
5649
5650 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5651
5652         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
5653         and its corresponding call arg location note.
5654
5655 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5656             Andrew Burgess  <andrew.burgess@embecosm.com>
5657
5658         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
5659         declaration.
5660         (arc_return_slot_offset): Likewise.
5661         (arc_eh_return_address_location): New declaration.
5662         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5663         (MUST_SAVE_REGISTER): Add exception handler case.
5664         (MUST_SAVE_RETURN_ADDR): Likewise.
5665         (arc_frame_pointer_required): Likewise.
5666         (arc_frame_pointer_needed): New function.
5667         (arc_compute_frame_size): Changed.
5668         (arc_expand_prologue): Likewise.
5669         (arc_expand_epilogue): Likewise.
5670         (arc_initial_elimination_offset): Likewise.
5671         (arc_return_slot_offset): Delete.
5672         (arc_eh_return_address_location): New function.
5673         (arc_builtin_setjmp_frame_value): Likewise.
5674         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
5675         (EH_RETURN_STACKADJ_RTX): Define.
5676         (EH_RETURN_HANDLER_RTX): Likewise.
5677         * config/arc/arc.md (eh_return): Delete.
5678
5679 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5680
5681         * print-tree.h (debug_vec_tree): Remove prototype.
5682         * gdbinit.in (pvt): Remove macro.
5683
5684 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5685
5686         PR tree-optimization/83047
5687         * gimple-ssa-store-merging.c
5688         (imm_store_chain_info::output_merged_store): If the loads with the
5689         same vuse are in different basic blocks, for load_gsi pick a load
5690         location that is dominated by the other loads.
5691
5692         PR c++/83059
5693         * config/i386/i386.c (ix86_memmodel_check): Start
5694         -Winvalid-memory-model diagnostics with lowercase letter.
5695
5696         PR debug/82718
5697         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
5698         set in_cold_section_p to the partition containing loc_list->first.
5699         When seeing loc_list->last_before_switch node, update secname and
5700         perform range_across_switch second partition handling only after that.
5701
5702         PR debug/82933
5703         * run-rtl-passes.c: Include debug.h.
5704         (run_rtl_passes): Call debug_hooks->assembly_start.
5705         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
5706         multiple times.
5707
5708         PR target/82981
5709         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
5710         OPTAB_DIRECT in calls to expand_simple_binop.
5711
5712 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5713
5714         PR c/81404
5715         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
5716
5717 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5718
5719         PR c++/72786
5720         * spellcheck.h (best_match::blithely_get_best_candidate): New
5721         accessor.
5722
5723 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5724
5725         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
5726         with lower case letter.
5727
5728 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
5729
5730         * config/i386/i386.md (bswaphi2): New expander.
5731         (*bswaphi2_movbe): New insn pattern.
5732         (bswaphi -> rorhi pepehole2): New peephole pattern.
5733
5734 2017-11-20  Jeff Law  <law@redhat.com>
5735
5736         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
5737         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
5738         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
5739         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
5740         gimple-ssa-evrp-analyze.h.
5741
5742         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
5743         set BB_VISITED here.
5744         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
5745
5746 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5747
5748         * tree-predcom.c: Add general comment on Store-Store chains.
5749         (split_data_refs_to_components): Postpone clearing eliminate_store_p
5750         flag in component.
5751         (get_chain_last_ref_at): Rename into...
5752         (get_chain_last_write_at): ...this.
5753         (get_chain_last_write_before_load): New function.
5754         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
5755         CT_STORE_STORE when write reference is added.
5756         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
5757         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
5758         (initialize_root_vars_store_elim_1): Ditto.
5759         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
5760         definition is created.
5761         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
5762         chain by replacing it with dominant stored value.
5763
5764 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5765
5766         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
5767
5768 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
5769
5770         * vr-values.c (extract_range_from_binary_expr): Use a full range
5771         for VR_VARYING.
5772
5773 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5774
5775         * config/arm/arm.md (R4_REGNUM): Define constant.
5776         (nonsecure_call_internal): Remove r4 clobber.
5777         (nonsecure_call_value_internal): Likewise.
5778         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
5779         clobber and resequence match_operands.
5780         (nonsecure_call_value_reg_thumb1_v5): Likewise.
5781         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
5782         (nonsecure_call_value_reg_thumb2): Likewise.
5783
5784 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5785
5786         PR tree-optimization/78821
5787         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
5788         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
5789         to the address of the base rather than the base itself.
5790         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
5791         (find_bswap_or_nop_finalize): New function.
5792         (find_bswap_or_nop): Use it.
5793         (bswap_replace): Return a tree rather than bool, change first
5794         argument from gimple * to gimple_stmt_iterator, allow inserting
5795         into an empty sequence, allow ins_stmt to be NULL - then emit
5796         all stmts into gsi.  Fix up MEM_REF address gimplification.
5797         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
5798         (struct store_immediate_info): Add N and INS_STMT non-static
5799         data members.
5800         (store_immediate_info::store_immediate_info): Initialize them
5801         from newly added ctor args.
5802         (merged_store_group::apply_stores): Formatting fixes.  Sort by
5803         bitpos at the end.
5804         (stmts_may_clobber_ref_p): For stores call also
5805         refs_anti_dependent_p.
5806         (gather_bswap_load_refs): New function.
5807         (imm_store_chain_info::try_coalesce_bswap): New method.
5808         (imm_store_chain_info::coalesce_immediate_stores): Use it.
5809         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
5810         (imm_store_chain_info::output_merged_store): Fail if number of
5811         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
5812         and NOP_EXPR rhs_code.
5813         (pass_store_merging::process_store): Compute n and ins_stmt, if
5814         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
5815         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
5816         ctor.
5817         (pass_store_merging::execute): Calculate dominators.
5818
5819         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
5820         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
5821         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
5822         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5823         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
5824         class pass_optimize_bswap, bswap_replace,
5825         pass_optimize_bswap::execute): Moved to ...
5826         * gimple-ssa-store-merging.c: ... this file.
5827         Include optabs-tree.h.
5828         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
5829         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5830         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
5831         anonymous namespace, remove static keywords.
5832         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
5833         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
5834
5835 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
5836
5837         PR bootstrap/83062
5838         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
5839
5840 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
5841
5842         * vec.h (debug_helper): New function.
5843         (DEFINE_DEBUG_VEC): New macro.
5844         * hash-set.h (debug_helper): New function.
5845         (DEFINE_DEBUG_HASH_SET): New macro.
5846         * cfg.c (debug_slim (edge)): New function.
5847         Call DEFINE_DEBUG_VEC for edges.
5848         Call DEFINE_DEBUG_HASH_SET for edges.
5849         * cfghooks.c (debug_slim (basic_block)): New function.
5850         Call DEFINE_DEBUG_VEC for basic blocks.
5851         Call DEFINE_DEBUG_HASH_SET for basic blocks.
5852         * print-tree.c (debug_slim): New function to handle trees.
5853         Call DEFINE_DEBUG_VEC for trees.
5854         Call DEFINE_DEBUG_HASH_SET for trees.
5855         (debug (vec<tree, va_gc>) &): Remove.
5856         (debug (<vec<tree, va_gc>) *): Remove.
5857         * print-rtl.c (debug_slim): New function to handle const_rtx.
5858         Call DEFINE_DEBUG_VEC for rtx_def.
5859         Call DEFINE_DEBUG_VEC for rtx_insn.
5860         Call DEFINE_DEBUG_HASH_SET for rtx_def.
5861         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
5862         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
5863         (debug (vec<rtx_insn *> *ptr): Remove.
5864         (debug_insn_vector): Remove.
5865         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
5866
5867 2017-11-20  Tom de Vries  <tom@codesourcery.com>
5868
5869         PR rtl-optimization/82020
5870         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
5871         IF_THEN_ELSE condition.
5872
5873 2017-11-19  Jeff Law  <law@redhat.com>
5874
5875         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
5876         of degenerates resulting from ignoring an edge.
5877
5878 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5879
5880         PR ipa/81360
5881         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
5882
5883 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5884
5885         PR ipa/83001
5886         * profile-count.c (profile_count::to_sreal_scale): Fix return value
5887         for uninitialied counts.
5888
5889 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5890
5891         PR ipa/60243
5892         * tree-inline.c (estimate_num_insns): Set to 1 at least.
5893
5894 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5895
5896         PR target/82713
5897         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
5898
5899 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5900
5901         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
5902         "do while (0)".
5903
5904 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5905
5906         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
5907         "do {} while (0)".
5908
5909 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5910
5911         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
5912         macro body.
5913
5914 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5915
5916         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
5917         "do {} while (0)".
5918         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
5919
5920 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5921
5922         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
5923         "do {} while (0)".
5924         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
5925         semicolon after MCORE_EXPORT_NAME call.
5926
5927 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5928
5929         PR target/82961
5930         * vmsdbgout.c (vmsdbgout_early_finish): New function.
5931         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
5932
5933 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
5934
5935         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
5936         (cgraph_edge::clone): Cleanup updating of profile.
5937         * ipa-cp.c (update_profiling_info): Likewise.
5938         * ipa-inline-transform.c (inline_transform): Likewise.
5939         * ipa-inline.c (inline_small_functions): Add missing space to dump.
5940         * ipa-split.c (execute_split_functions): Do not split when function
5941         is cold.
5942         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
5943         * profile-count.c (profile_count::dump): Add global0.
5944         (profile_count::to_cgraph_frequency): Do not ICE when entry is
5945         undefined.
5946         (profile_count::to_sreal_scale): Likewise.
5947         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
5948         (profile_count::combine_with_ipa_count): New function.
5949         * profile-count.h (profile_guessed_global0adjusted): New.
5950         (profile_count::adjusted_zero): New.
5951         (profile_count::global0adjusted): New.
5952         (profile_count::combine_with_ipa_count): New.
5953         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
5954         correct profile of return block of split functions.
5955         (copy_cfg_body): Remove unused profile_count.
5956         (copy_body): Likewise.
5957         (expand_call_inline): Update.
5958         (tree_function_versioning): Update.
5959
5960 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
5961
5962         * hash-set.h (hash_set::empty): New.
5963         * tree-ssa-threadbackward.h: Delete.
5964         * tree-ssa-threadbackward.c (class thread_jumps): New.
5965         Move max_threaded_paths into class.
5966         (fsm_find_thread_path): Remove arguments that are now in class.
5967         (profitable_jump_thread_path): Rename to...
5968         (thread_jumps::profitable_jump_thread_path): ...this.
5969         (convert_and_register_jump_thread_path): Rename to...
5970         (thread_jumps::convert_and_register_current_path): ...this.
5971         (check_subpath_and_update_thread_path): Rename to...
5972         (thread_jumps::check_subpath_and_update_thread_path): ...this.
5973         (register_jump_thread_path_if_profitable): Rename to...
5974         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
5975         (handle_phi): Rename to...
5976         (thread_jumps::handle_phi): ...this.
5977         (handle_assignment): Rename to...
5978         (thread_jumps::handle_assignment): ...this.
5979         (fsm_find_control_statement_thread_paths): Rename to...
5980         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
5981         (find_jump_threads_backwards): Rename to...
5982         (thread_jumps::find_jump_threads_backwards): ...this.
5983         Initialize path local data.
5984         (pass_thread_jumps::execute): Call find_jump_threads_backwards
5985         from within thread_jumps class.
5986         (pass_early_thread_jumps::execute): Same.
5987
5988 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
5989
5990         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
5991
5992 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5993
5994         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
5995         to canonical location.
5996
5997 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
5998
5999         PR target/81356
6000         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
6001         Remove.
6002         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
6003
6004 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
6005
6006         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
6007         rcrt1.o%s/grcrt1.o%s for -static-pie.
6008
6009 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6010
6011         * i386.c (ix86_multiplication_cost, ix86_division_cost,
6012         ix86_shift_rotate_cost): Break out from ...
6013         (ix86_rtx_costs): ... here.
6014         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
6015         vector operations.
6016
6017 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6018
6019         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
6020         when entry block was promoted unlikely.
6021         (estimate_bb_frequencies): Increase frequency scale.
6022         * profile-count.h (profile_count): Export precision info.
6023
6024 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6025
6026         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
6027         disturbin profile of entry block.
6028
6029 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6030
6031         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
6032         roundoff errors.
6033
6034 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6035
6036         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
6037         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
6038
6039 2017-11-17  Jeff Law  <law@redhat.com>
6040
6041         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
6042         from evrp_dom_walker class.  Various methods moved into new class.
6043         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
6044         (evrp_range_analyzer::enter): New method.
6045         (evrp_range_analyzer::leave): New method.
6046         (evrp_dom_walker): Remove delegators no longer needed by this class.
6047         Replace vr_values data member with evrp_range_analyzer
6048
6049         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
6050         method extracted from evrp_dom_walker::before_dom_children.
6051         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
6052         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
6053
6054         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
6055         Add private copy constructor and move assignment operators.
6056         Privatize methods and class data where trivially possible.
6057         (evrp_dom_walker::cleanup): New function, extracted from
6058         execute_early_vrp.  Simplify access to class data.
6059
6060         * vr-values.h (get_output_for_vrp): Prototype.
6061         * vr-values.c (get_output_for_vrp): New function extracted from
6062         vrp_visit_assignment_or_call and extract_range_from_stmt.
6063         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
6064
6065 2017-11-17  Luis Machado  <luis.machado@linaro.org>
6066
6067         * config/aarch64/aarch64.c
6068         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
6069         (qdf24xx_tunings) <autoprefetcher_model>: Set to
6070         tune_params::AUTOPREFETCHER_WEAK.
6071
6072 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6073
6074         PR target/82641
6075         * config/arm/arm.c (arm_valid_target_attribute_rec):
6076         Parse "arch=" and "+<ext>".
6077         (arm_valid_target_attribute_tree): Re-init global options.
6078         (arm_option_override): Make non-static.
6079         (arm_options_perform_arch_sanity_checks): Make errors fatal.
6080         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
6081         (__ARM_FEATURE_CRC32): Support undef.
6082         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
6083         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
6084
6085 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
6086
6087         * gdbinit.in (break-on-diagnostic): New command.
6088
6089 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6090
6091         * config/i386/i386.c (ix86_expand_epilogue): Change simple
6092         return to indirect jump for EH return if control-flow
6093         protection is enabled. Change explicit 'false' argument in
6094         pro_epilogue_adjust_stack with a value of
6095         flag_cf_protection.
6096         * config/i386/i386.md (simple_return_indirect_internal):
6097         Remove SImode restriction to support 64-bit.
6098
6099 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6100
6101         * combine.c (added_notes_insn): New.
6102         (try_combine): Handle added_notes_insn like added_links_insn.
6103         Rewrite return value code.
6104         (distribute_notes): Set added_notes_insn to the earliest insn we added
6105         a note to.
6106
6107 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6108
6109         PR rtl-optimization/82621
6110         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
6111         dest of one of those SETs is unused.
6112
6113 2017-11-17  Richard Biener  <rguenther@suse.de>
6114
6115         PR fortran/83017
6116         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
6117         * tree-pretty-print.c (dump_generic_node): Handle
6118         annot_expr_parallel_kind.
6119         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
6120         * gimplify.c (gimple_boolify): Likewise.
6121
6122 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6123
6124         * config.gcc (extra_headers): Add cet.h for x86 targets.
6125         * config/i386/cet.h: New file.
6126         * doc/install.texi: Add --enable-cet/--disable-cet.
6127
6128 2017-11-17  Richard Biener  <rguenther@suse.de>
6129
6130         PR tree-optimization/83017
6131         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
6132         (gen_parallel_loop): Properly count iterations.
6133         (parallelize_loops): Handle loop->can_be_parallel independent
6134         of flag_loop_parallelize_all.  Make static profitability test match
6135         the runtime one.
6136         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
6137         * invoke.texi (parloops-min-per-thread): Document.
6138
6139 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
6140
6141         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
6142         upstreaming review comments.
6143
6144 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6145
6146         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
6147         with fast unaligned access.
6148         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
6149
6150 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6151
6152         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
6153         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
6154
6155 2017-11-17  Richard Biener  <rguenther@suse.de>
6156
6157         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
6158         folding of references.
6159
6160 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
6161
6162         PR middle-end/78809
6163         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
6164         of replacing call to strncmp with corresponding call to strcmp when
6165         meeting conditions.
6166
6167 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
6168
6169         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
6170         option prefer-avx256 for skylake-avx512 configuration.
6171         * config/i386/i386.c (ix86_option_override_internal): Ditto.
6172         (get_builtin_code_for_version): Ditto.
6173
6174 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6175             Monk Chiang  <sh.chiang04@gmail.com>
6176
6177         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
6178         (FIXED_REGISTERS): Reserve more register numbers.
6179         (CALL_USED_REGISTERS): Likewise.
6180         (REG_ALLOC_ORDER): Likewise.
6181         (REG_CLASS_CONTENTS): Likewise.
6182         (REGISTER_NAMES): Likewise.
6183
6184 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6185             Kito Cheng  <kito.cheng@gmail.com>
6186
6187         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
6188         V2SI.
6189         * config/nds32/iterators.md: Add vector mode iterators and attributes.
6190
6191 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
6192
6193         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
6194         parameter list for vec_splats.
6195
6196 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
6197
6198         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
6199         date of C17.
6200         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
6201
6202 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
6203
6204         PR bootstrap/82856
6205         * doc/install.texi: Document incompatibility of Perl >=5.6.26
6206         with the required version of automake 1.11.6.
6207
6208 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
6209
6210         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
6211         for it.
6212         (DU_C2_3_power9): Correct reservation combinations.
6213         (FP_DIV_power9, VEC_DIV_power9): New.
6214         (power9-alu): Split out rotate/shift...
6215         (power9-rot): ...to here, correct dispatch resource.
6216         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
6217         resource.
6218         (power9-fp): Correct latency.
6219         (power9-sdiv): Add div/sqrt resource.
6220         (power9-ddiv): Correct latency, add div/sqrt resource.
6221         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
6222         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
6223         resource.
6224         (power9-qpdiv, power9-qpmul): Adjust resource usage.
6225
6226 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6227
6228         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
6229         switch statement mapping KF built-ins to TF built-ins if we don't
6230         have the proper ISA 3.0 assembler support.
6231
6232 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6233
6234         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
6235         (lower_emutls_function_body): Do not compute it.
6236
6237 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6238
6239         * ipa-split.c (split_bb_info): Turn time to sreal.
6240         (split_point): Likewise.
6241         (dump_split_point): Likewise.
6242         (fine_split_points): Likewise.
6243         (execute_split_functions): Only zero split_bbs; turn time to sreals.
6244
6245 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6246
6247         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
6248         in sreal.
6249
6250 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6251
6252         * predict.c (combine_predictions_for_bb): Preserve zero predicted
6253         edges.
6254         (expensive_function_p): Remove useless assert.
6255         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
6256
6257 2017-11-16  Martin Sebor  <msebor@redhat.com>
6258
6259         PR tree-optimization/82588
6260         PR tree-optimization/82583
6261         * tree-vrp.c (check_array_ref): Handle flexible array members,
6262         string literals, and inner indices.
6263         (search_for_addr_array): Add detail to diagnostics.
6264
6265 2017-11-16  Nathan Sidwell  <nathan@acm.org>
6266
6267         PR c++/82836
6268         PR c++/82737
6269         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
6270         (SET_DECL_ASSEMBLER_NAME): Forward to
6271         overwrite_decl_assembler_name.
6272         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
6273         (overwrite_decl_assembler_name): Declare.
6274         * tree.c (overwrite_decl_assembler_name): New.
6275         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
6276         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
6277         (LANG_HOOKS_INITIALIZER): Add it.
6278         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
6279         * langhooks.c (lhd_set_decl_assembler_name): Use
6280         SET_DECL_ASSEMBLER_NAME.
6281         (lhd_overwrite_decl_assembler_name): Default implementation.
6282
6283 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6284             Jackson Woodruff  <jackson.woodruff@arm.com>
6285
6286         PR tree-optimization/71026
6287         * match.pd: Canonicalize constant multiplies in division.
6288
6289 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6290
6291         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
6292         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
6293         Remove OPT_fomit_frame_pointer entry.
6294         * common/config/arc/arc-common.c: Likewise.
6295         * common/config/arm/arm-common.c: Likewise.
6296         * common/config/avr/avr-common.c: Likewise.
6297         * common/config/c6x/c6x-common.c: Likewise.
6298         * common/config/cr16/cr16-common.c: Likewise.
6299         * common/config/cris/cris-common.c: Likewise.
6300         * common/config/epiphany/epiphany-common.c: Likewise.
6301         * common/config/fr30/fr30-common.c: Likewise.
6302         * common/config/frv/frv-common.c: Likewise.
6303         * common/config/ia64/ia64-common.c: Likewise.
6304         * common/config/iq2000/iq2000-common.c: Likewise.
6305         * common/config/lm32/lm32-common.c: Likewise.
6306         * common/config/m32r/m32r-common.c: Likewise.
6307         * common/config/mcore/mcore-common.c: Likewise.
6308         * common/config/microblaze/microblaze-common.c: Likewise.
6309         * common/config/mips/mips-common.c: Likewise.
6310         * common/config/mmix/mmix-common.c: Likewise.
6311         * common/config/mn10300/mn10300-common.c: Likewise.
6312         * common/config/nios2/nios2-common.c: Likewise.
6313         * common/config/pa/pa-common.c: Likewise.
6314         * common/config/pdp11/pdp11-common.c: Likewise.
6315         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
6316         * common/config/riscv/riscv-common.c: Likewise.
6317         * common/config/rs6000/rs6000-common.c: Likewise.
6318         * common/config/rx/rx-common.c: Likewise.
6319         * common/config/s390/s390-common.c: Likewise.
6320         * common/config/sh/sh-common.c: Likewise.
6321         * common/config/sparc/sparc-common.c: Likewise.
6322         * common/config/tilegx/tilegx-common.c: Likewise.
6323         * common/config/tilepro/tilepro-common.c: Likewise.
6324         * common/config/v850/v850-common.c: Likewise.
6325         * common/config/visium/visium-common.c: Likewise.
6326         * common/config/xstormy16/xstormy16-common.c: Likewise.
6327         * common/config/xtensa/xtensa-common.c: Likewise.
6328         * invoke.texi (-fomit-frame-pointer): Update documentation.
6329
6330 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6331
6332         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
6333
6334 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6335
6336         * cfg.c (scale_bbs_frequencies_int,
6337         cale_bbs_frequencies_gcov_type): Remove.
6338         * cfg.h (scale_bbs_frequencies_int,
6339         cale_bbs_frequencies_gcov_type): Remove.
6340
6341 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6342
6343         * tree-ssa-loop-manip.c
6344         (scale_dominated_blocks_in_loop): Update to profile counts.
6345         (tree_transform_and_unroll_loop): Likewise.
6346
6347 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6348
6349         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
6350         scale_bbs_frequencies_int.
6351
6352 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6353
6354         * final.c (compute_alignments): Use counts rather than frequencies.
6355
6356 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6357
6358         * cfgloopanal.c: Include sreal.h
6359         (average_num_loop_insns): Use counts and sreal for accounting.
6360
6361 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6362
6363         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
6364         manipulation.
6365
6366 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6367             Kito Cheng  <kito.cheng@gmail.com>
6368
6369         * config/nds32/constraints.md: Provide more constraints.
6370         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
6371         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
6372         support constraints usage.
6373
6374 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6375
6376         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
6377
6378 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6379             Kito Cheng  <kito.cheng@gmail.com>
6380
6381         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
6382         * config/nds32/nds32.opt: Refine the layout.
6383         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
6384         TARGET_EXT_STRING): Support new options.
6385         * config/nds32/nds32.h: Likewise.
6386         * config/nds32/nds32.md: Likewise.
6387         * config/nds32/nds32-predicates.c: Likewise.
6388         * config/nds32/constraints.md: Likewise.
6389         * common/config/nds32/nds32-common.c: Likewise.
6390
6391 2017-11-16  Julia Koval  <julia.koval@intel.com>
6392
6393         PR target/82983
6394         * config/i386/gfniintrin.h: Add sse check.
6395         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
6396
6397 2017-11-16  Julia Koval  <julia.koval@intel.com>
6398
6399         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
6400         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
6401         (ix86_handle_option): Handle -mavx512vbmi2.
6402         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
6403         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
6404         * config/i386/i386-c.c (__AVX512VBMI2__): New.
6405         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
6406         (ix86_valid_target_attribute_inner_p): Ditto.
6407         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
6408         * config/i386/i386.opt (mavx512vbmi2): New option.
6409         * doc/invoke.texi: Add new option.
6410
6411 2017-11-16  Julia Koval  <julia.koval@intel.com>
6412
6413         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
6414         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
6415         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
6416         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
6417         _mm512_gf2p8mul_epi8): New intrinsics.
6418         * config/i386/i386-builtin-types.def
6419         (V64QI_FTYPE_V64QI_V64QI): New type.
6420         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
6421         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
6422         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
6423         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
6424         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
6425         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
6426
6427 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
6428
6429         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
6430         explicitly as a stream of bytes.
6431
6432 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6433
6434         * config/rs6000/altivec.h (vec_xst_be): New #define.
6435         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
6436         and externalize from *altivec_vperm_<mode>_internal.
6437         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
6438         instantiation.
6439         (XL_BE_V8HI): Likewise.
6440         (XL_BE_V4SI): Likewise.
6441         (XL_BE_V4SI): Likewise.
6442         (XL_BE_V2DI): Likewise.
6443         (XL_BE_V4SF): Likewise.
6444         (XL_BE_V2DF): Likewise.
6445         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
6446         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
6447         all array entries with these keys: VSX_BUILTIN_VEC_XL,
6448         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
6449         VSX_BUILTIN_VEC_XST_BE.
6450         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
6451         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
6452         built-ins.
6453         (altivec_init_builtins): Replace conditional calls to def_builtin
6454         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
6455         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
6456         with unconditional calls.  Remove calls to def_builtin for
6457         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
6458         __builtin_vec_xst_be.
6459         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
6460         to define_expand, and add alternate RTL generation for P8.
6461         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
6462         vsx_ld_elemrev_v8hi.
6463         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
6464         add alternate RTL generation for P8.
6465         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
6466         vsx_ld_elemrev_v16qi.
6467         (vsx_st_elemrev_v8hi): Convert define_insn
6468         to define_expand, and add alternate RTL generation for P8.
6469         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
6470         vsx_st_elemrev_v8hi.
6471         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
6472         add alternate RTL generation for P8.
6473         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
6474         vsx_st_elemrev_v16qi.
6475
6476 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
6477
6478         PR target/82990
6479         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
6480         TARGET_AVX512ER check.
6481         (ix86_option_override_internal): Set MASK_VZEROUPPER if
6482         neither -mzeroupper nor -mno-zeroupper is used and
6483         TARGET_EMIT_VZEROUPPER is set.
6484         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
6485         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
6486
6487 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
6488
6489         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
6490         folding of vector compares.
6491         (fold_build_vec_cmp): New helper function.
6492         (fold_compare_helper): New helper function.
6493         (builtin_function_type): Add compare builtins to the list of functions
6494         having unsigned arguments.  Cosmetic updates to comment indentation.
6495         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
6496         the not+eq combination.
6497
6498 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6499
6500         PR tree-optimization/82726
6501         PR tree-optimization/70754
6502         * tree-predcom.c (order_drefs_by_pos): New function.
6503         (combine_chains): Move code setting has_max_use_after to...
6504         (try_combine_chains): ...here.  New parameter.  Sort combined chains
6505         according to position information.
6506         (tree_predictive_commoning_loop): Update call to above function.
6507         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
6508
6509 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6510
6511         PR tree-optimization/82726
6512         Revert
6513         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
6514
6515         PR tree-optimization/70754
6516         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
6517         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
6518         combined stmt before it if not NULL.
6519         (combine_chains): Process refs reversely and compute dominance point
6520         for root ref.
6521
6522         Revert
6523         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
6524
6525         PR tree-optimization/79663
6526         * tree-predcom.c (combine_chains): Process refs in reverse order
6527         only for ZERO length chains, and add explaining comment.
6528
6529 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6530
6531         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
6532         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
6533         * doc/invoke.texi (ARM Options): Add armv8.3-a.
6534
6535 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6536
6537         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
6538
6539 2017-11-15  Martin Liska  <mliska@suse.cz>
6540
6541         * tree-cfg.c (pass_warn_function_return::execute):
6542         Compare warn_return_type for greater than zero.
6543
6544 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
6545
6546         PR target/82941
6547         PR target/82942
6548         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
6549         to return true on Xeon and not on Xeon Phi.
6550         (ix86_check_avx256_register): Changed to ...
6551         (ix86_check_avx_upper_register): ... this. Add extra check for
6552         VALID_AVX512F_REG_OR_XI_MODE.
6553         (ix86_avx_u128_mode_needed): Changed
6554         ix86_check_avx256_register to ix86_check_avx_upper_register.
6555         (ix86_check_avx256_stores): Changed to ...
6556         (ix86_check_avx_upper_stores): ... this. Changed
6557         ix86_check_avx256_register to ix86_check_avx_upper_register.
6558         (ix86_avx_u128_mode_after): Changed
6559         avx_reg256_found to avx_upper_reg_found. Changed
6560         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
6561         (ix86_avx_u128_mode_entry): Changed
6562         ix86_check_avx256_register to ix86_check_avx_upper_register.
6563         (ix86_avx_u128_mode_exit): Ditto.
6564         * config/i386/i386.h: (host_detect_local_cpu): New define.
6565
6566 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
6567
6568         * config/arm/xgene1.md (xgene1): Split into automatons
6569         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
6570         (xgene1_f_load): Adjust reservations and/or types.
6571         (xgene1_f_store): Likewise.
6572         (xgene1_load_pair): Likewise.
6573         (xgene1_store_pair): Likewise.
6574         (xgene1_fp_load1): Likewise.
6575         (xgene1_load1): Likewise.
6576         (xgene1_store1): Likewise.
6577         (xgene1_move): Likewise.
6578         (xgene1_alu): Likewise.
6579         (xgene1_simd): Likewise.
6580         (xgene1_bfm): Likewise.
6581         (xgene1_neon_load1): Likewise.
6582         (xgene1_neon_store1): Likewise.
6583         (xgene1_neon_logic): Likewise.
6584         (xgene1_neon_st1): Likewise.
6585         (xgene1_neon_ld1r): Likewise.
6586         (xgene1_alu_cond): Added.
6587         (xgene1_shift_reg): Likwise.
6588         (xgene1_bfx): Likewise.
6589         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
6590
6591 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
6592
6593         PR target/82981
6594         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
6595         ssa-iterators.h.
6596         (can_widen_mult_without_libcall): New function.
6597         (expand_mul_overflow): If only checking unsigned mul overflow,
6598         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
6599         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
6600         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
6601         (expand_DIVMOD): Formatting fix.
6602         * expmed.h (expand_mult): Add NO_LIBCALL argument.
6603         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
6604         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
6605
6606         PR tree-optimization/82977
6607         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
6608         constructed temporary to strlen_to_stridx.put.
6609
6610 2017-11-15  Martin Liska  <mliska@suse.cz>
6611
6612         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
6613         * configure: Regenerate.
6614
6615 2017-11-15  Martin Liska  <mliska@suse.cz>
6616
6617         PR target/82927
6618         * config/sh/sh-mem.cc: Use proper probability for
6619         REG_BR_PROB_NOTE.
6620
6621 2017-11-14  Jeff Law  <law@redhat.com>
6622
6623         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
6624         the red zone for stack_clash_protection_final_dynamic_probe targets
6625         when the total dynamic stack size is zero bytes.
6626
6627         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
6628         blocks is post order.
6629
6630 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
6631
6632         * dumpfile.h (TDF_COMPARE_DEBUG): New.
6633         * final.c (rest_of_clean_state): Set it for the
6634         -fcompare-debug dump.
6635         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
6636         class when TDF_COMPARE_DEBUG is set.
6637
6638         * dwarf2out.c (gen_producer_string): Discard
6639         OPT_fcompare_debug.
6640
6641 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6642
6643         PR c/81156
6644         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
6645         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
6646         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
6647         (__TGMATH_REAL_2_3): Remove macros.
6648         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
6649         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
6650         __builtin_tgmath.
6651         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
6652         __TGMATH_REAL_2.
6653         (remquo): Define using __TGMATH_REAL_3.
6654
6655 2017-11-14  Jeff Law  <law@redhat.com>
6656
6657         * vr-values.c: New file with contents extracted from tree-vrp.c.
6658         * Makefile.in (OBJS): Add vr-values.o
6659         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
6660         (set_value_range, set_and_canonicalize_value_range): Likewise.
6661         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
6662         (value_range_constant_singleton, symbolic_range_p): Likewise.
6663         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
6664         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
6665         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
6666         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
6667         (find_case_label_range, find_case_label_index): Likewise.
6668         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
6669         (range_int_cst_singleton_p, value_inside_range): Likewise.
6670         (get_single_symbol): Likewise.
6671         (switch_update): Move structure definition here.
6672         (to_remove_edges, to_update_switch_stmts): Provide externs.
6673         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
6674         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
6675         (vrp_val_is_min, set_value_range): Likewise.
6676         (set_and_canonicalize_value_range, copy_value_range): Likewise.
6677         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
6678         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
6679         (range_is_nonnull, range_int_cst_p): Likewwise.
6680         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
6681         (get_single_symbol, operand_less_p): Likewise
6682         (compare_values_warnv, compare_values): Likewise.
6683         (value_inside_range, value_range_constant_singleton): Likewise.
6684         (zero_nonzero_bitgs_from_vr): Likewise.
6685         (extract_range_from_binary_expr_1): Likewise.
6686         (overflow_comparison_p): Likewise.
6687         (to_remove_edges, to_update_switch_stmts): Likewise.
6688         (find_case_label-index, find_case_label_range): Likewise.
6689         (switch_update, set_value_range_to_nonnegative): Remove.
6690         (set_value_range_to_truthvalue): Likewise.
6691         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
6692         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
6693         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
6694         (find_case_label_ranges, test_for_singularity): Likewise.
6695         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
6696         (x_vr_values): Move to its remaining use site.
6697
6698 2017-11-10  Jeff Law  <law@redhat.com>
6699
6700         * vr-values.h (VR_INITIALIZER): Move #define here.
6701         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
6702         * Makefile.in (OBJS): Add tree-evrp.o
6703         * tree-vrp.h (assert_info): Move structure definition here.
6704         (set_value_range_to_varying): Prototype.
6705         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6706         (infer_value_range, register_edge_assert_for): Likewise.
6707         (stmt_interesting_for_vrp): Likewise.
6708         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
6709         (set_value_range_to_varying): No longer static.
6710         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6711         (infer_value_range, register_edge_assert_for): Likewise.
6712
6713 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6714
6715         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
6716         generate the XXBRD instruction.
6717
6718         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
6719         (rs6000_builtin_type_compatible): Treat _Float128 and long double
6720         as being compatible if -mabi=ieeelongdouble.
6721         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
6722         to setup float128 built-ins with hardware support.
6723         (BU_FLOAT128_HW_2): Likewise.
6724         (BU_FLOAT128_HW_3): Likewise.
6725         (BU_FLOAT128_HW_VSX_1): Likewise.
6726         (BU_FLOAT128_HW_VSX_2): Likewise.
6727         (scalar_extract_expq): Change float128 built-in functions to
6728         accommodate having both KFmode and TFmode functions.  Use the
6729         KFmode variant as the default.
6730         (scalar_extract_sigq): Likewise.
6731         (scalar_test_neg_qp): Likewise.
6732         (scalar_insert_exp_q): Likewise.
6733         (scalar_insert_exp_qp): Likewise.
6734         (scalar_test_data_class_qp): Likewise.
6735         (sqrtf128_round_to_odd): Delete processing the round to odd
6736         built-in functions as special built-in functions, and define them
6737         as float128 built-ins.  Use the KFmode variant as the default.
6738         (truncf128_round_to_odd): Likewise.
6739         (addf128_round_to_odd): Likewise.
6740         (subf128_round_to_odd): Likewise.
6741         (mulf128_round_to_odd): Likewise.
6742         (divf128_round_to_odd): Likewise.
6743         (fmaf128_round_to_odd): Likewise.
6744         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
6745         support for KFmode and TFmode xststdcqp calls.
6746         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
6747         point, switch the built-in handlers for the get/set float128
6748         exponent, get float128 mantissa, float128 test built-ins, and the
6749         float128 round to odd built-in functions.  Eliminate creating the
6750         float128 round to odd built-in functions as special built-ins.
6751         (rs6000_init_builtins): Eliminate special creation of the float128
6752         round to odd built-in functions.
6753         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
6754         function insns to support both TFmode and KFmode variants.
6755         (xsxsigqp_<mode>): Likewise.
6756         (xsiexpqpf_<mode>): Likewise.
6757         (xsiexpqp_<mode>): Likewise.
6758         (xststdcqp_<mode>): Likewise.
6759         (xststdcnegqp_<mode>): Likewise.
6760         (xststdcqp_<mode>): Likewise.
6761
6762 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6763
6764         * tree-ssa-threadupdate.c (compute_path_counts): Remove
6765         unused path_in_freq_ptr parameter.
6766         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
6767
6768 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6769
6770         * ipa-inline.c (edge_badness): Dump sreal frequency.
6771         (compute_inlined_call_time): Match natural implementaiton ...
6772         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
6773         forgotten division by CGRAPH_FREQ_BASE.
6774
6775 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6776
6777         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
6778         Solaris 11.  Update comment.
6779         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
6780         renaming.
6781         * config/sol2.h (STARTFILE_SPEC): Likewise.
6782         * configure: Regenerate.
6783
6784 2017-11-14  Carl Love  <cel@us.ibm.com>
6785
6786         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
6787         le_ and be_ prefixes to swap* variables.  Remove
6788         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
6789         statements.
6790
6791 2017-11-14  Jason Merrill  <jason@redhat.com>
6792
6793         Support GTY((cache)) on hash_map.
6794         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
6795         (ggc_cache_remove): Override it instead of ggc_mx.
6796         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
6797         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
6798         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
6799         (simple_cache_map_traits): Override maybe_mx.
6800         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
6801         (hash_map): Friend gt_cleare_cache.
6802         (gt_cleare_cache): New.
6803         * tree.h (tree_cache_traits): New hash_map traits class.
6804         (tree_cache_map): New typedef.
6805
6806 2017-11-14  Richard Biener  <rguenther@suse.de>
6807
6808         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
6809         paramter and handling.
6810         (cleanup_control_flow_bb): Likewise.
6811         (cleanup_control_flow_pre): New helper performing a DFS walk
6812         to call cleanup_control_flow_bb in PRE order.
6813         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
6814         via cleanup_control_flow_pre.
6815
6816 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
6817
6818         * config/aarch64/aarch64-simd.md
6819         (aarch64_simd_bsl<mode>_internal): Remove DImode.
6820         (*aarch64_simd_bsl<mode>_alt): Likewise.
6821         (aarch64_simd_bsldi_internal): New.
6822         (aarch64_simd_bsldi_alt): Likewise.
6823
6824 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6825
6826         * tracer.c (better_p): Do not compare frequencies.
6827         * reg-stack.c (better_edge): Likewise.
6828         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
6829         and back.
6830
6831 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6832
6833         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
6834         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
6835         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
6836         * lto-streamer-in.c (input_function): Use update_max_bb_count.
6837         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
6838         * predict.c (maybe_hot_frequency_p): Inline to ...
6839         (maybe_hot_count_p): ... here; rewrite to counts.
6840         (counts_to_freqs): Rename to ...
6841         (update_max_bb_count): ... this one.
6842         (expensive_function_p): Use counts.
6843         (estimate_bb_frequencies): Update.
6844         (rebuild_frequencies): Update.
6845         * predict.h (counts_to_freqs): Rename to ...
6846         (update_max_bb_count): ... this one.
6847         * profile.c (compute_branch_probabilities): Add debug info
6848         * tree-inline.c (expand_call_inline): Update debug info.
6849         (optimize_inline_calls): Use update_max_bb_count..
6850         (tree_function_versioning): Use update_max_bb_count..
6851         * value-prof.c (gimple_value_profile_transformations):
6852         Do not use update_max_bb_count.
6853
6854 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6855
6856         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
6857         always use frequencies.
6858
6859 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6860
6861         * bb-reorder.c: Remove frequencies from comments.
6862         (better_edge_p): Use profile counts.
6863         (find_traces): Dump profile counts.
6864         (rotate_loop): Use profile counts.
6865         (find_traces_1_round): Likewise.
6866         (connect_better_edge_p): Use counts instead of probabilities for
6867         reverse walk.
6868         (copy_bb_p): Drop early check for non-0 frequency.
6869         (sanitize_hot_paths): Update comments.
6870
6871 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6872
6873         * ipa-split.c (struct split_point): Add count.
6874         (consider_split): Do not compute incoming frequency; compute incoming
6875         count and store it to split_point.
6876         (split_function): Set count of the call to split part correctly.
6877
6878 2017-11-13  Carl Love  <cel@us.ibm.com>
6879
6880         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
6881
6882 2017-11-13  Tom Tromey  <tom@tromey.com>
6883
6884         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
6885
6886 2017-11-13  Carl Love  <cel@us.ibm.com>
6887
6888         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
6889         Add support for builtins:
6890         unsigned int vec_first_{,miss}_match_{,or_eos}index,
6891         vector {un,}signed {char,int,short},
6892         vector {un,}signed {char,int,short}) arguments.
6893         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
6894         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
6895         Add BU_P9V_AV_2 expansions for the builtins.
6896         * config/rs6000/altivec.h (vec_first_match_index,
6897         vec_first_mismatch_index, vec_first_match_or_eos_index,
6898         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
6899         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
6900         new extern declaration.
6901         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
6902         * config/rs6000/vsx.md (first_match_index_<mode>,
6903         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
6904         first_mismatch_or_eos_index_<mode>): Add define expand.
6905         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
6906         * doc/extend.texi: Update the built-in documenation file for the new
6907         built-in functions.
6908
6909 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6910
6911         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
6912         into the min/max operations for _Float<N> and _Float<N>X types.
6913
6914 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6915
6916         PR lto/81351
6917         * dwarf2out.c (do_eh_frame): New static variable.
6918         (dwarf2out_begin_prologue): Set it.
6919         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
6920
6921 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6922
6923         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
6924
6925         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
6926
6927 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6928
6929         PR lto/81351
6930         * debug.h (dwarf2out_do_eh_frame): Declare.
6931         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
6932         (dwarf2out_do_frame): Use it.
6933         (dwarf2out_do_cfi_asm): Likewise.
6934         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
6935         (dwarf2out_assembly_start): Likewise.
6936         (dwarf2out_begin_prologue): Fix comment.
6937         * toplev.c (compile_file): Always call dwarf2out_frame_finish
6938         if the target needs either debug or unwind DWARF2 info.
6939         * lto-opts.c (lto_write_options): Do not save -fexceptions,
6940         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
6941         -ftrapping-math, -ftrapv and -fwrapv.
6942
6943 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6944
6945         * cgraph.c (cgraph_edge::sreal_frequency): New function.
6946         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
6947         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
6948         (estimate_edge_size_and_time): Likewise.
6949         (ipa_merge_fn_summary_after_inlining): Likewise.
6950         * ipa-inline.c (cgraph_freq_base_rec): Remove.
6951         (compute_uninlined_call_time): Use sreal_frequency.
6952         (compute_inlined_call_time): Likewise.
6953         (ipa_inline): Do not initialize cgraph_freq_base_rec.
6954         * profile-count.c: Include sreal.h.
6955         (profile_count::to_sreal_scale): New.
6956         * profile-count.h: Forward declare sreal.
6957         (profile_count::to_sreal_scale): Declare.
6958
6959 2017-11-13  Nathan Sidwell  <nathan@acm.org>
6960
6961         * diagnostic.c (maybe_line_and_column): New.
6962         (diagnostic_get_location_text): Use it.
6963         (diagnostic_report_current_module): Likewise.
6964         (test_diagnostic_get_location_text): Add tests.
6965
6966 2017-11-13  Luis Machado  <luis.machado@linaro.org>
6967
6968         * doc/md.texi (Specifying processor pipeline description): Fix
6969         incorrect latency for the div instruction example.
6970
6971 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
6972
6973         PR tree-optimization/78821
6974         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
6975         that bit_not_p is the same.
6976         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
6977         (split_group): Count precisely bit_not_p bits in each statement.
6978         (invert_op): New function.
6979         (imm_store_chain_info::output_merged_store): Use invert_op to
6980         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
6981         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
6982
6983 2017-11-13  Martin Liska  <mliska@suse.cz>
6984
6985         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
6986         (struct source_info): Likewise.
6987         (add_branch_counts): Likewise.
6988         (add_line_counts): Likewise.
6989         (function_summary): Likewise.
6990         (output_intermediate_line): Likewise.
6991         (generate_results): Likewise.
6992
6993 2017-11-13  Martin Liska  <mliska@suse.cz>
6994
6995         * gcov.c (struct block_info): Remove typedef for block_t.
6996         (struct line_info): Likewise.
6997         (line_info::has_block): Likewise.
6998         (EXIT_BLOCK): Likewise.
6999         (unblock): Likewise.
7000         (circuit): Likewise.
7001         (get_cycles_count): Likewise.
7002         (process_file): Likewise.
7003         (read_graph_file): Likewise.
7004         (solve_flow_graph): Likewise.
7005         (find_exception_blocks): Likewise.
7006         (add_line_counts): Likewise.
7007         (accumulate_line_info): Likewise.
7008         (output_line_details): Likewise.
7009
7010 2017-11-13  Martin Liska  <mliska@suse.cz>
7011
7012         * gcov.c (struct arc_info): Remove typedef for arc_t.
7013         (struct line_info): Likewise.
7014         (add_branch_counts): Likewise.
7015         (output_branch_count): Likewise.
7016         (function_info::~function_info): Likewise.
7017         (circuit): Likewise.
7018         (output_intermediate_line): Likewise.
7019         (read_graph_file): Likewise.
7020         (solve_flow_graph): Likewise.
7021         (find_exception_blocks): Likewise.
7022         (add_line_counts): Likewise.
7023         (accumulate_line_info): Likewise.
7024         (output_line_details): Likewise.
7025         (output_function_details): Likewise.
7026
7027 2017-11-13  Martin Liska  <mliska@suse.cz>
7028
7029         * gcov.c (struct function_info): Remove typedef for function_t.
7030         (struct source_info): Likewise.
7031         (source_info::get_functions_at_location): Likewise.
7032         (solve_flow_graph): Likewise.
7033         (find_exception_blocks): Likewise.
7034         (add_line_counts): Likewise.
7035         (output_intermediate_file): Likewise.
7036         (process_file): Likewise.
7037         (generate_results): Likewise.
7038         (release_structures): Likewise.
7039         (read_graph_file): Likewise.
7040         (read_count_file): Likewise.
7041         (accumulate_line_counts): Likewise.
7042         (output_lines): Likewise.
7043
7044 2017-11-13  Martin Liska  <mliska@suse.cz>
7045
7046         * gcov.c (function_info::function_info): Remove num_counts
7047         and add vector<gcov_type>.
7048         (function_info::~function_info): Use the vector.
7049         (process_file): Likewise.
7050         (read_graph_file): Likewise.
7051         (read_count_file): Likewise.
7052         (solve_flow_graph): Likewise.
7053
7054 2017-11-13  Martin Liska  <mliska@suse.cz>
7055
7056         * gcov.c (function_info::is_artificial): New function.
7057         (process_file): Erase all artificial early.
7058         (generate_results): Skip as all artificial are already
7059         removed.
7060
7061 2017-11-13  Martin Liska  <mliska@suse.cz>
7062
7063         * gcov.c (read_graph_file): Store to global vector of functions.
7064         (read_count_file): Iterate the vector.
7065         (process_file): Likewise.
7066         (generate_results): Likewise.
7067         (release_structures): Likewise.
7068
7069 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
7070
7071         PR tree-optimization/82954
7072         * gimple-ssa-store-merging.c
7073         (imm_store_chain_info::coalesce_immediate_stores): If
7074         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
7075
7076 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
7077
7078         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
7079         Upddate call to ENDIAN_LANE_N.
7080         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
7081         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
7082         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
7083         and use aarch64_endian_lane_rtx.
7084         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
7085
7086 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7087
7088         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
7089
7090 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7091
7092         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
7093
7094 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7095
7096         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
7097         body.
7098         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7099         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7100         * defaults.h (ASM_OUTPUT_LABELREF): Same.
7101
7102 2017-11-11  Martin Sebor  <msebor@redhat.com>
7103
7104         PR c/81117
7105         * doc/extend.texi (attribute nonstring): Remove spurious argument.
7106
7107         PR bootstrap/82948
7108         * prefic.c (translate_name): Replace strncpy with memcpy to
7109         avoid -Wstringop-truncation.
7110
7111 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7112
7113         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
7114
7115 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7116
7117         * predict.c (maybe_hot_frequency_p): Do not use cfun.
7118
7119 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7120
7121         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
7122         merging.
7123
7124 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7125
7126         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
7127         enable generating XXBRH if the value is in a vector register.
7128         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
7129         value is in a vector register.
7130         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
7131         register to register bswap64's instead of doing the GPR sequence
7132         used on previous machines.
7133         (bswapdi2_xxbrd): New insn.
7134         (bswapdi2_reg): Disallow on ISA 3.0.
7135         (register to register bswap64 splitter): Do not split the insn on
7136         ISA 3.0 systems that use XXBRD.
7137
7138 2017-11-10  Martin Sebor  <msebor@redhat.com>
7139
7140         PR c/81117
7141         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
7142         with memcpy.
7143         (find_subframework_file): Same.
7144
7145 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7146
7147         * auto-profile.c (afdo_indirect_call): Drop frequency.
7148         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
7149         (cgraph_node::create_edge): Drop frequency argument.
7150         (cgraph_node::create_indirect_edge): Drop frequency argument.
7151         (cgraph_edge::make_speculative): Drop frequency arguments.
7152         (cgraph_edge::resolve_speculation): Do not update frequencies
7153         (cgraph_edge::dump_edge_flags): Do not dump frequency.
7154         (cgraph_node::dump): Check consistency in IPA mode.
7155         (cgraph_edge::maybe_hot_p): Use IPA counter.
7156         (cgraph_edge::verify_count_and_frequency): Rename to ...
7157         (cgraph_edge::verify_count): ... this one; drop frequency checking.
7158         (cgraph_node::verify_node): Update.
7159         * cgraph.h (struct cgraph_edge): Drop frequency.
7160         (cgraph_edge::frequency): New function.
7161         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
7162         frequencies.
7163         (cgraph_edge::rebuild_edges): Likewise.
7164         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
7165         (duplicate_thunk_for_node): Do not pass frequency.
7166         (cgraph_node::create_clone): Scale only counts.
7167         (cgraph_node::create_virtual_clone): Do not pass frequency.
7168         (cgraph_node::create_edge_including_clones): Do not pass frequency.
7169         (cgraph_node::create_version_clone): Do not pass frequency.
7170         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
7171         (cgraph_node::expand_thunk): Do not pass frequency.
7172         (cgraph_node::create_wrapper): Do not pass frequency.
7173         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
7174         frequency.
7175         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
7176         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
7177         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
7178         (gather_caller_stats): Use frequency function.
7179         (ipcp_cloning_candidate_p): Use frequency function.
7180         (ipcp_propagate_stage): Use frequency function.
7181         (get_info_about_necessary_edges): Use frequency function.
7182         (update_profiling_info): Update only IPA profile.
7183         (update_specialized_profile): Use frequency functoin.
7184         (perhaps_add_new_callers): Update only IPA profile.
7185         * ipa-devirt.c (ipa_devirt): Use IPA profile.
7186         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
7187         (dump_ipa_call_summary): Use frequency function.
7188         (estimate_edge_size_and_time): Use frequency function.
7189         (ipa_merge_fn_summary_after_inlining): Use frequency function.
7190         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
7191         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
7192         (update_noncloned_counts): ... ths one; scale counts only.
7193         (clone_inlined_nodes): Do not scale frequency.
7194         (inline_call): Do not pass frequency.
7195         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
7196         (compute_inlined_call_time): Use IPA profile.
7197         (want_inline_small_function_p): Use IPA profile.
7198         (want_inline_self_recursive_call_p): Use IPA profile.
7199         (edge_badness): Use IPA profile.
7200         (lookup_recursive_calls): Use IPA profile.
7201         (recursive_inlining): Do not pass frequency.
7202         (resolve_noninline_speculation): Do not update frequency.
7203         (inline_small_functions): Collect max of IPA profile.
7204         (dump_overall_stats): Dump IPA porfile.
7205         (dump_inline_stats): Dump IPA porfile.
7206         (ipa_inline): Collect IPA stats.
7207         * ipa-inline.h (clone_inlined_nodes): Update prototype.
7208         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
7209         (ipa_propagate_frequency): Use frequency function.
7210         (ipa_profile): Cleanup.
7211         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
7212         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
7213         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
7214         (input_node): Do not stream frequency.
7215         (input_edge): Do not stream frequency.
7216         (merge_profile_summaries): Scale only IPA profiles.
7217         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
7218         * predict.c (drop_profile): Do not recompute frequency.
7219         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
7220         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
7221         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
7222         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
7223         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
7224         * tree-inline.c (copy_bb): Do not scale frequency.
7225         (expand_call_inline): Do not scale frequency.
7226         (tree_function_versioning): Do not scale frequency.
7227         * ubsan.c (ubsan_create_edge): Do not pass frequency.
7228
7229 2017-11-10  Julia Koval  <julia.koval@intel.com>
7230
7231         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
7232         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
7233         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
7234         (_mm256_maskz_gf2p8affine_epi64_epi8)
7235         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
7236         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
7237         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
7238         (__builtin_ia32_vgf2p8affineqb_v32qi)
7239         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
7240         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
7241
7242 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
7243
7244         PR target/82641
7245         * config/arm/arm.c
7246         (arm_option_override): Refactor.
7247         (arm_option_reconfigure_globals): New.
7248         (arm_options_perform_arch_sanity_checks): New.
7249         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
7250         New prototype.
7251         (arm_options_perform_arch_sanity_checks): Likewise
7252
7253 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
7254
7255         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
7256         (power9-qpmul): New.
7257         * rs6000/rs6000.md ("type" attr): Add qmul.
7258         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
7259         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
7260         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
7261
7262 2017-11-10  Martin Sebor  <msebor@redhat.com>
7263
7264         PR c/81117
7265         * builtins.c (compute_objsize): Handle arrays that
7266         compute_builtin_object_size likes to fail for.  Make extern.
7267         * builtins.h (compute_objsize): Declare.
7268         (check_strncpy_sizes): New function.
7269         (expand_builtin_strncpy): Call check_strncpy_sizes.
7270         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
7271         -Wstringop-truncation.
7272         (gimple_fold_builtin_strncat): Same.
7273         * gimple.c (gimple_build_call_from_tree): Set call location.
7274         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
7275         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
7276         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
7277         (handle_builtin_strlen): Use strlen_to_stridx.
7278         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
7279         stpncpy.
7280         Use strlen_to_stridx.
7281         (pass_strlen::execute): Release strlen_to_stridx.
7282         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
7283         (-Wstringop-truncation): Document new option.
7284
7285 2017-11-10  Martin Liska  <mliska@suse.cz>
7286
7287         PR gcov-profile/82702
7288         * gcov.c (main): Handle intermediate files in a different
7289         way.
7290         (get_gcov_intermediate_filename): New function.
7291         (output_gcov_file): Remove support of intermediate files.
7292         (generate_results): Allocate intermediate file.
7293         (release_structures): Clean-up properly fn_end.
7294         (output_intermediate_file): Start iterating with line 1.
7295
7296 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7297
7298         PR tree-optimization/82929
7299         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7300         ops_swapped_p non-static data member.
7301         (store_immediate_info::store_immediate_info): Clear it.
7302         (imm_store_chain_info::coalesce_immediate_stores): If swapping
7303         ops set ops_swapped_p.
7304         (count_multiple_uses): Handle ops_swapped_p.
7305
7306 2017-11-10  Martin Liska  <mliska@suse.cz>
7307
7308         * coverage.c (coverage_init): Stream information about
7309         support of has_unexecuted_blocks.
7310         * doc/gcov.texi: Document that.
7311         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
7312         * gcov.c (read_graph_file): Likewise.
7313         (output_line_beginning): Fix a small issue with
7314         color output.
7315
7316 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
7317
7318         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
7319         reference of trivial component.
7320
7321 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7322
7323         PR bootstrap/82916
7324         * gimple-ssa-store-merging.c
7325         (pass_store_merging::terminate_all_aliasing_chains): For
7326         gimple_store_p stmts also call refs_output_dependent_p.
7327
7328         PR rtl-optimization/82913
7329         * compare-elim.c (try_merge_compare): Punt if def_insn is not
7330         single set.
7331
7332 2017-11-09  Jeff Law  <law@redhat.com>
7333
7334         * vr-values.h: New file with vr_values class.
7335         * tree-vrp.c: Include vr-values.h
7336         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
7337         data objects into the vr_values class.
7338         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
7339         (get_value_range): Make it a member function within vr_values class.
7340         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
7341         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
7342         (op_with_constant_singleton_value_range): Likewise.
7343         (extract_range_for_var_from_comparison_expr): Likewise.
7344         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
7345         (extract_range_from_binary_expr): Likewise.
7346         (extract_range_from_unary_expr): Likewise.
7347         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
7348         (check_for_binary_op_overflow, extract_range_basic): Likewise.
7349         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
7350         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
7351         (compare_name_with_value, compare_names): Likewise.
7352         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
7353         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
7354         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
7355         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
7356         (extract_range_from_phi_node): Likewise.
7357         (simplify_truth_ops_using_ranges): Likewise.
7358         (simplify_div_or_mod_using_ranges): Likewise.
7359         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
7360         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
7361         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
7362         (simplify_float_conversion_using_ranges): Likewise.
7363         (simplify_internal_call_using_ranges): Likewise.
7364         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
7365         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
7366         poitner via x_vr_values for calls into gimple folder.
7367         (vrp_initialize_lattice): Make this the vr_values ctor.
7368         (vrp_free_lattice): Make this the vr_values dtor.
7369         (set_vr_value): New function.
7370         (class vrp_prop): Add vr_values data member.  Add various member
7371         functions as well as member functions that delegate to vr_values.
7372         (check_array_ref): Make a member function within vrp_prop class.
7373         (search_for_addr_array, vrp_initialize): Likewise.
7374         (vrp_finalize): Likewise.  Revamp to avoid direct access to
7375         vr_value, values_propagated, etc.
7376         (check_array_bounds): Extract vrp_prop class instance pointer from
7377         walk info structure.  Use it to call member functions.
7378         (check_all_array_refs): Make a member function within vrp_prop class.
7379         Smuggle class instance pointer via walk info structure.
7380         (x_vr_values): New local static.
7381         (vrp_valueize): Use x_vr_values to get class instance.
7382         (vr_valueize_1): Likewise.
7383         (class vrp_folder): Add vr_values data member.  Add various member
7384         functions as well as member functions that delegate to vr_values.
7385         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
7386         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
7387         class instance from vr_values.  Use it to call member functions.
7388         (vrp_dom_walker): Add vr_values data member.
7389         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
7390         instance via x_vr_values.
7391         (identify_jump_threads): Accept vr_values as argument.  Store
7392         it into the walker structure.
7393         (evrp_dom_walker): Add vr_values class data member.  Add various
7394         delegators.
7395         (evrp_dom_walker::try_find_new_range): Use vr_values data
7396         member to access the memory allocator.
7397         (evrp_dom_walker::before_dom_children): Store vr_values class
7398         instance into the vrp_folder class.
7399         (evrp_dom_walker::push_value_range): Rework to avoid direct
7400         access to num_vr_values and vr_value.
7401         (evrp_dom_walker::pop_value_range): Likewise.
7402         (execute_early_vrp): Remove call to vrp_initialize_lattice.
7403         Use vr_values to get to dump_all_value_ranges member function.
7404         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
7405         and simplify_cond_using_ranges_2 via vrp_prop class instance.
7406         Pass vr_values class instance down to identify_jump_threads.
7407         Remove call to vrp_free_lattice.
7408         (debug_all_value_ranges): Remove.
7409
7410         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
7411         (vrp_folder): Likewise.
7412
7413         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
7414         Get it from the existing bitmap instead.
7415         (vrp_intersect_ranges_1): Likewise.
7416
7417 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7418
7419         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7420         bit_not_p field.
7421         (store_immediate_info::store_immediate_info): Add bitnotp argument,
7422         set bit_not_p to it.
7423         (imm_store_chain_info::coalesce_immediate_stores): Break group
7424         if bit_not_p is different.
7425         (count_multiple_uses, split_group,
7426         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
7427         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
7428         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
7429         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
7430         to store_immediate_info ctor.
7431
7432 2017-11-09  Jim Wilson  <jimw@sifive.com>
7433
7434         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
7435         (scan_prog_file): Likewise.
7436
7437 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7438
7439         * bb-reorder.c (max_entry_frequency): Remove.
7440         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
7441         connect_traces, push_to_next_round_p): Remove prototypes.
7442         (find_traces_1_round): Use counts only.
7443         (push_to_next_round_p): Likewise.
7444         (find_traces): Likewise.
7445         (rotate_loop): Likewise.
7446         (find_traces_1_round): Likewise.
7447         (connect_traces): Likewise.
7448         (edge_order): Likewise.
7449
7450 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7451
7452         * config/arm/arm.c (output_return_instruction): Add comments to
7453         indicate requirement for cmse_nonsecure_entry return to account
7454         for the size of clearing instruction output here.
7455         (thumb_exit): Likewise.
7456         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
7457         return in hardfloat mode.
7458
7459 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
7460
7461         * config/rs6000/rs6000.c (machine_function): Add a bool,
7462         "toc_is_wrapped_separately".
7463         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
7464         if it wasn't explicitly set or unset, we are optimizing for speed, and
7465         doing separate shrink-wrapping.
7466         (rs6000_get_separate_components): Enable the TOC component if
7467         saving the TOC register in the prologue.
7468         (rs6000_components_for_bb): Handle the TOC component.
7469         (rs6000_emit_prologue_components): Store the TOC register where needed.
7470         (rs6000_set_handled_components): Mark TOC as handled, if handled.
7471         (rs6000_emit_prologue): Don't save the TOC if that is already done.
7472
7473 2017-11-09  Martin Jambor  <mjambor@suse.cz>
7474
7475         * ipa-param-manipulation.c: New file.
7476         * ipa-param-manipulation.h: Likewise.
7477         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
7478         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
7479         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
7480         (ipa_parm_adjustment): Likewise.
7481         (ipa_parm_adjustment_vec): Likewise.
7482         (ipa_get_vector_of_formal_parms): Moved declaration to
7483         ipa-param-manipulation.h.
7484         (ipa_get_vector_of_formal_parm_types): Likewise.
7485         (ipa_modify_formal_parameters): Likewise.
7486         (ipa_modify_call_arguments): Likewise.
7487         (ipa_combine_adjustments): Likewise.
7488         (ipa_dump_param_adjustments): Likewise.
7489         (ipa_modify_expr): Likewise.
7490         (ipa_get_adjustment_candidate): Likewise.
7491         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
7492         ipa-param-manipulation.c.
7493         (ipa_get_vector_of_formal_parm_types): Likewise.
7494         (ipa_modify_formal_parameters): Likewise.
7495         (ipa_modify_call_arguments): Likewise.
7496         (ipa_modify_expr): Likewise.
7497         (get_ssa_base_param): Likewise.
7498         (ipa_get_adjustment_candidate): Likewise.
7499         (index_in_adjustments_multiple_times_p): Likewise.
7500         (ipa_combine_adjustments): Likewise.
7501         (ipa_dump_param_adjustments): Likewise.
7502         * tree-sra.c: Also include ipa-param-manipulation.h
7503         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
7504         ipa-param.h.
7505
7506 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7507             Alan Hayward  <alan.hayward@arm.com>
7508             David Sherwood  <david.sherwood@arm.com>
7509
7510         * doc/sourcebuild.texi (vect_masked_store): Document.
7511
7512 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7513             Alan Hayward  <alan.hayward@arm.com>
7514             David Sherwood  <david.sherwood@arm.com>
7515
7516         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
7517
7518 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7519             Alan Hayward  <alan.hayward@arm.com>
7520             David Sherwood  <david.sherwood@arm.com>
7521
7522         * doc/sourcebuild.texi (vect_variable_length): Document.
7523
7524 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7525             Alan Hayward  <alan.hayward@arm.com>
7526             David Sherwood  <david.sherwood@arm.com>
7527
7528         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
7529
7530 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7531             Alan Hayward  <alan.hayward@arm.com>
7532             David Sherwood  <david.sherwood@arm.com>
7533
7534         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
7535
7536 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7537             Alan Hayward  <alan.hayward@arm.com>
7538             David Sherwood  <david.sherwood@arm.com>
7539
7540         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
7541         previously undocumented selectors.
7542         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
7543
7544 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7545
7546         * doc/rtl.texi (const_vector): Say that elements can be
7547         const_wide_ints too.
7548         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
7549         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
7550         (gen_vec_duplicate): Use it instead of CONSTANT_P.
7551         * optabs.c (expand_vector_broadcast): Likewise.
7552
7553 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7554             Alan Hayward  <alan.hayward@arm.com>
7555             David Sherwood  <david.sherwood@arm.com>
7556
7557         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
7558         scaled index even if the unscaled address was invalid.
7559         Don't increase the complexity of using a scale in that case.
7560
7561 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7562             Alan Hayward  <alan.hayward@arm.com>
7563             David Sherwood  <david.sherwood@arm.com>
7564
7565         * doc/rtl.texi: Rewrite the subreg rules so that they partition
7566         the inner register into REGMODE_NATURAL_SIZE bytes rather than
7567         UNITS_PER_WORD bytes.
7568         * emit-rtl.c (validate_subreg): Divide subregs into blocks
7569         based on REGMODE_NATURAL_SIZE of the inner mode.
7570         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
7571         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
7572         * expmed.c (lowpart_bit_field_p): Divide the value up into
7573         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
7574         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
7575         whether something is likely to occupy more than one register.
7576
7577 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7578
7579         PR ipa/82879
7580         * ipa-inline-transform.c (update_noncloned_frequencies): Use
7581         profile_count::adjust_for_ipa_scaling.
7582         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
7583         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
7584         function.
7585         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
7586
7587 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7588
7589         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
7590         (split_group): Add total_orig and total_new arguments, estimate the
7591         number of statements related to the store group without store merging
7592         and with store merging.
7593         (imm_store_chain_info::output_merged_store): Adjust split_group
7594         callers, punt if estimated number of statements with store merging
7595         is not smaller than estimated number of statements without it.
7596         Formatting fix.
7597         (handled_load): Remove has_single_use checks.
7598         (pass_store_merging::process_store): Likewise.
7599
7600 2017-11-09  Richard Biener  <rguenther@suse.de>
7601
7602         PR tree-optimization/82902
7603         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
7604
7605 2017-11-09  Martin Liska  <mliska@suse.cz>
7606
7607         PR target/82863
7608         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
7609         uninitialized.
7610
7611 2017-11-09  Martin Liska  <mliska@suse.cz>
7612
7613         PR tree-optimization/82669
7614         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
7615
7616 2017-11-09  Martin Liska  <mliska@suse.cz>
7617
7618         PR gcov-profile/48463
7619         * coverage.c (coverage_begin_function): Output also end locus
7620         of a function and information whether the function is
7621         artificial.
7622         * gcov-dump.c (tag_function): Parse and print the information.
7623         * gcov.c (INCLUDE_MAP): Add include.
7624         (INCLUDE_SET): Likewise.
7625         (struct line_info): Move earlier in the source file because
7626         of vector<line_info> in function_info structure.
7627         (line_info::line_info): Likewise.
7628         (line_info::has_block): Likewise.
7629         (struct source_info): Add new member index.
7630         (source_info::get_functions_at_location): New function.
7631         (function_info::group_line_p): New function.
7632         (output_intermediate_line): New function.
7633         (output_intermediate_file): Use the mentioned function.
7634         (struct function_start): New.
7635         (struct function_start_pair_hash): Likewise.
7636         (process_file): Add code that identifies group functions.
7637         Assign lines either to global or function scope.
7638         (generate_results): Skip artificial functions.
7639         (find_source): Assign index for each source file.
7640         (read_graph_file): Read new flag artificial and end_line.
7641         (add_line_counts): Assign it either to global of function scope.
7642         (accumulate_line_counts): Isolate core of the function to
7643         accumulate_line_info and call it for both function and global
7644         scope lines.
7645         (accumulate_line_info): New function.
7646         (output_line_beginning): Fix GNU coding style.
7647         (print_source_line): New function.
7648         (output_line_details): Likewise.
7649         (output_function_details): Likewise.
7650         (output_lines): Iterate both source (global) scope and function
7651         scope.
7652         (struct function_line_start_cmp): New class.
7653         * doc/gcov.texi: Reflect changes in documentation.
7654
7655 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7656
7657         PR debug/82837
7658         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
7659         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
7660         and similarly for not instead of neg.
7661
7662 2017-11-08  Andi Kleen  <ak@linux.intel.com>
7663
7664         * config/i386/i386.opt: Add -mforce-indirect-call.
7665         * config/i386/predicates.md: Check for flag_force_indirect_call.
7666         * doc/invoke.texi: Document -mforce-indirect-call
7667
7668 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
7669
7670         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
7671         New extern.
7672         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
7673         config/riscv/riscv.c (predict.h): New include.
7674         (riscv_slow_unaligned_access_p): No longer static.
7675         (riscv_block_move_straight): Add require.
7676         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
7677
7678 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7679
7680         PR target/82855
7681         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
7682         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
7683         nonimmediate_operand predicate for operand 1 instead of
7684         register_operand.
7685
7686 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7687
7688         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
7689         New pattern.
7690         * config/aarch64/constraints.md (Uml): New constraint.
7691         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
7692         predicate.
7693
7694 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7695
7696         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
7697         of two vec_duplicates into a vec_concat.
7698
7699 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7700
7701         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7702         Simplify vec_merge of vec_duplicate and vec_concat.
7703         * config/aarch64/constraints.md (Utq): New constraint.
7704         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
7705         define_insn.
7706
7707 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7708
7709         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7710         Simplify vec_merge of vec_duplicate and const_vector.
7711         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
7712         New predicate.
7713         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
7714         mode iterator.  Update predicate on operand 1 to
7715         handle non-const_vec constants.  Delete constraints.
7716         (*aarch64_combinez_be<mode>): Likewise for operand 2.
7717
7718 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7719
7720         PR tree-optimization/78821
7721         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
7722         data member.
7723         (store_operand_info::store_operand_info): Initialize it to false.
7724         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
7725         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
7726         store in the group, and if chain_info is non-NULL, to ignore altogether
7727         that chain.
7728         (compatible_load_p): Fail if bit_not_p does not match.
7729         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
7730         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
7731         (pass_store_merging::process_store): Adjust
7732         terminate_all_aliasing_chains calls to pass NULL in all current spots,
7733         call terminate_all_aliasing_chains newly when adding a store into
7734         a chain with non-NULL chain_info.
7735
7736 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7737
7738         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
7739
7740 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7741
7742         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
7743         Remove.
7744         (aarch64_layout_frame): Initialise emit_frame_chain.
7745         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
7746         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
7747
7748 2017-11-08  Martin Liska  <mliska@suse.cz>
7749
7750         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
7751         of gimple_call_internal_p.
7752
7753 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7754
7755         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
7756
7757 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7758
7759         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
7760         "do {} while (0)".
7761
7762 2017-11-08  Martin Liska  <mliska@suse.cz>
7763
7764         PR sanitizer/82792
7765         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
7766
7767 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7768
7769         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
7770
7771 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
7772
7773         PR target/82855
7774         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
7775         (*cmp<mode>_ccz_1): New insn with $k alternative.
7776
7777         PR target/82855
7778         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
7779         RTX_COMM_COMPARE as commutative as well.
7780         (ix86_binary_operator_ok): Formatting fix.
7781         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
7782         *<code><mode>3<mask_name><round_saeonly_name>,
7783         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
7784         *<s>mul<mode>3_highpart<mask_name>,
7785         *vec_widen_umult_even_v16si<mask_name>,
7786         *vec_widen_umult_even_v8si<mask_name>,
7787         *vec_widen_umult_even_v4si<mask_name>,
7788         *vec_widen_smult_even_v16si<mask_name>,
7789         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
7790         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
7791         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
7792         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
7793         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
7794         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
7795         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
7796         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
7797         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
7798         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
7799         ix86_binary_operator_ok.  Formatting fixes.
7800         (*<plusminus_insn><mode>3<mask_name><round_name>,
7801         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
7802         fixes.
7803
7804 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
7805
7806         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
7807         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
7808         eq and ne if TARGET_ISEL.
7809         (cmp): New code_iterator.
7810         (UNS, UNSU_, UNSIK): New code_attrs.
7811         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
7812         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
7813         to...
7814         ("eq<mode>3"): ... this.
7815         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
7816         to...
7817         ("ne<mode>3"): ... this.
7818
7819 2017-11-07  Julia Koval  <julia.koval@intel.com>
7820
7821         PR target/82812
7822         * common/config/i386/i386-common.c
7823         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
7824         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
7825         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
7826         * config/i386/i386.opt: Ditto.
7827         * config/i386/i386.c (ix86_target_string): Ditto.
7828         (ix86_option_override_internal): Ditto.
7829         (ix86_init_mpx_builtins): Move MPX to args2.
7830         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
7831         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
7832         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
7833         __builtin_ia32_vgf2p8affineinvqb_v32qi,
7834         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
7835         __builtin_ia32_vgf2p8affineinvqb_v16qi,
7836         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
7837
7838 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
7839
7840         PR target/80425
7841         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
7842         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
7843         (zero-extendsidi peephole2): Remove peephole.
7844
7845 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7846
7847         PR c/53037
7848         * stor-layout.c: Include attribs.h.
7849         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
7850         explicit lookup of "aligned" attribute.
7851
7852 2017-11-07  Andrew Waterman  <andrew@sifive.com>
7853
7854         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
7855         (riscv_expand_block_move): Likewise.
7856         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
7857         implementation.
7858         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
7859         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
7860         * config/riscv/riscv.c (riscv_block_move_straight): New function.
7861         (riscv_adjust_block_mem): Likewise.
7862         (riscv_block_move_loop): Likewise.
7863         (riscv_expand_block_move): Likewise.
7864         * config/riscv/riscv.md (movmemsi): New pattern.
7865
7866 2017-11-07  Michael Clark  <michaeljclark@mac.com>
7867
7868         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
7869         (MUSL_DYNAMIC_LINKER): Likewise.
7870
7871 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
7872
7873         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
7874         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
7875         nonmmory_operand.
7876
7877 2017-11-07  Richard Biener  <rguenther@suse.de>
7878
7879         * match.pd: Fix build.
7880
7881 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
7882             Jackson Woodruff  <jackson.woodruff@arm.com>
7883
7884         PR tree-optimization/71026
7885         * match.pd: Canonicalize negate in division.
7886
7887 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
7888
7889         PR middle-end/80131
7890         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
7891
7892 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7893
7894         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
7895         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
7896
7897 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7898
7899         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
7900         non-scalar integral types.
7901         * match.pd (negate_expr_p): Handle MINUS_EXPR.
7902         (-(A-B), -(~A)): New transformations.
7903
7904 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7905
7906         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7907         semicolon after "do {} while (0)".
7908         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7909         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7910         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7911         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7912         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7913
7914 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7915
7916         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
7917         after "do {} while (0)".
7918         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7919         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7920         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7921         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7922         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7923
7924 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7925
7926         PR other/82784
7927         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
7928         "while {} do (0)".
7929         (arm_rtx_costs_internal): Add missing semicolon after
7930         HANDLE_NARROW_SHIFT_ARITH call.
7931
7932 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7933
7934         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7935         disable isel if it was not set explicitly.
7936
7937 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
7938
7939         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
7940         (add_type_attribute) likewise.
7941
7942 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
7943
7944         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
7945         of struct ix86_frame.
7946         (ix86_initial_elimination_offset): Likewise.
7947         (ix86_expand_split_stack_prologue): Likewise.
7948
7949 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
7950
7951         * tree-vrp.h (enum value_range_type): Update stale comment.
7952
7953 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7954             Alan Hayward  <alan.hayward@arm.com>
7955             David Sherwood  <david.sherwood@arm.com>
7956
7957         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
7958         (aarch64_expand_vec_perm_const): Take the number of units too.
7959         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
7960         (aarch64_expand_vec_perm_const): Likewise.
7961         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
7962         (vec_perm<mode>): Update accordingly.
7963
7964 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7965             Alan Hayward  <alan.hayward@arm.com>
7966             David Sherwood  <david.sherwood@arm.com>
7967
7968         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
7969         Take the number of units too.
7970         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
7971         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
7972         but check for a vector mode before rather than after the call.
7973         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
7974         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
7975         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
7976         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
7977         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
7978         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
7979         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
7980         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
7981         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
7982         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
7983         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
7984         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
7985         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
7986         (aarch64_sqdmull2_n<mode>): Update accordingly.
7987
7988 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
7989             Alan Hayward  <alan.hayward@arm.com>
7990             David Sherwood  <david.sherwood@arm.com>
7991
7992         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
7993         the number of units too.
7994         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
7995         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
7996         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
7997         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
7998         (vec_store_lanesxi<mode>): Update accordingly.
7999
8000 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8001             Alan Hayward  <alan.hayward@arm.com>
8002             David Sherwood  <david.sherwood@arm.com>
8003
8004         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
8005         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
8006         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
8007         of units rather than the mode.
8008         * config/aarch64/iterators.md (nunits): New mode attribute.
8009         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
8010         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
8011         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
8012         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
8013         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
8014         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
8015         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
8016         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
8017         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
8018         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
8019         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
8020         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
8021         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
8022         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
8023         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
8024         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
8025         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
8026         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
8027         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
8028         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
8029         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8030         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
8031         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
8032         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8033         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
8034         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
8035         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8036         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
8037         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
8038         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
8039         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
8040         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
8041         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
8042         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
8043         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
8044         (aarch64_simd_vec_setv2di): Likewise.
8045
8046 2017-11-06  Carl Love  <cel@us.ibm.com>
8047
8048         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
8049         definitions.
8050         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
8051         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
8052         to power 8.
8053         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
8054         extern declaration.
8055         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
8056         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
8057         Add power 8 macro expansions.
8058         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
8059         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
8060         power 8 instructions.  (VSX_XXBR): Add iterator.
8061
8062 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
8063
8064         * config/arm/arm.md (predicable_short_it): Change default to "no",
8065         improve documentation, remove uses that are identical to the default.
8066         (enabled_for_depr_it): Rename to enabled_for_short_it.
8067         * gcc/config/arm/arm-fixed.md (predicable_short_it):
8068         Remove default uses.
8069         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
8070         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
8071         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
8072         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
8073
8074 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8075
8076         PR target/82748
8077         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
8078         float128 helper macros, which are no longer used after deleting
8079         the old 'q' built-in functions, and moving the round to odd
8080         built-in functions to being special built-in functions.
8081         (BU_FLOAT128_2): Likewise.
8082         (BU_FLOAT128_1_HW): Likewise.
8083         (BU_FLOAT128_2_HW): Likewise.
8084         (BU_FLOAT128_3_HW): Likewise.
8085         (FABSQ): Delete old 'q' built-in functions.
8086         (COPYSIGNQ): Likewise.
8087         (SQRTF128_ODD): Move round to odd built-in functions to be
8088         special built-in functions, so that we can handle
8089         -mabi=ieeelongdouble.
8090         (TRUNCF128_ODD): Likewise.
8091         (ADDF128_ODD): Likewise.
8092         (SUBF128_ODD): Likewise.
8093         (MULF128_ODD): Likewise.
8094         (DIVF128_ODD): Likewise.
8095         (FMAF128_ODD): Likewise.
8096         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
8097         built-in names to 'f128'.
8098         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
8099         old 'q' built-in functions, as the machine independent code for
8100         'f128' built-in functions handles this.
8101         (rs6000_expand_builtin): Add expansion for float128 round to odd
8102         functions, keying off on -mabi=ieeelongdouble of whether to use
8103         the KFmode or TFmode variant.
8104         (rs6000_init_builtins): Initialize the _Float128 round to odd
8105         built-in functions.
8106         * doc/extend.texi (PowerPC Built-in Functions): Document the old
8107         _Float128 'q' built-in functions are now mapped into the new
8108         'f128' built-in functions.
8109
8110 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
8111
8112         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
8113         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
8114
8115 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
8116
8117         PR jit/82826
8118         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
8119         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
8120         * toplev.c: Include "ipa-fnsummary.h".
8121         (toplev::finalize): Call ipa_fnsummary_c_finalize.
8122
8123 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
8124
8125         PR tree-optimization/82838
8126         * gimple-ssa-store-merging.c
8127         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
8128         on a separate gimple_seq which is then appended to seq.
8129
8130 2017-11-06  Jeff Law  <law@redhat.com>
8131
8132         PR target/82788
8133         * config/i386/i386.c (PROBE_INTERVAL): Remove.
8134         (get_probe_interval): New functions.
8135         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
8136         (ix86_adjust_stack_and_probe): Likewise.
8137         (output_adjust_stack_and_probe): Likewise.
8138         (ix86_emit_probe_stack_range): Likewise.
8139         (ix86_expand_prologue): Likewise.
8140
8141 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8142
8143         PR tree-optimization/82816
8144         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
8145         if the modes of the two types are the same.
8146         (convert_plusminus_to_widen): Likewise.
8147
8148 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8149
8150         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
8151         p9_vadu<mode>3.
8152         (usadv16qi): New define_expand.
8153         (usadv8hi): New define_expand.
8154
8155 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
8156
8157         PR bootstrap/82832
8158         * ipa-inline-transform.c (update_noncloned_frequencies): Always
8159         scale.
8160         (inline_transform): Likewise.
8161         * predict.c (counts_to_freqs): Remove useless conditional.
8162         * profile-count.h (profile_count::apply_scale): Move sanity check.
8163         * tree-inline.c (copy_bb): Always scale.
8164         (copy_cfg_body): Likewise.
8165
8166 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
8167
8168         PR target/67591
8169         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
8170         attribute.
8171         (*cmp_ite0): Add enabled_for_depr_it attribute.
8172         (*cmp_ite1): Likewise.
8173
8174 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
8175
8176         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
8177         TYPE_MFCRF.
8178
8179 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8180
8181         * tree-vrp.c (vrp_int_const_binop): Return true on success and
8182         return the value by pointer.
8183         (extract_range_from_multiplicative_op_1): Update accordingly.
8184         Return as soon as an operation fails.
8185
8186 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8187
8188         PR other/82784
8189         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
8190         (DEF_SANITIZER_BUILTIN): ... here.
8191         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
8192         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
8193
8194 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8195
8196         PR other/82784
8197         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
8198         macro body.
8199         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
8200         ASM_OUTPUT_BEFORE_CASE_LABEL call.
8201         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
8202         after macro body.
8203         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8204         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8205         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8206
8207 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8208
8209         PR other/82784
8210         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
8211         "do {} while (0)".
8212
8213 2017-11-04  Michael Clark  <michaeljclark@mac.com>
8214
8215         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
8216         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
8217         (adddi3): Likewise.
8218         (*addsi3_extended): Likewise.
8219         (*addsi3_extended2): Likewise.
8220         (<optab>si3): Likewise.
8221         (<optab>di3): Likewise.
8222         (<optab><mode>3): Likewise.
8223         (<*optabe>si3_internal): Likewise.
8224         (zero_extendqi<SUPERQI:mode>2): Likewise.
8225         (*add<mode>hi3): Likewise.
8226         (*xor<mode>hi3): Likewise.
8227         (<optab>di3): Likewise.
8228         (*<optab>si3_extend): Likewise.
8229         (*sge<u>_<X:mode><GPR:mode>): Likewise.
8230         (*slt<u>_<X:mode><GPR:mode>): Likewise.
8231         (*sle<u>_<X:mode><GPR:mode>): Likewise.
8232
8233 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8234
8235         * config/riscv/riscv.c (riscv_option_override): Conditionally set
8236         TARGET_STRICT_ALIGN based upon -mtune argument.
8237
8238 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8239
8240         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
8241
8242 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
8243
8244         * config/i386/i386.c (choose_basereg): Use optional scratch
8245         register and add assertion.
8246         (x86_emit_outlined_ms2sysv_save): Use scratch register when
8247         needed, and don't allocate stack.
8248         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
8249         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
8250         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
8251
8252 2017-11-03  Jeff Law  <law@redhat.com>
8253
8254         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
8255         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
8256         to probe at the start of a noreturn function.
8257
8258 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
8259
8260         PR tree-optimization/78821
8261         * gimple-ssa-store-merging.c: Update the file comment.
8262         (MAX_STORE_ALIAS_CHECKS): Define.
8263         (struct store_operand_info): New type.
8264         (store_operand_info::store_operand_info): New constructor.
8265         (struct store_immediate_info): Add rhs_code and ops data members.
8266         (store_immediate_info::store_immediate_info): Add rhscode, op0r
8267         and op1r arguments to the ctor, initialize corresponding data members.
8268         (struct merged_store_group): Add load_align_base and load_align
8269         data members.
8270         (merged_store_group::merged_store_group): Initialize them.
8271         (merged_store_group::do_merge): Update them.
8272         (merged_store_group::apply_stores): Pick the constant for
8273         encode_tree_to_bitpos from one of the two operands, or skip
8274         encode_tree_to_bitpos if neither operand is a constant.
8275         (class pass_store_merging): Add process_store method decl.  Remove
8276         bool argument from terminate_all_aliasing_chains method decl.
8277         (pass_store_merging::terminate_all_aliasing_chains): Remove
8278         var_offset_p argument and corresponding handling.
8279         (stmts_may_clobber_ref_p): New function.
8280         (compatible_load_p): New function.
8281         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
8282         if there is overlap and rhs_code is not INTEGER_CST.  For
8283         non-overlapping stores terminate group if rhs is not mergeable.
8284         (get_alias_type_for_stmts): Change first argument from
8285         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
8286         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
8287         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
8288         alias type.
8289         (get_location_for_stmts): Change first argument from
8290         auto_vec<gimple *> & to vec<gimple *> &.
8291         (struct split_store): Remove orig_stmts data member, add orig_stores.
8292         (split_store::split_store): Create orig_stores rather than orig_stmts.
8293         (find_constituent_stmts): Renamed to ...
8294         (find_constituent_stores): ... this.  Change second argument from
8295         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
8296         to info structures rather than the statements.
8297         (split_group): Rename ALLOW_UNALIGNED argument to
8298         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
8299         it.  Adjust find_constituent_stores caller.
8300         (imm_store_chain_info::output_merged_store): Handle rhs_code other
8301         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
8302         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
8303         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
8304         (mem_valid_for_store_merging): New function.
8305         (handled_load): New function.
8306         (pass_store_merging::process_store): New method.
8307         (pass_store_merging::execute): Use process_store method.  Adjust
8308         terminate_all_aliasing_chains caller.
8309
8310 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8311
8312         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
8313         Return true for more constants, symbols and label references.
8314         (aarch64_valid_floating_const): Remove unused function.
8315
8316 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8317
8318         PR target/82786
8319         * config/aarch64/aarch64.c (aarch64_layout_frame):
8320         Undo forcing of LR at bottom of frame.
8321
8322 2017-11-03  Jeff Law  <law@redhat.com>
8323
8324         PR target/82823
8325         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
8326         for int_registers_saved.
8327
8328         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
8329         extracted from tree-ssa-dom.c.
8330         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
8331         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
8332         (record_equivalences_from_incoming_edge): Add additional argument
8333         to single_pred_edge_ignoring_loop_edges call.
8334         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
8335         (uncprop_dom_walker::before_dom_children): Add additional argument
8336         to single_pred_edge_ignoring_loop_edges call.
8337         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
8338         single_pred_edge_ignoring_loop_edges rather than open coding.
8339         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
8340
8341 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
8342
8343         * match.pd (-(-A)): Rewrite.
8344
8345 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8346
8347         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
8348         (rs6000_emit_int_cmove): New declaration.
8349         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
8350         (rs6000_emit_sISEL): Delete.
8351         (rs6000_emit_int_cmove): Make non-static.
8352         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
8353         instead of rs6000_emit_sISEL.
8354
8355 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
8356
8357         * asan.c (create_cond_insert_point): Maintain profile.
8358         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
8359         merged.
8360         * basic-block.h (struct basic_block_def): Remove frequency.
8361         (EDGE_FREQUENCY): Use to_frequency
8362         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
8363         heuristics.
8364         (find_traces): Update to use to_frequency.
8365         (find_traces_1_round): Likewise; use only IPA counts.
8366         (bb_to_key): Likewise.
8367         (connect_traces): Use IPA counts only.
8368         (copy_bb_p): Update to use to_frequency.
8369         (fix_up_crossing_landing_pad): Likewise.
8370         (sanitize_hot_paths): Likewise.
8371         * bt-load.c (basic_block_freq): Likewise.
8372         * cfg.c (init_flow): Set count_max to uninitialized.
8373         (check_bb_profile): Remove frequencies; check counts.
8374         (dump_bb_info): Do not dump frequencies.
8375         (update_bb_profile_for_threading): Update counts only.
8376         (scale_bbs_frequencies_int): Likewise.
8377         (MAX_SAFE_MULTIPLIER): Remove.
8378         (scale_bbs_frequencies_gcov_type): Update counts only.
8379         (scale_bbs_frequencies_profile_count): Update counts only.
8380         (scale_bbs_frequencies): Update counts only.
8381         * cfg.h (struct control_flow_graph): Add count-max.
8382         (update_bb_profile_for_threading): Update prototype.
8383         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
8384         (find_many_sub_basic_blocks): Likewise.
8385         * cfgcleanup.c (try_forward_edges): Likewise.
8386         (try_crossjump_to_edge): Likewise.
8387         * cfgexpand.c (expand_gimple_cond): Likewise.
8388         (expand_gimple_tailcall): Likewise.
8389         (construct_init_block): Likewise.
8390         (construct_exit_block): Likewise.
8391         * cfghooks.c (verify_flow_info): Check consistency of counts.
8392         (dump_bb_for_graph): Do not dump frequencies.
8393         (split_block_1): Do not update frequencies.
8394         (split_edge): Do not update frequencies.
8395         (make_forwarder_block): Do not update frequencies.
8396         (duplicate_block): Do not update frequencies.
8397         (account_profile_record): Do not update frequencies.
8398         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
8399         for global heuristics.
8400         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
8401         (expected_loop_iterations_unbounded): Use counts only.
8402         * cfgloopmanip.c (scale_loop_profile): Simplify.
8403         (create_empty_loop_on_edge): Simplify
8404         (loopify): Simplify
8405         (duplicate_loop_to_header_edge): Simplify
8406         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
8407         (update_br_prob_note): Take care of removing note when profile
8408         becomes undefined.
8409         (relink_block_chain): Do not dump frequency.
8410         (rtl_account_profile_record): Use to_frequency.
8411         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
8412         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
8413         (cgraph_update_edges_for_call_stmt_node): Likewise.
8414         (cgraph_edge::verify_count_and_frequency): Update.
8415         (cgraph_node::verify_node): Temporarily disable frequency verification.
8416         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8417         to_cgraph_frequency.
8418         (cgraph_edge::rebuild_edges): Convert to ipa counts.
8419         * cgraphunit.c (init_lowered_empty_function): Do not initialize
8420         frequencies.
8421         (cgraph_node::expand_thunk): Update profile.
8422         * except.c (dw2_build_landing_pads): Do not update frequency.
8423         * final.c (compute_alignments): Use to_frequency.
8424         (dump_basic_block_info): Do not dump frequency.
8425         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
8426         (dump_gimple_bb_header): Do not dump frequency.
8427         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
8428         do update count.
8429         * gimple-streamer-in.c (input_bb): Do not stream frequency.
8430         * gimple-streamer-out.c (output_bb): Do not stream frequency.
8431         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
8432         (init_before_recovery): Do not update frequency.
8433         (sched_create_recovery_edges): Do not update frequency.
8434         * hsa-gen.c (convert_switch_statements): Do not update frequency.
8435         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
8436         (ipa_cp_c_finalize): Set max_count to uninitialized.
8437         * ipa-fnsummary.c (get_minimal_bb): Use counts.
8438         (param_change_prob): Use counts.
8439         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
8440         local profiles.
8441         * ipa-split.c (consider_split): Use to_frequency.
8442         (split_function): Use to_frequency.
8443         * ira-build.c (loop_compare_func): Likewise.
8444         (mark_loops_for_removal): Likewise.
8445         (mark_all_loops_for_removal): Likewise.
8446         * loop-doloop.c (doloop_modify): Do not update frequency.
8447         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
8448         frequency.
8449         * lto-streamer-in.c (input_function): Update count_max.
8450         * omp-expand.c (expand_omp_taskreg): Update count_max.
8451         * omp-simd-clone.c (simd_clone_adjust): Update profile.
8452         * predict.c (maybe_hot_frequency_p): Use to_frequency.
8453         (maybe_hot_count_p): Use ipa counts only.
8454         (maybe_hot_bb_p): Simplify.
8455         (maybe_hot_edge_p): Simplify.
8456         (probably_never_executed): Do not take frequency argument.
8457         (probably_never_executed_bb_p): Do not pass frequency.
8458         (probably_never_executed_edge_p): Likewise.
8459         (combine_predictions_for_bb): Check that profile is nonzero.
8460         (propagate_freq): Do not set frequency.
8461         (drop_profile): Simplify.
8462         (counts_to_freqs): Simplify.
8463         (expensive_function_p): Use to_frequency.
8464         (propagate_unlikely_bbs_forward): Simplify.
8465         (determine_unlikely_bbs): Simplify.
8466         (estimate_bb_frequencies): Add hack to silence graphite issues.
8467         (compute_function_frequency): Use ipa counts.
8468         (pass_profile::execute): Update.
8469         (rebuild_frequencies): Use counts only.
8470         (force_edge_cold): Use counts only.
8471         * profile-count.c (profile_count::dump): Dump new count types.
8472         (profile_count::differs_from_p): Check compatiblity.
8473         (profile_count::to_frequency): New function.
8474         (profile_count::to_cgraph_frequency): New function.
8475         * profile-count.h (struct function): Declare.
8476         (enum profile_quality): Add profile_guessed_local and
8477         profile_guessed_global0.
8478         (class profile_proability): Decrease number of bits to 29;
8479         update from_reg_br_prob_note and to_reg_br_prob_note.
8480         (class profile_count: Update comment; decrease number of bits
8481         to 61. Check compatibility.
8482         (profile_count::compatible_p): New private member function.
8483         (profile_count::ipa_p): New member function.
8484         (profile_count::operator<): Handle global zero correctly.
8485         (profile_count::operator>): Handle global zero correctly.
8486         (profile_count::operator<=): Handle global zero correctly.
8487         (profile_count::operator>=): Handle global zero correctly.
8488         (profile_count::nonzero_p): New member function.
8489         (profile_count::force_nonzero): New member function.
8490         (profile_count::max): New member function.
8491         (profile_count::apply_scale): Handle IPA scalling.
8492         (profile_count::guessed_local): New member function.
8493         (profile_count::global0): New member function.
8494         (profile_count::ipa): New member function.
8495         (profile_count::to_frequency): Declare.
8496         (profile_count::to_cgraph_frequency): Declare.
8497         * profile.c (OVERLAP_BASE): Delete.
8498         (compute_frequency_overlap): Delete.
8499         (compute_branch_probabilities): Do not use compute_frequency_overlap.
8500         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
8501         * sched-ebb.c (rank): Use counts only.
8502         * shrink-wrap.c (handle_simple_exit): Use counts only.
8503         (try_shrink_wrapping): Use counts only.
8504         (place_prologue_for_one_component): Use counts only.
8505         * tracer.c (find_best_predecessor): Use to_frequency.
8506         (find_trace): Use to_frequency.
8507         (tail_duplicate): Use to_frequency.
8508         * trans-mem.c (expand_transaction): Do not update frequency.
8509         * tree-call-cdce.c: Do not update frequency.
8510         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
8511         (gimple_merge_blocks): Likewise.
8512         (gimple_split_edge): Likewise.
8513         (gimple_duplicate_sese_region): Likewise.
8514         (gimple_duplicate_sese_tail): Likewise.
8515         (move_sese_region_to_fn): Likewise.
8516         (gimple_account_profile_record): Likewise.
8517         (insert_cond_bb): Likewise.
8518         * tree-complex.c (expand_complex_div_wide): Likewise.
8519         * tree-eh.c (lower_resx): Update profile.
8520         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
8521         frequencies.
8522         (initialize_cfun): Do not initialize frequencies
8523         (freqs_to_counts): Delete.
8524         (copy_cfg_body): Ignore count parameter.
8525         (copy_body): Update.
8526         (expand_call_inline): Update count_max.
8527         (optimize_inline_calls): Update count_max.
8528         (tree_function_versioning): Update count_max.
8529         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
8530         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
8531         frequency.
8532         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
8533         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
8534         (try_peel_loop): Likewise.
8535         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
8536         to_frequency.
8537         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
8538         (tree_transform_and_unroll_loop): Do not use frequencies
8539         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
8540         Use reliable prediction only.
8541         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
8542         * tree-ssa-sink.c (select_best_block): Use to_frequency.
8543         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
8544         probability scaling.
8545         * tree-ssa-threadupdate.c (create_block_for_threading): Do
8546         not update frequency
8547         (any_remaining_duplicated_blocks): Likewise.
8548         (update_profile): Likewise.
8549         (estimated_freqs_path): Delete.
8550         (freqs_to_counts_path): Delete.
8551         (clear_counts_path): Delete.
8552         (ssa_fix_duplicate_block_edges): Likewise.
8553         (duplicate_thread_path): Likewise.
8554         * tree-switch-conversion.c (gen_inbound_check): Use counts.
8555         * tree-tailcall.c (decrease_profile): Do not update frequency.
8556         (eliminate_tail_call): Likewise.
8557         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
8558         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
8559         (optimize_mask_stores): Likewise.
8560         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
8561         * ubsan.c (ubsan_expand_null_ifn): Update profile.
8562         (ubsan_expand_ptr_ifn): Update profile.
8563         * value-prof.c (gimple_ic): Simplify.
8564         * value-prof.h (gimple_ic): Update prototype.
8565         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
8566         * ipa-inline.c (compute_uninlined_call_time): Be sure that
8567         counts are nonzero.
8568         (want_inline_self_recursive_call_p): Likewise.
8569         (resolve_noninline_speculation): Only cummulate defined counts.
8570         (inline_small_functions): Use nonzero_p.
8571         (ipa_inline): Do not access freed node.
8572
8573 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8574
8575         * config/aarch64/aarch64.c (aarch64_override_options_internal):
8576         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
8577
8578 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
8579
8580         * config/riscv/riscv.c (riscv_legitimize_move): Handle
8581         non-legitimate address.
8582
8583 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8584
8585         * config/rs6000/rs6000.md (*lt0_disi): Delete.
8586         (*lt0_<mode>di, *lt0_<mode>si): New.
8587
8588 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8589
8590         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
8591         TARGET_PAIRED_FLOAT.
8592
8593 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
8594             Jim Wilson  <jim.wilson@linaro.org>
8595
8596         * config/aarch64/aarch64-cores.def (saphira): New CPU.
8597         * config/aarch64/aarch64-tune.md: Regenerated.
8598         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
8599         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
8600
8601 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
8602
8603         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
8604         (arc_expand_prologue): Restore blink for millicode.
8605         * config/arc/linux.h (LINK_EH_SPEC): Defined.
8606
8607 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
8608
8609         PR target/82809
8610         * config/i386/i386.c (ix86_vector_duplicate_value): Use
8611         gen_vec_duplicate after forcing the scalar into a register.
8612
8613 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
8614
8615         * combine (try_combine): Print the insns input to try_combine to the
8616         dump file.
8617
8618 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
8619
8620         PR target/79868
8621         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8622         Remove second argument from aarch64_process_target_attr call.
8623         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
8624         Ditto.
8625         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
8626         field type.
8627         (aarch64_handle_attr_arch): Remove second argument.
8628         (aarch64_handle_attr_cpu): Ditto.
8629         (aarch64_handle_attr_tune): Ditto.
8630         (aarch64_handle_attr_isa_flags): Ditto.
8631         (aarch64_process_one_target_attr): Ditto.
8632         (aarch64_process_target_attr): Ditto.
8633         (aarch64_option_valid_attribute_p): Remove second argument.
8634         on aarch64_process_target_attr call.
8635
8636 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8637
8638         * diagnostic.c: Include "selftest-diagnostic.h".
8639         (selftest::assert_location_text): New function.
8640         (selftest::test_diagnostic_get_location_text): New function.
8641         (selftest::diagnostic_c_tests): Call it.
8642
8643 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8644
8645         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
8646         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
8647         (class selftest::test_diagnostic_context): Move to...
8648         * selftest-diagnostic.c: New file.
8649         * selftest-diagnostic.h: New file.
8650
8651 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
8652
8653         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
8654         offset range for FT32B.
8655         * config/ft32/ft32.h: option "mcompress" enables relaxation.
8656         * config/ft32/ft32.md: Add TARGET_NOPM.
8657         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
8658         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
8659
8660 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
8661
8662         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
8663
8664 2017-11-02  Jeff Law  <law@redhat.com>
8665
8666         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
8667         virtual keyword on FINAL OVERRIDE members.
8668
8669         * tree-ssa-propagate.h (ssa_propagation_engine): Group
8670         virtuals together.  Add virtual destructor.
8671         (substitute_and_fold_engine): Similarly.
8672
8673 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
8674
8675         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
8676
8677 2017-11-02  Richard Biener  <rguenther@suse.de>
8678
8679         PR tree-optimization/82795
8680         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
8681
8682 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8683
8684         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
8685         gcc_SUN_LD_VERSION.
8686         (gcc_GAS_CHECK_FEATURE): Remove.
8687         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
8688         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
8689         * configure: Regenerate.
8690
8691 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
8692
8693         * config/arc/arc.c (hwloop_optimize): Account for empty
8694         body loops.
8695
8696 2017-11-02  Richard Biener  <rguenther@suse.de>
8697
8698         PR middle-end/82765
8699         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
8700         Truncate ARRAY_REF index and element size.
8701
8702 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8703
8704         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
8705
8706 2017-11-01  Jeff Law  <law@redhat.com>
8707
8708         * tree-ssa-ccp.c (ccp_folder): New class derived from
8709         substitute_and_fold_engine.
8710         (ccp_folder::get_value): New member function.
8711         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
8712         (ccp_fold_stmt): Remove prototype.
8713         (ccp_finalize): Call substitute_and_fold from the ccp_class.
8714         * tree-ssa-copy.c (copy_folder): New class derived from
8715         substitute_and_fold_engine.
8716         (copy_folder::get_value): Renamed from get_value.
8717         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
8718         * tree-vrp.c (vrp_folder): New class derived from
8719         substitute_and_fold_engine.
8720         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
8721         (vrp_folder::get_value): New member function.
8722         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
8723         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
8724         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
8725         provide a class interface to folder/substitute routines.
8726         (ssa_prop_fold_stmt_fn): Remove typedef.
8727         (ssa_prop_get_value_fn): Likewise.
8728         (subsitute_and_fold): Remove prototype.
8729         (replace_uses_in): Likewise.
8730         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8731         Renamed from replace_uses_in.  Call the virtual member function
8732         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
8733         (substitute_and_fold_dom_walker): Remove initialization of
8734         data member entries for calbacks.  Add substitute_and_fold_engine
8735         member and initialize it.
8736         (substitute_and_fold_dom_walker::before_dom_children0: Use the
8737         member functions for get_value, replace_phi_args_in c
8738         replace_uses_in, and fold_stmt calls.
8739         (substitute_and_fold_engine::substitute_and_fold): Renamed from
8740         substitute_and_fold.  Remove assert.   Update ctor call.
8741
8742         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
8743         (ssa_prop_visit_phi_fn): Likewise.
8744         (class ssa_propagation_engine): New class to provide an interface
8745         into ssa_propagate.
8746         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
8747         variable.
8748         (ssa_prop_visit_phi): Likewise.
8749         (ssa_propagation_engine::simulate_stmt): Moved into class.
8750         Call visit_phi/visit_stmt from the class rather than via
8751         file scoped static variables.
8752         (ssa_propagation_engine::simulate_block): Moved into class.
8753         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
8754         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
8755         set file scoped statics for the visit_stmt/visit_phi callbacks.
8756         * tree-complex.c (complex_propagate): New class derived from
8757         ssa_propagation_engine.
8758         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
8759         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
8760         (tree_lower_complex): Call ssa_propagate via the complex_propagate
8761         class.
8762         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
8763         ssa_propagation_engine.
8764         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
8765         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
8766         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
8767         * tree-ssa-copy.c (copy_prop): New class derived from
8768         ssa_propagation_engine.
8769         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
8770         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
8771         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
8772         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
8773         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
8774         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
8775         (execute_vrp): Call ssa_propagate from the vrp_prop class.
8776
8777 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
8778
8779         PR rtl-optimization/82778
8780         PR rtl-optimization/82597
8781         * compare-elim.c (struct comparison): Add in_a_setter field.
8782         (find_comparison_dom_walker::before_dom_children): Remove killed
8783         bitmap and df_simulate_find_defs call, instead walk the defs.
8784         Compute last_setter and initialize in_a_setter.  Merge definitions
8785         with first initialization for a few variables.
8786         (try_validate_parallel): Use insn_invalid_p instead of
8787         recog_memoized.  Return insn rather than just the pattern.
8788         (try_merge_compare): Fix up comment.  Don't uselessly test if
8789         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
8790         chains.
8791         (execute_compare_elim_after_reload): Remove df_chain_add_problem
8792         call.
8793
8794 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8795             Alan Hayward  <alan.hayward@arm.com>
8796             David Sherwood  <david.sherwood@arm.com>
8797
8798         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8799         aarch64_hard_regno_nregs to get the number of registers
8800         in a mode.
8801
8802 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8803             Alan Hayward  <alan.hayward@arm.com>
8804             David Sherwood  <david.sherwood@arm.com>
8805
8806         * config/aarch64/constraints.md (Upl): Rename to...
8807         (Uaa): ...this.
8808         * config/aarch64/aarch64.md
8809         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
8810         Update accordingly.
8811
8812 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8813             Alan Hayward  <alan.hayward@arm.com>
8814             David Sherwood  <david.sherwood@arm.com>
8815
8816         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
8817         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
8818         earlier in file.
8819
8820 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8821             Alan Hayward  <alan.hayward@arm.com>
8822             David Sherwood  <david.sherwood@arm.com>
8823
8824         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
8825         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
8826         (aarch64_evpc_dup): Generate rtl direcly, rather than using
8827         named expanders.
8828         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
8829         of a single element.
8830         * config/aarch64/iterators.md: Add a comment above the permute
8831         unspecs to say that they are generated directly by
8832         aarch64_expand_vec_perm_const.
8833         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
8834
8835 2017-11-01  Nathan Sidwell  <nathan@acm.org>
8836
8837         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
8838
8839 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8840
8841         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
8842         and medany code models, and describe what they do.
8843
8844 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8845
8846         Revert accidental duplicate:
8847
8848         * combine.c (can_change_dest_mode): Reject changes in
8849         REGMODE_NATURAL_SIZE.
8850
8851 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
8852
8853         PR rtl-optimization/64682
8854         PR rtl-optimization/69567
8855         PR rtl-optimization/69737
8856         PR rtl-optimization/82683
8857         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
8858         register mentioned in the note, drop the note, unless it came from I3,
8859         in which case it should go to I3 again.
8860
8861 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8862
8863         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
8864         and return false if not.
8865         (clear_bytes_written_by, live_bytes_read): Update accordingly.
8866
8867 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8868
8869         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
8870         range is known to be empty.
8871
8872 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8873             Alan Hayward  <alan.hayward@arm.com>
8874             David Sherwood  <david.sherwood@arm.com>
8875
8876         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
8877         and CONST_VECTOR_NUNITS instead of computing the number of units from
8878         the byte sizes of the vector and element.
8879         (simplify_binary_operation_1): Likewise.
8880         (simplify_const_binary_operation): Likewise.
8881         (simplify_ternary_operation): Likewise.
8882
8883 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8884             Alan Hayward  <alan.hayward@arm.com>
8885             David Sherwood  <david.sherwood@arm.com>
8886
8887         * var-tracking.c (INT_MEM_OFFSET): Replace with...
8888         (int_mem_offset): ...this new function.
8889         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
8890         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
8891         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
8892         Update accordingly.
8893
8894 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8895             Alan Hayward  <alan.hayward@arm.com>
8896             David Sherwood  <david.sherwood@arm.com>
8897
8898         * lower-subreg.c (interesting_mode_p): New function.
8899         (compute_costs, find_decomposable_subregs, decompose_register)
8900         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
8901         (resolve_clobber, dump_choices): Use it.
8902
8903 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8904             Alan Hayward  <alan.hayward@arm.com>
8905             David Sherwood  <david.sherwood@arm.com>
8906
8907         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
8908
8909 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8910             Alan Hayward  <alan.hayward@arm.com>
8911             David Sherwood  <david.sherwood@arm.com>
8912
8913         * alias.c (find_base_value, find_base_term): Only process integer
8914         truncations.  Check the precision rather than the size.
8915
8916 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8917             Alan Hayward  <alan.hayward@arm.com>
8918             David Sherwood  <david.sherwood@arm.com>
8919
8920         * machmode.h (is_narrower_int_mode): New function
8921         * optabs.c (expand_float, expand_fix): Use it.
8922         * dwarf2out.c (rotate_loc_descriptor): Likewise.
8923
8924 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8925             Alan Hayward  <alan.hayward@arm.com>
8926             David Sherwood  <david.sherwood@arm.com>
8927
8928         * rtl.h (narrower_subreg_mode): New function.
8929         * ira-color.c (update_costs_from_allocno): Use it.
8930
8931 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8932             Alan Hayward  <alan.hayward@arm.com>
8933             David Sherwood  <david.sherwood@arm.com>
8934
8935         * optabs-query.h (convert_optab_p): New function, split out from...
8936         (convert_optab_handler): ...here.
8937         (widening_optab_handler): Delete.
8938         (find_widening_optab_handler): Remove permit_non_widening parameter.
8939         (find_widening_optab_handler_and_mode): Likewise.  Provide an
8940         override that operates on mode class wrappers.
8941         * optabs-query.c (widening_optab_handler): Delete.
8942         (find_widening_optab_handler_and_mode): Remove permit_non_widening
8943         parameter.  Assert that the two modes are the same class and that
8944         the "from" mode is narrower than the "to" mode.  Use
8945         convert_optab_handler instead of widening_optab_handler.
8946         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
8947         instead of widening_optab_handler.
8948         * expr.c (expand_expr_real_2): Update calls to
8949         find_widening_optab_handler.
8950         * optabs.c (expand_widen_pattern_expr): Likewise.
8951         (expand_binop_directly): Take the insn_code as a parameter.
8952         (expand_binop): Only call find_widening_optab_handler for
8953         conversion optabs; use optab_handler otherwise.  Update calls
8954         to find_widening_optab_handler and expand_binop_directly.
8955         Use convert_optab_handler instead of widening_optab_handler.
8956         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
8957         find_widening_optab_handler and use scalar_mode rather than
8958         machine_mode.
8959         (convert_plusminus_to_widen): Likewise.
8960
8961 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8962             Alan Hayward  <alan.hayward@arm.com>
8963             David Sherwood  <david.sherwood@arm.com>
8964
8965         * machmode.h (fixed_size_mode): New class.
8966         * rtl.h (get_pool_mode): Return fixed_size_mode.
8967         * gengtype.c (main): Add fixed_size_mode.
8968         * target.def (get_raw_result_mode): Return a fixed_size_mode.
8969         (get_raw_arg_mode): Likewise.
8970         * doc/tm.texi: Regenerate.
8971         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
8972         * targhooks.c (default_get_reg_raw_mode): Likewise.
8973         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
8974         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
8975         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
8976         (msp430_get_raw_result_mode): Likewise.
8977         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
8978         * dbxout.c (dbxout_parms): Require fixed-size modes.
8979         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
8980         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
8981         * omp-low.c (lower_oacc_reductions): Likewise.
8982         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
8983         (simplify_subreg): Update accordingly.
8984         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
8985         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
8986         that aren't fixed-size.
8987         (get_pool_mode): Return a fixed_size_mode.
8988         (output_constant_pool_2): Take a fixed_size_mode.
8989
8990 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8991             Alan Hayward  <alan.hayward@arm.com>
8992             David Sherwood  <david.sherwood@arm.com>
8993
8994         * doc/rtl.texi (vec_series): Document.
8995         (const): Say that the operand can be a vec_series.
8996         * rtl.def (VEC_SERIES): New rtx code.
8997         * rtl.h (const_vec_series_p_1): Declare.
8998         (const_vec_series_p): New function.
8999         * emit-rtl.h (gen_const_vec_series): Declare.
9000         (gen_vec_series): Likewise.
9001         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
9002         (gen_vec_series): Likewise.
9003         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
9004         * simplify-rtx.c (simplify_unary_operation): Handle negations
9005         of vector series.
9006         (simplify_binary_operation_series): New function.
9007         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
9008         (test_vector_ops_series): New function.
9009         (test_vector_ops): Call it.
9010         * config/powerpcspe/altivec.md (altivec_lvsl): Use
9011         gen_const_vec_series.
9012         (altivec_lvsr): Likewise.
9013         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
9014
9015 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9016             Alan Hayward  <alan.hayward@arm.com>
9017             David Sherwood  <david.sherwood@arm.com>
9018
9019         * doc/rtl.texi (const): Update description of address constants.
9020         Say that vector constants are allowed too.
9021         * common.md (E, F): Use CONSTANT_P instead of checking for
9022         CONST_VECTOR.
9023         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
9024         checking for CONST_VECTOR.
9025         * expmed.c (make_tree): Use build_vector_from_val for a CONST
9026         VEC_DUPLICATE.
9027         * expr.c (expand_expr_real_2): Check for vector modes instead
9028         of checking for CONST_VECTOR.
9029         * rtl.h (const_vec_p): New function.
9030         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
9031         (unwrap_const_vec_duplicate): Handle them here too.
9032
9033 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9034             David Malcolm  <dmalcolm@redhat.com>
9035             Alan Hayward  <alan.hayward@arm.com>
9036             David Sherwood  <david.sherwood@arm.com>
9037
9038         * rtl.h (vec_duplicate_p): New function.
9039         * selftest-rtl.c (assert_rtx_eq_at): New function.
9040         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
9041         (assert_rtx_eq_at): Declare.
9042         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
9043         * selftest-run-tests.c (selftest::run_tests): Call it.
9044         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
9045         (simplify_unary_operation_1): Recursively handle vector duplicates.
9046         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
9047         vector duplicates.
9048         (simplify_subreg): Handle subregs of vector duplicates.
9049         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
9050         (selftest::simplify_rtx_c_tests): New functions.
9051
9052 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9053             Alan Hayward  <alan.hayward@arm.com>
9054             David Sherwood  <david.sherwood@arm.com>
9055
9056         * emit-rtl.h (gen_const_vec_duplicate): Declare.
9057         (gen_vec_duplicate): Likewise.
9058         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
9059         out from...
9060         (gen_const_vector): ...here.
9061         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
9062         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
9063         whose elements are all equal.
9064         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
9065         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9066         (simplify_relational_operation): Likewise.
9067         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
9068         Likewise.
9069         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
9070         (aarch64_expand_vector_init): Likewise.
9071         * config/arm/arm.c (neon_vdup_constant): Likewise.
9072         (neon_expand_vector_init): Likewise.
9073         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
9074         (arm_block_set_unaligned_vect): Likewise.
9075         (arm_block_set_aligned_vect): Likewise.
9076         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
9077         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
9078         (expand_vec_perm_even_odd_pack): Likewise.
9079         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
9080         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
9081         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
9082         gen_const_vec_duplicate.
9083         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
9084         * config/mips/mips.c (mips_gen_const_int_vector): Use
9085         gen_const_vec_duplicate.
9086         (mips_expand_vector_init): Use CONST0_RTX.
9087         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
9088         (define_split): Use gen_const_vec_duplicate.
9089         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
9090         (define_split): Use gen_const_vec_duplicate.
9091         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
9092         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
9093         * config/spu/spu.c (spu_const): Likewise.
9094
9095 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9096             Alan Hayward  <alan.hayward@arm.com>
9097             David Sherwood  <david.sherwood@arm.com>
9098
9099         * combine.c (can_change_dest_mode): Reject changes in
9100         REGMODE_NATURAL_SIZE.
9101
9102 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
9103
9104         * configure.ac (--enable-libssp): New.
9105         (gcc_cv_libc_provides_ssp): Check for explicit setting before
9106         trying to determine target-specific default.  Adjust indentation.
9107         * configure: Regenerated.
9108         * doc/install.texi (Configuration): Expand --disable-libssp
9109         documentation.
9110
9111 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
9112
9113         config/i386/i386.c (ix86_expand_epilogue): Correct stack
9114         calculation.
9115
9116 2017-10-31  Martin Jambor  <mjambor@suse.cz>
9117
9118         PR c++/81702
9119         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
9120
9121 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
9122
9123         * auto-profile.c (autofdo_source_profile::read): Use
9124         UNKNOWN_LOCATION rather than 0.
9125         * diagnostic-core.h (warning_at_rich_loc): Rename to...
9126         (warning_at): ...this overload.
9127         (warning_at_rich_loc_n): Rename to...
9128         (warning_n): ...this overload.
9129         (error_at_rich_loc): Rename to...
9130         (error_at): ...this overload.
9131         (pedwarn_at_rich_loc): Rename to...
9132         (pedwarn): ...this overload.
9133         (permerror_at_rich_loc): Rename to...
9134         (permerror): ...this overload.
9135         (inform_at_rich_loc): Rename to...
9136         (inform): ...this overload.
9137         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
9138         (diagnostic_n_impl_richloc): Rename to...
9139         (diagnostic_n_impl): ...this rich_location *-based decl.
9140         (inform_at_rich_loc): Rename to...
9141         (inform): ...this, and add an assertion.
9142         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
9143         (warning_at_rich_loc): Rename to...
9144         (warning_at): ...this, and add an assertion.
9145         (warning_at_rich_loc_n): Rename to...
9146         (warning_n): ...this, and add an assertion.
9147         (warning_n): Update location_t-based implementation for removal of
9148         location_t-based diagnostic_n_impl.
9149         (pedwarn_at_rich_loc): Rename to...
9150         (pedwarn): ...this, and add an assertion.
9151         (permerror_at_rich_loc): Rename to...
9152         (permerror): ...this, and add an assertion.
9153         (error_n): Update for removal of location_t-based diagnostic_n_impl.
9154         (error_at_rich_loc): Rename to...
9155         (error_at): ...this, and add an assertion.
9156         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
9157         (driver::do_spec_on_infiles): Likewise.
9158         * substring-locations.c (format_warning_va): Update for renaming
9159         of inform_at_rich_loc.
9160
9161 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
9162
9163         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
9164         _Float<N>X built-in functions so that the variant without the
9165         "__builtin_" prefix is only enabled for the GNU C and Objective C
9166         languages when they are in non-strict ANSI/ISO mode.
9167         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
9168         * target.def (floatn_builtin_p): Add a target hook to control
9169         whether _Float<N> and _Float<N>X built-in functions without the
9170         "__builtin_" prefix are enabled, and return true for C and
9171         Objective C in the default hook.  Include langhooks.h in
9172         targhooks.c.
9173         * targhooks.h (default_floatn_builtin_p): Likewise.
9174         * targhooks.c (default_floatn_builtin_p): Likewise.
9175         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
9176         floatn_builtin_p target hook.
9177         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
9178
9179 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
9180             Eric Botcazou  <ebotcazou@adacore.com>
9181
9182         PR rtl-optimization/81803
9183         * lra-constraints.c (curr_insn_transform): Also reload the whole
9184         register for a strict subreg no wider than a word if this is for
9185         a WORD_REGISTER_OPERATIONS target.
9186
9187 2017-10-31  Jason Merrill  <jason@redhat.com>
9188
9189         * gdbinit.in: Skip over inlines from timevar.h.
9190
9191 2017-10-31  Martin Liska  <mliska@suse.cz>
9192
9193         * doc/gcov.texi: Document new option.
9194         * gcov.c (print_usage): Likewise print it.
9195         (process_args): Support the argument.
9196         (format_count): New function.
9197         (format_gcov): Use the function.
9198
9199 2017-10-31  Martin Liska  <mliska@suse.cz>
9200
9201         * gcov.c (struct name_map): do not use typedef.
9202         Define operator== and operator<.
9203         (name_search): Remove.
9204         (name_sort): Remove.
9205         (main): Do not allocate names.
9206         (process_file): Add vertical space.
9207         (generate_results): Use std::find.
9208         (release_structures): Do not release memory.
9209         (find_source): Use std::find.
9210
9211 2017-10-31  Martin Liska  <mliska@suse.cz>
9212
9213         * gcov.c (struct line_info): Remove it's typedef.
9214         (line_info::line_info): Add proper ctor.
9215         (line_info::has_block): Do not use a typedef.
9216         (struct source_info): Do not use typedef.
9217         (circuit): Likewise.
9218         (get_cycles_count): Likewise.
9219         (output_intermediate_file): Iterate via vector iterator.
9220         (add_line_counts): Use std::vector methods.
9221         (accumulate_line_counts): Likewise.
9222         (output_lines): Likewise.
9223
9224 2017-10-31  Martin Liska  <mliska@suse.cz>
9225
9226         * gcov.c (struct source_info): Remove typedef.
9227         (source_info::source_info): Add proper ctor.
9228         (accumulate_line_counts): Use struct, not it's typedef.
9229         (output_gcov_file): Likewise.
9230         (output_lines): Likewise.
9231         (main): Do not allocate an array.
9232         (output_intermediate_file): Use size of vector container.
9233         (process_file): Resize the vector.
9234         (generate_results): Do not preallocate, use newly added vector
9235         lines.
9236         (release_structures): Do not release sources.
9237         (find_source): Use vector methods.
9238         (add_line_counts): Do not use typedef.
9239
9240 2017-10-31  Martin Liska  <mliska@suse.cz>
9241
9242         * doc/gcov.texi: Document that.
9243         * gcov.c (add_line_counts): Mark lines with a non-executed
9244         statement.
9245         (output_line_beginning): Handle such lines.
9246         (output_lines): Pass new argument.
9247         (output_intermediate_file): Print it in intermediate format.
9248
9249 2017-10-31  Martin Liska  <mliska@suse.cz>
9250
9251         * color-macros.h: New file.
9252         * diagnostic-color.c: Factor out color related to macros to
9253         color-macros.h.
9254         * doc/gcov.texi: Document -k option.
9255         * gcov.c (INCLUDE_STRING): Include string.h.
9256         (print_usage): Add -k option.
9257         (process_args): Parse it.
9258         (pad_count_string): New function.
9259         (output_line_beginning): Likewise.
9260         (DEFAULT_LINE_START): New macro.
9261         (output_lines): Support color output.
9262
9263 2017-10-31  Martin Liska  <mliska@suse.cz>
9264
9265         PR gcov-profile/82633
9266         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
9267         their interaction with GCOV infrastructure.
9268         * configure.ac: Add -fkeep-{inline,static}-functions to
9269         coverage_flags.
9270         * configure: Regenerate.
9271
9272 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
9273
9274         PR target/82772
9275         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
9276
9277 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
9278
9279         PR target/82674
9280         * config/rs6000/rs6000.md (allocate_stack): Force update interval
9281         into a register if it does not fit into an immediate offset field.
9282
9283 2017-10-31  Olivier Hainque  <hainque@adacore.com>
9284
9285         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
9286
9287 2017-10-31  Julia Koval  <julia.koval@intel.com>
9288
9289         * config.gcc: Add gfniintrin.h.
9290         * config/i386/gfniintrin.h: New.
9291         * config/i386/i386-builtin-types.def
9292         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
9293         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
9294         __builtin_ia32_vgf2p8affineinvqb_v32qi,
9295         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
9296         __builtin_ia32_vgf2p8affineinvqb_v16qi,
9297         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
9298         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
9299         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
9300         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
9301         V64QI_FTYPE_V64QI_V64QI_INT): New types.
9302         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
9303         * config/i386/immintrin.h: Include gfniintrin.h.
9304         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
9305
9306 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
9307
9308         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
9309
9310 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9311
9312         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
9313         (arm_ashldi3_1bit): Remove pattern.
9314         (ashrdi3): Remove shift by 1 expansion.
9315         (arm_ashrdi3_1bit): Remove pattern.
9316         (lshrdi3): Remove shift by 1 expansion.
9317         (arm_lshrdi3_1bit): Remove pattern.
9318         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
9319         cost of ashldi3 by 1.
9320         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
9321         (<shift>di3_neon): Likewise.
9322
9323 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
9324
9325         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
9326         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
9327         and (*aarch64_simd_mov<VQ:mode>).
9328         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
9329         pattern alternative.
9330         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
9331         attributes to match pattern alternative.
9332
9333 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
9334
9335         * config.gcc (powerpc*-*-*): Add emmintrin.h.
9336         * config/rs6000/emmintrin.h: New file.
9337         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
9338
9339 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9340
9341         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
9342         * (movdi_vfp_cortexa8): Remove pattern.
9343
9344 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9345
9346         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
9347         etc. reference.
9348         (Specific, alpha*-dec-osf5.1): Remove.
9349         (Specific, mips-sgi-irix5): Remove.
9350         (Specific, mips-sgi-irix6): Remove.
9351
9352 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9353
9354         PR middle-end/22141
9355         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
9356         arguments to clear_bit_region_be.
9357
9358 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
9359
9360         * gimplify.c: Include memmodel.h.
9361
9362 2017-10-30  Martin Jambor  <mjambor@suse.cz>
9363
9364         * omp-grid.c (grid_attempt_target_gridification): Also insert a
9365         condition whether loop should be executed at all.
9366
9367 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
9368
9369         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
9370         gimple folding of vec_madd() intrinsics.
9371         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
9372         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
9373         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
9374
9375 2017-10-30  Richard Biener  <rguenther@suse.de>
9376
9377         PR tree-optimization/82762
9378         Revert
9379         2017-10-23  Richard Biener  <rguenther@suse.de>
9380
9381         PR tree-optimization/82129
9382         Revert
9383         2017-08-01  Richard Biener  <rguenther@suse.de>
9384
9385         PR tree-optimization/81181
9386         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9387         (compute_antic): ... end of iteration here.
9388
9389 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
9390
9391         * doc/invoke.texi (C Dialect Options): Document -std=c17,
9392         -std=iso9899:2017 and -std=gnu17.
9393         * doc/standards.texi (C Language): Document C17 support.
9394         * doc/cpp.texi (Overview): Mention -std=c17.
9395         (Standard Predefined Macros): Document C11 and C17 values of
9396         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
9397         * doc/extend.texi (Inline): Do not list individual options for
9398         standards newer than C99.
9399         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
9400         "GNU C17".
9401         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
9402         language name.
9403
9404 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9405
9406         * asan.c (asan_finish_file): Align asan globals array by shadow
9407         granularity.
9408
9409 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9410
9411         PR middle-end/22141
9412         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
9413         (struct store_immediate_info): Add bitregion_start and bitregion_end
9414         fields.
9415         (store_immediate_info::store_immediate_info): Add brs and bre
9416         arguments and initialize bitregion_{start,end} from those.
9417         (struct merged_store_group): Add bitregion_start, bitregion_end,
9418         align_base and mask fields.  Drop unnecessary struct keyword from
9419         struct store_immediate_info.  Add do_merge method.
9420         (clear_bit_region_be): Use memset instead of loop storing zeros.
9421         (merged_store_group::do_merge): New method.
9422         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
9423         stores as long as the surrounding bitregions have no gaps.
9424         (merged_store_group::merge_overlapping): Use do_merge.
9425         (merged_store_group::apply_stores): Test that bitregion_{start,end}
9426         is byte aligned, rather than requiring that start and width are
9427         byte aligned.  Drop unnecessary struct keyword from
9428         struct store_immediate_info.  Allocate and populate also mask array.
9429         Make start of the arrays relative to bitregion_start rather than
9430         start and size them according to bitregion_{end,start} difference.
9431         (struct imm_store_chain_info): Drop unnecessary struct keyword from
9432         struct store_immediate_info.
9433         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
9434         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
9435         struct keyword from struct store_immediate_info.
9436         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
9437         between stores as long as the surrounding bitregions have no gaps.
9438         Formatting fixes.
9439         (struct split_store): Add orig non-static data member.
9440         (split_store::split_store): Initialize orig to false.
9441         (find_constituent_stmts): Return store_immediate_info *, non-NULL
9442         if there is exactly a single original stmt.  Change stmts argument
9443         to pointer from reference, if NULL, don't push anything to it.  Add
9444         first argument, use it to optimize skipping over orig stmts that
9445         are known to be before bitpos already.  Simplify.
9446         (split_group): Return unsigned int count how many stores are or
9447         would be needed rather than a bool.  Add allow_unaligned argument.
9448         Change split_stores argument from reference to pointer, if NULL,
9449         only do a dry run computing how many stores would be produced.
9450         Rewritten algorithm to use both alignment and misalign if
9451         !allow_unaligned and handle bitfield stores with gaps.
9452         (imm_store_chain_info::output_merged_store): Set start_byte_pos
9453         from bitregion_start instead of start.  Compute allow_unaligned
9454         here, if true, do 2 split_group dry runs to compute which one
9455         produces fewer stores and prefer aligned if equal.  Punt if
9456         new count is bigger or equal than original before emitting any
9457         statements, rather than during that.  Remove no longer needed
9458         new_ssa_names tracking.  Replace num_stmts with
9459         split_stores.length ().  Use 32-bit stack allocated entries
9460         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
9461         if possible.  Handle bitfields with gaps.
9462         (pass_store_merging::execute): Ignore bitsize == 0 stores.
9463         Compute bitregion_{start,end} for the stores and construct
9464         store_immediate_info with that.  Formatting fixes.
9465
9466 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
9467
9468         PR target/82725
9469         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
9470         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
9471
9472 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
9473
9474         * gimplify.c: Include tm_p.h.
9475
9476         * common.opt (gcoff): Re-add as ignored option.
9477         (gcoff1, gcoff2, gcoff3): Likewise.
9478
9479         * Makefile.in (OBJS): Delete sdbout.o.
9480         (GTFILES): Delete $(srcdir)/sdbout.c.
9481         * debug.h: Delete sdb_debug_hooks.
9482         * final.c: Delete sdbout.h include.
9483         (final_scan_insn): Delete SDB_DEBUG check.
9484         (rest_of_clean_state): Likewise.
9485         * output.h: Delete sdb_begin_function_line.
9486         * sdbout.c: Delete.
9487         * sdbout.h: Delete.
9488         * toplev.c: Delete sdbout.h include.
9489         (process_options): Delete SDB_DEBUG check.
9490         * tree-core.h (tree_type_common): Delete pointer field of
9491         tree_type_symtab.
9492         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
9493         TYPE_SYMTAB_POINTER.
9494         * tree.h (TYPE_SYMTAB_POINTER): Delete.
9495         (TYPE_SYMTAB_IS_POINTER): Delete.
9496         (TYPE_SYMTAB_IS_DIE): Renumber.
9497         * xcoffout.c: Refer to former sdbout.c file.
9498         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
9499
9500         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
9501         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
9502         (Debugging Options): Delete -gcoff.
9503         (-gstabs): Delete SDB reference.
9504         (-gcoff): Delete.
9505         (-gcoff@var{level}): Delete.
9506         * doc/passes.texi (Debugging information output): Delete SDB and
9507         sdbout.c references.
9508         * doc/tm.texi: Regenerate.
9509         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
9510         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
9511         references.
9512         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
9513         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
9514         (SDB_DEBUGGING_INFO): Delete.
9515         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
9516         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
9517         * target.def (output_source_filename): Delete COFF reference.
9518
9519         * common.opt (gcoff): Delete.
9520         (gxcoff+): Update Negative chain.
9521         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
9522         SDB_DEBUG.
9523         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
9524         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
9525         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
9526         and SDB references.
9527         (expand_function_start): Change sdb reference to past tense.
9528         (expand_function_end): Change sdb reference to past tense.
9529         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
9530         * opts.c (debug_type_names): Delete coff entry.
9531         (common_handle_option): Delete OPT_gcoff case.
9532         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
9533
9534         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
9535         * config/cris/cris.h: Delete SDB reference in comment.
9536         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
9537         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
9538         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
9539         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
9540         to past tense.
9541         (ix86_expand_prologue): Likewise.
9542         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
9543         * config/ia64/ia64.h: Likewise.
9544         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
9545         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
9546         support.
9547         * config/mmix/mmix.h: Likewise.
9548         * config/nds32/nds32.c: Likewise.
9549         * config/stormy/storym16.h: Likewise.
9550         * config/visium/visium.h: Likewise.
9551         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
9552
9553 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
9554
9555         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
9556         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
9557         FRAME_POINTER_REGNUM point at high end of local var area.
9558
9559 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
9560
9561         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
9562         Move comment around.  Do not reset best_edge for a copiable
9563         destination if the copy would cause a partition change.
9564         (better_edge_p): Remove redundant check.
9565
9566 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9567
9568         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
9569
9570 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
9571
9572         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
9573         for math functions that have _Float<N> and _Float<N>X variants.
9574         (mathfn_built_in_2): Add support for math functions that have
9575         _Float<N> and _Float<N>X variants.
9576         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
9577         (expand_builtin_mathfn_ternary): Add support for fma with
9578         _Float<N> and _Float<N>X variants.
9579         (expand_builtin): Likewise.
9580         (fold_builtin_3): Likewise.
9581         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
9582         create math function _Float<N> and _Float<N>X variants as external
9583         library builtins.
9584         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
9585         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
9586         the __builtin_ prefix and if not strict ansi, without the prefix.
9587         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
9588         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
9589         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
9590         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
9591         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
9592         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
9593         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
9594         function signatures for fma _Float<N> and _Float<N>X variants.
9595         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
9596         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
9597         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
9598         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
9599         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
9600         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
9601         * gencfn-macros.c (print_case_cfn): Add support for math functions
9602         that have _Float<N> and _Float<N>X variants.
9603         (print_define_operator_list): Likewise.
9604         (fltfn_suffixes): Likewise.
9605         (main): Likewise.
9606         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
9607         for math functions that have _Float<N> and _Float<N>X variants.
9608         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
9609         and _Float<N>X variants.
9610         (COPYSIGN): Likewise.
9611         (FMIN): Likewise.
9612         (FMAX): Likewise.
9613         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
9614         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
9615         variants.
9616         (integer_valued_read_call_p): Likewise.
9617         * fold-const-call.c (fold_const_call_ss): Likewise.
9618         (fold_const_call_sss): Add support for copysign, fmin, and fmax
9619         _Float<N> and _Float<N>X variants.
9620         (fold_const_call_ssss): Add support for fma _Float<N> and
9621         _Float<N>X variants.
9622         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
9623         support for copysign and fma _Float<N> and _Float<N>X variants.
9624         (backprop::process_builtin_call_use): Likewise.
9625         * tree-call-cdce.c (can_test_argument_range); Add support for
9626         sqrt _Float<N> and _Float<N>X variants.
9627         (edom_only_function): Likewise.
9628         (get_no_error_domain): Likewise.
9629         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
9630         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
9631         copysign _Float<N> and _Float<N>X variants.
9632         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
9633         handled by machine independent code.
9634         (FMAF128): Likewise.
9635         * doc/cpp.texi (Common Predefined Macros): Document defining
9636         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
9637         fma _Float<N> and _Float<N>X variants.
9638
9639 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9640
9641         PR target/82692
9642         * config/i386/i386-modes.def (CCFPU): Remove definition.
9643         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
9644         (ix86_cc_modes_compatible): Ditto.
9645         (ix86_expand_carry_flag_compare): Ditto.
9646         (ix86_expand_int_movcc): Ditto.
9647         (ix86_expand_int_addcc): Ditto.
9648         (ix86_reverse_condition): Ditto.
9649         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
9650         Return true/false for unordered/ordered fp comparisons.
9651         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
9652         (ix86_prepare_fp_compare_args): Update for rename.
9653         (ix86_expand_fp_compare): Update for rename.  Generate unordered
9654         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
9655         (ix86_expand_sse_compare_and_jump): Ditto.
9656         * config/i386/predicates.md (fcmov_comparison_operator):
9657         Remove CCFPU mode handling.
9658         (ix86_comparison_operator): Ditto.
9659         (ix86_carry_flag_operator): Ditto.
9660         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
9661         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
9662         (*cmpu<mode>_cc_i387): Ditto.
9663         (FPCMP): Remove mode iterator.
9664         (unord): Remove mode attribute.
9665         (unord_subst): New define_subst transformation
9666         (unord): New define_subst attribute.
9667         (unordered): Ditto.
9668         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
9669         (*cmpi<unord>xf_i387): Ditto.
9670         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
9671         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
9672         using unord_subst transformation.
9673         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
9674         (round_saeonly): Also handle CCFP mode.
9675         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
9676         Remove UNSPEC_SAHF unspec handling.
9677
9678 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9679
9680         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
9681
9682 2017-10-27  Jeff Law  <law@redhat.com>
9683
9684         * gimple-ssa-sprintf.c: Include domwalk.h.
9685         (class sprintf_dom_walker): New class, derived from dom_walker.
9686         (sprintf_dom_walker::before_dom_children): New function.
9687         (struct call_info): Moved into sprintf_dom_walker class
9688         (compute_formath_length, handle_gimple_call): Likewise.
9689         (sprintf_length::execute): Call the dominator walker rather
9690         than walking the statements.
9691
9692         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
9693         gimple statement locations.
9694         (check_array_bounds): Corresponding changes.  Get the statement's
9695         location directly from wi->stmt.
9696
9697 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
9698
9699         PR target/82717
9700         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
9701
9702 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9703
9704         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
9705         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
9706
9707 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
9708
9709         PR target/82703
9710         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
9711         * config/i386/i386.c (maybe_get_pool_constant): Removed.
9712         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
9713         maybe_get_pool_constant.
9714         * config/i386/predicates.md (zero_extended_scalar_load_operand):
9715         Likewise.
9716
9717 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9718
9719         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
9720         2.26 caveat.  Update gas and gld versions.
9721         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
9722         reference.
9723
9724 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9725
9726         * cgraph.h (set_malloc_flag): Declare.
9727         * cgraph.c (set_malloc_flag_1): New function.
9728         (set_malloc_flag): Likewise.
9729         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
9730         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
9731         false.
9732         (read_ipa_call_summary): Add support for reading is_return_callee.
9733         (write_ipa_call_summary): Stream is_return_callee.
9734         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
9735         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
9736         ipa-prop.h, ipa-fnsummary.h.
9737         (pure_const_names): Change to static.
9738         (malloc_state_e): Define.
9739         (malloc_state_names): Define.
9740         (funct_state_d): Add field malloc_state.
9741         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
9742         (check_retval_uses): New function.
9743         (malloc_candidate_p): Likewise.
9744         (analyze_function): Add support for malloc attribute.
9745         (pure_const_write_summary): Stream malloc_state.
9746         (pure_const_read_summary): Add support for reading malloc_state.
9747         (dump_malloc_lattice): New function.
9748         (propagate_malloc): New function.
9749         (warn_function_malloc): New function.
9750         (ipa_pure_const::execute): Call propagate_malloc and
9751         ipa_free_fn_summary.
9752         (pass_local_pure_const::execute): Add support for malloc attribute.
9753         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
9754         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
9755
9756 2017-10-27  Martin Liska  <mliska@suse.cz>
9757
9758         PR gcov-profile/82457
9759         * doc/invoke.texi: Document that one needs a non-strict ISO mode
9760         for fork-like functions to be properly instrumented.
9761
9762 2017-10-27  Richard Biener  <rguenther@suse.de>
9763
9764         PR middle-end/81659
9765         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
9766         info when we redirected EH.
9767
9768 2017-10-26  Michael Collison  <michael.collison@arm.com>
9769
9770         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
9771         New pattern.
9772         (<optab>_trunchf<GPI:mode>2: New pattern.
9773         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
9774         * config/aarch64/iterators.md (wv): New mode attribute.
9775         (vf, VF): New mode attributes.
9776         (vgp, VGP): New mode attributes.
9777         (s): Update attribute with SImode and DImode prefixes.
9778
9779 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9780
9781         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
9782         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
9783         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
9784         (nios2_option_overide): Initialize it.  Don't allow R0-relative
9785         addressing with PIC.
9786         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
9787         (nios2_symbolic_constant_p): Likewise.
9788         (nios2_legitimate_address_p): Likewise.
9789         (nios2_r0rel_section_name_p): New.
9790         (nios2_symbol_ref_in_r0rel_data_p): New.
9791         (nios2_emit_move_sequence): Handle r0rel_constant_p.
9792         (r0rel_constant_p): New.
9793         (nios2_print_operand_address): Handle r0rel_constant_p.
9794         (nios2_cdx_narrow_form_p): Likewise.
9795         * config/nios2/nios2.opt (mr0rel-sec=): New option.
9796         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
9797         (Nios II Options): Document -mr0rel-sec.
9798
9799 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9800
9801         * config/nios2/nios2.c: Include xregex.h.
9802         (nios2_gprel_sec_regex): New.
9803         (nios2_option_overide): Initialize it.  Don't allow GP-relative
9804         addressing with PIC.
9805         (nios2_small_section_name_p): Check for regex match.
9806         * config/nios2/nios2.opt (mgprel-sec=): New option.
9807         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
9808         (Nios II Options): Document -mgprel-sec.
9809
9810 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
9811
9812         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
9813
9814 2017-10-26  Tom de Vries  <tom@codesourcery.com>
9815
9816         PR tree-optimization/82707
9817         * gimple.c (gimple_copy): Fix unsharing of
9818         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
9819
9820 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
9821
9822         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
9823         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
9824         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
9825         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
9826         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
9827         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
9828         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
9829         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
9830         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
9831         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
9832         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
9833         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
9834         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
9835         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
9836         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
9837         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
9838         _mm512_mask_cmpunord_ps_mask): New intrinsics.
9839
9840 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9841
9842         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
9843         default to IBM.
9844         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
9845         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
9846         warning to rs6000.c.  Remove the Undocumented flag, since it has
9847         been documented.
9848         (-mabi=ibmlongdouble): Likewise.
9849         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
9850         already set, set the default format for long double.
9851         (rs6000_debug_reg_global): Print whether long double is IBM or
9852         IEEE.
9853         (rs6000_option_override_internal): Rework setting long double
9854         format.  Only warn if the user is changing the long double default
9855         and they did not use -Wno-psabi.
9856         * doc/invoke.texi (PowerPC options): Update the documentation for
9857         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
9858
9859 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9860             Alan Hayward  <alan.hayward@arm.com>
9861             David Sherwood  <david.sherwood@arm.com>
9862
9863         * rtl.h (wider_subreg_mode): New function.
9864         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
9865         rather than an unsigned int *.
9866         * ira-color.c (regno_max_ref_width): Replace with...
9867         (regno_max_ref_mode): ...this new variable.
9868         (coalesced_pseudo_reg_slot_compare): Update accordingly.
9869         Use wider_subreg_mode.
9870         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
9871         rather than an unsigned int *.
9872         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
9873         (process_alt_operands): Likewise.
9874         (invariant_p): Likewise.
9875         * lra-spills.c (assign_mem_slot): Likewise.
9876         (add_pseudo_to_slot): Likewise.
9877         * lra.c (collect_non_operand_hard_regs): Likewise.
9878         (add_regs_to_insn_regno_info): Likewise.
9879         * reload1.c (regno_max_ref_width): Replace with...
9880         (regno_max_ref_mode): ...this new variable.
9881         (reload): Update accordingly.  Update call to
9882         ira_sort_regnos_for_alter_reg.
9883         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
9884         (init_eliminable_invariants): Update to use regno_max_ref_mode.
9885         (scan_paradoxical_subregs): Likewise.
9886
9887 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9888
9889         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
9890         (aarch64_frame): Add emit_frame_chain boolean.
9891         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9892         Move eh_return case to aarch64_layout_frame.
9893         (aarch64_layout_frame): Initialize emit_frame_chain.
9894         (aarch64_expand_prologue): Use emit_frame_chain.
9895
9896 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9897
9898         * config/aarch64/aarch64.c (aarch64_layout_frame):
9899         Ensure LR is always stored at the bottom of the callee-saves.
9900         Remove rarely used frame layout which saves callee-saves at top of
9901         frame, so the store of LR can be used as a valid probe in all cases.
9902
9903 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9904
9905         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
9906         Improve unaligned TImode/TFmode base/offset split.
9907
9908 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9909             Alan Hayward  <alan.hayward@arm.com>
9910             David Sherwood  <david.sherwood@arm.com>
9911
9912         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
9913         * combine.c (find_single_use_1): Likewise.
9914         (expand_field_assignment): Likewise.
9915         (move_deaths): Likewise.
9916         * lra-constraints.c (simplify_operand_subreg): Likewise.
9917         (curr_insn_transform): Likewise.
9918         * lra.c (collect_non_operand_hard_regs): Likewise.
9919         (add_regs_to_insn_regno_info): Likewise.
9920         * rtlanal.c (reg_referenced_p): Likewise.
9921         (covers_regno_no_parallel_p): Likewise.
9922
9923 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9924
9925         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
9926         Don't print any bits outside the precision of the value.
9927         * wide-int.cc (test_printing): Add some new tests.
9928
9929 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9930
9931         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
9932         supports -xbrace_comment option.
9933         * configure: Regenerate.
9934         * config.in: Regenerate.
9935         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
9936         (ASM_CPU_SPEC): Use it.
9937
9938 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9939
9940         * target.def (static_rtx_alignment): New hook.
9941         * targhooks.h (default_static_rtx_alignment): Declare.
9942         * targhooks.c (default_static_rtx_alignment): New function.
9943         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
9944         * doc/tm.texi: Regenerate.
9945         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
9946         instead of targetm.constant_alignment.  Remove call to
9947         set_mem_attributes.
9948         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9949         (cris_preferred_mininum_alignment): New function, split out from...
9950         (cris_constant_alignment): ...here.
9951         (cris_static_rtx_alignment): New function.
9952         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
9953         split out from...
9954         (ix86_constant_alignment): ...here.
9955         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9956         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9957         (mmix_static_rtx_alignment): New function.
9958         * config/spu/spu.c (spu_static_rtx_alignment): New function.
9959         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9960
9961 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
9962
9963         PR target/81800
9964         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
9965         Add flag_trapping_math and flag_fp_int_builtin_inexact.
9966
9967 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
9968
9969         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
9970         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
9971         mark as a sign-extending load.
9972         (local_pic_load_u): Define.
9973
9974 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
9975
9976         PR middle-end/82062
9977         * fold-const.c (operand_equal_for_comparison_p): Also return true
9978         if ARG0 is a simple variant of ARG1 with narrower precision.
9979         (fold_ternary_loc): Always pass unstripped operands to the predicate.
9980
9981 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
9982
9983         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
9984         cost correctly.
9985         * i386.h (processor_costs): Add gather_static, gather_per_elt,
9986         scatter_static, scatter_per_elt.
9987         * x86-tune-costs.h: Add new cost entries.
9988
9989 2017-10-25  Richard Biener  <rguenther@suse.de>
9990
9991         * tree-ssa-sccvn.h (vn_eliminate): Declare.
9992         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
9993         class pass_fre): Move to ...
9994         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
9995         class pass_fre): ... here and adjust for statistics.
9996
9997 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
9998
9999         PR libstdc++/81706
10000         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
10001         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
10002         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
10003         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
10004         declarations.
10005
10006 2017-10-25  Richard Biener  <rguenther@suse.de>
10007
10008         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
10009         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
10010         eliminate_push_avail, eliminate_insert): Move inside...
10011         (class eliminate_dom_walker): ... this class in preparation
10012         of move.
10013         (fini_eliminate): Remove by merging with ...
10014         (eliminate): ... this function.  Adjust for class changes.
10015         (pass_pre::execute): Remove fini_eliminate call.
10016         (pass_fre::execute): Likewise.
10017
10018 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10019
10020         PR target/82460
10021         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
10022         (VPERMI2, VPERMI2I): New mode iterators.
10023         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
10024         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
10025         patterns.
10026         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
10027         mode iterator.  Remove 3 old define_insn patterns.
10028         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
10029         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
10030         VPERMI2 mode iterator, remove the other two expanders.
10031         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
10032         to use VPERMI2 mode iterator, add another alternative for vpermi2*
10033         instructions, remove the other two patterns.
10034         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
10035         mode iterator, remove the other two patterns.
10036         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
10037         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
10038         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
10039         and adjust argument order accordingly.
10040         (ix86_expand_vec_perm): Adjust caller.
10041         (expand_vec_perm_1): Likewise.
10042         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
10043         (expand_vec_perm_vpermt2_vpshub2): ... this.
10044         (ix86_expand_vec_perm_const_1): Adjust caller.
10045         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
10046
10047         PR target/82370
10048         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
10049         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
10050         (vec_shl_<mode>): Remove unused expander.
10051         (avx512bw_<shift_insn><mode>3): New define_insn.
10052         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
10053         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
10054
10055 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
10056
10057         PR c++/82466
10058         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
10059         description.
10060
10061 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10062
10063         PR rtl-optimization/82396
10064         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
10065         (autopref_multipass_init): Simplify initialization.
10066         (autopref_rank_data): Simplify sort order.
10067         * gcc/sched-int.h (autopref_multipass_data_): Remove
10068         multi_mem_insn_p, min_offset and max_offset.
10069
10070 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10071
10072         PR middle-end/60580
10073         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
10074         Check special value of flag_omit_frame_pointer.
10075         (aarch64_can_eliminate): Likewise.
10076         (aarch64_override_options_after_change_1): Simplify handling of
10077         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
10078
10079 2017-10-24  Richard Biener  <rguenther@suse.de>
10080
10081         PR tree-optimization/82697
10082         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
10083         zero for conditional load and unconditional store.
10084
10085 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         * doc/install.texi: Document bootstrap-cet.
10088
10089 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10090
10091         PR target/82659
10092         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
10093         ENDBR instruction at function entrance if function is only
10094         called directly.
10095
10096 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10097
10098         PR target/82628
10099         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
10100         patterns to better describe from which operation the CF is computed.
10101         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
10102         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
10103         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
10104         is 0, use _0 suffixed expanders instead of emitting a comparison
10105         before it.
10106
10107 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
10108
10109         * config/i386/i386.md(*movsf_internal, *movdf_internal):
10110         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
10111
10112 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
10113
10114         PR middle-end/82569
10115         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
10116         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
10117         * loop-iv.c (iv_get_reaching_def): Likewise.
10118         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
10119         variable is promoted and the partition contains undefined values.
10120
10121 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10122
10123         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
10124         reflect reality.
10125         (nios2_address_cost): Define.
10126         (nios2_legitimize_address): Recognize (exp + constant) directly.
10127         (TARGET_ADDRESS_COST): Define.
10128
10129 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10130
10131         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
10132         (nios2_symbolic_memory_operand_p): Declare.
10133         (nios2_split_large_constant): Declare.
10134         (nios2_split_symbolic_memory_operand): Declare.
10135         * config/nios2/nios2.c: Adjust includes.
10136         (nios2_symbolic_constant_allowed): New.
10137         (nios2_symbolic_constant_p): New.
10138         (nios2_plus_symbolic_constant_p): New.
10139         (nios2_valid_addr_expr_p): Recognize addresses involving
10140         symbolic constants.
10141         (nios2_legitimate_address_p): Likewise, also LO_SUM.
10142         (nios2_symbolic_memory_operand_p): New.
10143         (nios2_large_constant_p): New.
10144         (nios2_split_large_constant): New.
10145         (nios2_split_plus_large_constant): New.
10146         (nios2_split_symbolic_memory_operand): New.
10147         (nios2_legitimize_address): Code refactoring.  Handle addresses
10148         involving symbolic constants.
10149         (nios2_emit_move_sequence): Likewise.
10150         (nios2_print_operand): Improve error output.
10151         (nios2_print_operand_address): Handle LO_SUM.
10152         (nios2_cdx_narrow_form_p): Likewise.
10153         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
10154         operands involving symbolic constants.
10155         (movhi_internal, movsi_internal): Likewise.
10156         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
10157         (extendhisi2, extendqi<mode>2): Likewise.
10158
10159 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10160
10161         * tree-pass.h (PROP_rtl_split_insns): Define.
10162         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
10163
10164 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10165
10166         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
10167
10168 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10169
10170         PR debug/82630
10171         * target.def (const_not_ok_for_debug_p): Default to
10172         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
10173         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
10174         * targhooks.c (default_const_not_ok_for_debug_p): New function.
10175         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
10176         which targetm.const_not_ok_for_debug_p returned true.
10177         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
10178         for UNSPECs.
10179         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
10180         Likewise.
10181         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
10182         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
10183         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
10184         if !base_term_p.
10185         (ix86_const_not_ok_for_debug_p): New function.
10186         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
10187         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
10188
10189 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
10190
10191         PR bootstrap/82610
10192         * system.h: Conditionally include "unique-ptr.h" if
10193         INCLUDE_UNIQUE_PTR is defined.
10194         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
10195         of defining INCLUDE_UNIQUE_PTR before including "system.h".
10196
10197 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
10198
10199         * config/rl78/rl78.md: New define_expand "subdi3".
10200
10201 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
10202
10203         PR target/82673
10204         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
10205         DF_REF_INSN if DF_REF_INSN_INFO is false.
10206
10207 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
10208
10209         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
10210         xmm_move instead of sse_move.
10211         (sse_store_index): New function.
10212         (ix86_register_move_cost): Be more sensible about mismatch stall;
10213         model AVX moves correctly; make difference between sse->integer and
10214         integer->sse.
10215         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
10216         moves; make difference between SSE and AVX.
10217         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
10218         and zmm_move. Increase size of sse load and store tables;
10219         add unaligned load and store tables; add ssemmx_to_integer.
10220         * x86-tune-costs.h: Update all entries according to real
10221         move latencies from Agner Fog's manual and chip documentation.
10222
10223 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10224
10225         PR target/82628
10226         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
10227         * config/i386/constraints.md (Wf): New constraint.
10228         * config/i386/i386.md (UNSPEC_SBB): New unspec.
10229         (cmp<dwi>_doubleword): Removed.
10230         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
10231         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
10232         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
10233         expand with cmp<dwi>_doubleword.  For LTU and GEU use
10234         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
10235
10236         * common.opt (gcolumn-info): Enable by default.
10237         * doc/invoke.texi (gcolumn-info): Document new default.
10238
10239 2017-10-23  Richard Biener  <rguenther@suse.de>
10240
10241         PR tree-optimization/82672
10242         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
10243         Fold the stmt if we propagated into it.
10244
10245 2017-10-23  Richard Biener  <rguenther@suse.de>
10246
10247         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
10248         (bitmap_remove_expr_from_set): ... this.  All callers call this
10249         for non-constant values.
10250         (bitmap_set_subtract): Rename to...
10251         (bitmap_set_subtract_expressions): ... this.  Adjust and
10252         optimize.
10253         (bitmap_set_contains_value): Remove superfluous check.
10254         (bitmap_set_replace_value): Inline into single caller ...
10255         (bitmap_value_replace_in_set): ... here and simplify.
10256         (dependent_clean): Merge into ...
10257         (clean): ... this using an overload.  Adjust.
10258         (prune_clobbered_mems): Adjust.
10259         (compute_antic_aux): Likewise.
10260         (compute_partial_antic_aux): Likewise.
10261
10262 2017-10-23  Richard Biener  <rguenther@suse.de>
10263
10264         PR tree-optimization/82129
10265         Revert
10266         2017-08-01  Richard Biener  <rguenther@suse.de>
10267
10268         PR tree-optimization/81181
10269         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10270         (compute_antic): ... end of iteration here.
10271
10272 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10273
10274         * target.def (starting_frame_offset): New hook.
10275         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
10276         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
10277         * doc/tm.texi.in: Regenerate.
10278         * hooks.h (hook_hwi_void_0): Declare.
10279         * hooks.c (hook_hwi_void_0): New function.
10280         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
10281         STARTING_FRAME_OFFSET.
10282         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
10283         * reload1.c (reload): Likewise.
10284         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
10285         instead of STARTING_FRAME_OFFSET.
10286         * function.c (try_fit_stack_local): Likewise.
10287         (assign_stack_local_1): Likewise
10288         (instantiate_virtual_regs): Likewise.
10289         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
10290         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
10291         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
10292         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
10293         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
10294         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
10295         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
10296         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
10297         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
10298         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
10299         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
10300         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
10301         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
10302         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
10303         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
10304         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
10305         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
10306         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
10307         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
10308         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
10309         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
10310         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
10311         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
10312         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
10313         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
10314         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
10315         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
10316         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
10317         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
10318         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
10319         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
10320         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
10321         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
10322         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
10323         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
10324         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
10325         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
10326         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
10327         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
10328         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
10329         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
10330         * config/avr/avr.c (avr_starting_frame_offset): Make static and
10331         return a HOST_WIDE_INT.
10332         (avr_builtin_setjmp_frame_value): Use it instead of
10333         STARTING_FRAME_OFFSET.
10334         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10335         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
10336         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
10337         New function.
10338         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10339         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
10340         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
10341         (TARGET_CONSTANT_ALIGNMENT): Redefine.
10342         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
10343         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
10344         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10345         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
10346         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
10347         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10348         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
10349         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
10350         New function.
10351         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10352         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
10353         * config/mips/mips.c (mips_compute_frame_info): Refer to
10354         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10355         (mips_starting_frame_offset): New function.
10356         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10357         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
10358         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
10359         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
10360         and return a HOST_WIDE_INT.
10361         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10362         (mmix_initial_elimination_offset): Refer to
10363         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10364         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
10365         * config/pa/pa.c (pa_starting_frame_offset): New function.
10366         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
10367         (pa_expand_prologue): Likewise.
10368         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10369         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
10370         !FRAME_GROWS_DOWNWARD handling to...
10371         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10372         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
10373         !FRAME_GROWS_DOWNWARD handling to...
10374         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10375         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
10376         !FRAME_GROWS_DOWNWARD handling to...
10377         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10378         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
10379         Redefine.
10380         (rs6000_starting_frame_offset): New function.
10381         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
10382         !FRAME_GROWS_DOWNWARD handling to...
10383         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10384         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
10385         !FRAME_GROWS_DOWNWARD handling to...
10386         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10387         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
10388         !FRAME_GROWS_DOWNWARD handling to...
10389         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10390         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
10391         (rs6000_starting_frame_offset): New function.
10392         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
10393         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
10394         * config/vax/vax.c (vax_starting_frame_offset): New function.
10395         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
10396         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10397         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
10398         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
10399         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10400         * system.h (STARTING_FRAME_OFFSET): Poison.
10401
10402 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10403
10404         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
10405         SCALAR_TYPE_MODE instead of TYPE_MODE.
10406
10407 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10408             Alan Hayward  <alan.hayward@arm.com>
10409             David Sherwood  <david.sherwood@arm.com>
10410
10411         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
10412
10413 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10414             Alan Hayward  <alan.hayward@arm.com>
10415             David Sherwood  <david.sherwood@arm.com>
10416
10417         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
10418
10419 2017-10-23  Richard Biener  <rguenther@suse.de>
10420
10421         PR tree-optimization/82129
10422         * tree-ssa-pre.c (bitmap_set_and): Remove.
10423         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
10424         canonicalizing expressions in the set to those with lowest
10425         ID rather than taking that from the first edge.
10426
10427 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10428
10429         * combine.c (rtx_equal_for_field_assignment_p): Use
10430         byte_lowpart_offset.
10431
10432 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10433             Alan Hayward  <alan.hayward@arm.com>
10434             David Sherwood  <david.sherwood@arm.com>
10435
10436         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
10437         to a SUBREG_PROMOTED_VAR.
10438
10439 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10440             Alan Hayward  <alan.hayward@arm.com>
10441             David Sherwood  <david.sherwood@arm.com>
10442
10443         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
10444         (expand_debug_source_expr): Likewise.
10445         * combine.c (combine_simplify_rtx): Likewise.
10446         * cse.c (fold_rtx): Likewise.
10447         * optabs.c (expand_float): Likewise.
10448         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10449         (simplify_binary_operation_1): Likewise.
10450
10451 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10452             Alan Hayward  <alan.hayward@arm.com>
10453             David Sherwood  <david.sherwood@arm.com>
10454
10455         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
10456         (record_promoted_value): Likewise.
10457         * expr.c (expand_expr_real_2): Likewise.
10458         * ree.c (update_reg_equal_equiv_notes): Likewise.
10459         (combine_set_extension): Likewise.
10460         * rtlanal.c (low_bitmask_len): Likewise.
10461         * simplify-rtx.c (neg_const_int): Likewise.
10462         (simplify_binary_operation_1): Likewise.
10463
10464 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10465             Alan Hayward  <alan.hayward@arm.com>
10466             David Sherwood  <david.sherwood@arm.com>
10467
10468         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
10469         * regcprop.c (maybe_mode_change): Likewise.
10470         * reload1.c (alter_reg): Likewise.
10471
10472 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10473
10474         * inchash.h (inchash::hash::add_wide_int): New function.
10475         * lto-streamer-out.c (hash_tree): Use it.
10476
10477 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10478
10479         * inchash.h (inchash::hash::add_wide_int): Rename to...
10480         (inchash::hash::add_hwi): ...this.
10481         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
10482         (polymorphic_call_target_hasher::hash): Likewise.
10483         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
10484         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
10485         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10486         * lto-streamer-out.c (hash_tree): Likewise.
10487         * optc-save-gen.awk: Likewise.
10488         * tree.c (add_expr): Likewise.
10489
10490 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10491
10492         PR target/52451
10493         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
10494         for ordered inequality comparisons even with TARGET_IEEE_FP.
10495
10496 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10497
10498         PR target/82628
10499         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
10500         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10501         Expand with cmp<dwi>_doubleword.
10502
10503 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10504
10505         * extend.texi: Add x86 specific to 'nocf_check' attribute.
10506         List CET intrinsics.
10507         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
10508         specific to -fcf-protection option.
10509
10510 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10511
10512         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
10513         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
10514         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
10515         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
10516         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
10517         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
10518         (extra_objs): Add cet.o for Linux/x86 targets.
10519         (tmake_file): Add i386/t-cet for Linux/x86 targets.
10520         * config/i386/cet.c: New file.
10521         * config/i386/cetintrin.h: Likewise.
10522         * config/i386/t-cet: Likewise.
10523         * config/i386/cpuid.h (bit_SHSTK): New.
10524         (bit_IBT): Likewise.
10525         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
10526         pass IBT and SHSTK bits.
10527         * config/i386/i386-builtin-types.def
10528         (VOID_FTYPE_UNSIGNED_PVOID): New.
10529         (VOID_FTYPE_UINT64_PVOID): Likewise.
10530         * config/i386/i386-builtin.def: Add CET intrinsics.
10531         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10532         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
10533         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
10534         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
10535         prototype.
10536         * config/i386/i386.c (rest_of_insert_endbranch): New.
10537         (pass_data_insert_endbranch): Likewise.
10538         (pass_insert_endbranch): Likewise.
10539         (make_pass_insert_endbranch): Likewise.
10540         (ix86_notrack_prefixed_insn_p): Likewise.
10541         (ix86_target_string): Add -mibt, -mshstk flags.
10542         (ix86_option_override_internal): Add flag_cf_protection
10543         processing.
10544         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
10545         (ix86_print_operand): Add 'notrack' prefix output.
10546         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
10547         (ix86_expand_builtin): Expand CET intrinsics.
10548         (x86_output_mi_thunk): Add 'endbranch' instruction.
10549         * config/i386/i386.h (TARGET_IBT): New.
10550         (TARGET_IBT_P): Likewise.
10551         (TARGET_SHSTK): Likewise.
10552         (TARGET_SHSTK_P): Likewise.
10553         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
10554         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
10555         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
10556         (builtin_setjmp_setup): New pattern.
10557         (builtin_longjmp): Likewise.
10558         (rdssp<mode>): Likewise.
10559         (incssp<mode>): Likewise.
10560         (saveprevssp): Likewise.
10561         (rstorssp): Likewise.
10562         (wrss<mode>): Likewise.
10563         (wruss<mode>): Likewise.
10564         (setssbsy): Likewise.
10565         (clrssbsy): Likewise.
10566         (nop_endbr): Likewise.
10567         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
10568         options.
10569         * config/i386/immintrin.h: Include <cetintrin.h>.
10570         * config/i386/linux-common.h
10571         (file_end_indicate_exec_stack_and_cet): New prototype.
10572         (TARGET_ASM_FILE_END): New.
10573
10574 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10575
10576         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
10577         latencies instead of having separate table; make difference between
10578         integer and float costs.
10579         * i386.h (processor_costs): Remove scalar_stmt_cost,
10580         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
10581         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
10582         vec_store_cost.
10583         * x86-tune-costs.h: Remove entries which has been removed in
10584         procesor_costs from all tables; make cond_taken_branch_cost
10585         and cond_not_taken_branch_cost COST_N_INSNS based.
10586
10587 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10588
10589         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
10590
10591 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10592
10593         * config/i386/i386.md (isa): Remove fma_avx512f.
10594         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
10595         <avx512>_fmadd_<mode>_mask3<round_name>,
10596         <avx512>_fmsub_<mode>_mask<round_name>,
10597         <avx512>_fmsub_<mode>_mask3<round_name>,
10598         <avx512>_fnmadd_<mode>_mask<round_name>,
10599         <avx512>_fnmadd_<mode>_mask3<round_name>,
10600         <avx512>_fnmsub_<mode>_mask<round_name>,
10601         <avx512>_fnmsub_<mode>_mask3<round_name>,
10602         <avx512>_fmaddsub_<mode>_mask<round_name>,
10603         <avx512>_fmaddsub_<mode>_mask3<round_name>,
10604         <avx512>_fmsubadd_<mode>_mask<round_name>,
10605         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
10606         (*vec_widen_umult_even_v16si<mask_name>,
10607         *vec_widen_smult_even_v16si<mask_name>): Likewise.
10608         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
10609
10610 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10611
10612         * extend.texi: Add 'nocf_check' documentation.
10613         * gimple.texi: Add second parameter to
10614         gimple_build_call_from_tree.
10615         * invoke.texi: Add -fcf-protection documentation.
10616         * rtl.texi: Add REG_CALL_NOTRACK documenation.
10617
10618 2017-10-20  Richard Biener  <rguenther@suse.de>
10619
10620         PR tree-optimization/82473
10621         * tree-vect-loop.c (vectorizable_reduction): Properly get at
10622         the largest input type.
10623
10624 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10625
10626         * c-attribs.c (handle_nocf_check_attribute): New function.
10627         (c_common_attribute_table): Add 'nocf_check' handling.
10628         * gimple-parser.c: Add second argument NULL to
10629         gimple_build_call_from_tree.
10630         * attrib.c (comp_type_attributes): Check nocf_check attribute.
10631         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
10632         call insn.
10633         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
10634         * common.opt: Add fcf-protection flag.
10635         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
10636         * flag-types.h: Add enum cf_protection_level.
10637         * gimple.c (gimple_build_call_from_tree): Add second parameter.
10638         Add 'nocf_check' attribute propagation to gimple call.
10639         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
10640         (gimple_build_call_from_tree): Update prototype.
10641         (gimple_call_nocf_check_p): New function.
10642         (gimple_call_set_nocf_check): Likewise.
10643         * gimplify.c: Add second argument to gimple_build_call_from_tree.
10644         * ipa-icf.c: Add nocf_check attribute in statement hash.
10645         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
10646         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
10647         * toplev.c (process_options): Add flag_cf_protection handling.
10648
10649 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10650
10651         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
10652
10653 2017-10-20  Richard Biener  <rguenther@suse.de>
10654
10655         PR tree-optimization/82603
10656         * tree-if-conv.c (predicate_mem_writes): Make sure to only
10657         remove false predicated stores.
10658
10659 2017-10-20  Richard Biener  <rguenther@suse.de>
10660
10661         * graphite-isl-ast-to-gimple.c
10662         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
10663         Remove return value and simplify, dump copied stmt after lhs
10664         adjustment.
10665         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
10666         Reduce dump verbosity.
10667         (gsi_insert_earliest): Likewise.
10668         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
10669         * graphite.c (print_global_statistics): Adjust dumping.
10670         (print_graphite_scop_statistics): Likewise.
10671         (print_graphite_statistics): Do not dump loops here.
10672         (graphite_transform_loops): But here.
10673
10674 2017-10-20  Nicolas Roche  <roche@adacore.com>
10675
10676         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
10677         * configure: Regenerate.
10678
10679 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10680
10681         PR target/82158
10682         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
10683         functions when optimizing replace GIMPLE_RETURN stmts with
10684         calls to __builtin_unreachable ().
10685
10686         PR sanitizer/82595
10687         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
10688         for -fsanitize=thread link of executables.
10689         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
10690         link of executables.
10691
10692         PR target/82370
10693         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
10694         New mode iterators.
10695         (<shift_insn><mode>3<mask_name>): Change the last of the 3
10696         define_insns for logical vector shifts to use VI248_AVX512BW
10697         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
10698         condition, useless isa and prefix attributes.  Change the first
10699         2 of these define_insns to ...
10700         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
10701         define_insn for avx512vl.
10702         (<shift_insn><mode>3): ... and this, new define_insn without
10703         masking for non-avx512vl.
10704
10705         PR target/82370
10706         * config/i386/sse.md (*andnot<mode>3,
10707         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
10708         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
10709         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
10710         not applied use empty suffix even for TARGET_AVX512VL.
10711         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
10712         is applied, supply evex,evex or evex,evex,evex instead of just
10713         evex.
10714
10715 2017-10-20  Julia Koval  <julia.koval@intel.com>
10716
10717         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
10718         (OPTION_MASK_ISA_GFNI_UNSET): New.
10719         (ix86_handle_option): Handle OPT_mgfni.
10720         * config/i386/cpuid.h (bit_GFNI): New.
10721         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
10722         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
10723         * config/i386/i386.c (ix86_target_string): Add -mgfni.
10724         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
10725         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
10726         * config/i386/i386.opt: Add mgfni.
10727
10728 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
10729
10730         * config/msp430/msp430.c (msp430_option_override): Disable
10731         -fdelete-null-pointer-checks.
10732         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
10733
10734 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10735
10736         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
10737         of x87 and SSE instructions.
10738
10739 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10740
10741         * asan.c (create_cond_insert_point): Do not update edge count.
10742         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
10743         (afdo_propagate_circuit): Likewise.
10744         (afdo_calculate_branch_prob): Likewise.
10745         (afdo_annotate_cfg): Likewise.
10746         * basic-block.h (struct edge_def): Remove count.
10747         (edge_def::count): New accessor.
10748         * bb-reorder.c (rotate_loop): Update.
10749         (find_traces_1_round): Update.
10750         (connect_traces): Update.
10751         (sanitize_hot_paths): Update.
10752         * cfg.c (unchecked_make_edge): Update.
10753         (make_single_succ_edge): Update.
10754         (check_bb_profile): Update.
10755         (dump_edge_info): Update.
10756         (update_bb_profile_for_threading): Update.
10757         (scale_bbs_frequencies_int): Update.
10758         (scale_bbs_frequencies_gcov_type): Update.
10759         (scale_bbs_frequencies_profile_count): Update.
10760         (scale_bbs_frequencies): Update.
10761         * cfganal.c (connect_infinite_loops_to_exit): Update.
10762         * cfgbuild.c (compute_outgoing_frequencies): Update.
10763         (find_many_sub_basic_blocks): Update.
10764         * cfgcleanup.c (try_forward_edges): Update.
10765         (try_crossjump_to_edge): Update
10766         * cfgexpand.c (expand_gimple_cond): Update
10767         (expand_gimple_tailcall): Update
10768         (construct_exit_block): Update
10769         * cfghooks.c (verify_flow_info): Update
10770         (redirect_edge_succ_nodup): Update
10771         (split_edge): Update
10772         (make_forwarder_block): Update
10773         (duplicate_block): Update
10774         (account_profile_record): Update
10775         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
10776         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
10777         * cfgloopmanip.c (scale_loop_profile): Update.
10778         (loopify): Update.
10779         (lv_adjust_loop_entry_edge): Update.
10780         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10781         (force_nonfallthru_and_redirect): Update.
10782         (purge_dead_edges): Update.
10783         (rtl_flow_call_edges_add): Update.
10784         * cgraphunit.c (init_lowered_empty_function): Update.
10785         (cgraph_node::expand_thunk): Update.
10786         * gimple-pretty-print.c (dump_probability): Update.
10787         (dump_edge_probability): Update.
10788         * gimple-ssa-isolate-paths.c (isolate_path): Update.
10789         * haifa-sched.c (sched_create_recovery_edges): Update.
10790         * hsa-gen.c (convert_switch_statements): Update.
10791         * ifcvt.c (dead_or_predicable): Update.
10792         * ipa-inline-transform.c (inline_transform): Update.
10793         * ipa-split.c (split_function): Update.
10794         * ipa-utils.c (ipa_merge_profiles): Update.
10795         * loop-doloop.c (add_test): Update.
10796         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
10797         * lto-streamer-in.c (input_cfg): Update.
10798         (input_function): Update.
10799         * lto-streamer-out.c (output_cfg): Update.
10800         * modulo-sched.c (sms_schedule): Update.
10801         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10802         * predict.c (maybe_hot_edge_p): Update.
10803         (unlikely_executed_edge_p): Update.
10804         (probably_never_executed_edge_p): Update.
10805         (dump_prediction): Update.
10806         (drop_profile): Update.
10807         (propagate_unlikely_bbs_forward): Update.
10808         (determine_unlikely_bbs): Update.
10809         (force_edge_cold): Update.
10810         * profile.c (compute_branch_probabilities): Update.
10811         * reg-stack.c (better_edge): Update.
10812         * shrink-wrap.c (handle_simple_exit): Update.
10813         * tracer.c (better_p): Update.
10814         * trans-mem.c (expand_transaction): Update.
10815         (split_bb_make_tm_edge): Update.
10816         * tree-call-cdce.c: Update.
10817         * tree-cfg.c (gimple_find_sub_bbs): Update.
10818         (gimple_split_edge): Update.
10819         (gimple_duplicate_sese_region): Update.
10820         (gimple_duplicate_sese_tail): Update.
10821         (gimple_flow_call_edges_add): Update.
10822         (insert_cond_bb): Update.
10823         (execute_fixup_cfg): Update.
10824         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
10825         * tree-complex.c (expand_complex_div_wide): Update.
10826         * tree-eh.c (lower_resx): Update.
10827         (unsplit_eh): Update.
10828         (cleanup_empty_eh_move_lp): Update.
10829         * tree-inline.c (copy_edges_for_bb): Update.
10830         (freqs_to_counts): Update.
10831         (copy_cfg_body): Update.
10832         * tree-ssa-dce.c (remove_dead_stmt): Update.
10833         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10834         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
10835         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
10836         (unloop_loops): Update.
10837         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10838         * tree-ssa-loop-split.c (connect_loops): Update.
10839         (split_loop): Update.
10840         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
10841         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
10842         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
10843         * tree-ssa-reassoc.c (branch_fixup): Update.
10844         * tree-ssa-tail-merge.c (replace_block_by): Update.
10845         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
10846         (compute_path_counts): Update.
10847         (update_profile): Update.
10848         (recompute_probabilities): Update.
10849         (update_joiner_offpath_counts): Update.
10850         (estimated_freqs_path): Update.
10851         (freqs_to_counts_path): Update.
10852         (clear_counts_path): Update.
10853         (ssa_fix_duplicate_block_edges): Update.
10854         (duplicate_thread_path): Update.
10855         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
10856         (case_bit_test_cmp): Update.
10857         (collect_switch_conv_info): Update.
10858         (gen_inbound_check): Update.
10859         (do_jump_if_equal): Update.
10860         (emit_cmp_and_jump_insns): Update.
10861         * tree-tailcall.c (decrease_profile): Update.
10862         (eliminate_tail_call): Update.
10863         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10864         (vect_do_peeling): Update.
10865         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10866         * ubsan.c (ubsan_expand_null_ifn): Update.
10867         (ubsan_expand_ptr_ifn): Update.
10868         * value-prof.c (gimple_divmod_fixed_value): Update.
10869         (gimple_mod_pow2): Update.
10870         (gimple_mod_subtract): Update.
10871         (gimple_ic): Update.
10872         (gimple_stringop_fixed_value): Update.
10873
10874 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10875
10876         PR target/82618
10877         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
10878
10879 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
10880
10881         PR rtl-optimization/82395
10882         * ira-color.c (allocno_priority_compare_func): Fix comparison step
10883         based on non_spilled_static_chain_regno_p.
10884
10885 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10886
10887         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
10888         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
10889         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
10890
10891 2017-10-19  Martin Sebor  <msebor@redhat.com>
10892
10893         PR tree-optimization/82596
10894         * tree.c (array_at_struct_end_p): Handle STRING_CST.
10895
10896 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10897
10898         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
10899         (get_mem_refs_of_builtin_call): Likewise.
10900         * builtins.c (expand_builtin_apply): Adjust call to
10901         allocate_dynamic_stack_space.
10902         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
10903         the third argument to allocate_dynamic_stack_space, otherwise -1.
10904         (expand_builtin): Deal with all alloca variants.
10905         (is_inexpensive_builtin): Likewise.
10906         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
10907         * calls.c (special_function_p): Deal with all alloca variants.
10908         (initialize_argument_information): Adjust call to
10909         allocate_dynamic_stack_space.
10910         (expand_call): Likewise.
10911         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
10912         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
10913         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
10914         use it for the stack usage computation.
10915         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
10916         * function.c (gimplify_parameters): Call build_alloca_call_expr.
10917         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
10918         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
10919         (in_loop_p): Remove first argument and useless check.
10920         (pass_walloca::execute): Remove useless test and adjust call to above.
10921         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
10922         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
10923         (gimplify_call_expr): Deal with all alloca variants.
10924         * hsa-gen.c (gen_hsa_alloca): Likewise.
10925         (gen_hsa_insns_for_call): Likewise.
10926         * ipa-pure-const.c (special_builtin_state): Likewise.
10927         * tree-chkp.c (chkp_build_returned_bound): Likewise.
10928         * tree-object-size.c (alloc_object_size): Likewise.
10929         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10930         (call_may_clobber_ref_p_1): Likewise.
10931         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
10932         (ccp_fold_stmt): Likewise.
10933         (optimize_stack_restore): Likewise.
10934         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10935         (mark_all_reaching_defs_necessary_1): Likewise.
10936         (propagate_necessity): Likewise.
10937         (eliminate_unnecessary_stmts): Likewise.
10938         * tree.c (build_common_builtin_nodes): Build
10939         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
10940         (build_alloca_call_expr): New function.
10941         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
10942         (CASE_BUILT_IN_ALLOCA): Likewise.
10943         (build_alloca_call_expr): Declare.
10944         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
10945
10946 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10947
10948         PR debug/82509
10949         * dwarf2out.c (new_die_raw): New static inline function.
10950         (new_die): Use it to create the DIE.
10951         (add_AT_external_die_ref): Likewise.
10952         (clone_die): Likewise.
10953         (clone_as_declaration): Likewise.
10954         (dwarf2out_vms_debug_main_pointer): Likewise.
10955         (base_type_die): Likewise.  Remove early return for corner cases.
10956         Do not call add_pubtype on the DIE here.
10957         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
10958         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
10959         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
10960         native order exists for base types, attach the DIE manually and call
10961         add_pubtype on it.  Do not equate a reverse order DIE to the type.
10962
10963 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
10964
10965         * config/arm/arm.c (align_ok_ldrd_strd): New function.
10966         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
10967         the mem into it.
10968         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
10969
10970 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
10971
10972         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
10973         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
10974         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
10975         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
10976         * opts.c (sanitizer_opts): Add builtin.
10977         * ubsan.c (instrument_builtin): New function.
10978         (pass_ubsan::execute): Call it.
10979         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
10980         * doc/invoke.texi: Document -fsanitize=builtin.
10981
10982         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
10983         builtins, store max (log2 (align), 0) into uchar field instead of
10984         align into uptr field.
10985         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
10986         store uchar 0 field instead of uptr 0 field.
10987         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
10988         instead of passing one address of struct with 2 locations pass
10989         two addresses of structs with 1 location each.
10990         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
10991         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
10992         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
10993         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
10994         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
10995         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
10996         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
10997         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
10998
10999 2017-10-19  Martin Liska  <mliska@suse.cz>
11000
11001         PR driver/81829
11002         * file-find.c (remove_prefix): Remove.
11003         * file-find.h (remove_prefix): Likewise.
11004         * gcc-ar.c: Remove smartness of lookup.
11005
11006 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
11007
11008         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
11009         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
11010         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
11011
11012 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
11013
11014         PR target/82580
11015         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
11016         (setcc + and to xor + setcc): New peephole2.
11017
11018 2017-10-19  Tom de Vries  <tom@codesourcery.com>
11019
11020         * doc/sourcebuild.texi (Test Directives, Variants of
11021         dg-require-support): Add dg-require-stack-size.
11022
11023 2017-10-19  Martin Liska  <mliska@suse.cz>
11024
11025         PR sanitizer/82517
11026         * gimplify.c (gimplify_decl_expr): Do not instrument variables
11027         that have a large alignment.
11028         (gimplify_target_expr): Likewise.
11029
11030 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
11031
11032         PR rtl-optimization/82602
11033         * ira.c (rtx_moveable_p): Return false for volatile asm.
11034
11035 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
11036
11037         PR target/82580
11038         * config/i386/i386-modes.def (CCGZ): New CC mode.
11039         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
11040         * config/i386/predicates.md (ix86_comparison_operator):
11041         Handle CCGZmode.
11042         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
11043         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
11044         with double-word subtraction.
11045         (put_condition_code): Handle CCGZmode.
11046
11047 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
11048
11049         * wide-int.cc (debug (const wide_int &)): New.
11050         (debug (const wide_int *)): New.
11051         (debug (const widest_int &)): New.
11052         (debug (const widest_int *)): New.
11053
11054 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
11055
11056         PR middle-end/82556
11057         * lra-constraints.c (curr_insn_transform): Use non-input operand
11058         instead of output one for matched reload.
11059
11060 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11061
11062         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
11063         (tree-ssa-loop-ivopts.h): New header file.
11064         (struct builtin_info): New fields.
11065         (classify_builtin_1): Compute and record base and offset parts for
11066         memset builtin partition by calling strip_offset.
11067         (offset_cmp, fuse_memset_builtins): New functions.
11068         (finalize_partitions): Fuse adjacent memset partitions by calling
11069         above function.
11070         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
11071         Expose the interface.
11072         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
11073
11074 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11075
11076         PR tree-optimization/82574
11077         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
11078         that data reference must be executed exactly once per iteration
11079         against the outermost loop in nest.
11080         (classify_partition): Update call to above function.
11081
11082 2017-10-18  Richard Biener  <rguenther@suse.de>
11083
11084         PR tree-optimization/82591
11085         * graphite.c (graphite_transform_loops): Move code gen message
11086         printing ...
11087         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11088         Here.  Handle scop_to_isl_ast failing.
11089         (scop_to_isl_ast): Limit the number of ISL operations.
11090
11091 2017-10-18  Richard Biener  <rguenther@suse.de>
11092
11093         * graphite-isl-ast-to-gimple.c
11094         (translate_isl_ast_to_gimple::set_rename): Simplify.
11095         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
11096         (graphite_copy_stmts_from_block): ... here.
11097         (copy_bb_and_scalar_dependences): Simplify.
11098         (add_parameters_to_ivs_params): Canonicalize.
11099         (generate_entry_out_of_ssa_copies): Simplify.
11100         * graphite-sese-to-poly.c (extract_affine_name): Simplify
11101         by passing in ISL dimension.
11102         (parameter_index_in_region_1): Rename to ...
11103         (parameter_index_in_region): ... this.
11104         (extract_affine): Adjust assert, pass down parameter index.
11105         (add_param_constraints): Use range-info when available.
11106         (build_scop_context): Adjust.
11107         * sese.c (new_sese_info): Adjust.
11108         (free_sese_info): Likewise.
11109         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
11110         Remove unused typedefs.
11111         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
11112
11113 2017-10-18  Martin Liska  <mliska@suse.cz>
11114
11115         * combine.c (simplify_compare_const): Add gcc_fallthrough.
11116
11117 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11118
11119         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
11120         (s390_sched_init): Do not reset s390_sched_state if we entered the
11121         current basic block via a fallthru edge and all others are unlikely.
11122
11123 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11124
11125         * config/s390/s390.c (NUM_SIDES): New variable.
11126         (LONGRUNNING_THRESHOLD): New variable.
11127         (LATENCY_FACTOR): New variable.
11128         (s390_sched_score): Decrease score for long-running instructions on
11129         wrong side.
11130         (s390_sched_variable_issue): Perform bookkeeping for long-running
11131         instructions.
11132
11133 2017-10-18  Richard Biener  <rguenther@suse.de>
11134
11135         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11136         Simplify with removal of the parameter rename map.
11137         (set_rename): Likewise.
11138         (should_copy_to_new_region): Likewise.
11139         (graphite_copy_stmts_from_block): Likewise.
11140         (copy_bb_and_scalar_dependences): Remove initialization of
11141         unused copied_bb_map.
11142         (copy_def): Remove.
11143         (copy_internal_parameters): Likewise.
11144         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
11145         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
11146         Use INTEGRAL_TYPE_P.
11147         (parameter_index_in_region_1): Rename to ...
11148         (assign_parameter_index_in_region): ... this.  Assert we have
11149         a parameter we handle.
11150         (scan_tree_for_params): Adjust.
11151         * sese.h (parameter_rename_map_t): Remove.
11152         (struct sese_info_t): Remove unused parameter_rename_map and
11153         copied_bb_map members.
11154         * sese.c (new_sese_info): Adjust.
11155         (free_sese_info): Likewise.
11156
11157 2017-10-18  Martin Liska  <mliska@suse.cz>
11158
11159         PR sanitizer/82545
11160         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
11161         on an abnormal edge.
11162
11163 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11164
11165         * doc/invoke.texi (ffunction-sections and fdata-sections):
11166         Update.
11167
11168 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11169
11170         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
11171         the use statement can throw internally.
11172
11173 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11174
11175         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
11176         any RTX present on the RHS of a SET.
11177         * compare-elim.c (try_eliminate_compare): Restore comment.
11178
11179 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11180
11181         * langhooks.h (struct lang_hooks): Document that tree_size langhook
11182         may be also called on tcc_type nodes.
11183         * langhooks.c (lhd_tree_size): Likewise.
11184
11185 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
11186
11187         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
11188         format_warning_at_substring.
11189         (maybe_warn): Convert source_range * param to a location_t.  Pass
11190         UNKNOWN_LOCATION rather than NULL to fmtwarn.
11191         (format_directive): Remove code to extract source_ranges and
11192         source_range * in favor of just a location_t.
11193         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
11194         fmtwarn.
11195         * substring-locations.c (format_warning_va): Convert
11196         source_range * param to a location_t.
11197         (format_warning_at_substring): Likewise.
11198         * substring-locations.h (format_warning_va): Likewise.
11199         (format_warning_at_substring): Likewise.
11200
11201 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
11202
11203         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
11204         vec_scatter_store
11205         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
11206         and scatter/gather ops.
11207
11208         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
11209         vec_gather_load and vec_scatter_store.
11210         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
11211         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
11212         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
11213         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
11214         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
11215         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
11216
11217 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
11218
11219         * reg-stack.c (compare_for_stack_reg): Add bool argument.
11220         Detect FTST instruction and handle its register pops.  Only pop
11221         second operand if can_pop_second_op is true.
11222         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
11223         set can_pop_second_op to false in the compare_for_stack_reg call.
11224
11225         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
11226         output_fp_compare for stack register operands.
11227         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
11228         instructions here.  Do not emit stack register pops here.  Assert
11229         that FCOMPP pops next to top stack register.  Rewrite function.
11230
11231 2017-10-17  Nathan Sidwell  <nathan@acm.org>
11232
11233         PR middle-end/82577
11234         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
11235         use DECL_ASSEMBLER_NAME_RAW.
11236
11237         PR middle-end/82546
11238         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
11239         TYPE nodes.
11240
11241 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
11242             Wilco Dijkstra <wilco.dijkstra@arm.com>
11243
11244         * builtins.c (expand_builtin_update_setjmp_buf): Add a
11245         converstion to Pmode from the buf_addr.
11246
11247 2017-10-17  Richard Biener  <rguenther@suse.de>
11248
11249         * graphite-dependences.c (scop_get_reads_and_writes): Change
11250         output parameters to references.
11251
11252 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
11253
11254         PR 71026/tree-optimization
11255         * fold-const.c (distribute_real_division): Removed.
11256         (fold_binary_loc): Remove calls to distribute_real_divison.
11257
11258 2017-10-17  Richard Biener  <rguenther@suse.de>
11259
11260         * graphite-scop-detection.c
11261         (scop_detection::stmt_has_simple_data_refs_p): Always use
11262         the full nest as region.
11263         (try_generate_gimple_bb): Likewise.
11264         * sese.c (scalar_evolution_in_region): Simplify now that
11265         SCEV can handle instantiation in regions.
11266         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
11267         in the non-loop part of a function if requested.
11268
11269 2017-10-17  Richard Biener  <rguenther@suse.de>
11270
11271         PR tree-optimization/82563
11272         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
11273         New function.
11274         (graphite_regenerate_ast_isl): Call it.
11275         * graphite-scop-detection.c (build_scops): Remove entry edge split.
11276
11277 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11278
11279         PR tree-optimization/82549
11280         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
11281         Formatting fixes.  Instead of calling make_bit_field_ref with negative
11282         bitpos return 0.
11283
11284 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
11285
11286         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
11287         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
11288         _mm_maskz_reduce_ss): New.
11289         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
11290         __builtin_ia32_reducess_mask): Ditto..
11291         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
11292         * config/i386/sse.md (reduces<mode>): Renamed to ...
11293         (reduces<mode><mask_scalar_name>): ... this.
11294         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
11295         Changed to ...
11296         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
11297         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
11298
11299 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
11300
11301         * Makefile.in (OBJS): Add unique-ptr-tests.o.
11302         * selftest-run-tests.c (selftest::run_tests): Call
11303         selftest::unique_ptr_tests_cc_tests.
11304         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
11305         * unique-ptr-tests.cc: New file.
11306
11307 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
11308
11309         PR sanitizer/82353
11310         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11311         locations.
11312         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11313         (make_hard_regno_born, make_hard_regno_dead): Update
11314         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
11315
11316 2017-10-16  Jeff Law  <law@redhat.com>
11317
11318         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11319
11320 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
11321
11322         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
11323
11324 2017-10-16  Olivier Hainque  <hainque@adacore.com>
11325
11326         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
11327         with_cpu if we were configured for an e500v2 target cpu name.
11328
11329 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11330
11331         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
11332         * doc/invoke.texi: Document +nodsp as a valid extension for
11333         -mcpu=cortex-m33.
11334
11335 2017-10-16  Martin Liska  <mliska@suse.cz>
11336
11337         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
11338         (test_set_range): Likewise.
11339         (test_range_functions): Rename to ...
11340         (test_bit_in_range): ... this.
11341         (sbitmap_c_tests): Add new test.
11342
11343 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11344
11345         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
11346         New.
11347         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
11348         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
11349
11350 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11351
11352         * config/aarch64/aarch64-builtins.c
11353         (aarch64_types_quadopu_lane_qualifiers): New.
11354         (TYPES_QUADOPU_LANE): New.
11355         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
11356         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
11357         (aarch64_<sur>dot_laneq<vsi2qi>): New.
11358         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
11359         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
11360         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
11361         (Vdottype, DOTPROD): New.
11362         (sur): Add SDOT and UDOT.
11363
11364 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11365
11366         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
11367         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
11368         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
11369         Add TARGET_DOTPROD.
11370         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
11371         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
11372         Enable TARGET_DOTPROD.
11373         (cortex-a75.cortex-a55): Likewise.
11374         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
11375
11376 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11377
11378         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
11379         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
11380         New.
11381         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
11382         New.
11383         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
11384         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
11385         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
11386         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
11387         * config/arm/types.md (neon_dot, neon_dot_q): New.
11388         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
11389
11390 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11391
11392         * config/arm/arm.h (TARGET_DOTPROD): New.
11393         * config/arm/arm.c (arm_arch_dotprod): New.
11394         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
11395         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
11396         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
11397         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
11398         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
11399         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
11400         * doc/invoke.texi (armv8.2-a): Document dotprod
11401
11402 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11403
11404         * i386.c (ix86_vec_cost): New function.
11405         (ix86_rtx_costs): Handle vector operations better.
11406         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
11407         * x86-tune-costs.h: Add new costs to all tables.
11408
11409 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11410
11411         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
11412         operations.
11413         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
11414         divsd, sqrtss and sqrtsd
11415         * x86-tune-costs.h: Add new entries to all costs.
11416         (znver1_cost): Fix to match real instruction latencies.
11417
11418 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11419             Michael Collison <michael.collison@arm.com>
11420
11421         * compare-elim.c: Include emit-rtl.h.
11422         (can_merge_compare_into_arith): New function.
11423         (try_validate_parallel): Likewise.
11424         (try_merge_compare): Likewise.
11425         (try_eliminate_compare): Call the above when no previous clobber
11426         is available.
11427         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
11428         dataflow problems.
11429
11430 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11431
11432         PR middle-end/62263
11433         PR middle-end/82498
11434         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
11435         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
11436
11437         PR middle-end/62263
11438         PR middle-end/82498
11439         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
11440         to be any operand_equal_p operands.  For & (B - 1) require
11441         B to be power of 2.  Recognize
11442         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
11443
11444 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11445
11446         PR bootstrap/82553
11447         * optabs.c (expand_memory_blockage): Fix call of
11448         targetm.have_memory_blockage.
11449
11450 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11451
11452         PR bootstrap/82548
11453         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
11454         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
11455         objects to extra_objs instead of overwriting it.
11456
11457 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11458
11459         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
11460         Use any_fp_register_operand as operand[3] predicate.  Simplify
11461         equality test for operands[2] and operands[4] memory location.
11462         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
11463         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
11464         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
11465         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
11466         any_fp_register_operand as operand[1] predicate.  Simplify
11467         equality test for operands[0] and operands[3] memory location.
11468         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
11469         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
11470         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
11471
11472 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11473
11474         * target-insns.def: Add memory_blockage.
11475         * optabs.c (expand_memory_blockage): New function.
11476         (expand_asm_memory_barrier): Rename ...
11477         (expand_asm_memory_blockage): ... to this.
11478         (expand_mem_thread_fence): Call expand_memory_blockage
11479         instead of expand_asm_memory_barrier.
11480         (expand_mem_singnal_fence): Ditto.
11481         (expand_atomic_load): Ditto.
11482         (expand_atomic_store): Ditto.
11483         * doc/md.texi (Standard Pattern Names For Generation):
11484         Document memory_blockage instruction pattern.
11485
11486 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
11487
11488         * config/rl78/rl78.c (rl78_emit_libcall): New function.
11489         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
11490         * config/rl78/rl78.md: New define_expand "adddi3".
11491
11492 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11493
11494         * cfghooks.c (verify_flow_info): Disable check that all probabilities
11495         are set correctly.
11496
11497 2017-10-13  Jeff Law  <law@redhat.com>
11498
11499         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
11500
11501 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11502
11503         PR target/82274
11504         * internal-fn.c (expand_mul_overflow): If both operands have
11505         the same highpart of -1 or 0 and the topmost bit of lowpart
11506         is different, overflow is if res <= 0 rather than res < 0.
11507
11508 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
11509
11510         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
11511         TARGET_P9_VECTOR code for unaligned_load case.
11512
11513 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11514
11515         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
11516
11517 2017-10-13  Nathan Sidwell  <nathan@acm.org>
11518
11519         * tree-core.h (tree_contains_struct): Make bool.
11520         * tree.c (tree_contains_struct): Likewise.
11521         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
11522         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
11523         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
11524         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
11525         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
11526
11527 2017-10-13  Richard Biener  <rguenther@suse.de>
11528
11529         * graphite-isl-ast-to-gimple.c
11530         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
11531         parameters and dominance check.
11532         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
11533         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
11534         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
11535         Do not update SSA form here or do intermediate IL verification.
11536         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
11537         (graphite_initialize): Remove check on the number of loops in
11538         the function and inline into graphite_transform_loops.
11539         (graphite_finalize): Inline into graphite_transform_loops.
11540         (graphite_transform_loops): Perform SSA update and IL verification
11541         here.
11542         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
11543
11544 2017-10-13  Richard Biener  <rguenther@suse.de>
11545
11546         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
11547         graphite_expression_type_precision): Avoid global constructor
11548         by moving ...
11549         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
11550         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
11551         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
11552         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
11553         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
11554         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
11555
11556 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
11557
11558         PR target/82499
11559         * config/i386/i386.h (ix86_red_zone_size): New.
11560         * config/i386/i386.md (push peephole2s): Replace
11561         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
11562
11563 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11564             Alan Hayward  <alan.hayward@arm.com>
11565             David Sherwood  <david.sherwood@arm.com>
11566
11567         * combine.c (can_change_dest_mode): Reject changes in
11568         REGMODE_NATURAL_SIZE.
11569
11570 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11571             Alan Hayward  <alan.hayward@arm.com>
11572             David Sherwood  <david.sherwood@arm.com>
11573
11574         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
11575         (expand_debug_source_expr): Likewise.
11576         * combine.c (combine_simplify_rtx): Likewise.
11577         * cse.c (fold_rtx): Likewise.
11578         * fwprop.c (canonicalize_address): Likewise.
11579         * targhooks.c (default_shift_truncation_mask): Likewise.
11580
11581 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11582             Alan Hayward  <alan.hayward@arm.com>
11583             David Sherwood  <david.sherwood@arm.com>
11584
11585         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
11586         (widened_mode): Likewise.
11587         (expand_unop): Likewise.
11588         * ree.c (transform_ifelse): Likewise.
11589         (merge_def_and_ext): Likewise.
11590         (combine_reaching_defs): Likewise.
11591         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11592
11593 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11594             Alan Hayward  <alan.hayward@arm.com>
11595             David Sherwood  <david.sherwood@arm.com>
11596
11597         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
11598         * combine.c (gen_lowpart_for_combine): Likewise.
11599         * dwarf2out.c (rtl_for_decl_location): Likewise.
11600         * final.c (alter_subreg): Likewise.
11601         * rtlhooks.c (gen_lowpart_general): Likewise.
11602         (gen_lowpart_if_possible): Likewise.
11603
11604 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11605             Alan Hayward  <alan.hayward@arm.com>
11606             David Sherwood  <david.sherwood@arm.com>
11607
11608         * calls.c (expand_call): Use subreg_lowpart_offset.
11609         * cse.c (cse_insn): Likewise.
11610         * regcprop.c (copy_value): Likewise.
11611         (copyprop_hardreg_forward_1): Likewise.
11612
11613 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11614
11615         PR target/82524
11616         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
11617         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
11618         =Q constraints to +Q and into insn condition add check
11619         that operands[0] and operands[1] are equal.
11620         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
11621         =Q constraints to +Q and into insn condition add check
11622         that operands[0] is equal to either operands[1] or operands[2].
11623
11624         PR target/82498
11625         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
11626         instead of handling MINUS_EXPR twice (once for each argument),
11627         canonicalize operand order and handle just once, use rtype where
11628         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
11629
11630         PR target/82498
11631         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
11632         any values of __C while still being pattern recognizable as a simple
11633         rotate instruction.
11634
11635 2017-10-13  Richard Biener  <rguenther@suse.de>
11636
11637         PR tree-optimization/82451
11638         Revert
11639         2017-10-02  Richard Biener  <rguenther@suse.de>
11640
11641         PR tree-optimization/82355
11642         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11643         a mapping for the enclosing loop but avoid generating one for
11644         the loop tree root.
11645         (copy_bb_and_scalar_dependences): Remove premature codegen
11646         error on PHIs in blocks duplicated into multiple places.
11647         * graphite-scop-detection.c
11648         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11649         in the region use it as loop and nest to analyze the DR in.
11650         (try_generate_gimple_bb): Likewise.
11651         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11652         (add_loop_constraints): For blocks in a loop not in the region
11653         create a dimension with a single iteration.
11654         * sese.h (gbb_loop_at_index): Remove assert.
11655
11656         * cfgloop.c (loop_preheader_edge): For the loop tree root
11657         return the single successor of the entry block.
11658         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11659         Reset the SCEV hashtable and niters.
11660         * graphite-scop-detection.c
11661         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
11662         assert that we only have POLYNOMIAL_CHREC that vary in loops
11663         contained in the region.
11664         (scop_detection::graphite_can_represent_expr): Adjust.
11665         (scop_detection::stmt_has_simple_data_refs_p): For loops
11666         not in the region set loop to NULL.  The nest is now the
11667         entry edge to the region.
11668         (try_generate_gimple_bb): Likewise.
11669         * sese.c (scalar_evolution_in_region): Adjust for
11670         instantiate_scev change.
11671         * tree-data-ref.h (graphite_find_data_references_in_stmt):
11672         Make nest parameter the edge into the region.
11673         (create_data_ref): Likewise.
11674         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
11675         entry edge into a region and adjust instantiate_scev calls.
11676         (create_data_ref): Likewise.
11677         (graphite_find_data_references_in_stmt): Likewise.
11678         (find_data_references_in_stmt): Pass the loop preheader edge
11679         from the nest argument.
11680         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
11681         parameter the edge into the region.
11682         (instantiate_parameters): Use the loop preheader edge as entry.
11683         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
11684         NULL loop.
11685         (get_instantiated_value_entry): Make instantiate_below parameter
11686         the edge into the region.
11687         (instantiate_scev_name): Likewise.  Adjust dominance checks,
11688         when we cannot use loop-based instantiation instantiate by
11689         walking use-def chains.
11690         (instantiate_scev_poly): Adjust.
11691         (instantiate_scev_binary): Likewise.
11692         (instantiate_scev_convert): Likewise.
11693         (instantiate_scev_not): Likewise.
11694         (instantiate_array_ref): Remove.
11695         (instantiate_scev_3): Likewise.
11696         (instantiate_scev_2): Likewise.
11697         (instantiate_scev_1): Likewise.
11698         (instantiate_scev_r): Do not blindly handle N-operand trees.
11699         Do not instantiate array-refs.  Handle all constants and invariants.
11700         (instantiate_scev): Make instantiate_below parameter
11701         the edge into the region.
11702         (resolve_mixers): Use the loop preheader edge for the region
11703         parameter to instantiate_scev_r.
11704         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
11705
11706 2017-10-13  Richard Biener  <rguenther@suse.de>
11707
11708         PR tree-optimization/82525
11709         * graphite-isl-ast-to-gimple.c
11710         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
11711         out from ...
11712         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
11713         Fail code generation when we cannot represent the isl integer.
11714         (binary_op_to_tree): Elide modulo operations that are no-ops
11715         in the type we code generate.  Remove now superfluous code
11716         generation errors.
11717
11718 2017-10-13  Richard Biener  <rguenther@suse.de>
11719
11720         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
11721         (scop_detection::harmful_loop_in_region): Remove premature
11722         IV type restriction.
11723         (scop_detection::graphite_can_represent_scev): We can handle
11724         pointer IVs just fine.
11725
11726 2017-10-13  Alan Modra  <amodra@gmail.com>
11727
11728         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
11729         "Clobbers and Scratch Registers".  Add paragraph on
11730         alternative to clobbers for scratch registers and OpenBLAS
11731         example.
11732
11733 2017-10-13  Alan Modra  <amodra@gmail.com>
11734
11735         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
11736         example of a memory input for a string of known length.  Move
11737         commentary out of table.  Add a number of new examples
11738         covering array memory inputs.
11739
11740 2017-10-12  Martin Liska  <mliska@suse.cz>
11741
11742         PR tree-optimization/82493
11743         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
11744         (test_range_functions): New function.
11745         (sbitmap_c_tests): Likewise.
11746         * selftest-run-tests.c (selftest::run_tests): Run new tests.
11747         * selftest.h (sbitmap_c_tests): New function.
11748
11749         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11750
11751 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11752
11753         * config/rs6000/amo.h: Fix spacing issue.
11754
11755 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11756
11757         PR target/82498
11758         * config/i386/i386.md (*ashl<mode>3_mask_1,
11759         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
11760         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
11761         patterns.
11762
11763 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11764
11765         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
11766         (profile_probability): Set max_probability
11767         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
11768         in temporaries.
11769         * profile-count.c (profile_probability::differs_from_p): Do not
11770         rely on max_probaiblity == 10000
11771
11772 2017-10-12  Jeff Law  <law@redhat.com>
11773
11774         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
11775         negative offsets.
11776
11777 2017-10-12  Martin Sebor  <msebor@redhat.com>
11778
11779         PR other/82301
11780         PR c/82435
11781         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
11782         (handle_alias_pairs): Call it.
11783         * common.opt (-Wattribute-alias): New option.
11784         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
11785         * doc/invoke.texi (-Wattribute-alias): Document.
11786
11787 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
11788
11789         Revert
11790         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11791         PR sanitizer/82353
11792         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11793         locations.
11794         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11795         (make_hard_regno_born, make_hard_regno_dead): Update
11796         bb_killed_pseudos and bb_gen_pseudos.
11797
11798 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11799
11800         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
11801
11802 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
11803
11804         * config/alpha/alpha.c (alpha_split_conditional_move):
11805         Use std::swap instead of manually swapping.
11806         (alpha_stdarg_optimize_hook): Ditto.
11807         (alpha_canonicalize_comparison): Ditto.
11808
11809 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11810
11811         * tree-loop-distribution.c (struct builtin_info): New struct.
11812         (struct partition): Refactor fields into struct builtin_info.
11813         (partition_free): Free struct builtin_info.
11814         (build_size_arg_loc, build_addr_arg_loc): Delete.
11815         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
11816         information from struct builtin_info.
11817         (find_single_drs): New function refactored from classify_partition.
11818         Also moved builtin validity checks to this function.
11819         (compute_access_range, alloc_builtin): New functions.
11820         (classify_builtin_st, classify_builtin_ldst): New functions.
11821         (classify_partition): Refactor code into functions find_single_drs,
11822         classify_builtin_st and classify_builtin_ldst.
11823         (distribute_loop): Don't do runtime alias check when distributing
11824         loop nest.
11825         (find_seed_stmts_for_distribution): New function.
11826         (pass_loop_distribution::execute): Refactor code finding seed
11827         stmts into above function.  Support distribution for the innermost
11828         two-level loop nest.  Adjust dump information.
11829
11830 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11831
11832         * tree-loop-distribution.c: Adjust the general comment.
11833         (NUM_PARTITION_THRESHOLD): New macro.
11834         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
11835         (classify_partition): Skip builtin pattern of loop nest's inner loop.
11836         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
11837         in call to build_partition_graph.
11838         (finalize_partitions): New parameter.  Make loop distribution more
11839         conservative by fusing more partitions.
11840         (distribute_loop): Don't do runtime alias check in case of loop nest
11841         distribution.
11842         (find_seed_stmts_for_distribution): New function.
11843         (prepare_perfect_loop_nest): New function.
11844         (pass_loop_distribution::execute): Refactor code finding seed stmts
11845         and loop nest into above functions.  Support loop nest distribution.
11846         Adjust dump information accordingly.
11847
11848 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11849
11850         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
11851         and set PTYPE_SEQUENTIAL for merged partition.
11852
11853 2017-10-12  Richard Biener  <rguenther@suse.de>
11854
11855         PR tree-optimization/69728
11856         Revert
11857         2017-09-19  Richard Biener  <rguenther@suse.de>
11858
11859         PR tree-optimization/69728
11860         * graphite-sese-to-poly.c (schedule_error): New global.
11861         (add_loop_schedule): Handle empty domain by failing the
11862         schedule.
11863         (build_original_schedule): Handle schedule_error.
11864
11865         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
11866         domain by returning an unchanged schedule.
11867
11868 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11869
11870         * genrecog.c (validate_pattern): For VEC_SELECT verify that
11871         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
11872
11873 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
11874
11875         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
11876         Handle params.def.
11877
11878 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11879
11880         PR c++/82159
11881         * expr.c (store_field): Don't optimize away bitsize == 0 store
11882         from CALL_EXPR with addressable return type.
11883
11884 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11885
11886         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
11887         * config/rs6000/rs6000.md (sel): Delete mode attribute.
11888         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
11889         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
11890         TARGET_ISEL instead of TARGET_ISEL<sel>.
11891
11892 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
11893
11894         * config/rs6000/rs6000.c
11895         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
11896
11897 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11898
11899         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
11900         Move up in file.
11901         (reg_or_cint_operand): Fix comment.
11902         (reg_or_zero_operand): New predicate.
11903         * config/rs6000/rs6000-protos.h (output_isel): Delete.
11904         * config/rs6000/rs6000.c (output_isel): Delete.
11905         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
11906         instead of reg_or_cint_operand.  Output instruction directly (not via
11907         output_isel).
11908         (isel_unsigned_<mode>): Ditto.
11909         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
11910         gpc_reg_operand.  Add an instruction alternative for this.  Output
11911         instruction directly.
11912         (*isel_reversed_unsigned_<mode>): Ditto.
11913
11914 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11915
11916         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
11917         (TARGET_CANONICALIZE_COMPARISON): Define.
11918
11919 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
11920
11921         PR target/81422
11922         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11923         Check whether the dest is REG before adding REG_EQUIV note.
11924
11925 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11926
11927         PR sanitizer/82353
11928         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11929         locations.
11930         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11931         (make_hard_regno_born, make_hard_regno_dead): Update
11932         bb_killed_pseudos and bb_gen_pseudos.
11933
11934 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11935
11936         * incpath.h (enum incpath_kind): Name enum, prefix values.
11937         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
11938         * incpath.c (heads, tails): Use INC_MAX.
11939         (add_env_var_paths, add_standard_paths): Use incpath_kind.
11940         (merge_include_chains, split_quote_chain,
11941         register_include_chains): Update incpath_kind names.
11942         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
11943         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
11944         names.
11945         (add_framework_path, darwin_register_objc_includes): Likewise.
11946         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
11947
11948 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11949
11950         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
11951         Do not use float_operator operator predicate.
11952         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
11953         * config/i386/predicates.md (float_operator): Remove predicate.
11954
11955 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11956
11957         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
11958         (*jccxf_i387): Ditto.
11959         (*jcc<mode>_i387): Ditto.
11960         (*jccu<mode>_i387): Ditto.
11961         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
11962         (*jcc_*_i387 splitters): Remove.
11963         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
11964         * config/i386/i386.c (ix86_split_fp_branch): Remove.
11965         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
11966         Remove predicate.
11967
11968 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11969
11970         * profile-count.h (slow_safe_scale_64bit): New function.
11971         (safe_scale_64bit): New inline.
11972         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
11973         * profile-count.c: Include wide-int.h
11974         (slow_safe_scale_64bit): New.
11975
11976 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11977
11978         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
11979         HAS_DECL_ASSEMBLER_NAME_P.
11980         * gimple-expr.c (gimple_decl_printable_name: Check
11981         HAS_DECL_ASSEMBLER_NAME_P too.
11982         * ipa-utils.h (type_in_anonymous_namespace_p): Check
11983         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
11984         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
11985         * passes.c (rest_of_decl_compilation): Check
11986         HAS_DECL_ASSEMBLER_NAME_P too.
11987         * recog.c (verify_changes): Likewise.
11988         * tree-pretty-print.c (dump_decl_name): Likewise.
11989         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
11990
11991         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
11992         (SET_DECL_ASSEMBLER_NAME): Use it.
11993         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
11994         (COPY_DECL_ASSEMBLER_NAME): Likewise.
11995         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
11996
11997 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
11998
11999         * config.gcc (i386, x86_64): Add extra objects.
12000         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
12001         (ix86_min_insn_size): Declare.
12002         (ix86_issue_rate): Declare.
12003         (ix86_adjust_cost): Declare.
12004         (ia32_multipass_dfa_lookahead): Declare.
12005         (ix86_macro_fusion_p): Declare.
12006         (ix86_macro_fusion_pair_p): Declare.
12007         (ix86_bd_has_dispatch): Declare.
12008         (ix86_bd_do_dispatch): Declare.
12009         (ix86_core2i7_init_hooks): Declare.
12010         (ix86_atom_sched_reorder): Declare.
12011         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
12012         (COSTS_N_BYTES): Move to x86-tune-costs.h.
12013         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
12014         (rip_relative_addr_p): Rename to ...
12015         (ix86_rip_relative_addr_p): ... this one; export.
12016         (memory_address_length): Update.
12017         (ix86_issue_rate): Move to x86-tune-sched.c.
12018         (ix86_flags_dependent): Move to x86-tune-sched.c.
12019         (ix86_agi_dependent): Move to x86-tune-sched.c.
12020         (exact_dependency_1): Move to x86-tune-sched.c.
12021         (exact_store_load_dependency): Move to x86-tune-sched.c.
12022         (ix86_adjust_cost): Move to x86-tune-sched.c.
12023         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
12024         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
12025         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
12026         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
12027         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
12028         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
12029         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
12030         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
12031         (min_insn_size): Rename to ...
12032         (ix86_min_insn_size): ... this one; export.
12033         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
12034         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
12035         (core2i7_first_cycle_multipass_backtrack): Move to
12036         x86-tune-sched-core.c.
12037         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
12038         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
12039         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
12040         (ix86_avoid_jump_mispredicts): Update.
12041         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
12042         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
12043         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
12044         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
12045         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
12046         (MAX_INSN): Move to ix86-tune-sched-bd.c.
12047         (MAX_IMM): Move to ix86-tune-sched-bd.c.
12048         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
12049         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
12050         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
12051         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
12052         (MAX_STORE): Move to ix86-tune-sched-bd.c.
12053         (BIG): Move to ix86-tune-sched-bd.c.
12054         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
12055         (enum insn_path): Move to ix86-tune-sched-bd.c.
12056         (get_mem_group): Move to ix86-tune-sched-bd.c.
12057         (is_cmp): Move to ix86-tune-sched-bd.c.
12058         (dispatch_violation): Move to ix86-tune-sched-bd.c.
12059         (is_branch): Move to ix86-tune-sched-bd.c.
12060         (is_prefetch): Move to ix86-tune-sched-bd.c.
12061         (init_window): Move to ix86-tune-sched-bd.c.
12062         (allocate_window): Move to ix86-tune-sched-bd.c.
12063         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
12064         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
12065         (process_end_window): Move to ix86-tune-sched-bd.c.
12066         (allocate_next_window): Move to ix86-tune-sched-bd.c.
12067         (find_constant): Move to ix86-tune-sched-bd.c.
12068         (get_num_immediates): Move to ix86-tune-sched-bd.c.
12069         (has_immediate): Move to ix86-tune-sched-bd.c.
12070         (get_insn_path): Move to ix86-tune-sched-bd.c.
12071         (get_insn_group): Move to ix86-tune-sched-bd.c.
12072         (count_num_restricted): Move to ix86-tune-sched-bd.c.
12073         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
12074         (add_insn_window): Move to ix86-tune-sched-bd.c.
12075         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
12076         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
12077         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
12078         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
12079         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
12080         (do_dispatch): Move to ix86-tune-sched-bd.c.
12081         (has_dispatch): Move to ix86-tune-sched-bd.c.
12082         * config/i386/t-i386: Add new object files.
12083         * config/i386/x86-tune-costs.h: New file.
12084         * config/i386/x86-tune-sched-atom.c: New file.
12085         * config/i386/x86-tune-sched-bd.c: New file.
12086         * config/i386/x86-tune-sched-core.c: New file.
12087         * config/i386/x86-tune-sched.c: New file.
12088
12089 2017-10-11  Liu Hao  <lh_mouse@126.com>
12090
12091         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
12092         the generic version below instead.
12093         (should_colorize): Recognize Windows consoles as terminals
12094         for MinGW targets.
12095         * pretty-print.c [__MINGW32__] (write_all): New function.
12096         [__MINGW32__] (find_esc_head): Likewise.
12097         [__MINGW32__] (find_esc_terminator): Likewise.
12098         [__MINGW32__] (eat_esc_sequence): Likewise.
12099         [__MINGW32__] (mingw_ansi_fputs): New function that handles
12100         ANSI escape codes.
12101         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
12102         for MinGW targets.
12103
12104 2017-10-11  Richard Biener  <rguenther@suse.de>
12105
12106         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12107         Properly call analyze_scalar_evolution with the loop of the stmt.
12108
12109 2017-10-11  Richard Biener  <rguenther@suse.de>
12110
12111         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
12112         * tree-core.h (tree_base): Add chrec_var union member.
12113         * tree.h (CHREC_VAR): Remove.
12114         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
12115         * tree-chrec.h (build_polynomial_chrec): Adjust.
12116         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
12117         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
12118
12119 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
12120
12121         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
12122         * match.pd: ... here.
12123         ((T) X == (T) Y): Relax condition.
12124
12125 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
12126
12127         PR tree-optimization/82472
12128         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
12129         comment.
12130         (break_alias_scc_partitions): Update postorder number.
12131
12132 2017-10-11  Martin Liska  <mliska@suse.cz>
12133
12134         PR sanitizer/82490
12135         * opts.c (parse_no_sanitize_attribute): Do not use error_value
12136         variable.
12137         * opts.h (parse_no_sanitize_attribute): Remove last argument.
12138
12139 2017-10-11  Martin Liska  <mliska@suse.cz>
12140
12141         * print-rtl.c (print_insn): Move declaration of idbuf
12142         to same scope as name.
12143
12144 2017-10-11  Martin Liska  <mliska@suse.cz>
12145
12146         Revert r253637:
12147
12148         PR sanitizer/82484
12149         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12150         volatile arguments.
12151
12152 2017-10-11  Martin Liska  <mliska@suse.cz>
12153
12154         PR sanitizer/82484
12155         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12156         volatile arguments.
12157
12158 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
12159
12160         * config.gcc (default_gnu_indirect_function): Default to yes for
12161         arm*-*-linux* with glibc.
12162
12163 2017-10-11  Richard Biener  <rguenther@suse.de>
12164
12165         * tree-scalar-evolution.c (get_scalar_evolution): Handle
12166         default-defs and types we do not want to analyze.
12167         (interpret_loop_phi): Replace unreachable code with an assert.
12168         (compute_scalar_evolution_in_loop): Remove and inline ...
12169         (analyze_scalar_evolution_1): ... here, replacing condition with
12170         what makes the intent clearer.  Remove handling of cases
12171         get_scalar_evolution now handles.
12172
12173 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
12174
12175         PR rtl-optimization/81434
12176         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
12177         comment for main loop.  In sched_group_found if, also add checks for
12178         pass and min_cost_group.
12179
12180 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
12181
12182         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
12183         (rs6000_insn_cost): New function.
12184         * config/rs6000/rs6000.md (cost): New attribute.
12185
12186 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
12187             H.J. Lu  <hongjiu.lu@intel.com>
12188
12189         PR target/79565
12190         PR target/82483
12191         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
12192         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
12193         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
12194         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
12195         to OPTION_MASK_ISA_AVX512VL - builtins that have both
12196         OPTION_MASK_ISA_MMX and some other bit set require both
12197         mmx and the ISAs without the mmx bit.
12198         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
12199         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
12200         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
12201         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
12202         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
12203         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
12204         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
12205         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
12206         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
12207         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
12208         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
12209         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
12210         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
12211         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
12212         Add OPTION_MASK_ISA_MMX.
12213
12214 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
12215
12216         * config.gcc (armv7*-*-freebsd*): New target.
12217         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
12218
12219 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
12220
12221         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
12222         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
12223         spot in the file.
12224
12225 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
12226
12227         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
12228         a template parameter.
12229         (WIDE_INT_REF_FOR): Update accordingly.
12230         * tree.h (wi::int_traits <const_tree>): Delete.
12231         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
12232         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
12233         (wi::tree_to_wide_ref): New typedef.
12234         (wi::to_wide): New function.
12235         * calls.c (get_size_range): Use wi::to_wide when operating on
12236         trees as wide_ints.
12237         * cgraph.c (cgraph_node::create_thunk): Likewise.
12238         * config/i386/i386.c (ix86_data_alignment): Likewise.
12239         (ix86_local_alignment): Likewise.
12240         * dbxout.c (stabstr_O): Likewise.
12241         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
12242         * expr.c (const_vector_from_tree): Likewise.
12243         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
12244         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
12245         (fold_negate_expr_1, int_const_binop_1, const_binop)
12246         (fold_convert_const_int_from_real, optimize_bit_field_compare)
12247         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
12248         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
12249         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
12250         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
12251         (fold_not_const, round_up_loc): Likewise.
12252         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
12253         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
12254         (alloca_call_type): Likewise.
12255         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
12256         * godump.c (go_output_typedef): Likewise.
12257         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
12258         * internal-fn.c (get_min_precision): Likewise.
12259         * ipa-cp.c (ipcp_store_vr_results): Likewise.
12260         * ipa-polymorphic-call.c
12261         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
12262         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
12263         (ipa_modify_call_arguments): Likewise.
12264         * match.pd: Likewise.
12265         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
12266         * print-tree.c (print_node_brief, print_node): Likewise.
12267         * stmt.c (expand_case): Likewise.
12268         * stor-layout.c (layout_type): Likewise.
12269         * tree-affine.c (tree_to_aff_combination): Likewise.
12270         * tree-cfg.c (group_case_labels_stmt): Likewise.
12271         * tree-data-ref.c (dr_analyze_indices): Likewise.
12272         (prune_runtime_alias_test_list): Likewise.
12273         * tree-dump.c (dequeue_and_dump): Likewise.
12274         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
12275         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
12276         * tree-pretty-print.c (dump_generic_node): Likewise.
12277         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
12278         (simple_iv_with_niters): Likewise.
12279         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12280         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
12281         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
12282         * tree-ssa-loop-niter.c (split_to_var_and_offset)
12283         (refine_value_range_using_guard, number_of_iterations_ne_max)
12284         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
12285         (get_cst_init_from_scev, record_nonwrapping_iv)
12286         (scev_var_range_cant_overflow): Likewise.
12287         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
12288         * tree-ssa-pre.c (compute_avail): Likewise.
12289         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
12290         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
12291         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
12292         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
12293         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
12294         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
12295         (dump_case_nodes, try_switch_expansion): Likewise.
12296         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
12297         (vect_do_peeling): Likewise.
12298         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
12299         * tree-vect-stmts.c (vectorizable_load): Likewise.
12300         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
12301         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
12302         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
12303         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
12304         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
12305         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
12306         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
12307         (evrp_dom_walker::before_dom_children): Likewise.
12308         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
12309         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
12310         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
12311         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
12312         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
12313         (get_range_pos_neg): Likewise.
12314         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
12315         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
12316         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
12317         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
12318         * config/avr/avr.c (avr_fold_builtin): Likewise.
12319         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
12320         * config/msp430/msp430.c (msp430_attr): Likewise.
12321         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
12322         * config/powerpcspe/powerpcspe-c.c
12323         (altivec_resolve_overloaded_builtin): Likewise.
12324         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
12325         (rs6000_expand_ternop_builtin): Likewise.
12326         * config/rs6000/rs6000-c.c
12327         (altivec_resolve_overloaded_builtin): Likewise.
12328         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
12329         (rs6000_expand_ternop_builtin): Likewise.
12330         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
12331
12332 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12333
12334         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
12335         when copying loop nest with only one inner loop.
12336
12337 2017-10-10  Richard Biener  <rguenther@suse.de>
12338
12339         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
12340         blocks if SCEV is active.
12341         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
12342         dead code.
12343         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
12344         (scev_initialize): Assert we are not yet initialized.
12345
12346 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12347
12348         * tree-loop-distribution.c (generate_loops_for_partition): Remove
12349         inner loop's exit stmt by making it always exit the loop, otherwise
12350         we would generate an infinite empty loop.
12351
12352 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12353
12354         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
12355         renaming variables in new preheader if it's deleted.
12356
12357 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12358
12359         * tree-loop-distribution.c (struct partition): Remove unused field
12360         loops of the structure.
12361         (partition_alloc, partition_free): Ditto.
12362         (build_rdg_partition_for_vertex): Ditto.
12363
12364 2017-10-09  Jeff Law  <law@redhat.com>
12365
12366         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
12367         return type to match prototype and documentation.
12368
12369 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12370
12371         * config/rs6000/rs6000.c (processor_costs): Move to ...
12372         * config/rs6000/rs6000.h: ... here.
12373         (rs6000_cost): Declare.
12374
12375 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
12376
12377         * except.c (setjmp_fn): New global variable.
12378         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
12379         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
12380         if DONT_USE_BUILTIN_SETJMP is defined.
12381
12382 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12383
12384         * target.def (insn_cost): New hook.
12385         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
12386         * doc/tm.texi: Regenerate.
12387         * rtlanal.c (insn_cost): Use the new hook.
12388
12389 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12390
12391         * combine.c (combine_validate_cost): Compute the new insn_cost,
12392         not just pattern_cost.
12393         (try_combine): Adjust comment.
12394
12395 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12396
12397         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
12398         insn_cost.
12399         * combine.c (uid_insn_cost): Adjust comment.
12400         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
12401         of insn_rtx_cost
12402         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
12403         * dse.c (find_shift_sequence): Ditto.
12404         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
12405         (bb_valid_for_noce_process_p): Use pattern_cost.
12406         * rtl.h (insn_rtx_cost): Delete.
12407         (pattern_cost): New prototype.
12408         (insn_cost): New prototype.
12409         * rtlanal.c (insn_rtx_cost): Rename to...
12410         (pattern_cost): ... this.
12411         (insn_cost): New.
12412
12413 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
12414
12415         * config/i386/i386.md (*jcc_2): Remove insn pattern.
12416         (*jcc<mode>_0_r_i387): Ditto.
12417         (*jccxf_r_i387): Ditto.
12418         (*jcc<mode>_r_i387): Ditto.
12419         (*jccu<mode>_r_i387): Ditto.
12420         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
12421         (*jcc): Rename from *jcc_1.
12422
12423 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12424
12425         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
12426         deferred rescans after the lvx/stvx recombination pre-pass.
12427
12428 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12429
12430         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
12431         memory operation instruction support.
12432         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
12433         (rs6000-ibm-aix[789]*): Likewise.
12434         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
12435         Document new functions.
12436
12437 2017-10-09  Richard Biener  <rguenther@suse.de>
12438
12439         PR tree-optimization/82397
12440         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
12441         equality only for semantically equal trees.
12442
12443 2017-10-09  Richard Biener  <rguenther@suse.de>
12444
12445         PR tree-optimization/82449
12446         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
12447         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
12448         allow constant addresses.
12449         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
12450         are linear.
12451
12452 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12453
12454         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
12455         flags.
12456
12457 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12458
12459         PR target/82463
12460         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
12461         definitions.
12462
12463 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12464
12465         PR target/82465
12466         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
12467
12468 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
12469
12470         PR target/82464
12471         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
12472         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
12473
12474 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
12475
12476         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
12477         (WI_BINARY_PREDICATE_RESULT): Likewise.
12478         (wi::binary_traits::operator_result): New type.
12479         (wi::binary_traits::predicate_result): Likewise.
12480         (generic_wide_int::operator~, unary generic_wide_int::operator-)
12481         (generic_wide_int::operator==, generic_wide_int::operator!=)
12482         (generic_wide_int::operator&, generic_wide_int::and_not)
12483         (generic_wide_int::operator|, generic_wide_int::or_not)
12484         (generic_wide_int::operator^, generic_wide_int::operator+
12485         (binary generic_wide_int::operator-, generic_wide_int::operator*):
12486         Delete.
12487         (operator~, unary operator-, operator==, operator!=, operator&)
12488         (operator|, operator^, operator+, binary operator-, operator*): New
12489         functions.
12490         * expr.c (get_inner_reference): Use wi::bit_and_not.
12491         * fold-const.c (fold_binary_loc): Likewise.
12492         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12493         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12494         (bit_value_binop): Likewise.
12495         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
12496         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
12497         (extract_range_from_binary_expr_1): Likewise.
12498         (masked_increment): Likewise.
12499         (simplify_bit_ops_using_ranges): Likewise.
12500
12501 2017-10-09  Martin Jambor  <mjambor@suse.cz>
12502
12503         PR hsa/82416
12504         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
12505         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
12506         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
12507         COMPLEX types.
12508         (hsa_fixup_mov_insn_type): New function.
12509         (hsa_op_with_type::get_in_type): Use it.
12510         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
12511         immediates in an assert.
12512         (hsa_op_with_type::extend_int_to_32bit): New method.
12513         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
12514         types.  Convert to dest type if necessary.
12515         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
12516         (reg_for_gimple_ssa): Pass false as min32int to
12517         hsa_type_for_scalar_tree_type.
12518         (gen_hsa_addr): Fixup type when creating addresable temporary.
12519         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
12520         (gen_hsa_unary_operation): Extend operands and convert to dest type if
12521         necessary.  Call hsa_fixup_mov_insn_type.
12522         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
12523         extend operands and convert to dest type if necessary.
12524         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
12525         to dest type if necessary.
12526         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
12527         if conversion nt necessary and size matches.
12528         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
12529         to dest type if necessary.
12530         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
12531         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
12532         necessary.
12533         (gen_hsa_clrsb): Likewise.
12534         (gen_hsa_ffs): Likewise.
12535         (gen_hsa_divmod): Extend operands and convert to dest type if
12536         necessary.
12537         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
12538
12539 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12540
12541         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
12542         Remove empty default arguments.  Use a brace block as output
12543         statement.
12544         (conditional return): Ditto.
12545         (jump): Ditto.
12546         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
12547         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
12548         Ditto.
12549         (group_ending_nop): Ditto.
12550         (doloop_end): Ditto.
12551         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
12552         (splitters for those): Ditto.
12553
12554 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12555
12556         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
12557         a conditional jump (and the compare for it) so that pc_rtx is the
12558         last operand.
12559         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
12560         for the deleted and renamed ctr<mode>_internal[234] patterns.
12561         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
12562         Delete second conditional return pattern.
12563         (ctr<mode>_internal2): Delete this second bdnz pattern.
12564         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
12565         (ctr<mode>_internal4): Delete this second bdz pattern.
12566
12567 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12568
12569         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
12570         (always_initialized_rtx_for_ssa_name_p): New predicate.
12571         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
12572         (finish_out_of_ssa): Free new field of SA.
12573         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
12574         * tree-ssa-coalesce.c: Include tree-ssa.h.
12575         (get_parm_default_def_partitions): Remove extern keyword.
12576         (get_undefined_value_partitions): New function.
12577         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
12578         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
12579         uninitialized bits.
12580         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
12581
12582 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12583
12584         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
12585
12586 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12587
12588         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
12589         for targets that preffer 128bit.
12590
12591 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12592
12593         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
12594
12595 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12596
12597         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
12598         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
12599         prevent DSE.
12600         (thumb_set_return_address): Likewise.
12601
12602 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12603
12604         * common/config/arm/arm-common.c (arm_except_unwind_info):
12605         Handle DWARF2_UNWIND_INFO.
12606
12607 2017-10-07  Michael Collison <michael.collison@arm.com>
12608
12609         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
12610         New pattern.
12611
12612 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
12613
12614         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
12615         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
12616         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
12617         defined, force the creation of a new block for a dispatch label.
12618
12619 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
12620
12621         * invoke.texi (Wsuggest-attribute=cold): Document.
12622         * common.opt (Wsuggest-attribute=cold): New
12623         * ipa-pure-const.c (warn_function_cold): New function.
12624         * predict.c (compute_function_frequency): Use it.
12625         * predict.h (warn_function_cold): Declare.
12626
12627 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
12628
12629         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
12630         Update profile.
12631
12632 2017-10-06  Martin Liska  <mliska@suse.cz>
12633
12634         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
12635         keyword for member functions.
12636         (struct sanopt_tree_couple): New struct.
12637         (struct sanopt_tree_couple_hash): New function.
12638         (struct sanopt_ctx): Add new hash_map.
12639         (has_dominating_ubsan_ptr_check): New function.
12640         (record_ubsan_ptr_check_stmt): Likewise.
12641         (maybe_optimize_ubsan_ptr_ifn): Likewise.
12642         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
12643         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
12644
12645 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
12646
12647         PR target/82440
12648         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
12649         aarch64_simd_valid_immediate on CONST_VECTORs.
12650         (aarch64_reg_or_bic_imm): Likewise.
12651
12652 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
12653
12654         PR rtl-optimization/82396
12655         * haifa-sched.c (ready_sort_real): Disable qsort checking.
12656
12657 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
12658
12659         * graphite-dependences.c (scop_get_reads): Move code to...
12660         (scop_get_must_writes): Move code to...
12661         (scop_get_may_writes): Move code to...
12662         (scop_get_reads_and_writes): ... here.
12663         (scop_get_dependences): Call scop_get_reads_and_writes.
12664
12665 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
12666
12667         PR tree-optimization/82434
12668         * fold-const.h (can_native_encode_type_p,
12669         can_native_encode_string_p): Remove.
12670         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
12671         don't encode anything, just return what would be otherwise returned.
12672         (native_encode_fixed, native_encode_complex, native_encode_vector):
12673         Likewise.
12674         (native_encode_string): Likewise.  Inline by hand
12675         can_native_encode_string_p.
12676         (can_native_encode_type_p): Remove.
12677         (can_native_encode_string_p): Remove.
12678         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
12679         STRING_CSTs using can_native_encode_string_p, test all
12680         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
12681         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
12682         argument from native_encode_expr.
12683         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
12684         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
12685         but just 2.
12686
12687 2017-10-06  Richard Biener  <rguenther@suse.de>
12688
12689         PR tree-optimization/82397
12690         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
12691         operand_equal_p but rely on data_ref_compare_tree for detecting
12692         equalities.
12693         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
12694         to match up with dr_group_sort_cmp.
12695
12696 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12697
12698         PR target/82322
12699         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
12700         builtin.
12701         * config/s390/s390-builtin-types.def: Regenerate.
12702
12703 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12704
12705         PR target/82317
12706         * config/s390/s390-builtin-types.def: Regenerate.
12707         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
12708         Change flag from B_VXE to B_VX.
12709         (s390_vec_min_dbl): Remove B_VXE flag.
12710
12711 2017-10-06  Richard Biener  <rguenther@suse.de>
12712
12713         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
12714         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
12715         translate_isl_ast_to_gimple::is_valid_rename,
12716         translate_isl_ast_to_gimple::get_rename,
12717         translate_isl_ast_to_gimple::get_def_bb_for_const,
12718         translate_isl_ast_to_gimple::get_new_name,
12719         translate_isl_ast_to_gimple::collect_all_ssa_names,
12720         translate_isl_ast_to_gimple::copy_loop_phi_args,
12721         translate_isl_ast_to_gimple::collect_all_ssa_names,
12722         translate_isl_ast_to_gimple::copy_loop_phi_args,
12723         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
12724         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
12725         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
12726         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
12727         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
12728         translate_isl_ast_to_gimple::copy_cond_phi_args,
12729         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
12730         translate_isl_ast_to_gimple::edge_for_new_close_phis,
12731         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
12732         translate_isl_ast_to_gimple::rename_uses,
12733         translate_isl_ast_to_gimple::rename_all_uses): Remove.
12734         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
12735         (set_rename_for_each_def): Likewise.
12736         (graphite_copy_stmts_from_block): Handle debug stmt resetting
12737         here.  Handle rewriting SCEV analyzable uses here.
12738         (copy_bb_and_scalar_dependences): Generate code for PHI
12739         copy-in/outs.
12740         (graphite_regenerate_ast_isl): Adjust.
12741         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
12742         (add_write, add_read): New functions.
12743         (build_cross_bb_scalars_def): Use it and simplify.
12744         (build_cross_bb_scalars_use): Likewise.
12745         (graphite_find_cross_bb_scalar_vars): Inline into...
12746         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
12747         simulating out-of-SSA.  Compute liveout and add dependencies.
12748         (build_scops): Force an empty entry block.
12749         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
12750         members.
12751         (sese_build_liveouts): Declare.
12752         (sese_trivially_empty_bb_p): Likewise.
12753         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
12754         compute liveout and debug_liveout.
12755         (sese_bad_liveouts_use): Remove.
12756         (sese_reset_debug_liveouts_bb): Likewise.
12757         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
12758         (sese_build_liveouts): Build liveout and debug_liveout and store
12759         it in region.
12760         (new_sese_info): Adjust.
12761         (free_sese_info): Likewise.
12762         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
12763         do not build liveout here.
12764         (move_sese_in_condition): Adjust region entry.
12765         (scev_analyzable_p): Match up with chrec_apply requirements.
12766         (sese_trivially_empty_bb_p): New.
12767         * tree-into-ssa.c (get_reaching_def): Properly support generating
12768         default-defs for incremental rewrite of anonymous names.
12769
12770 2017-10-06  Richard Biener  <rguenther@suse.de>
12771
12772         * graphite-sese-to-poly.c (extract_affine): For casts increasing
12773         precision do not perform modulo reduction.
12774
12775 2017-10-06  Richard Biener  <rguenther@suse.de>
12776
12777         PR tree-optimization/82436
12778         * tree-vect-slp.c (vect_supported_load_permutation_p): More
12779         conservatively choose the vectorization factor when checking
12780         whether we can perform the required load permutation.
12781         (vect_transform_slp_perm_load): Assert when we may not fail.
12782
12783 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
12784
12785         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
12786         message for incompatible -msdata=* and -mcall-* options.
12787
12788 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12789
12790         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
12791         rate for post-reload scheduling.
12792
12793 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12794
12795         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
12796
12797 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12798
12799         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
12800         to improve monte carlo in scimark.
12801
12802 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12803
12804         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
12805         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
12806         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
12807         pentium4_cost, nocona_cost): Set reassociation width to 1.
12808         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
12809         width to 2 for fp operations and 1 otherwise.
12810         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
12811         for int and fp.
12812         (atom_cost): Set reassociation width to 2.
12813         (slm_cost, generic_cost): Set fp reassociation width
12814         to 2 and 1 otherwise.
12815         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
12816         (core_cost): Set fp reassociation width to 4 and vector to 2.
12817         (ix86_reassociation_width): Rewrite using cost table; special case
12818         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
12819         and TARGET_AVX128_OPTIMAL.
12820         * config/i386/i386.h (processor_costs): Add
12821         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
12822         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
12823         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
12824         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
12825         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
12826         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
12827
12828 2017-10-05  Nathan Sidwell  <nathan@acm.org>
12829
12830         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
12831
12832 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12833
12834         * config/arm/arm.c (arm_test_fpu_data): New.
12835         (arm_run_selftests): Call arm_test_fpu_data.
12836
12837 2017-10-04  Nathan Sidwell  <nathan@acm.org>
12838
12839         * toplev.c (toplev::main): Remove excess parens on pretty_printer
12840         decl.
12841         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
12842
12843 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
12844
12845         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
12846         check type for aarch64_simd_valid_immediate.
12847         (aarch64_output_simd_mov_immediate): Update prototype.
12848         (aarch64_simd_valid_immediate): Update prototype.
12849         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
12850         support for ORR-immediate.
12851         (and<mode>3): modified pattern to add support for BIC-immediate.
12852         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
12853         now checks for valid immediate for BIC and ORR based on new enum
12854         argument.
12855         (aarch64_output_simd_mov_immediate): Function now used to output
12856         BIC/ORR imm as well based on new enum argument.
12857         * config/aarch64/constraints.md (Do): New vector immediate constraint.
12858         (Db) : Likewise.
12859         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
12860         (aarch64_reg_or_bic_imm): Likewise.
12861
12862 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12863
12864         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
12865         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
12866
12867 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12868
12869         Revert r253399:
12870
12871         PR rtl-optimization/82396
12872         * haifa-sched.c (autopref_multipass_init): Simplify
12873         initialization.
12874         (autopref_rank_data): Simplify sort order.
12875         * sched-int.h (autopref_multipass_data_): Remove
12876         multi_mem_insn_p, min_offset and max_offset.
12877
12878 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12879
12880         * doc/sourcebuild.texi: Document vect_peeling_profitable.
12881
12882 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12883
12884         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
12885         vect_doubleint_cvt.
12886
12887 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12888
12889         * doc/sourcebuild.texi: Document vect_long_mult.
12890
12891 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
12892
12893         PR tree-optimization/82413
12894         * fold-const.c (build_range_check): Use widest_int when comparing
12895         the maximum ETYPE value with HIGH.
12896
12897 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12898
12899         PR rtl-optimization/82396
12900         * haifa-sched.c (autopref_multipass_init): Simplify
12901         initialization.
12902         (autopref_rank_data): Simplify sort order.
12903         * sched-int.h (autopref_multipass_data_): Remove
12904         multi_mem_insn_p, min_offset and max_offset.
12905
12906 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
12907
12908         PR tree-optimization/82381
12909         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
12910         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
12911         is not.
12912
12913         PR tree-optimization/82374
12914         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
12915         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
12916         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
12917         current_function_decl to the new decl.
12918
12919 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12920
12921         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
12922         helper macro for IEEE float128 hardware built-in functions.
12923         (SQRTF128_ODD): Add built-in functions with the round-to-odd
12924         semantics.
12925         (TRUNCF128_ODD): Likewise.
12926         (ADDF128_ODD): Likewise.
12927         (SUBF128_ODD): Likewise.
12928         (MULF128_ODD): Likewise.
12929         (DIVF128_ODD): Likewise.
12930         (FMAF128_ODD): Likewise.
12931         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
12932         UNSPEC_TRUNC_ROUND_TO_ODD.
12933         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
12934         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
12935         floating point round to odd instructions.
12936         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
12937         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
12938         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
12939         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
12940         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
12941         (trunc<mode>sf2_hw): Change the truncate with round to odd
12942         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
12943         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
12944         to odd hardware instructions.
12945         (sub<mode>3_odd): Likewise.
12946         (mul<mode>3_odd): Likewise.
12947         (div<mode>3_odd): Likewise.
12948         (sqrt<mode>2_odd): Likewise.
12949         (fma<mode>4_odd): Likewise.
12950         (fms<mode>4_odd): Likewise.
12951         (nfma<mode>4_odd): Likewise.
12952         (nfms<mode>4_odd): Likewise.
12953         (trunc<mode>df2_odd): Change the truncate with round to odd
12954         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
12955         function.
12956         * doc/extend.texi (PowerPC built-in functions): Update documentation
12957         for existing IEEE float128-bit built-in functions.  Add built-in
12958         functions that generate the IEEE 128-bit floating point round to
12959         odd instructions.
12960
12961 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
12962
12963         PR rtl-optimization/77729
12964         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
12965         to (X&(C1&~C2))|C2 transformations.
12966
12967 2017-10-03  Martin Jambor  <mjambor@suse.cz>
12968
12969         PR tree-optimization/82363
12970         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
12971         mismatch, mark lacc written regardless of racc.
12972
12973 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
12974
12975         PR tree-optimization/82381
12976         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
12977         stmt_to_insert nor wheather SSA_NAMEs are default defs.
12978         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
12979         fallthrough into reassoc_stmt_dominates_stmt_p.
12980
12981         PR target/82386
12982         * combine.c (combine_instructions): Don't combine in unreachable
12983         basic blocks.
12984
12985 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
12986
12987         PR target/80210
12988         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
12989         function to not use the have_cpu variable.  Do not set cpu_index,
12990         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
12991         or the default cpu.
12992         (rs6000_valid_attribute_p): Remove duplicate initializations of
12993         old_optimize and func_optimize.
12994         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
12995         (rs6000_activate_target_options): Make global.
12996         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
12997         prototype.
12998
12999 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
13000
13001         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
13002         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
13003         Set *poffset to 0 and *psize and *pmax_size to -1 if
13004         *poffset + *psize overflows in HOST_WIDE_INT.
13005
13006         PR tree-optimization/82387
13007         PR tree-optimization/82388
13008         PR tree-optimization/82389
13009         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
13010         instead of live_bytes non-NULL.
13011
13012 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
13013
13014         PR target/41076
13015         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
13016         alternative.
13017
13018 2017-10-02  Richard Biener  <rguenther@suse.de>
13019
13020         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
13021         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
13022         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
13023
13024 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13025
13026         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
13027         requested precision matches the type's.
13028         * calls.c (alloc_max_size): Calculate the new candidate size as
13029         a widest_int and use wi::to_widest when comparing it with the
13030         current candidate size.
13031         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
13032         zero rather than integer_zero_node.
13033         * match.pd: Check for a no-op conversion before using wi::add
13034         rather than after.  Use tree_to_uhwi when summing small shift
13035         counts into an unsigned int.
13036
13037 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13038             Alan Hayward  <alan.hayward@arm.com>
13039             David Sherwood  <david.sherwood@arm.com>
13040
13041         PR target/71307
13042         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
13043         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13044         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
13045         POINTER_AND_FP_REGS.
13046
13047 2017-10-02  Richard Biener  <rguenther@suse.de>
13048
13049         PR tree-optimization/82355
13050         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
13051         a mapping for the enclosing loop but avoid generating one for
13052         the loop tree root.
13053         (copy_bb_and_scalar_dependences): Remove premature codegen
13054         error on PHIs in blocks duplicated into multiple places.
13055         * graphite-scop-detection.c
13056         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
13057         in the region use it as loop and nest to analyze the DR in.
13058         (try_generate_gimple_bb): Likewise.
13059         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
13060         (add_loop_constraints): For blocks in a loop not in the region
13061         create a dimension with a single iteration.
13062         * sese.h (gbb_loop_at_index): Remove assert.
13063
13064 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
13065
13066         * omp-expand.c (adjust_context_scope): New function.
13067         (expand_parallel_call): Call adjust_context_scope.
13068
13069 2017-10-01  Jeff Law  <law@redhat.com>
13070
13071         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
13072         dom_opt_dom_walker class with direct access to private members.
13073         Add comments.  Call test_for_singularity.
13074         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
13075         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
13076         m_dummy_cond anymore.
13077         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
13078         class ctor.
13079         (pass_dominator:execute): Build the dummy_cond here and pass it
13080         to the dom_opt_dom_walker ctor.
13081         (test_for_singularity): New function.
13082
13083 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
13084             Maya Rashish  <coypu@sdf.org>
13085
13086         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
13087         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
13088         (alpha*-*-netbsd*) Use nbsd_tm_file.
13089         (arm*-*-netbsdelf*) Likewise.
13090         (i[34567]86-*-netbsdelf*) Likewise.
13091         (x86_64-*-netbsd*) Likewise.
13092         (mips*-*-netbsd*) Likewise.
13093         (powerpc-*-netbsd*) Likewise.
13094         (sh*-*-netbsd*) Likewise.
13095         (sparc-*-netbsdelf*) Likewise.
13096         (sparc64-*-netbsd*) Likewise.
13097         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
13098         to tm_defines.
13099         (vax-*-netbsdelf*) Likewise.
13100         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
13101         (UINT_FAST8_TYPE) Likewise.
13102         (INT_FAST16_TYPE) Check CHAR_FAST16.
13103         (UINT_FAST16_TYPE) Likewise.
13104
13105 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
13106
13107         PR target/82361
13108         * config/i386/i386.md
13109         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
13110         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
13111         *divmodsi4_zext_2): New define_insn_and_split.
13112         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
13113         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
13114         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
13115         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
13116         New define_insn_and_split.
13117         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
13118         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
13119         operands[1] having DImode when mode is SImode.
13120
13121         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
13122         always SImode for DIV and MOD in REG_EQUAL notes.
13123
13124 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
13125
13126         PR middle-end/82319
13127         * match.pd: Fix handling of NaNs in pattern.
13128
13129 2017-09-29  Jeff Law  <law@redhat.com>
13130
13131         * sbitmap.c (bitmap_bit_in_range_p): New function.
13132         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
13133         * tree-ssa-dse.c (live_bytes_read): New function.
13134         (dse_classify_store): Ignore reads of dead bytes.
13135
13136         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
13137         typos and whitespace errors.
13138         * config/i386/predicates.md (address_no_seg_operand): Likewise.
13139         * config/s390/s390.c (s390_emit_prologue): Likewise.
13140
13141 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13142
13143         PR target/81481
13144         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
13145         with a symbol for LRA.
13146
13147 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13148
13149         PR rtl-optimization/82338
13150         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
13151
13152 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
13153
13154         * genmodes.c (calc_wider_mode): Suppress qsort macro.
13155         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
13156         (qsort_chk): Declare.
13157         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
13158         (qsort_chk): New function.
13159
13160 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13161
13162         PR tree-optimization/82337
13163         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13164         phi definition if the PHI result appears in an abnormal PHI.
13165         (find_basis_for_base_expr): Don't record a basis if the LHS of the
13166         basis appears in an abnormal PHI.
13167
13168 2017-09-29  Richard Biener  <rguenther@suse.de>
13169
13170         * graphite-isl-ast-to-gimple.c
13171         (translate_isl_ast_to_gimple::set_codegen_error): New function.
13172         (binary_op_to_tree): Use it.
13173         (get_rename_from_scev): Likewise.
13174         (copy_loop_phi_nodes): Likewise.
13175         (copy_bb_and_scalar_dependences): Likewise.
13176         (translate_pending_phi_nodes): Likewise.
13177
13178 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
13179
13180         PR target/82339
13181         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
13182         for movabsq $(i32 << shift), r64.
13183
13184 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
13185
13186         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
13187         index when encoding %esp as %rsp to avoid 0x67 prefix.
13188
13189 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
13190
13191         * config/i386/i386.md (*movsf_internal, *movdf_internal):
13192         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
13193
13194 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13195
13196         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
13197         Extensions with more than 16 double VFP registers.
13198         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
13199         to_clear_mask and all code related to it.  Replace the remaining
13200         entry by a sbitmap and adapt code accordingly.
13201
13202 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
13203
13204         * brig-builtins.def: Change pure attributes to const.
13205
13206 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13207
13208         * config.gcc (default_gnu_indirect_function): Default to yes for
13209         sparc*-*-linux* with glibc.
13210
13211 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13212
13213         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
13214         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
13215         when creating .init_array and .fini_array sections with priority
13216         specified.
13217
13218 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
13219
13220         PR target/71727
13221         * config/aarch64/aarch64.c
13222         (aarch64_builtin_support_vector_misalignment): Always return false
13223         when misalignment is unknown.
13224
13225 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13226
13227         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
13228         this function to return false if the definition used by the swap
13229         instruction is artificial, or if the memory address from which the
13230         constant value is loaded is not represented by a base address held
13231         in a register or if the base address register is a frame or stack
13232         pointer.  Additionally, return false if the base address of the
13233         loaded constant is a SYMBOL_REF but is not considered to be a
13234         constant.
13235         (replace_swapped_load_constant): New function.
13236         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
13237         loaded constant vector with a load of a swapped constant vector.
13238
13239 2017-09-27  Carl Love  <cel@us.ibm.com>
13240
13241         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
13242         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
13243         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
13244         fctiw instruction.
13245
13246 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
13247
13248         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
13249         first, always call autopref_rank_data otherwise.
13250
13251 2017-09-27  Richard Biener  <rguenther@suse.de>
13252
13253         * graphite-scop-detection.c (find_scop_parameters): Move
13254         loop bound handling ...
13255         (gather_bbs::before_dom_children): ... here, avoiding the need
13256         to build scop_info->loop_nest.
13257         (record_loop_in_sese): Remove.
13258         * sese.h (sese_info_t::loop_nest): Remove.
13259         * sese.c (new_sese_info): Do not allocate loop_nest.
13260         (free_sese_info): Do not free loop_nest.
13261
13262 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
13263
13264         PR c++/82159
13265         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
13266         lhs from calls if the lhs has addressable type.
13267
13268 2017-09-27  Richard Biener  <rguenther@suse.de>
13269
13270         * graphite.h (scop::max_alias_set): New member.
13271         * graphite-scop-detection.c: Remove references to non-existing
13272         --param in comments.
13273         (build_alias_sets): Record the maximum alias set used for drs.
13274         (build_scops): Support zero as unlimited for
13275         --param graphite-max-arrays-per-scop.
13276         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
13277         and inline into ...
13278         (build_poly_sr_1): ... here.  Compute alias set based on the
13279         maximum alias set used for drs rather than
13280         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
13281
13282 2017-09-27  Richard Biener  <rguenther@suse.de>
13283
13284         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
13285         --param loop-block-tile-size=0 to disable tiling.
13286
13287 2017-09-27  Richard Biener  <rguenther@suse.de>
13288
13289         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
13290         (graphite-max-nb-scop-params): Document special value zero.
13291         * domwalk.h (dom_walker::STOP): New symbolical constant.
13292         (dom_walker::dom_walker): Add optional parameter for bb to
13293         RPO mapping.
13294         (dom_walker::~dom_walker): Declare.
13295         (dom_walker::before_dom_children): Document STOP return value.
13296         (dom_walker::m_user_bb_to_rpo): New member.
13297         (dom_walker::m_bb_to_rpo): Likewise.
13298         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
13299         mapping here if not provided by the user.
13300         (dom_walker::~dom_walker): Free bb to RPO mapping if not
13301         provided by the user.
13302         (dom_walker::STOP): Define.
13303         (dom_walker::walk): Do not compute bb to RPO mapping here.
13304         Support STOP return value from before_dom_children to stop
13305         walking.
13306         * graphite-optimize-isl.c (optimize_isl): If the schedule
13307         is the same still generate code if -fgraphite-identity
13308         or -floop-parallelize-all are given.
13309         * graphite-scop-detection.c: Include cfganal.h.
13310         (gather_bbs::gather_bbs): Get and pass through bb to RPO
13311         mapping.
13312         (gather_bbs::before_dom_children): Return STOP for BBs
13313         not in the region.
13314         (build_scops): Compute bb to RPO mapping and pass it to
13315         the domwalk.  Treat --param graphite-max-nb-scop-params=0
13316         as not limiting the number of params.
13317         * graphite.c (graphite_initialize): Remove limit on the
13318         number of basic-blocks in a function.
13319         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
13320         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
13321         default value of 10.
13322
13323 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13324
13325         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
13326         Adjust code to eliminate needing to do the shift right 32-bits
13327         operation after XSCVDPSPN.
13328
13329 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13330
13331         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
13332         ((X / Y) != 0 -> X >= Y): Likewise.
13333
13334 2017-09-26  Carl Love  <cel@us.ibm.com>
13335
13336         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
13337         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
13338         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
13339         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
13340         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
13341         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
13342         definitions and overloading.
13343         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
13344         statement for P9V_BUILTIN_XST_LEN_R.
13345         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
13346         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
13347         define_expand and define_insn for the instructions and builtins.
13348         * doc/extend.texi: Update the built-in documentation file for the new
13349         built-in functions.
13350         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
13351         define_insn for the instructions
13352
13353 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
13354
13355         PR target/39570
13356         * gcc/config/netbsd-protos.h: New file.
13357         * gcc/config/netbsd.c: New file.
13358         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
13359         * gcc/config/t-netbsd: New file.
13360         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
13361         (tmake_file) Add t-netbsd.
13362         (extra_objs) Add netbsd.o.
13363
13364 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
13365
13366         PR fortran/82143
13367         PR fortran/82324
13368         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
13369
13370 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13371
13372         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
13373         sign extension from a vector register to a GPR by doing a 32-bit
13374         direct move and then an EXTSW.
13375         (extendsi<mode>2 splitter): Likewise.
13376         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
13377         right or vector extract after doing XSCVDPSPN.  Use
13378         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
13379         the GPRs.
13380         (movdi_from_sf_zero_ext): Likewise.
13381         (reload_gpr_from_vsxsf): Likewise.
13382         (p8_mfvsrd_4_disf): Delete, no longer used.
13383         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
13384         then needing to move the SFmode to a GPR to use the XSCVDPSP
13385         instruction instead of FRSP and XSCVDPSPN.
13386         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
13387         it is adjacent to the other XSCVSPDP insns.
13388         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
13389         SFmode to be in traditional Altivec registers.
13390         (vsx_xscvdpspn): Eliminate useless alternative constraint.
13391         (vsx_xscvspdpn): Likewise.
13392         (vsx_xscvspdpn_scalar): Likewise.
13393
13394 2017-09-26  Martin Jambor  <mjambor@suse.cz>
13395
13396         * tree-sra.c (compare_access_positions): Put integral types first,
13397         stabilize sorting of integral types, remove conditions putting
13398         non-full-precision integers last.
13399         (sort_and_splice_var_accesses): Disable scalarization if a
13400         non-integert would be represented by a non-full-precision integer.
13401
13402 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
13403
13404         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
13405         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
13406         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
13407         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
13408         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
13409         conditionals inside the function instead of around it.  Call
13410         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
13411         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
13412
13413 2017-09-26  Richard Biener  <rguenther@suse.de>
13414
13415         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
13416         fold in ...
13417         (scop_detection::build_scop_breadth): ... this.  Removed.
13418         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
13419         (scop_detection::harmful_stmt_in_bb): Likewise.
13420         (scop_detection::graphite_can_represent_stmt): Likewise.
13421         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
13422         (scop_detection::can_represent_loop): Remove recursion, fold in ...
13423         (scop_detection::can_represent_loop_1): ... this.  Removed.
13424         (scop_detection::harmful_loop_in_region): Simplify after inlining
13425         the above and remove more quadraticness.
13426         (build_scops): Adjust.
13427         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
13428         quadraticness.
13429
13430 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
13431
13432         PR target/82267
13433         * config/i386/i386.c (ix86_print_operand_address_as): Only test
13434         REGNO (base) == SP_REG if base is a REG.
13435
13436         PR middle-end/35691
13437         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
13438         if it is different SSA_NAME.
13439         (optimize_range_tests_cmp_bitwise): New function.
13440         (optimize_range_tests): Call it.
13441
13442 2017-09-26  Richard Biener  <rguenther@suse.de>
13443
13444         PR tree-optimization/82321
13445         * graphite.c (canonicalize_loop_closed_ssa): Properly check
13446         for the def being inside the loop.
13447
13448 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13449
13450         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
13451         assembler output.
13452         * config/s390/s390-builtins.def: Fix constraint on op4.
13453
13454 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13455
13456         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
13457         independent expanders.
13458         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
13459         ("vec_ordered", "vec_unordered"): New expanders.
13460
13461 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13462
13463         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
13464         for SFmode.
13465
13466 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13467
13468         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
13469         vec_unpacks_lo_v16qi.
13470         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
13471
13472 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13473
13474         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
13475         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
13476         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
13477
13478 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13479
13480         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
13481         predicate.
13482         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
13483         and V16QI.
13484         ("*vec_slb<mode>"): New insn pattern.
13485         ("vec_shr_<mode>"): New expander.
13486         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
13487         and force the shift count operand to V16QImode.
13488         ("vec_srb<mode>"): Set shift count mode to V16QI.
13489
13490 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13491
13492         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
13493         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
13494         ("vec_widen_smult_hi_<mode>"): New expander definitions.
13495
13496 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
13497
13498         PR target/82175
13499         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
13500
13501 2017-09-26  Richard Biener  <rguenther@suse.de>
13502
13503         PR tree-optimization/82320
13504         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
13505         isn't a change.
13506
13507 2017-09-25  Jeff Law  <law@redhat.com>
13508
13509         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
13510         prototype for new argument.
13511         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
13512         mostly extracted from rs6000_emit_allocate_stack.
13513         (rs6000_emit_probe_stack_range_stack_clash): New function.
13514         (rs6000_emit_allocate_stack): Call
13515         rs6000_emit_probe_stack_range_stack_clash as needed.
13516         (rs6000_emit_probe_stack_range): Add additional argument
13517         to call to gen_probe_stack_range{si,di}.
13518         (output_probe_stack_range): New.
13519         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
13520         (output_probe_stack_range_stack_clash): New.
13521         (rs6000_emit_prologue): Emit notes into dump file as requested.
13522         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
13523         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
13524         Add additional operand and pass it to output_probe_stack_range.
13525
13526 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
13527
13528         PR tree-optimization/82163
13529         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
13530         (checking_verify_loop_closed_ssa): New parameter.
13531         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
13532         (check_loop_closed_ssa_stmt): Delete.
13533         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
13534         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
13535         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
13536         changed loops.
13537
13538 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
13539
13540         * brig-builtins.def: Treat HSAIL barrier builtins as
13541         setjmp/longjump style functions.
13542
13543 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13544
13545         * target.def (constant_alignment): New hook.
13546         * defaults.h (CONSTANT_ALIGNMENT): Delete.
13547         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
13548         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
13549         * doc/tm.texi: Regenerate.
13550         * targhooks.h (default_constant_alignment): Declare.
13551         (constant_alignment_word_strings): Likewise.
13552         * targhooks.c (default_constant_alignment): New function.
13553         (constant_alignment_word_strings): Likewise.
13554         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
13555         instead of CONSTANT_ALIGNMENT.
13556         * varasm.c (align_variable, get_variable_align, build_constant_desc)
13557         (force_const_mem): Likewise.
13558         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
13559         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
13560         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
13561         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13562         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
13563         definition.
13564         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
13565         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13566         constant_alignment_word_strings.
13567         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
13568         (CONSTANT_ALIGNMENT): Likewise.
13569         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13570         (arm_constant_alignment): New function.
13571         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
13572         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13573         constant_alignment_word_strings.
13574         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
13575         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13576         constant_alignment_word_strings.
13577         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
13578         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13579         (cris_constant_alignment): New function.
13580         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
13581         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13582         (epiphany_constant_alignment): New function.
13583         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
13584         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13585         constant_alignment_word_strings.
13586         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
13587         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13588         constant_alignment_word_strings.
13589         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
13590         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13591         constant_alignment_word_strings.
13592         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
13593         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
13594         * config/i386/i386.c (ix86_constant_alignment): Make static.
13595         Use the same interface as the target hook.
13596         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13597         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
13598         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13599         constant_alignment_word_strings.
13600         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
13601         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
13602         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13603         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
13604         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13605         constant_alignment_word_strings.
13606         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
13607         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13608         constant_alignment_word_strings.
13609         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
13610         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13611         constant_alignment_word_strings.
13612         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
13613         * config/microblaze/microblaze.c (microblaze_constant_alignment):
13614         New function.
13615         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13616         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
13617         * config/mips/mips.c (mips_constant_alignment): New function.
13618         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13619         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
13620         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
13621         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13622         (mmix_constant_alignment): Make static.  Use the same interface
13623         as the target hook.
13624         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
13625         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13626         constant_alignment_word_strings.
13627         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
13628         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13629         constant_alignment_word_strings.
13630         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
13631         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13632         constant_alignment_word_strings.
13633         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
13634         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13635         (rs6000_constant_alignment): New function.
13636         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
13637         * config/riscv/riscv.c (riscv_constant_alignment): New function.
13638         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13639         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
13640         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13641         (rs6000_constant_alignment): New function.
13642         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
13643         * config/s390/s390.c (s390_constant_alignment): New function.
13644         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13645         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
13646         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13647         constant_alignment_word_strings.
13648         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
13649         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13650         (sparc_constant_alignment): New function.
13651         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
13652         * config/spu/spu.c (spu_constant_alignment): New function.
13653         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13654         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
13655         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13656         constant_alignment_word_strings.
13657         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
13658         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13659         constant_alignment_word_strings.
13660         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
13661         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13662         constant_alignment_word_strings.
13663         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
13664         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13665         (visium_constant_alignment): New function.
13666         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
13667         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13668         (xtensa_constant_alignment): New function.
13669         * system.h (CONSTANT_ALIGNMENT): Poison.
13670
13671 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
13672
13673         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13674         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
13675         (rs6000_builtin_valid_without_lhs): New helper function.
13676         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13677         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
13678
13679 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13680
13681         * target.h (vec_perm_indices): Use unsigned short rather than
13682         unsigned char.
13683         (auto_vec_perm_indices): Likewise.
13684         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
13685         Use unsigned int rather than unsigned char.
13686         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
13687
13688 2017-09-25  Richard Biener  <rguenther@suse.de>
13689
13690         * cfgloop.h (sort_sibling_loops): Declare.
13691         * cfgloop.c (sort_sibling_loops_cmp): New helper.
13692         (sort_sibling_loops): New function sorting the sibling loop list
13693         in RPO order.
13694         * graphite.c (graphite_transform_loops): Sort sibling loops.
13695
13696 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
13697
13698         * target.def (vec_perm_const_ok): Change sel parameter to
13699         vec_perm_indices.
13700         * optabs-query.c (can_vec_perm_p): Update accordingly.
13701         * doc/tm.texi: Regenerate.
13702         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
13703         auto_vec_perm_indices and remove separate nelt field.
13704         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
13705         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
13706         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
13707         (aarch64_expand_vec_perm_const): Update accordingly.
13708         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
13709         to vec_perm_indices.
13710         * config/arm/arm.c (expand_vec_perm_d): Change perm to
13711         auto_vec_perm_indices and remove separate nelt field.
13712         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
13713         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
13714         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
13715         accordingly.
13716         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
13717         to vec_perm_indices.
13718         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
13719         sel to vec_perm_indices.
13720         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
13721         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
13722         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
13723         Likewise.
13724         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
13725         Likewise.
13726
13727 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
13728
13729         PR debug/82155
13730         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
13731         on the FUNCTION_DECL function context if it has a DIE that is a
13732         declaration.
13733
13734 2017-09-25  Richard Biener  <rguenther@suse.de>
13735
13736         PR tree-optimization/82285
13737         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
13738         enumeral types.
13739
13740 2017-09-25  Tom de Vries  <tom@codesourcery.com>
13741
13742         PR target/80035
13743         PR target/81069
13744         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
13745         noreturn function.
13746
13747 2017-09-25  Richard Biener  <rguenther@suse.de>
13748
13749         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
13750         ISL errors other than isl_error_quota happen.  Dump if the
13751         schedule is the same.
13752         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
13753         errors instead of aborting inside ISL.
13754
13755 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
13756
13757         PR target/80556
13758         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
13759         of libgcc_eh for m64.
13760         * config/i386/darwin64.h: Likewise.
13761
13762 2017-09-25  Richard Biener  <rguenther@suse.de>
13763
13764         PR middle-end/82144
13765         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
13766         attribute for incomplete types nor twice for complete ones.
13767
13768 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
13769
13770         PR target/82267
13771         * config/i386/i386.c (ix86_print_operand_address_as): Encode
13772         %esp as %rsp to avoid 0x67 prefix if there is no index or base
13773         register.
13774
13775 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
13776
13777         PR bootstrap/82306
13778         * config/i386/i386.opt (mprefer-avx256): Use
13779         ix86_target_flags variable.
13780         * config/i386/i386.c (ix86_target_string): Move
13781         -mprefer-avx256 to flag2_opts.
13782
13783 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
13784
13785         PR middle-end/35691
13786         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
13787         and x != -1 | y != -1 into (x & y) != -1.
13788
13789 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
13790
13791         * config.gcc: Add new case statement to set
13792         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
13793         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
13794         s390x-*-linux* case statements.   Added aarch64 to the list of
13795         supported architectures.
13796
13797 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13798
13799         PR tree-optimization/82289
13800         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
13801         STMT_VINFO_RELEVANT_P.
13802
13803 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13804             Alan Hayward  <alan.hayward@arm.com>
13805             David Sherwood  <david.sherwood@arm.com>
13806
13807         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
13808         for VR_RANGE only; don't allow VR_ANTI_RANGE.
13809         (extract_range_from_binary_expr_1): Don't call
13810         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
13811
13812 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13813             Alan Hayward  <alan.hayward@arm.com>
13814             David Sherwood  <david.sherwood@arm.com>
13815
13816         * target.def (preferred_vector_alignment): New hook.
13817         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
13818         hook.
13819         * doc/tm.texi: Regenerate.
13820         * targhooks.h (default_preferred_vector_alignment): Declare.
13821         * targhooks.c (default_preferred_vector_alignment): New function.
13822         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
13823         Expand commentary.
13824         (DR_TARGET_ALIGNMENT): New macro.
13825         (aligned_access_p): Update commentary.
13826         (vect_known_alignment_in_bytes): New function.
13827         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
13828         function.
13829         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
13830         Calculate the misalignment based on the target alignment rather than
13831         the vector size.
13832         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
13833         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
13834         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
13835         the target alignment, rather than masking the element misalignment
13836         with the number of elements in a vector.  Also use the target
13837         alignment when calculating the maximum number of peels.
13838         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
13839         instead of TYPE_ALIGN_UNIT.
13840         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
13841         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
13842         (vect_create_addr_base_for_vector_ref): Update call accordingly.
13843         (vect_create_data_ref_ptr): Likewise.
13844         (vect_setup_realignment): Realign by ANDing with
13845         -DR_TARGET_MISALIGNMENT.
13846         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
13847         the number of peels based on DR_TARGET_ALIGNMENT.
13848         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
13849         with the guaranteed alignment boundary when deciding whether
13850         overrun is OK.
13851         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
13852         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
13853         (ensure_base_align): Remove stmt_info parameter.  Get the
13854         target base alignment from DR_TARGET_ALIGNMENT.
13855         (vectorizable_store): Update call accordingly.   Interpret
13856         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
13857         TYPE_ALIGN_UNIT.
13858         (vectorizable_load): Likewise.
13859
13860 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13861             Alan Hayward  <alan.hayward@arm.com>
13862             David Sherwood  <david.sherwood@arm.com>
13863
13864         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
13865         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
13866         (vect_enhance_data_refs_alignment): Likewise.
13867
13868 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13869
13870         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
13871         error.  Only quit immediately if parsing is complete.
13872         (BEGIN): Initialize fatal_err and parse_done.
13873         (begin fpu, end fpu): Check number of arguments.
13874         (begin arch, end arch): Likewise.
13875         (begin cpu, end cpu): Likewise.
13876         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
13877         (optalias): Likewise.
13878
13879 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13880
13881         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
13882         * config/arm/arm-isa.h: Delete.  Move definitions to ...
13883         * arm-cpus.in: ... here.  Use new feature and fgroup values.
13884         * config/arm/arm.c (arm_option_override): Use lower case for feature
13885         bit names.
13886         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
13887         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
13888         * config/arm/parsecpu.awk (END): Add new command 'isa'.
13889         (isa_pfx): Delete.
13890         (print_isa_bits_for): New function.
13891         (gen_isa): New function.
13892         (gen_comm_data): Use print_isa_bits_for.
13893         (define feature): New keyword.
13894         (define fgroup): New keyword.
13895         * config/arm/t-arm (TM_H): Remove.
13896         (GTM_H): Add arm-isa.h.
13897         (arm-isa.h): Add rule to generate file.
13898         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
13899         case for feature bit names.
13900
13901 2017-09-22  Richard Biener  <rguenther@suse.de>
13902
13903         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
13904         single caller.
13905         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
13906         print of no dependency loops ...
13907         * graphite.c (graphite_transform_loops): ... here.
13908         (canonicalize_loop_closed_ssa_form): Work from inner to outer
13909         loops.
13910         (same_close_phi_node, remove_duplicate_close_phi,
13911         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
13912         (canonicalize_loop_closed_ssa): ... here and simplify.
13913         * graphite-optimize-isl.c: Include tree-vectorizer.h.
13914         (optimize_isl): Use dump_printf_loc to tell when we stopped
13915         optimizing because of an ISL timeout.
13916
13917 2017-09-22  Richard Biener  <rguenther@suse.de>
13918
13919         PR tree-optimization/82291
13920         * tree-if-conv.c (predicate_mem_writes): Make sure to
13921         remove writes in blocks predicated with false.
13922
13923 2017-09-22  Richard Biener  <rguenther@suse.de>
13924
13925         * sese.c: Include cfganal.h.
13926         (if_region_set_false_region): Remove.
13927         (create_if_region_on_edge): Likewise.
13928         (move_sese_in_condition): Re-implement without destroying
13929         dominators.
13930
13931 2017-09-22  Richard Biener  <rguenther@suse.de>
13932
13933         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
13934         Verify both BBs contain loop PHI nodes before dispatching to
13935         copy_loop_phi_args.
13936         (graphite_regenerate_ast_isl): Do not recompute dominators,
13937         do not verify three times.  Restructure for clarity.
13938         * graphite-scop-detection.c (same_close_phi_node,
13939         remove_duplicate_close_phi, make_close_phi_nodes_unique,
13940         defined_in_loop_p, canonicalize_loop_closed_ssa,
13941         canonicalize_loop_closed_ssa_form): Simplify, remove excess
13942         checking and SSA rewrite, move to ...
13943         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
13944         (graphite_initialize): Do not pass in ctx, do not reset the
13945         SCEV cache, compute only dominators.
13946         (graphite_transform_loops): Allocate ISL ctx after
13947         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
13948         Maintain post-dominators only around build_scops.
13949         * sese.c (if_region_set_false_region): Make static.  Free
13950         and recompute dominators.
13951         (move_sese_in_condition): Assert we don't get called with
13952         post-dominators computed.
13953         * sese.h (if_region_set_false_region): Remove.
13954
13955 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
13956
13957         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
13958         mode attribute for TARGET_AVX512VL.
13959
13960 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
13961
13962         * config/i386/i386.opt (mprefer-avx256): New option.
13963         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
13964         to flag_opts.
13965         (ix86_preferred_simd_mode): Return 256-bit AVX modes
13966         for TARGET_PREFER_AVX256.
13967         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
13968
13969 2017-09-21  Jeff Law  <law@redhat.com>
13970
13971         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
13972         Fix dump output if the only stack space is for pushed registers.
13973
13974 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
13975
13976         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
13977         of insn_cost.
13978
13979 2017-09-21  Martin Sebor  <msebor@redhat.com>
13980
13981         PR c/81882
13982         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
13983         code (in C++) or code that triggers warnings.
13984
13985 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
13986
13987         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
13988
13989 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
13990
13991         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
13992         * sched-rgn.c: Ditto.
13993         * sel-sched-ir.c: Ditto.
13994
13995 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
13996
13997         * toplev.h (set_random_seed): Adjust return type.
13998         * toplev.c (init_local_tick): Move eager initialization of random_seed
13999         to get_random_seed.  Adjust comment.
14000         (init_random_seed): Inline to get_random_seed, delete.
14001         (get_random_seed): Initialize random_seed lazily.
14002         (set_random_seed): Do not return previous value.
14003         (print_switch_value): Do not call get_random_seed.
14004
14005 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
14006
14007         * cgraph.c (delete_function_version): New, broken out from...
14008         (cgraph_node::delete_function_version): ...here.  Rename to
14009         cgraph_node::delete_function_version_by_decl.  Update all uses.
14010         (cgraph_node::remove): Call delete_function_version.
14011
14012 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14013
14014         PR sanitizer/81715
14015         * tree-inline.c (expand_call_inline): Emit clobber stmts for
14016         VAR_DECLs to which addressable non-volatile parameters are mapped
14017         and for id->retvar after the return value assignment.  Clear
14018         id->retval and id->retbnd after inlining.
14019
14020 2017-09-21  Richard Biener  <rguenther@suse.de>
14021
14022         PR tree-optimization/82276
14023         PR tree-optimization/82244
14024         * tree-vrp.c (build_assert_expr_for): Set
14025         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
14026         has it set.
14027         (remove_range_assertions): Revert earlier change.
14028
14029 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
14030
14031         PR target/71951
14032         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
14033
14034 2017-09-21  Richard Biener  <rguenther@suse.de>
14035
14036         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
14037         Restore valid IL after code generation errors.
14038         * graphite.c (graphite_transform_loops): Diagnose code
14039         generation issues as MSG_MISSED_OPTIMIZATION and continue
14040         with processing SCOPs.
14041
14042 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14043             Alan Hayward  <alan.hayward@arm.com>
14044             David Sherwood  <david.sherwood@arm.com>
14045
14046         * calls.c (compute_argument_addresses): Use simplify_gen_binary
14047         rather than choosing between plus_constant and gen_rtx_<CODE>.
14048         * expr.c (emit_push_insn): Likewise.
14049         (expand_expr_real_2): Likewise.
14050
14051 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14052             Alan Hayward  <alan.hayward@arm.com>
14053             David Sherwood  <david.sherwood@arm.com>
14054
14055         * loop-unroll.c (split_iv): Call copy_rtx on the step.
14056
14057 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14058             Alan Hayward  <alan.hayward@arm.com>
14059             David Sherwood  <david.sherwood@arm.com>
14060
14061         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
14062         calling tree_to_uhwi.
14063
14064 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14065             Alan Hayward  <alan.hayward@arm.com>
14066             David Sherwood  <david.sherwood@arm.com>
14067
14068         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
14069         INTEGER_CST rather than a negative test for ADDR_EXPR.
14070
14071 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14072             Alan Hayward  <alan.hayward@arm.com>
14073             David Sherwood  <david.sherwood@arm.com>
14074
14075         * tree-vrp.c (extract_range_from_binary_expr_1): Check
14076         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
14077
14078 2017-09-21  Richard Biener  <rguenther@suse.de>
14079
14080         PR tree-optimization/71351
14081         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
14082         graphite_create_new_loop_guard): Remove, fold remaining parts
14083         into caller ...
14084         (translate_isl_ast_node_for): ... here and simplify.
14085
14086 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14087
14088         PR target/82260
14089         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
14090         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
14091         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
14092         alternative always use QI mode, for -Os imov (=R,R) alternative
14093         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
14094         ignore -Os.
14095
14096 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14097             Jeff Law  <law@redhat.com>
14098
14099         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
14100         (allocate_stack_space): New function, partially extracted from
14101         s390_emit_prologue.
14102         (s390_emit_prologue): Track offset to most recent stack probe.
14103         Code to allocate space moved into allocate_stack_space.
14104         Dump actions when no stack is allocated.
14105         (s390_prologue_plus_offset): New function.
14106         (s390_emit_stack_probe): Likewise.
14107
14108 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
14109
14110         * common.opt (Wa, Wl, Wp, g, gz=): Add
14111         RejectNegative.
14112         (gno-column-info): Remove.
14113         (gcolumn-info): Drop RejectNegative.
14114         (gno-): New prefix.
14115         (gno-record-gcc-switches): Remove.
14116         (grecord-gcc-switches): Drop RejectNegative.
14117         (gno-split-dwarf): Remove.
14118         (gsplit-dwarf): Drop RejectNegative.
14119         (gno-strict-dwarf): Remove.
14120         (gstrict-dwarf): Drop RejectNegative.
14121         * config/darwin.opt (gfull, gused): Add RejectNegative.
14122         * dwarf2out.c (gen_producer_string): Drop
14123         gno-record-gcc-switches handler.
14124         * optc-gen.awk: Add g to prefixes with negative forms.
14125         * opts-common.c (remapping_prefix_p): New.
14126         (find_opt): Check it.
14127         (generate_canonical_option): Test g prefix.
14128         (option_map): Add -gno- mapping.
14129         (add_misspelling_candidates): Check remapping_prefix_p.
14130
14131 2017-09-20  Jeff Law  <law@redhat.com>
14132
14133         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
14134         thinko in stack clash protection support.
14135
14136         * explow.c (compute_stack_clash_protection_loop_data): Use
14137         CONST_INT_P instead of explicit test.  Verify object is a
14138         CONST_INT_P before looking at INTVAL.
14139         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
14140         instead of explicit test.
14141
14142 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
14143
14144         PR target/77687
14145         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
14146         address instead of to r1 and r11.
14147
14148 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
14149
14150         * config.gcc: Support "knm".
14151         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
14152         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14153         PROCESSOR_KNM.
14154         * config/i386/i386.c (m_KNM): Define.
14155         (processor_target_table): Add "knm".
14156         (PTA_KNM): Define.
14157         (ix86_option_override_internal): Add "knm".
14158         (ix86_issue_rate): Add PROCESSOR_KNM.
14159         (ix86_adjust_cost): Ditto.
14160         (ia32_multipass_dfa_lookahead): Ditto.
14161         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
14162         (fold_builtin_cpu): Add M_INTEL_KNM.
14163         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
14164         (processor_type): Add PROCESSOR_KNM.
14165         * config/i386/x86-tune.def: Add m_KNM.
14166         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
14167
14168 2017-09-20  Richard Biener  <rguenther@suse.de>
14169
14170         PR tree-optimization/80213
14171         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
14172         are allowed in empty BBs as well.
14173         (canonicalize_loop_closed_ssa): Also look for other complex
14174         edges.
14175         (scop_detection::get_sese): Include the loop-closed PHI block
14176         in loop SESEs.
14177         (scop_detection::merge_sese): Remove code adding extra blocks.
14178         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
14179         (build_scops): Assert the final returned scop is invalid.
14180
14181 2017-09-20  Richard Biener  <rguenther@suse.de>
14182
14183         PR tree-optimization/82264
14184         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
14185         for GIMPLE_CONDs.
14186         (vn_phi_lookup): Likewise.
14187         (vn_phi_insert): Likewise.
14188
14189 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
14190
14191         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
14192         that fits into uhwi or shwi, add DW_AT_const_value regardless
14193         of early_dwarf without going through RTL, using add_AT_unsigned
14194         or add_AT_int.
14195
14196         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
14197         (DEBUG_LTO_ABBREV_SECTION): Likewise.
14198         (DEBUG_LTO_MACINFO_SECTION): Likewise.
14199         (DEBUG_MACRO_SECTION): Likewise.
14200         (DEBUG_LTO_MACRO_SECTION): Likewise.
14201         (DEBUG_STR_DWO_SECTION): Likewise.
14202         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
14203         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
14204         (DEBUG_LTO_DWO_LINE_SECTION): Define.
14205         (DEBUG_LTO_LINE_STR_SECTION): Define.
14206         (init_sections_and_labels): Initialize debug_line_str_section
14207         variable.  Initialize debug_loc_section for -gdwarf-5 to
14208         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
14209
14210 2017-09-20  Richard Biener  <rguenther@suse.de>
14211
14212         * graphite-sese-to-poly.c (extract_affine): Properly handle
14213         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
14214
14215 2017-09-20  Richard Biener  <rguenther@suse.de>
14216
14217         PR tree-optimization/81373
14218         * graphite-scop-detection.c (build_cross_bb_scalars_def):
14219         Force SESE live-out defs to be handled even if they are
14220         scev_analyzable_p.
14221
14222 2017-09-19  Jeff Law  <law@redhat.com>
14223
14224         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
14225         nothing for stack adjustments with REG_STACK_CHECK.
14226         * sched-deps.c (parse_add_or_inc): Reject insns with
14227         REG_STACK_CHECK from dependency breaking.
14228         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
14229         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
14230         * reg-notes.def (STACK_CHECK): New note.
14231
14232         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
14233         (ix86_expand_prologue): Dump stack clash info as needed.
14234         Call ix86_adjust_stack_and_probe_stack_clash as needed.
14235
14236         * function.c (dump_stack_clash_frame_info): New function.
14237         * function.h (dump_stack_clash_frame_info): Prototype.
14238         (enum stack_clash_probes): New enum.
14239
14240         * config/alpha/alpha.c (alpha_expand_prologue): Also check
14241         flag_stack_clash_protection.
14242         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
14243         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
14244         (arm_frame_pointer_required): Likewise.
14245         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
14246         (ia64_expand_prologue): Likewise.
14247         * config/mips/mips.c (mips_expand_prologue): Likewise.
14248         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
14249         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14250         (sparc_flat_expand_prologue): Likewise.
14251         * config/spu/spu.c (spu_expand_prologue): Likewise.
14252
14253         * explow.c: Include "params.h".
14254         (anti_adjust_stack_and_probe_stack_clash): New function.
14255         (get_stack_check_protect): Likewise.
14256         (compute_stack_clash_protection_loop_data): Likewise.
14257         (emit_stack_clash_protection_loop_start): Likewise.
14258         (emit_stack_clash_protection_loop_end): Likewise.
14259         (allocate_dynamic_stack_space): Use get_stack_check_protect.
14260         Use anti_adjust_stack_and_probe_stack_clash.
14261         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
14262         (emit_stack_clash_protection_loop_start): Likewise.
14263         (emit_stack_clash_protection_loop_end): Likewise.
14264         * rtl.h (get_stack_check_protect): Prototype.
14265         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
14266         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
14267         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
14268         Prototype.
14269         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
14270         Add @hook.
14271         * doc/tm.texi: Rebuilt.
14272         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
14273         get_stack_check_protect.
14274         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
14275         * config/arm/arm.c (arm_expand_prologue): Likewise.
14276         (arm_frame_pointer_required): Likewise.
14277         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14278         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14279         * config/mips/mips.c (mips_expand_prologue): Likewise.
14280         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
14281         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14282         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14283         (sparc_flat_expand_prologue): Likewise.
14284
14285         * common.opt (-fstack-clash-protection): New option.
14286         * flag-types.h (enum stack_check_type): Note difference between
14287         -fstack-check= and -fstack-clash-protection.
14288         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
14289         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
14290         * toplev.c (process_options): Issue warnings/errors for cases
14291         not handled with -fstack-clash-protection.
14292         * doc/invoke.texi (-fstack-clash-protection): Document new option.
14293         (-fstack-check): Note additional problem with -fstack-check=generic.
14294         Note that -fstack-check is primarily for Ada and refer users
14295         to -fstack-clash-protection for stack-clash-protection.
14296         Document new params for stack clash protection.
14297
14298 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
14299
14300         * config/i386/i386.c (ix86_split_long_move): Do not handle
14301         address used for LEA in a special way.
14302
14303 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
14304
14305         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
14306
14307 2017-09-19  Martin Sebor  <msebor@redhat.com>
14308
14309         PR c/81854
14310         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
14311         of incompatible types.
14312
14313 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
14314
14315         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
14316         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
14317         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14318         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
14319
14320 2017-09-19  Richard Biener  <rguenther@suse.de>
14321
14322         PR tree-optimization/82244
14323         * tree-vrp.c (remove_range_assertions): Do not propagate
14324         a constant to abnormals but replace the assert with a copy.
14325
14326 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
14327
14328         PR rtl-optimization/57878
14329         PR rtl-optimization/68988
14330         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
14331         avoidance test involving non_reload_pseudos.  Move frequency test
14332         below the general fragmentation avoidance test.
14333
14334 2017-09-19  Richard Biener  <rguenther@suse.de>
14335
14336         PR tree-optimization/69728
14337         * graphite-sese-to-poly.c (schedule_error): New global.
14338         (add_loop_schedule): Handle empty domain by failing the
14339         schedule.
14340         (build_original_schedule): Handle schedule_error.
14341
14342 2017-09-19  Richard Biener  <rguenther@suse.de>
14343
14344         * graphite-scop-detection.c (scop_detection::can_represent_loop):
14345         Do not iterate to sibling loops but only to siblings of inner
14346         loops.
14347
14348 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
14349
14350         PR target/81613
14351         * config/m68k/m68k.md (moveq feeding equality comparison): Check
14352         that the registers are different.
14353
14354 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
14355
14356         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
14357         to processor_model and "amdfam17h" to arch_names_table.
14358         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
14359
14360 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14361
14362         PR c/82234
14363         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
14364
14365 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14366             Alan Hayward  <alan.hayward@arm.com>
14367             David Sherwood  <david.sherwood@arm.com>
14368
14369         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
14370         with a vec_info *.
14371         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
14372         accordingly.
14373         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
14374         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
14375         vect_schedule_slp_instance.
14376         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
14377         Update call to vect_slp_analyze_node_operations.  Simplify return
14378         value.
14379         (vect_slp_analyze_bb_1): Update call accordingly.
14380         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
14381         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
14382         (vect_schedule_slp): Update call accordingly.
14383
14384 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14385             Alan Hayward  <alan.hayward@arm.com>
14386             David Sherwood  <david.sherwood@arm.com>
14387
14388         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
14389         with types that aren't in fact scalar.
14390
14391 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14392
14393         * tree-vect-slp.c (vect_record_max_nunits): New function,
14394         split out from...
14395         (vect_build_slp_tree_1): ...here.
14396         (vect_build_slp_tree_2): Call it for phis too.
14397
14398 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14399
14400         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
14401         to vect_get_vec_def_for_operand when getting the mask operand.
14402
14403 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14404             Alan Hayward  <alan.hayward@arm.com>
14405             David Sherwood  <david.sherwood@arm.com>
14406
14407         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
14408         bitstart.
14409
14410 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14411             Alan Hayward  <alan.hayward@arm.com>
14412             David Sherwood  <david.sherwood@arm.com>
14413
14414         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
14415         calculation for vector booleans.
14416
14417 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14418             Alan Hayward  <alan.hayward@arm.com>
14419             David Sherwood  <david.sherwood@arm.com>
14420
14421         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
14422         split out from...
14423         (vect_transform_stmt): ...here.
14424         (vect_analyze_stmt): Use it instead of calling
14425         vectorizable_live_operation directly.
14426
14427 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
14428
14429         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
14430         non-SIMT targets in acc vector loops.
14431
14432 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
14433
14434         * configure.ac: Add arc and check if assembler supports gdwarf2.
14435         * configure: Regenerate.
14436
14437 2017-09-18  Richard Biener  <rguenther@suse.de>
14438
14439         PR tree-optimization/82220
14440         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
14441         epilogue niters from the min_profitable_iters compute.
14442
14443 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14444
14445         PR target/82145
14446         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
14447         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
14448         (ix86_init_pic_reg): Revert 2017-09-01 changes.
14449
14450 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
14451
14452         PR target/81361
14453         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
14454         switching to a new text section.
14455
14456 2017-09-18  Richard Biener  <rguenther@suse.de>
14457
14458         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
14459         Simplify.
14460         (build_alias_set): Reject aliases with no access function.
14461
14462 2017-09-18  Richard Biener  <rguenther@suse.de>
14463
14464         PR tree-optimization/79622
14465         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
14466         handle PHIs.
14467         (build_cross_bb_scalars_use): Likewise.
14468
14469 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
14470
14471         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
14472
14473 2017-09-18  Alan Modra  <amodra@gmail.com>
14474
14475         PR target/81996
14476         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
14477         stack_pointer_rtx for count 0.  Update comments.  Break up
14478         large rtl expression.
14479
14480 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
14481
14482         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
14483         Increase to 20 bytes.
14484         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
14485         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
14486         or avx version of the stub.
14487
14488 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
14489
14490         PR target/82166
14491         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
14492         compute the minimum stack alignment.  Also update preferred stack
14493         boundary for leaf functions.
14494
14495 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
14496
14497         PR tree-optimization/82228
14498         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
14499         of ncopies.
14500
14501 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14502
14503         * common/config/nds32/nds32-common.c
14504         (nds32_option_optimization_table): Refine formatting.
14505         (nds32_option_optimization_table): Use -fsched-pressure and
14506         -fomit-frame-pointer for specific optimization level.
14507
14508 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14509
14510         * config/nds32/nds32.c: Refine formatting and comments.
14511         * config/nds32/nds32.h: Likewise.
14512         * config/nds32/nds32.md: Likewise.
14513         * config/nds32/nds32-cost.c: Likewise.
14514         * config/nds32/nds32-isr.c: Likewise.
14515         * config/nds32/nds32-md-auxiliary.c: Likewise.
14516         * config/nds32/nds32-multiple.md: Likewise.
14517         * config/nds32/nds32-predicates.c: Likewise.
14518
14519 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
14520             Jakub Jelinek  <jakub@redhat.com>
14521
14522         Add support for -std=c++2a.
14523         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
14524         or -std=gnu+2a.
14525         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
14526
14527 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
14528
14529         PR target/82066
14530         * doc/extend.texi (Common Function Attributes): Add 
14531         references to ARM, AArch64, and S/390 specific attributes.
14532         (Function Specific Option Pragmas): Add AArch64 and S/390
14533         to list of back ends that support the target pragma.
14534
14535 2017-09-15  Nathan Sidwell  <nathan@acm.org>
14536
14537         * doc/standards.texi: Fix C++17 description.  Update URLs for
14538         C++11 & 14.
14539
14540 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14541
14542         * common.opt (Wcast-align=strict): New warning option.
14543         * doc/invoke.texi: Document -Wcast-align=strict. 
14544
14545 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
14546
14547         * cgraph.h (cgraph_thunk_info): Add comments.
14548         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
14549         assert for VIRTUAL_* arguments stricter.
14550
14551 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
14552
14553         PR tree-optimization/71026
14554         * match.pd: Move RDIV patterns from fold-const.c
14555         * fold-const.c (distribute_real_division): Removed.
14556         (fold_binary_loc): Remove calls to distribute_real_divison.
14557
14558 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14559
14560         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
14561         c++1z and gnu++1z as deprecated.  Change other references to
14562         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
14563         Change -Wc++1z-compat to -Wc++17-compat.
14564         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
14565         * dwarf2out.c (highest_c_language): Handle C++17.
14566         (gen_compile_unit_die): Likewise.
14567
14568 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14569
14570         PR rtl-optimization/82192
14571         * combine.c (make_extraction): Don't look through non-paradoxical
14572         SUBREGs or TRUNCATE if pos + len is or might be bigger than
14573         inner's mode.
14574
14575 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14576             Alan Hayward  <alan.hayward@arm.com>
14577             David Sherwood  <david.sherwood@arm.com>
14578
14579         * target.def (function_arg_offset): New hook.
14580         * targhooks.h (default_function_arg_offset): Declare.
14581         * targhooks.c (default_function_arg_offset): New function.
14582         * function.c (locate_and_pad_parm): Use
14583         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
14584         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
14585         (TARGET_FUNCTION_ARG_OFFSET): ...this.
14586         * doc/tm.texi: Regenerate.
14587         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
14588         * config/spu/spu.c (spu_function_arg_offset): New function.
14589         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
14590         * system.h (FUNCTION_ARG_OFFSET): Poison.
14591
14592 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14593             Alan Hayard  <alan.hayward@arm.com>
14594             David Sherwood  <david.sherwood@arm.com>
14595
14596         * target.def (truly_noop_truncation): New hook.
14597         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
14598         than TRULY_NOOP_TRUNCATION.
14599         * hooks.h (hook_bool_uint_uint_true): Declare.
14600         * hooks.c (hook_bool_uint_uint_true): New function.
14601         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
14602         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
14603         * doc/tm.texi: Regenerate.
14604         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
14605         rather than TRULY_NOOP_TRUNCATION in comments.
14606         (simplify_comparison): Likewise.
14607         (record_truncated_value): Likewise.
14608         * expmed.c (extract_bit_field_1): Likewise.
14609         (extract_split_bit_field): Likewise.
14610         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
14611         instead of TRULY_NOOP_TRUNCATION.
14612         * function.c (assign_parm_setup_block): Likewise.
14613         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
14614         * rtlhooks.c: Include target.h.
14615         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
14616         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
14617         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
14618         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
14619         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
14620         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
14621         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
14622         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
14623         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
14624         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
14625         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
14626         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
14627         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
14628         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
14629         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
14630         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
14631         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
14632         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
14633         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
14634         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
14635         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
14636         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
14637         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
14638         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
14639         * config/mips/mips.c (mips_truly_noop_truncation): New function.
14640         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14641         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14642         rather than TRULY_NOOP_TRUNCATION in comments.
14643         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
14644         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
14645         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
14646         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
14647         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
14648         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
14649         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
14650         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
14651         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
14652         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
14653         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
14654         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14655         rather than TRULY_NOOP_TRUNCATION in comments.
14656         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
14657         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
14658         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
14659         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
14660         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
14661         TRULY_NOOP_TRUNCATION condition.
14662         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
14663         (TRULY_NOOP_TRUNCATION): Delete.
14664         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
14665         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
14666         * config/spu/spu.c (spu_truly_noop_truncation): New function.
14667         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14668         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
14669         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
14670         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
14671         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14672         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14673         rather than TRULY_NOOP_TRUNCATION in comments.
14674         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
14675         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
14676         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
14677         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
14678         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
14679         * system.h (TRULY_NOOP_TRUNCATION): Poison.
14680
14681 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
14682
14683         PR target/67591
14684         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
14685         (*cmp_ior): Likewise.
14686         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
14687         (*ior_scc_scc_cmp): Likewise.
14688         (*and_scc_scc): Likewise.
14689         (*and_scc_scc_cmp): Likewise.
14690
14691 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14692             Alan Hayard  <alan.hayward@arm.com>
14693             David Sherwood  <david.sherwood@arm.com>
14694
14695         * target.def (can_change_mode_class): New hook.
14696         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
14697         (hard_regno_nregs): Likewise.
14698         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
14699         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
14700         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
14701         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
14702         (LOAD_EXTEND_OP): Update accordingly.
14703         * doc/tm.texi: Regenerate.
14704         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
14705         CANNOT_CHANGE_MODE_CLASS.
14706         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
14707         (REG_CAN_CHANGE_MODE_P): ...this new macro.
14708         * combine.c (simplify_set): Update accordingly.
14709         * emit-rtl.c (validate_subreg): Likewise.
14710         * recog.c (general_operand): Likewise.
14711         * regcprop.c (mode_change_ok): Likewise.
14712         * reload1.c (choose_reload_regs): Likewise.
14713         (inherit_piecemeal_p): Likewise.
14714         * rtlanal.c (simplify_subreg_regno): Likewise.
14715         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
14716         instead of CANNOT_CHANGE_MODE_CLASS.
14717         (reload_cse_simplify_operands): Likewise.
14718         * reload.c (push_reload): Use targetm.can_change_mode_class
14719         instead of CANNOT_CHANGE_MODE_CLASS.
14720         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
14721         REG_CANNOT_CHANGE_MODE_P.
14722         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14723         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
14724         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14725         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14726         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14727         (arm_can_change_mode_class): New function.
14728         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14729         than CANNOT_CHANGE_MODE_CLASS in comments.
14730         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14731         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
14732         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
14733         (ix86_can_change_mode_class): ...this new function, inverting the
14734         sense of the return value.
14735         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14736         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14737         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14738         (ia64_can_change_mode_class): New function.
14739         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14740         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
14741         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
14742         (m32c_can_change_mode_class): ...this new function, inverting the
14743         sense of the return value.
14744         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14745         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14746         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
14747         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
14748         (mips_can_change_mode_class): ...this new function, inverting the
14749         sense of the return value.
14750         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14751         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14752         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14753         (msp430_can_change_mode_class): New function.
14754         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14755         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
14756         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14757         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14758         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14759         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
14760         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14761         (pa_cannot_change_mode_class): Replace with...
14762         (pa_can_change_mode_class): ...this new function, inverting the
14763         sense of the return value.
14764         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14765         than CANNOT_CHANGE_MODE_CLASS in comments.
14766         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14767         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
14768         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14769         (pdp11_cannot_change_mode_class): Replace with...
14770         (pdp11_can_change_mode_class): ...this new function, inverting the
14771         sense of the return value.
14772         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14773         * config/powerpcspe/powerpcspe-protos.h
14774         (rs6000_cannot_change_mode_class_ptr): Delete.
14775         * config/powerpcspe/powerpcspe.c
14776         (rs6000_cannot_change_mode_class_ptr): Delete.
14777         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14778         (rs6000_option_override_internal): Assign to
14779         targetm.can_change_mode_class instead of
14780         rs6000_cannot_change_mode_class_ptr.
14781         (rs6000_cannot_change_mode_class): Replace with...
14782         (rs6000_can_change_mode_class): ...this new function, inverting the
14783         sense of the return value.
14784         (rs6000_debug_cannot_change_mode_class): Replace with...
14785         (rs6000_debug_can_change_mode_class): ...this new function.
14786         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14787         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
14788         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14789         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14790         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
14791         Delete.
14792         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
14793         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14794         (rs6000_option_override_internal): Assign to
14795         targetm.can_change_mode_class instead of
14796         rs6000_cannot_change_mode_class_ptr.
14797         (rs6000_cannot_change_mode_class): Replace with...
14798         (rs6000_can_change_mode_class): ...this new function, inverting the
14799         sense of the return value.
14800         (rs6000_debug_cannot_change_mode_class): Replace with...
14801         (rs6000_debug_can_change_mode_class): ...this new function.
14802         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14803         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
14804         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
14805         (s390_can_change_mode_class): ...this new function, inverting the
14806         sense of the return value.
14807         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14808         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14809         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
14810         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14811         (sh_cannot_change_mode_class): Replace with...
14812         (sh_can_change_mode_class): ...this new function, inverting the
14813         sense of the return value.
14814         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14815         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14816         (sparc_can_change_mode_class): New function.
14817         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14818         * config/spu/spu.c (spu_can_change_mode_class): New function.
14819         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14820         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14821         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14822         (visium_can_change_mode_class): New function.
14823         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
14824
14825 2017-09-15  Richard Biener  <rguenther@suse.de>
14826
14827         PR tree-optimization/82217
14828         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
14829         but not undefined case.
14830
14831 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14832
14833         PR target/82145
14834         * postreload.c (reload_cse_simplify_operands): Skip
14835         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
14836
14837 2017-09-15  Richard Biener  <rguenther@suse.de>
14838
14839         PR tree-optimization/68823
14840         * graphite-scop-detection.c (build_alias_set): If we have a
14841         possible dependence check whether we can handle them by just
14842         looking at the DRs DR_ACCESS_FNs.
14843         (build_scops): If build_alias_set fails, fail the SCOP.
14844
14845 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14846
14847         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
14848         to support float128 built-in functions that require the ISA 3.0
14849         hardware.
14850         (BU_FLOAT128_3_HW): Likewise.
14851         (SQRTF128): Add support for the IEEE 128-bit square root and fma
14852         built-in functions.
14853         (FMAF128): Likewise.
14854         (FMAQ): Likewise.
14855         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14856         support for built-in functions that need the ISA 3.0 IEEE 128-bit
14857         floating point instructions.
14858         (rs6000_invalid_builtin): Likewise.
14859         (rs6000_builtin_mask_names): Likewise.
14860         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
14861         (RS6000_BTM_FLOAT128_HW): Likewise.
14862         (RS6000_BTM_COMMON): Likewise.
14863         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
14864         function.
14865         * doc/extend.texi (RS/6000 built-in functions): Document the
14866         IEEE 128-bit floating point square root and fused multiply-add
14867         built-in functions.
14868
14869 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
14870
14871         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
14872         reg (r2) isn't in the set of registers defined in the prologue.
14873
14874 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14875             Alan Hayward  <alan.hayward@arm.com>
14876             David Sherwood  <david.sherwood@arm.com>
14877
14878         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
14879         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
14880         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
14881         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
14882         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
14883         accordingly.
14884         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14885         max_vectorization_factor.
14886         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
14887
14888 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14889             Alan Hayward  <alan.hayward@arm.com>
14890             David Sherwood  <david.sherwood@arm.com>
14891
14892         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
14893         (vect_worthwhile_without_simd_p): Declare.
14894         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
14895         (vectorizable_reduction): Use it.
14896         * tree-vect-stmts.c (vectorizable_shift): Likewise.
14897         (vectorizable_operation): Likewise.
14898
14899 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14900             Alan Hayward  <alan.hayward@arm.com>
14901             David Sherwood  <david.sherwood@arm.com>
14902
14903         * tree-vectorizer.h (vect_get_num_copies): New function.
14904         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
14905         * tree-vect-loop.c (vectorizable_reduction): Likewise.
14906         (vectorizable_induction): Likewise.
14907         (vectorizable_live_operation): Likewise.
14908         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
14909         (vectorizable_bswap): Likewise.
14910         (vectorizable_call): Likewise.
14911         (vectorizable_conversion): Likewise.
14912         (vectorizable_assignment): Likewise.
14913         (vectorizable_shift): Likewise.
14914         (vectorizable_operation): Likewise.
14915         (vectorizable_store): Likewise.
14916         (vectorizable_load): Likewise.
14917         (vectorizable_condition): Likewise.
14918         (vectorizable_comparison): Likewise.
14919         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
14920
14921 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14922             Alan Hayward  <alan.hayward@arm.com>
14923             David Sherwood  <david.sherwood@arm.com>
14924
14925         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
14926         of vect_init_vector.
14927
14928 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14929             Alan Hayward  <alan.hayward@arm.com>
14930             David Sherwood  <david.sherwood@arm.com>
14931
14932         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
14933         an inline wrapper that provides a location.
14934         (gimple_build_vector): Likewise.
14935         * gimple-fold.c (gimple_build_vector_from_val): New function.
14936         (gimple_build_vector): Likewise.
14937         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
14938         functions to build the initial value.  Always return a gimple value.
14939         (get_initial_defs_for_reduction): Likewise.  Only compute
14940         neutral_vec once.
14941         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
14942         vect_init_vector on the results from get_initial_def(s)_for_reduction.
14943         (vectorizable_induction): Use gimple_build_vector rather than
14944         vect_init_vector.
14945
14946 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14947             Alan Hayward  <alan.hayward@arm.com>
14948             David Sherwood  <david.sherwood@arm.com>
14949
14950         * target.h (vec_perm_indices): New typedef.
14951         (auto_vec_perm_indices): Likewise.
14952         * optabs-query.h: Include target.h
14953         (can_vec_perm_p): Take a vec_perm_indices *.
14954         * optabs-query.c (can_vec_perm_p): Likewise.
14955         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
14956         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14957         * tree-vect-generic.c (lower_vec_perm): Likewise.
14958         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
14959         (vect_grouped_load_supported): Likewise.
14960         (vect_shift_permute_load_chain): Likewise.
14961         (vect_permute_store_chain): Use auto_vec_perm_indices.
14962         (vect_permute_load_chain): Likewise.
14963         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
14964         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
14965         Update uses of can_vec_perm_p.
14966         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
14967         mode with a number of elements.  Take a vec_perm_indices *.
14968         (vect_create_epilog_for_reduction): Update accordingly.
14969         Use auto_vec_perm_indices.
14970         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
14971         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
14972         (vect_transform_slp_perm_load): Likewise.
14973         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
14974         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
14975         (vect_gen_perm_mask_checked): Likewise.
14976         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
14977         (vect_gen_perm_mask_checked): Likewise.
14978         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
14979         (vectorizable_store): Likewise.
14980         (vectorizable_load): Likewise.
14981         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
14982         (vectorizable_bswap): Likewise.
14983
14984 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14985             Alan Hayward  <alan.hayward@arm.com>
14986             David Sherwood  <david.sherwood@arm.com>
14987
14988         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
14989         * tree.c (build_vector): Likewise.
14990         (build_vector_from_ctor): Update accordingly.
14991         (build_vector_from_val): Likewise.
14992         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
14993         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
14994         * tree-vect-generic.c (add_rshift): Likewise.
14995         (expand_vector_divmod): Likewise.
14996         (optimize_vector_constructor): Likewise.
14997         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
14998         (vect_transform_slp_perm_load): Likewise.
14999         (vect_schedule_slp_instance): Likewise.
15000         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
15001         (vectorizable_call): Likewise.
15002         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
15003         * expmed.c (make_tree): Likewise.
15004         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
15005         a vector passed to build_vector.
15006         (fold_convert_const): Likewise.
15007         (exact_inverse): Likewise.
15008         (fold_ternary_loc): Likewise.
15009         (fold_relational_const): Likewise.
15010         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
15011         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
15012         (const_unop): Likewise.  Store the reduction accumulator in a
15013         variable rather than an array.
15014         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
15015         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
15016         the new vector, rather than constructing it after the input arrays.
15017         (native_interpret_vector): Use auto_vec<tree> when building
15018         a vector passed to build_vector.  Add elements in order.
15019         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
15020         auto_vec<tree> when building a vector passed to build_vector.
15021         (vect_create_epilog_for_reduction): Likewise.
15022         (vectorizable_induction): Likewise.
15023         (get_initial_def_for_reduction): Likewise.  Fix indentation of
15024         case statements.
15025         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
15026         to a vec<tree> *.
15027         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
15028         passed to build_vector.
15029
15030 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15031             Alan Hayward  <alan.hayward@arm.com>
15032             David Sherwood  <david.sherwood@arm.com>
15033
15034         * tree-core.h (tree_base::u): Add an "nelts" field.
15035         (tree_vector): Use VECTOR_CST_NELTS as the length.
15036         * tree.c (tree_size): Likewise.
15037         (make_vector): Initialize VECTOR_CST_NELTS.
15038         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
15039         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
15040         TYPE_VECTOR_SUBPARTS.
15041         * expr.c (const_vector_mask_from_tree): Consistently use "units"
15042         as the number of units, setting it from VECTOR_CST_NELTS.
15043         (const_vector_from_tree): Likewise.
15044         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
15045         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
15046         (fold_negate_expr_1): Likewise.
15047         (fold_convert_const): Likewise.
15048         (const_binop): Likewise.  Differentiate the number of output and
15049         input elements.
15050         (const_unop): Likewise.
15051         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
15052         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
15053         in cases that did the opposite.
15054
15055 2017-09-14  Richard Biener  <rguenther@suse.de>
15056
15057         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
15058         to VN_TOP.
15059
15060 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
15061
15062         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
15063
15064 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
15065
15066         PR target/81325
15067         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
15068         if and where to split a bb, except for splitting before debug insn
15069         sequences followed by non-label real insn.  Delete debug insns
15070         in between basic blocks.
15071
15072         * combine.c (make_compound_operation_int): Formatting fixes.
15073
15074         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
15075         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15076         * config/netbsd.h (LINK_EH_SPEC): Likewise.
15077         * config/sol2.h (LINK_EH_SPEC): Likewise.
15078         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15079         * config/s390/linux.h (LINK_SPEC): Likewise.
15080         * config/freebsd.h (LINK_EH_SPEC): Likewise.
15081         * config/openbsd.h (LINK_EH_SPEC): Likewise.
15082         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15083         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
15084         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
15085         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15086         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
15087         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
15088
15089 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
15090
15091         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
15092         support.
15093         (ENDFILE_LINUX_SPEC): Likewise.
15094         (LINK_EH_SPEC): Likewise.
15095         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
15096         (LINK_OS_LINUX_SPEC32): Likewise.
15097         (LINK_OS_LINUX_SPEC64): Likewise.
15098         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
15099         (LINK_OS_LINUX_SPEC): Likewise.
15100
15101 2017-09-13  Martin Liska  <mliska@suse.cz>
15102
15103         PR middle-end/82154
15104         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
15105         CASE_HIGH is NULL_TREE.
15106
15107 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15108             Alan Hayward  <alan.hayward@arm.com>
15109             David Sherwood  <david.sherwood@arm.com>
15110
15111         * target.def (secondary_memory_needed): New hook.
15112         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
15113         instead of SECONDARY_MEMORY_NEEDED.
15114         (secondary_memory_needed_mode): Likewise.
15115         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
15116         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
15117         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
15118         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
15119         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
15120         * doc/tm.texi: Regenerate.
15121         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
15122         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
15123         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15124         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
15125         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
15126         * config/i386/i386.c (inline_secondary_memory_needed): Put the
15127         mode argument first and change the reg_class arguments to reg_class_t.
15128         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
15129         Make static.  Update the call to inline_secondary_memory_needed.
15130         (ix86_register_move_cost): Update the call to
15131         inline_secondary_memory_needed.
15132         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15133         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
15134         definition.
15135         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
15136         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15137         in comment.
15138         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
15139         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
15140         * config/mips/mips.c (mips_secondary_memory_needed): Make static
15141         and match hook interface.  Add comment from mips.h.
15142         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15143         * config/mmix/mmix.md (truncdfsf2): Refer to
15144         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15145         in comment.
15146         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
15147         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
15148         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15149         (pa_secondary_memory_needed): New function.
15150         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
15151         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
15152         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15153         (pdp11_secondary_memory_needed): Make static and match hook interface.
15154         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
15155         * config/powerpcspe/powerpcspe-protos.h
15156         (rs6000_secondary_memory_needed_ptr): Delete.
15157         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
15158         Delete.
15159         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15160         (rs6000_option_override_internal): Assign to
15161         targetm.secondary_memory_needed rather than
15162         rs6000_secondary_memory_needed_ptr.
15163         (rs6000_secondary_memory_needed): Match hook interface.
15164         (rs6000_debug_secondary_memory_needed): Likewise.
15165         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
15166         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
15167         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
15168         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15169         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
15170         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
15171         Delete.
15172         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
15173         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15174         (rs6000_option_override_internal): Assign to
15175         targetm.secondary_memory_needed rather than
15176         rs6000_secondary_memory_needed_ptr.
15177         (rs6000_secondary_memory_needed): Match hook interface.
15178         (rs6000_debug_secondary_memory_needed): Likewise.
15179         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
15180         * config/s390/s390.c (s390_secondary_memory_needed): New function.
15181         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15182         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
15183         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15184         (sparc_secondary_memory_needed): New function.
15185         * lra-constraints.c (check_and_process_move): Refer to
15186         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15187         in comment.
15188         (curr_insn_transform): Likewise.
15189         (process_alt_operands): Use targetm.secondary_memory_needed
15190         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15191         (check_secondary_memory_needed_p): Likewise.
15192         (choose_split_class): Likewise.
15193         * reload.c: Unconditionally include code that was previously
15194         conditional on SECONDARY_MEMORY_NEEDED.
15195         (push_secondary_reload): Use targetm.secondary_memory_needed
15196         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15197         (push_reload): Likewise.
15198         * reload1.c: Unconditionally include code that was previously
15199         conditional on SECONDARY_MEMORY_NEEDED.
15200         (choose_reload_regs): Use targetm.secondary_memory_needed
15201         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15202         (gen_reload): Likewise.
15203         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
15204
15205 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15206             Alan Hayward  <alan.hayward@arm.com>
15207             David Sherwood  <david.sherwood@arm.com>
15208
15209         * target.def (secondary_memory_needed_mode): New hook:
15210         * targhooks.c (default_secondary_memory_needed_mode): Declare.
15211         * targhooks.h (default_secondary_memory_needed_mode): New function.
15212         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
15213         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
15214         * doc/tm.texi: Regenerate.
15215         * lra-constraints.c (check_and_process_move): Use
15216         targetm.secondary_memory_needed_mode instead of
15217         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
15218         (curr_insn_transform): Likewise.
15219         * reload.c (get_secondary_mem): Likewise.
15220         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15221         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
15222         function.
15223         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15224         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15225         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
15226         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15227         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
15228         Delete.
15229         * config/powerpcspe/powerpcspe-protos.h
15230         (rs6000_secondary_memory_needed_mode): Delete.
15231         * config/powerpcspe/powerpcspe.c
15232         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15233         (rs6000_secondary_memory_needed_mode): Make static.
15234         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15235         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
15236         Delete.
15237         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15238         Redefine.
15239         (rs6000_secondary_memory_needed_mode): Make static.
15240         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15241         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
15242         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15243         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15244         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15245         Redefine.
15246         (sparc_secondary_memory_needed_mode): New function.
15247         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
15248
15249 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
15250
15251         * config/aarch64/constraints.md (Umq): New constraint.
15252         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15253         Change to use Umq.
15254         (mov<mode>): Update condition.
15255
15256 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15257
15258         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
15259         when bitposition is the same.
15260
15261 2017-09-13  Richard Biener  <rguenther@suse.de>
15262
15263         * dwarf2out.c (output_die_symbol): Remove.
15264         (output_die): Do not output a DIEs symbol.
15265
15266 2017-09-13  Richard Biener  <rguenther@suse.de>
15267
15268         PR middle-end/82128
15269         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
15270         default-def to avoid breaking iterator update with the weird
15271         interaction with cgraph_update_edges_for_call_stmt_node.
15272
15273 2017-09-13  Richard Biener  <rguenther@suse.de>
15274
15275         * tree-cfg.c (verify_gimple_assign_binary): Add verification
15276         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
15277         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
15278         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
15279
15280 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
15281
15282         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
15283         Disable pc relative literal load irrespective of
15284         TARGET_FIX_ERR_A53_84341 for default.
15285
15286 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
15287
15288         * config/sparc/sparc.c (output_return): Output the source location of
15289         the insn in the delay slot, if any.
15290         (output_sibcall): Likewise.
15291
15292 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
15293
15294         PR driver/81498
15295         * common.opt (-static-pie): New alias.
15296         (shared): Negate static-pie.
15297         (-no-pie): Update help text.
15298         (-pie): Likewise.
15299         (static-pie): New option.
15300         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
15301         -static-pie support.
15302         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
15303         (LINK_EH_SPEC): Likewise.
15304         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15305         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15306         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15307         * gcc.c (LINK_COMMAND_SPEC): Likewise.
15308         (init_gcc_specs): Likewise.
15309         (init_spec): Likewise.
15310         (display_help): Update help message for -pie.
15311         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
15312         -static-pie.
15313
15314 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
15315
15316         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
15317         (movdi_aarch64): Likewise.
15318         (movti_aarch64): Likewise.
15319
15320 2017-09-12 Simon Wright <simon@pushface.org>
15321
15322         PR target/80204
15323         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
15324         calculation of the minor version, always output as 0.
15325
15326 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15327
15328         PR target/82112
15329         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
15330         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
15331         on it early, rather than manual conversion late.  For
15332         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
15333         instead of performing manual conversion.
15334
15335 2017-09-12  Carl Love  <cel@us.ibm.com>
15336
15337         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
15338         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
15339         vmulouw, vmulosw.
15340         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
15341         VMULOSW): Add definitions.
15342         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15343         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
15344         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
15345         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
15346         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
15347
15348 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15349
15350         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
15351         types correctly.
15352         (movti_aarch64): Likewise.
15353         (movdf_aarch64): Likewise.
15354         (movtf_aarch64): Likewise.
15355         (load_pairdi): Likewise.
15356         (store_pairdi): Likewise.
15357         (load_pairdf): Likewise.
15358         (store_pairdf): Likewise.
15359         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
15360         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
15361         (ldr_got_small_<mode>): Likewise.
15362         (ldr_got_small_28k_<mode>): Likewise.
15363         (ldr_got_tiny): Likewise.
15364         * config/aarch64/iterators.md (ldst_sz): New.
15365         (ldpstp_sz): Likewise.
15366         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
15367         to store_16.
15368         (thunderx_load): Split load_8 to load_16.
15369         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
15370         load_8 to load_16.
15371         (thunderx2t99_storepair_basic): Split store_8 to store_16.
15372         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
15373         (xgene1_store_pair): Split store_8 to store_16.
15374         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
15375         (falkor_st_0_st_sd): Split store_8 to store_16.
15376
15377 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15378
15379         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
15380         and store1/2/3/4 to store_4/8/12/16.
15381         * config/aarch64/aarch64.md: Update for rename.
15382         * config/arm/arm.md: Likewise.: Likewise.
15383         * config/arm/arm.c: Likewise.
15384         * config/arm/thumb1.md: Likewise.
15385         * config/arm/thumb2.md: Likewise.
15386         * config/arm/vfp.md: Likewise.
15387         * config/arm/arm-generic.md: Likewise.
15388         * config/arm/arm1020e.md: Likewise.
15389         * config/arm/arm1026ejs.md: Likewise.
15390         * config/arm/arm1136jfs.md: Likewise.
15391         * config/arm/arm926ejs.md: Likewise.
15392         * config/arm/cortex-a15.md: Likewise.
15393         * config/arm/cortex-a17.md: Likewise.
15394         * config/arm/cortex-a5.md: Likewise.
15395         * config/arm/cortex-a53.md: Likewise.
15396         * config/arm/cortex-a57.md: Likewise.
15397         * config/arm/cortex-a7.md: Likewise.
15398         * config/arm/cortex-a8.md: Likewise.
15399         * config/arm/cortex-a9.md: Likewise.
15400         * config/arm/cortex-m4.md: Likewise.
15401         * config/arm/cortex-m7.md: Likewise.
15402         * config/arm/cortex-r4.md: Likewise.
15403         * config/arm/exynos-m1.md: Likewise.
15404         * config/arm/fa526.md: Likewise.
15405         * config/arm/fa606te.md: Likewise.
15406         * config/arm/fa626te.md: Likewise.
15407         * config/arm/fa726te.md: Likewise.
15408         * config/arm/fmp626.md: Likewise.
15409         * config/arm/iwmmxt.md: Likewise.
15410         * config/arm/ldmstm.md: Likewise.
15411         * config/arm/marvell-pj4.md: Likewise.
15412         * config/arm/xgene1.md: Likewise.
15413         * config/aarch64/thunderx.md: Likewise.
15414         * config/aarch64/thunderx2t99.md: Likewise.
15415         * config/aarch64/falkor.md: Likewise.
15416
15417 2017-09-12  Martin Liska  <mliska@suse.cz>
15418
15419         * attribs.c (private_lookup_attribute): New function.
15420         * attribs.h (private_lookup_attribute): Declared here.
15421         (lookup_attribute): Called from this place.
15422
15423 2017-09-12  Richard Biener  <rguenther@suse.de>
15424
15425         PR tree-optimization/82157
15426         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
15427         stmts with side-effects.
15428
15429 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15430             Alan Hayward  <alan.hayward@arm.com>
15431             David Sherwood <david.sherwood@arm.com>
15432
15433         * target.def (hard_regno_nregs): New hook.
15434         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
15435         * targhooks.h (default_hard_regno_nregs): Declare.
15436         * targhooks.c (default_hard_regno_nregs): New function.
15437         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
15438         (TARGET_HARD_REGNO_NREGS): ...this hook.
15439         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
15440         (CLASS_MAX_NREGS): Likewise.
15441         * doc/tm.texi: Regenerate.
15442         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
15443         instead of HARD_REGNO_NREGS.
15444         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
15445         HARD_REGNO_NREGS in the comment.
15446         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
15447         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
15448         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
15449         Return an unsigned int.
15450         (TARGET_HARD_REGNO_NREGS): Redefine.
15451         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
15452         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
15453         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15454         (arc_hard_regno_nregs): New function.
15455         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
15456         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
15457         (arm_hard_regno_nregs): New function.
15458         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
15459         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
15460         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
15461         (TARGET_HARD_REGNO_NREGS): Redefine.
15462         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
15463         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
15464         (HARD_REGNO_NREGS): Delete.
15465         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
15466         (cr16_hard_regno_nregs): New function.
15467         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
15468         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
15469         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
15470         (cris_hard_regno_nregs): New function.
15471         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
15472         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
15473         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15474         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
15475         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
15476         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
15477         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
15478         (frv_hard_regno_nregs): Make static.  Take and return an
15479         unsigned int.
15480         (frv_class_max_nregs): Remove outdated copy of documentation.
15481         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
15482         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
15483         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
15484         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
15485         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
15486         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
15487         (TARGET_HARD_REGNO_NREGS): Redefine.
15488         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
15489         (CLASS_MAX_NREGS): Update comment.
15490         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
15491         (ia64_hard_regno_nregs): New function.
15492         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
15493         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
15494         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
15495         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
15496         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
15497         an unsigned int.
15498         (m32c_hard_regno_nregs): Likewise.  Make static.
15499         (TARGET_HARD_REGNO_NREGS): Redefine.
15500         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
15501         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
15502         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
15503         (m68k_hard_regno_nregs): New function.
15504         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
15505         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
15506         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
15507         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
15508         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
15509         Take and return an unsigned int.
15510         (TARGET_HARD_REGNO_NREGS): Redefine.
15511         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
15512         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15513         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
15514         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
15515         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
15516         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
15517         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
15518         (msp430_hard_regno_nregs): Make static.  Take and return an
15519         unsigned int.
15520         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
15521         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
15522         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
15523         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
15524         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
15525         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
15526         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
15527         (TARGET_HARD_REGNO_NREGS): Redefine.
15528         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
15529         (PA_HARD_REGNO_NREGS): ...this.
15530         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
15531         (PA_HARD_REGNO_NREGS): ...this.
15532         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15533         (pa_hard_regno_nregs): New function.
15534         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
15535         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
15536         (pdp11_hard_regno_nregs): New function.
15537         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
15538         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
15539         (rs6000_hard_regno_nregs_hook): New function.
15540         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
15541         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
15542         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
15543         Take and return an unsigned int.  Move earlier in file.
15544         (TARGET_HARD_REGNO_NREGS): Redefine.
15545         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
15546         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
15547         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
15548         (rl78_hard_regno_nregs): Make static.  Take and return an
15549         unsigned int.
15550         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
15551         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
15552         (rs6000_hard_regno_nregs_hook): New function.
15553         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
15554         * config/rx/rx.c (rx_hard_regno_nregs): New function.
15555         (TARGET_HARD_REGNO_NREGS): Redefine.
15556         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
15557         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
15558         instead of HARD_REGNO_NREGS.
15559         (s390_hard_regno_nregs): New function.
15560         (s390_hard_regno_mode_ok): Add comment from s390.h.
15561         (TARGET_HARD_REGNO_NREGS): Redefine.
15562         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
15563         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
15564         (sh_hard_regno_nregs): New function.
15565         (sh_pass_in_reg_p): Use it.
15566         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
15567         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15568         (sparc_hard_regno_nregs): New function.
15569         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
15570         * config/spu/spu.c (spu_hard_regno_nregs): New function.
15571         (spu_function_arg_advance): Use it, supplying a valid register number.
15572         (TARGET_HARD_REGNO_NREGS): Redefine.
15573         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
15574         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
15575         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
15576         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
15577         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
15578         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
15579         (CLASS_MAX_NREGS): Remove copy of old documentation.
15580         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
15581         (visium_hard_regno_nregs): New function.
15582         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
15583         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
15584         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15585         xtensa_hard_regno_nregs): New function.
15586         * system.h (HARD_REGNO_NREGS): Poison.
15587
15588 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15589
15590         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
15591         hard_regno_nregs instead of HARD_REGNO_NREGS.
15592         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15593         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
15594         (c6x_expand_epilogue): Likewise.
15595         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15596         (frv_read_iacc_argument): Likewise.
15597         * config/sh/sh.c: Include regs.h.
15598         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15599         (regs_used): Likewise.
15600         (output_stack_adjust): Likewise.
15601         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
15602         * expmed.c: Include regs.h.
15603         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15604         * ree.c: Include regs.h.
15605         (combine_reaching_defs): Use hard_regno_nregs instead of
15606         HARD_REGNO_NREGS.
15607         (add_removable_extension): Likewise.
15608
15609 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15610
15611         * regs.h (hard_regno_nregs): Turn into a function.
15612         (end_hard_regno): Update accordingly.
15613         * caller-save.c (setup_save_areas): Likewise.
15614         (save_call_clobbered_regs): Likewise.
15615         (replace_reg_with_saved_mem): Likewise.
15616         (insert_restore): Likewise.
15617         (insert_save): Likewise.
15618         * combine.c (can_change_dest_mode): Likewise.
15619         (move_deaths): Likewise.
15620         (distribute_notes): Likewise.
15621         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
15622         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
15623         (rs6000_split_multireg_move): Likewise.
15624         (rs6000_register_move_cost): Likewise.
15625         (rs6000_memory_move_cost): Likewise.
15626         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
15627         (rs6000_split_multireg_move): Likewise.
15628         (rs6000_register_move_cost): Likewise.
15629         (rs6000_memory_move_cost): Likewise.
15630         * cselib.c (cselib_reset_table): Likewise.
15631         (cselib_lookup_1): Likewise.
15632         * emit-rtl.c (set_mode_and_regno): Likewise.
15633         * function.c (aggregate_value_p): Likewise.
15634         * ira-color.c (setup_profitable_hard_regs): Likewise.
15635         (check_hard_reg_p): Likewise.
15636         (calculate_saved_nregs): Likewise.
15637         (assign_hard_reg): Likewise.
15638         (improve_allocation): Likewise.
15639         (calculate_spill_cost): Likewise.
15640         * ira-emit.c (modify_move_list): Likewise.
15641         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
15642         (ira_hard_reg_in_set_p): Likewise.
15643         * ira.c (setup_reg_mode_hard_regset): Likewise.
15644         (clarify_prohibited_class_mode_regs): Likewise.
15645         (check_allocation): Likewise.
15646         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15647         (lra_setup_reg_renumber): Likewise.
15648         (setup_try_hard_regno_pseudos): Likewise.
15649         (spill_for): Likewise.
15650         (assign_hard_regno): Likewise.
15651         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
15652         * lra-constraints.c (in_class_p): Likewise.
15653         (lra_constraint_offset): Likewise.
15654         (simplify_operand_subreg): Likewise.
15655         (lra_constraints): Likewise.
15656         (split_reg): Likewise.
15657         (split_if_necessary): Likewise.
15658         (invariant_p): Likewise.
15659         (inherit_in_ebb): Likewise.
15660         * lra-lives.c (process_bb_lives): Likewise.
15661         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
15662         (get_hard_regs): Likewise.
15663         (do_remat): Likewise.
15664         * lra-spills.c (assign_spill_hard_regs): Likewise.
15665         * mode-switching.c (create_pre_exit): Likewise.
15666         * postreload.c (reload_combine_recognize_pattern): Likewise.
15667         * recog.c (peep2_find_free_register): Likewise.
15668         * regcprop.c (kill_value_regno): Likewise.
15669         (set_value_regno): Likewise.
15670         (copy_value): Likewise.
15671         (maybe_mode_change): Likewise.
15672         (find_oldest_value_reg): Likewise.
15673         (copyprop_hardreg_forward_1): Likewise.
15674         * regrename.c (check_new_reg_p): Likewise.
15675         (regrename_do_replace): Likewise.
15676         * reload.c (push_reload): Likewise.
15677         (combine_reloads): Likewise.
15678         (find_dummy_reload): Likewise.
15679         (operands_match_p): Likewise.
15680         (find_reloads): Likewise.
15681         (find_equiv_reg): Likewise.
15682         (reload_adjust_reg_for_mode): Likewise.
15683         * reload1.c (count_pseudo): Likewise.
15684         (count_spilled_pseudo): Likewise.
15685         (find_reg): Likewise.
15686         (clear_reload_reg_in_use): Likewise.
15687         (free_for_value_p): Likewise.
15688         (allocate_reload_reg): Likewise.
15689         (choose_reload_regs): Likewise.
15690         (reload_adjust_reg_for_temp): Likewise.
15691         (emit_reload_insns): Likewise.
15692         (delete_output_reload): Likewise.
15693         * rtlanal.c (subreg_get_info): Likewise.
15694         * sched-deps.c (sched_analyze_reg): Likewise.
15695         * sel-sched.c (init_regs_for_mode): Likewise.
15696         (mark_unavailable_hard_regs): Likewise.
15697         (choose_best_reg_1): Likewise.
15698         (verify_target_availability): Likewise.
15699         * valtrack.c (dead_debug_insert_temp): Likewise.
15700         * var-tracking.c (track_loc_p): Likewise.
15701         (emit_note_insn_var_location): Likewise.
15702         * varasm.c (make_decl_rtl): Likewise.
15703         * reginfo.c (choose_hard_reg_mode): Likewise.
15704         (init_reg_modes_target): Refer directly to
15705         this_target_regs->x_hard_regno_nregs.
15706
15707 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15708
15709         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
15710         instead of hard_regno_nregs.
15711
15712 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15713
15714         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
15715         end_hard_regno instead of hard_regno_nregs.
15716         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
15717         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
15718         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
15719         * ira-color.c (improve_allocation): Likewise.
15720         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15721         * lra-lives.c (mark_regno_live): Likewise.
15722         (mark_regno_dead): Likewise.
15723         * lra-remat.c (operand_to_remat): Likewise.
15724         * lra.c (collect_non_operand_hard_regs): Likewise.
15725         * postreload.c (reload_combine_note_store): Likewise.
15726         (move2add_valid_value_p): Likewise.
15727         * reload.c (regno_clobbered_p): Likewise.
15728
15729 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15730
15731         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
15732         hard_regno_nregs.
15733         * config/v850/v850.c (v850_reorg): Likewise.
15734         * reload.c (refers_to_regno_for_reload_p): Likewise.
15735         (find_equiv_reg): Likewise.
15736         * reload1.c (reload_reg_reaches_end_p): Likewise.
15737
15738 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15739
15740         * caller-save.c (add_used_regs): Use REG_NREGS instead of
15741         hard_regno_nregs.
15742         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
15743         * config/arm/arm.c (output_move_neon): Likewise.
15744         (arm_attr_length_move_neon): Likewise.
15745         (neon_split_vcombine): Likewise.
15746         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
15747         (c6x_mark_reg_written): Likewise.
15748         (c6x_dwarf_register_span): Likewise.
15749         * config/i386/i386.c (ix86_save_reg): Likewise.
15750         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
15751         (rws_access_reg): Likewise.
15752         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15753         * mode-switching.c (create_pre_exit): Likewise.
15754         * ree.c (combine_reaching_defs): Likewise.
15755         (add_removable_extension): Likewise.
15756         * regcprop.c (find_oldest_value_reg): Likewise.
15757         (copyprop_hardreg_forward_1): Likewise.
15758         * reload.c (reload_inner_reg_of_subreg): Likewise.
15759         (push_reload): Likewise.
15760         (combine_reloads): Likewise.
15761         (find_dummy_reload): Likewise.
15762         (reload_adjust_reg_for_mode): Likewise.
15763         * reload1.c (find_reload_regs): Likewise.
15764         (forget_old_reloads_1): Likewise.
15765         (reload_reg_free_for_value_p): Likewise.
15766         (reload_adjust_reg_for_temp): Likewise.
15767         (emit_reload_insns): Likewise.
15768         (delete_output_reload): Likewise.
15769         * sel-sched.c (choose_best_reg_1): Likewise.
15770         (choose_best_pseudo_reg): Likewise.
15771
15772 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15773             Alan Hayward  <alan.hayward@arm.com>
15774             David Sherwood <david.sherwood@arm.com>
15775
15776         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
15777         * target.def (slow_unaligned_access): New hook.
15778         * targhooks.h (default_slow_unaligned_access): Declare.
15779         * targhooks.c (default_slow_unaligned_access): New function.
15780         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
15781         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
15782         * doc/tm.texi: Regenerate.
15783         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
15784         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
15785         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
15786         definition.
15787         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
15788         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
15789         Redefine.
15790         (rs6000_slow_unaligned_access): New function.
15791         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15792         (expand_block_compare): Likewise.
15793         (expand_strn_compare): Likewise.
15794         (rs6000_rtx_costs): Likewise.
15795         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
15796         (riscv_slow_unaligned_access): Likewise.
15797         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
15798         (riscv_slow_unaligned_access_p): ...this and make static.
15799         (riscv_option_override): Update accordingly.
15800         (riscv_slow_unaligned_access): New function.
15801         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15802         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
15803         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15804         (rs6000_slow_unaligned_access): New function.
15805         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15806         (rs6000_rtx_costs): Likewise.
15807         * config/rs6000/rs6000-string.c (expand_block_compare)
15808         (expand_strn_compare): Use targetm.slow_unaligned_access instead
15809         of SLOW_UNALIGNED_ACCESS.
15810         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
15811         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
15812         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
15813         of SLOW_UNALIGNED_ACCESS.
15814         * expmed.c (simple_mem_bitfield_p): Likewise.
15815         * expr.c (alignment_for_piecewise_move): Likewise.
15816         (emit_group_load_1): Likewise.
15817         (emit_group_store): Likewise.
15818         (copy_blkmode_from_reg): Likewise.
15819         (emit_push_insn): Likewise.
15820         (expand_assignment): Likewise.
15821         (store_field): Likewise.
15822         (expand_expr_real_1): Likewise.
15823         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
15824         * lra-constraints.c (simplify_operand_subreg): Likewise.
15825         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
15826         * gimple-ssa-store-merging.c: Likewise in block comment at start
15827         of file.
15828         * tree-ssa-strlen.c: Include target.h.
15829         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
15830         of SLOW_UNALIGNED_ACCESS.
15831         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
15832
15833 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15834
15835         PR rtl-optimization/82185
15836         * expmed.c (emit_store_flag_int): Only test tem if it has been
15837         initialized.
15838
15839 2017-09-12  Richard Biener  <rguenther@suse.de>
15840
15841         PR middle-end/82149
15842         * match.pd ((FTYPE) N CMP CST): Fix typo.
15843
15844 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
15845
15846         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
15847         attribute.
15848         (mips_near_type_p): Add 'short_call' attribute as a synonym
15849         for 'near'.
15850         * doc/extend.texi (short_call): Document new function attribute.
15851
15852 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15853
15854         PR target/82112
15855         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
15856         assertion check that in the condition.
15857         (get_atomic_generic_size): Likewise.  Before testing if parameter
15858         has pointer type, if it has array type, call for C++
15859         default_conversion to perform array-to-pointer conversion.
15860
15861 2017-09-12  Richard Biener  <rguenther@suse.de>
15862
15863         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
15864         for operations we cannot scalarize.
15865
15866 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
15867
15868         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
15869         vectors heap vectors.  Clean up comments.
15870         Make visited_bbs a reference.
15871         (profitable_jump_thread_path): Make GC
15872         vectors heap vectors.  Clean up comments.
15873         Misc cleanups.
15874         (convert_and_register_jump_thread_path): Make GC vectors heap
15875         vectors.
15876         (check_subpath_and_update_thread_path): Same.  Clean up comments.
15877         Make visited_bbs a reference.
15878         (handle_phi): Abstract common code to to
15879         register_jump_thread_path_if_profitable.
15880         Rename VAR_BB to DEF_BB.
15881         Update comments.
15882         Make GC vectors heap vectors.
15883         Make visited_bbs a reference.
15884         (handle_assignment): Same.
15885         (register_jump_thread_path_if_profitable): New.
15886         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
15887         DEF_BB.
15888         Make GC vectors heap vectors.  Clean up comments.
15889         Make visited_bbs a reference.
15890         (find_jump_threads_backwards): Make visited_bbs live in the stack.
15891         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
15892         comment.
15893
15894 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
15895
15896         PR target/82181
15897         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
15898         words of E_DImode object are reachable by xtensa_uimm8x4 access.
15899
15900 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
15901
15902         Revert r251800 and r251799.
15903
15904 2017-09-11  Martin Jambor  <mjambor@suse.cz>
15905
15906         PR hsa/82119
15907         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
15908         arguments in advance.
15909         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
15910         use it to find predecessor edges.
15911         (naive_outof_ssa): Collect vector of predecessors.
15912
15913 2017-09-08  Jason Merrill  <jason@redhat.com>
15914
15915         PR c++/70029 - ICE with ref-qualifier and -flto
15916         * langhooks.h (struct lang_hooks_for_types): Add
15917         copy_lang_qualifiers.
15918         * attribs.c (build_type_attribute_qual_variant): Use it.
15919         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
15920         NULL.
15921         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
15922         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
15923
15924 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
15925
15926         PR target/81988
15927         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
15928         (*mulsi3_sp64): New instruction.
15929         (mulsi3): New expander.
15930
15931 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
15932
15933         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
15934
15935 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15936
15937         * sancov.c: Include memmodel.h.
15938
15939 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
15940
15941         PR target/80897
15942         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
15943         large offsets.
15944
15945 2017-09-07  Carl Love  <cel@us.ibm.com>
15946
15947         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
15948         the sldi instruction.
15949
15950 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
15951
15952         * sancov.c: Include tm_p.h.
15953
15954 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
15955
15956         PR target/81979
15957         * output.h (switch_to_other_text_partition): New declaration.
15958         * varasm.c (switch_to_other_text_partition): New function.
15959         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
15960         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
15961         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
15962         to the other text partition before emitting LCL label and switch back
15963         after emitting the word after it.
15964
15965 2017-09-07  Richard Biener  <rguenther@suse.de>
15966
15967         * passes.def (pass_split_crit_edges): Remove instance before PRE.
15968         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
15969         critical edges here, after loop init.
15970         (pass_data_pre): Remove PROP_no_crit_edges flags.
15971         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
15972         for valueization of call args to avoid leaking VN_TOP.
15973         (visit_use): Assert we do not visit default defs.
15974         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
15975         Use error_mark_node to more easily detect leaking VN_TOP.
15976         All default-defs are varying, not VN_TOP.  Mark them visited.
15977         (run_scc_vn): Make code match comment.
15978
15979 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
15980
15981         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
15982         OPTION_MASK_FLOAT128_KEYWORD.
15983         (POWERPC_MASKS): Likewise.
15984         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
15985         support for the -mfloat128-type option, and make -mfloat128
15986         default on PowerPC Linux systems.  Define or undefine
15987         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
15988         Define __float128 to be __ieee128 if IEEE 128-bit support is
15989         enabled, or undefine it.
15990         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
15991         Delete defining __FLOAT128_TYPE__.
15992         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
15993         -mfloat128-type option and make -mfloat128 default on PowerPC
15994         Linux systems.
15995         (TARGET_FLOAT128_TYPE): Likewise.
15996         (-mfloat128-type): Likewise.
15997         * config/rs6000/rs6000.c (rs6000_option_override_internal):
15998         Delete the -mfloat128-type option and make -mfloat128 default on
15999         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
16000         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
16001         128-bit floating point is enabled.  Change tests from using
16002         -mfloat128-type to -mfloat128.
16003         (rs6000_mangle_type): Use the correct mangling for the __float128
16004         type even if normal long double is restricted to 64-bits.
16005         (floatn_mode): Enable the _Float128 type by default on VSX Linux
16006         systems.
16007         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
16008         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
16009         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
16010         -mfloat128-type.
16011         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
16012         documentation for -mfloat128.
16013
16014 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16015
16016         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
16017
16018 2017-09-06  Wish Wu  <wishwu007@gmail.com>
16019             Jakub Jelinek  <jakub@redhat.com>
16020
16021         * asan.c (initialize_sanitizer_builtins): Add
16022         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
16023         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
16024         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
16025         BT_FN_VOID_UINT64_PTR variables.
16026         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
16027         (BT_FN_VOID_UINT16_UINT16): Likewise.
16028         (BT_FN_VOID_UINT32_UINT32): Likewise.
16029         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
16030         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
16031         (BT_FN_VOID_UINT64_PTR): Likewise.
16032         * common.opt (flag_sanitize_coverage): New variable.
16033         (fsanitize-coverage=trace-pc): Remove.
16034         (fsanitize-coverage=): Add.
16035         * flag-types.h (enum sanitize_coverage_code): New enum.
16036         * fold-const.c (fold_range_test): Disable non-short-circuit
16037         optimization if flag_sanitize_coverage.
16038         (fold_truth_andor): Likewise.
16039         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
16040         * opts.c (COVERAGE_SANITIZER_OPT): Define.
16041         (coverage_sanitizer_opts): New array.
16042         (get_closest_sanitizer_option): Add OPTS argument, handle also
16043         OPT_fsanitize_coverage_.
16044         (parse_sanitizer_options): Adjusted to also handle
16045         OPT_fsanitize_coverage_.
16046         (common_handle_option): Add OPT_fsanitize_coverage_.
16047         * sancov.c (instrument_comparison, instrument_switch): New function.
16048         (sancov_pass): Add trace-cmp support.
16049         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
16050         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
16051         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
16052         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
16053         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
16054         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
16055         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
16056         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
16057         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
16058         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
16059
16060 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16061
16062         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
16063         error.  Only quit immediately if parsing is complete.
16064         (BEGIN): Initialize fatal_err and parse_done.
16065         (begin fpu, end fpu): Check number of arguments.
16066         (begin arch, end arch): Likewise.
16067         (begin cpu, end cpu): Likewise.
16068         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
16069         (optalias): Likewise.
16070
16071 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16072
16073         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
16074         * config/arm/arm-isa.h: Delete.  Move definitions to ...
16075         * arm-cpus.in: ... here.  Use new feature and fgroup values.
16076         * config/arm/arm.c (arm_option_override): Use lower case for feature
16077         bit names.
16078         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
16079         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
16080         * config/arm/parsecpu.awk (END): Add new command 'isa'.
16081         (isa_pfx): Delete.
16082         (print_isa_bits_for): New function.
16083         (gen_isa): New function.
16084         (gen_comm_data): Use print_isa_bits_for.
16085         (define feature): New keyword.
16086         (define fgroup): New keyword.
16087         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
16088         (arm-isa.h): Add rule to generate file.
16089         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
16090         case for feature bit names.
16091
16092 2017-09-06  Richard Biener  <rguenther@suse.de>
16093
16094         * tree-ssa-pre.c (NECESSARY): Remove.
16095         (create_expression_by_pieces): Do not touch pass-local flags.
16096         (insert_into_preds_of_block): Likewise.
16097         (do_pre_regular_insertion): Likewise.
16098         (eliminate_insert): Likewise.
16099         (eliminate_dom_walker::before_dom_children): Likewise.
16100         (fini_eliminate): Do not look at inserted_exprs.
16101         (mark_operand_necessary): Remove.
16102         (remove_dead_inserted_code): Replace with simple work-list
16103         algorithm based on inserted_exprs and SSA uses.
16104         (pass_pre::execute): Re-order fini_eliminate and
16105         remove_dead_inserted_code.
16106
16107 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16108
16109         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
16110         for VxWorks 7.  Adjust surrounding comments.
16111
16112 2017-09-06  Richard Biener  <rguenther@suse.de>
16113
16114         * gimple-ssa-strength-reduction.c
16115         (find_candidates_dom_walker::before_dom_children): Also allow
16116         pointer types.
16117
16118 2017-09-06  Richard Biener  <rguenther@suse.de>
16119
16120         PR tree-optimization/82108
16121         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
16122         for gap in the non-permutation SLP case.
16123
16124 2017-09-06  Martin Jambor  <mjambor@suse.cz>
16125
16126         PR tree-optimization/82078
16127         * tree-sra.c (sort_and_splice_var_accesses): Move call to
16128         add_access_to_work_queue...
16129         (build_accesses_from_assign): ...here.
16130         (propagate_all_subaccesses): Make sure racc is the group
16131         representative, if there is one.
16132
16133 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
16134
16135         PR middle-end/82095
16136         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
16137         NULL DECL_INITIAL.
16138
16139 2017-09-06  Richard Biener  <rguenther@suse.de>
16140
16141         * gimple-ssa-strength-reduction.c
16142         (find_candidates_dom_walker::before_doom_children): Use a
16143         type and not a mode check.
16144
16145 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16146
16147         PR target/77308
16148         * config/arm/predicates.md (arm_general_adddi_operand): Create new
16149         non-vfp predicate.
16150         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
16151
16152 2017-09-05  Jeff Law  <law@redhat.com>
16153
16154         PR tree-optimization/64910
16155         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
16156         cases where we have 3 or more operands.
16157
16158 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
16159
16160         PR middle-end/81768
16161         * omp-low.c (lower_omp_for): Recompute tree invariant if
16162         gimple_omp_for_initial/final is ADDR_EXPR.
16163
16164         PR middle-end/81768
16165         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
16166         into gimple val before gimplification fo the COND_EXPR.
16167
16168 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
16169
16170         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
16171         REGION_COPY argument.
16172         (thread_through_all_blocks): Remove unused argument to
16173         duplicate_thread_path.
16174
16175 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16176             Alan Hayward  <alan.hayward@arm.com>
16177             David Sherwood  <david.sherwood@arm.com>
16178
16179         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
16180         Take a scalar_mode rather than a machine_mode.
16181         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16182         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
16183         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16184         (aarch64_gen_adjusted_ldpstp): Likewise.
16185         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
16186
16187 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16188             Alan Hayward  <alan.hayward@arm.com>
16189             David Sherwood  <david.sherwood@arm.com>
16190
16191         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
16192         Take a scalar_int_mode instead of a machine_mode.
16193         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16194         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16195         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16196         (aarch64_simd_attr_length_rglist): Delete.
16197         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
16198         a scalar_int_mode instead of a machine_mode.
16199         (aarch64_add_offset): Likewise.
16200         (aarch64_internal_mov_immediate): Likewise
16201         (aarch64_add_constant_internal): Likewise.
16202         (aarch64_add_constant): Likewise.
16203         (aarch64_movw_imm): Likewise.
16204         (aarch64_rtx_arith_op_extract_p): Likewise.
16205         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16206         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16207         Remove assert that the mode isn't a vector.
16208         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16209         (aarch64_expand_mov_immediate): Update calls after above changes.
16210         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
16211         (aarch64_and_bitmask_imm): Check for scalar integer modes.
16212         (aarch64_move_imm): Likewise.
16213         (aarch64_can_const_movi_rtx_p): Likewise.
16214         (aarch64_strip_extend): Likewise.
16215         (aarch64_extr_rtx_p): Likewise.
16216         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
16217         a CONST_INT when the mode parameter is VOIDmode.
16218         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
16219
16220 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16221
16222         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
16223         * stor-layout.c (bitwise_mode_for_mode): Likewise.
16224         (bitwise_type_for_mode): Update accordingly.
16225
16226 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16227
16228         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
16229         * stor-layout.c (mode_for_size_tree): Likewise.
16230         (mode_for_array): Update accordingly.
16231         (layout_decl): Likewise.
16232         (compute_record_mode): Likewise.  Only set the mode once.
16233
16234 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16235
16236         * target.def (get_mask_mode): Change return type to opt_mode.
16237         Expand commentary.
16238         * doc/tm.texi: Regenerate.
16239         * targhooks.h (default_get_mask_mode): Return an opt_mode.
16240         * targhooks.c (default_get_mask_mode): Likewise.
16241         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
16242         * optabs-query.c (can_vec_mask_load_store_p): Update use of
16243         targetm.get_mask_mode.
16244         * tree.c (build_truth_vector_type): Likewise.
16245
16246 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16247
16248         * machmode.h (mode_for_vector): Return an opt_mode.
16249         * stor-layout.c (mode_for_vector): Likewise.
16250         (mode_for_int_vector): Update accordingly.
16251         (layout_type): Likewise.
16252         * config/i386/i386.c (emit_memmov): Likewise.
16253         (ix86_expand_set_or_movmem): Likewise.
16254         (ix86_expand_vector_init): Likewise.
16255         (ix86_get_mask_mode): Likewise.
16256         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
16257         Likewise.
16258         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
16259         * expmed.c (extract_bit_field_1): Likewise.
16260         * expr.c (expand_expr_real_2): Likewise.
16261         * optabs-query.c (can_vec_perm_p): Likewise.
16262         (can_vec_mask_load_store_p): Likewise.
16263         * optabs.c (expand_vec_perm): Likewise.
16264         * targhooks.c (default_get_mask_mode): Likewise.
16265         * tree-vect-stmts.c (vectorizable_store): Likewise.
16266         (vectorizable_load): Likewise.
16267         (get_vectype_for_scalar_type_and_size): Likewise.
16268
16269 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16270
16271         * machmode.h (mode_for_int_vector): New function.
16272         * stor-layout.c (mode_for_int_vector): Likewise.
16273         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
16274         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
16275         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
16276         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
16277         (s390_expand_vcond): Likewise.
16278
16279 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16280
16281         * machmode.h (opt_machine_mode): New type.
16282         (opt_mode<T>): Allow construction from anything that can be
16283         converted to a T.
16284         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
16285         (mode_for_size): Return an opt_machine_mode.
16286         * stor-layout.c (mode_for_size): Likewise.
16287         (mode_for_size_tree): Update call accordingly.
16288         (bitwise_mode_for_mode): Likewise.
16289         (make_fract_type): Likewise.
16290         (make_accum_type): Likewise.
16291         * caller-save.c (replace_reg_with_saved_mem): Update call
16292         accordingly.
16293         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16294         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16295         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16296         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16297         * expmed.c (extract_bit_field_1): Likewise.
16298         * reload.c (get_secondary_mem): Likewise.
16299         * varasm.c (assemble_integer): Likewise.
16300         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
16301         early-out.
16302
16303 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16304
16305         * machmode.h (decimal_float_mode_for_size): New function.
16306         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
16307         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
16308         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
16309         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
16310         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
16311         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
16312
16313 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16314
16315         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
16316         (get_builtin_sync_mode): Likewise.
16317         (expand_ifn_atomic_compare_exchange): Likewise.
16318         (expand_builtin_atomic_clear): Likewise.
16319         (expand_builtin_atomic_test_and_set): Likewise.
16320         (fold_builtin_atomic_always_lock_free): Likewise.
16321         * calls.c (compute_argument_addresses): Likewise.
16322         (emit_library_call_value_1): Likewise.
16323         (store_one_arg): Likewise.
16324         * combine.c (combine_instructions): Likewise.
16325         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
16326         * config/arm/arm.c (arm_function_value): Likewise.
16327         (aapcs_allocate_return_reg): Likewise.
16328         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
16329         * config/i386/i386.c (construct_container): Likewise.
16330         (ix86_gimplify_va_arg): Likewise.
16331         (ix86_expand_sse_cmp): Likewise.
16332         (emit_memmov): Likewise.
16333         (emit_memset): Likewise.
16334         (expand_small_movmem_or_setmem): Likewise.
16335         (ix86_expand_pextr): Likewise.
16336         (ix86_expand_pinsr): Likewise.
16337         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
16338         * config/microblaze/microblaze.c (microblaze_block_move_straight):
16339         Likewise.
16340         * config/mips/mips.c (mips_function_value_1) Likewise.
16341         (mips_block_move_straight): Likewise.
16342         (mips_expand_ins_as_unaligned_store): Likewise.
16343         * config/powerpcspe/powerpcspe.c
16344         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16345         (rs6000_darwin64_record_arg_flush): Likewise.
16346         * config/rs6000/rs6000.c
16347         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16348         (rs6000_darwin64_record_arg_flush): Likewise.
16349         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
16350         (sparc_function_value_1): Likewise.
16351         * config/spu/spu.c (adjust_operand): Likewise.
16352         (spu_emit_branch_or_set): Likewise.
16353         (arith_immediate_p): Likewise.
16354         * emit-rtl.c (gen_lowpart_common): Likewise.
16355         * expr.c (expand_expr_real_1): Likewise.
16356         * function.c (assign_parm_setup_block): Likewise.
16357         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
16358         * reload1.c (alter_reg): Likewise.
16359         * stor-layout.c (mode_for_vector): Likewise.
16360         (layout_type): Likewise.
16361
16362 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16363
16364         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
16365         (spu_convert_move): Likewise.
16366         * lower-subreg.c (resolve_simple_move): Likewise.
16367
16368 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16369
16370         PR target/81833
16371         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
16372         define_insn to a define_expand.
16373         (altivec_vsum2sws_direct): New define_insn.
16374         (altivec_vsumsws): Convert from a define_insn to a define_expand.
16375
16376 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16377
16378         * config/arm/arm.c (arm_option_params_internal): Improve setting of
16379         max_insns_skipped.
16380
16381 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
16382
16383         PR target/59501
16384         PR target/81624
16385         PR target/81769
16386         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
16387         realign stack if stack alignment needed is less than incoming
16388         stack boundary.
16389
16390 2017-09-05  Marek Polacek  <polacek@redhat.com>
16391
16392         PR sanitizer/82072
16393         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
16394         check earlier.
16395
16396 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16397
16398         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
16399
16400 2017-09-05  Richard Biener  <rguenther@suse.de>
16401
16402         PR tree-optimization/82084
16403         * fold-const.c (can_native_encode_string_p): Handle wide characters.
16404
16405 2017-09-05  Richard Biener  <rguenther@suse.de>
16406
16407         PR tree-optimization/82102
16408         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
16409
16410 2017-09-05  Martin Liska  <mliska@suse.cz>
16411
16412         PR tree-optimization/82032
16413         * tree-cfg.c (generate_range_test): New function.
16414         * tree-cfg.h (generate_range_test): Declared here.
16415         * tree-cfgcleanup.c (convert_single_case_switch): New function.
16416         (cleanup_control_expr_graph): Use it.
16417         * tree-switch-conversion.c (try_switch_expansion): Remove
16418         assert.
16419         (emit_case_nodes): Use generate_range_test.
16420
16421 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16422
16423         PR target/82098
16424         * config/i386/i386.md (*<btsc><mode>_mask): Add
16425         TARGET_USE_BT to insn constraint.
16426         (*btr<mode>_mask): Ditto.
16427
16428 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
16429
16430         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
16431         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
16432
16433 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16434
16435         PR target/77308
16436         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
16437         TARGET_NEON and TARGET_IWMMXT.
16438         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
16439         TARGET_NEON and TARGET_IWMMXT.
16440         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
16441
16442 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16443
16444         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
16445         (ix86_rewrite_tls_address): Ditto.
16446         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
16447         (ix86_rewrite_tls_address_1): Ditto.
16448         (ix86_rewrite_tls_address): Ditto.
16449         * config/i386/predicates.md (tls_address_pattern): New predicate.
16450         * config/i386/i386.md (TLS address splitter): New splitter.
16451
16452 2017-09-04  Richard Biener  <rguenther@suse.de>
16453
16454         PR tree-optimization/82084
16455         * fold-const.h (can_native_encode_string_p): Declare.
16456         * fold-const.c (can_native_encode_string_p): Factor out from ...
16457         (native_encode_string): ... here.
16458         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
16459         vectorizing stores from constants we later cannot handle.
16460
16461 2017-09-04  Marek Polacek  <polacek@redhat.com>
16462
16463         PR c/81783
16464         * doc/invoke.texi: Update -Wtautological-compare documentation.
16465
16466 2017-09-04  Jeff Law  <law@redhat.com>
16467
16468         PR tree-optimization/64910
16469         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
16470         swap the first and last operand if the last is a constant.
16471
16472 2017-09-04  Marek Polacek  <polacek@redhat.com>
16473
16474         PR sanitizer/82072
16475         * convert.c (do_narrow): When sanitizing signed integer overflows,
16476         bail out for signed types.
16477         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
16478
16479 2017-09-04  Richard Biener  <rguenther@suse.de>
16480
16481         PR tree-optimization/82060
16482         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16483         Move devirtualization after stmt folding and before EH/AB/noreturn
16484         cleanup to get the stmt refs canonicalized.  Use a bool instead
16485         of gimple_modified_p since that doesn't work for NOPs.  Schedule
16486         NOPs generated by folding for removal.
16487
16488 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16489             Alan Hayward  <alan.hayward@arm.com>
16490             David Sherwood  <david.sherwood@arm.com>
16491
16492         * coretypes.h (pad_direction): New enum.
16493         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
16494         (FUNCTION_ARG_PADDING): Likewise.
16495         * target.def (function_arg_padding): New hook.
16496         * targhooks.h (default_function_arg_padding): Declare.
16497         * targhooks.c (default_function_arg_padding): New function.
16498         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
16499         (TARGET_FUNCTION_ARG_PADDING): ...this.
16500         * doc/tm.texi: Regenerate.
16501         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
16502         instead of direction.
16503         (compute_argument_addresses): Likewise.
16504         (load_register_parameters): Likewise.
16505         (emit_library_call_value_1): Likewise.
16506         (store_one_arg): Use targetm.calls.function_arg_padding instead
16507         of FUNCTION_ARG_PADDING.
16508         (must_pass_in_stack_var_size_or_pad): Likewise.
16509         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
16510         (emit_group_store): Likewise.
16511         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
16512         instead of FUNCTION_ARG_PADDING.
16513         (emit_push_insn): Likewise, and propagate enum change throughout
16514         function.
16515         * function.h (direction): Delete.
16516         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
16517         of direction.
16518         * function.c (assign_parm_find_stack_rtl): Likewise.
16519         (assign_parm_setup_block_p): Likewise.
16520         (assign_parm_setup_block): Likewise.
16521         (gimplify_parameters): Likewise.
16522         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
16523         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
16524         function.
16525         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
16526         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16527         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
16528         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
16529         (aarch64_function_arg_padding): ...this new function.
16530         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
16531         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16532         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
16533         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16534         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
16535         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16536         (arm_pad_arg_upward): Replace with...
16537         (arm_function_arg_padding): ...this new function.
16538         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
16539         of direction.
16540         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
16541         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
16542         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16543         (ia64_hpux_function_arg_padding): Replace with...
16544         (ia64_function_arg_padding): ...this new function.  Use pad_direction
16545         instead of direction.  Check for TARGET_HPUX.
16546         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
16547         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16548         (iq2000_function_arg_padding): New function.
16549         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
16550         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
16551         (mips_function_arg_padding): ...this new function.
16552         (mips_pad_reg_upward): Update accordingly.
16553         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16554         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
16555         targetm.calls.function_arg_padding.
16556         (FUNCTION_ARG_PADDING): Delete.
16557         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16558         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
16559         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16560         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
16561         (nios2_block_reg_padding): Return pad_direction instead of direction.
16562         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
16563         instead of direction.
16564         (nios2_function_arg_padding): Likewise.  Make static.
16565         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16566         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
16567         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
16568         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
16569         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16570         (pa_function_arg_padding): Make static.  Return pad_direction instead
16571         of direction.
16572         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
16573         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16574         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
16575         instead of direction.  Use targetm.calls.function_arg_padding.
16576         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
16577         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16578         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
16579         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
16580         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
16581         Redefine.
16582         (function_arg_padding): Rename to...
16583         (rs6000_function_arg_padding): ...this.  Make static.  Return
16584         pad_direction instead of direction.
16585         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16586         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
16587         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16588         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
16589         instead of direction.  Use targetm.calls.function_arg_padding.
16590         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
16591         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16592         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
16593         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
16594         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16595         (function_arg_padding): Rename to...
16596         (rs6000_function_arg_padding): ...this.  Make static.  Return
16597         pad_direction instead of direction.
16598         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16599         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
16600         * config/s390/s390.c (s390_function_arg_padding): New function.
16601         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16602         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
16603         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
16604         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16605         (function_arg_padding): Rename to...
16606         (sparc_function_arg_padding): ...this.  Make static.  Return
16607         pad_direction instead of direction.
16608         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
16609         * config/spu/spu.c (spu_function_arg_padding): New function.
16610         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16611         * system.h (FUNCTION_ARG_PADDING): Poison.
16612
16613 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16614             Alan Hayward  <alan.hayward@arm.com>
16615             David Sherwood  <david.sherwood@arm.com>
16616
16617         * target.def (modes_tieable_p): New hook.
16618         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
16619         (TARGET_MODES_TIEABLE_P): ...this.
16620         * doc/tm.texi.in: Regenerate.
16621         * hooks.h (hook_bool_mode_mode_true): Declare.
16622         * hooks.c (hook_bool_mode_mode_true): New function.
16623         * combine.c (subst): Use targetm.modes_tieable_p instead of
16624         MODES_TIEABLE_P.
16625         * dse.c (find_shift_sequence): Likewise.
16626         * expmed.c (extract_low_bits): Likewise.
16627         * lower-subreg.c: Include target.h.
16628         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
16629         MODES_TIEABLE_P.
16630         * rtlanal.c (rtx_cost): Likewise.
16631         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
16632         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
16633         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
16634         (TARGET_MODES_TIEABLE_P): Redefine.
16635         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
16636         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
16637         (TARGET_MODES_TIEABLE_P): Redefine.
16638         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
16639         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
16640         (arc_modes_tieable_p): New function.
16641         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
16642         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
16643         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
16644         (arm_modes_tieable_p): Make static.
16645         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
16646         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
16647         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
16648         (TARGET_MODES_TIEABLE_P): Redefine.
16649         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
16650         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
16651         (TARGET_MODES_TIEABLE_P): Redefine.
16652         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
16653         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
16654         (cr16_modes_tieable_p): New function.
16655         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
16656         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
16657         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
16658         (TRULY_NOOP_TRUNCATION): Update comment.
16659         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
16660         (TRULY_NOOP_TRUNCATION): Update comment.
16661         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
16662         (frv_modes_tieable_p): New function.
16663         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
16664         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
16665         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
16666         (TARGET_MODES_TIEABLE_P): Redefine.
16667         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
16668         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
16669         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
16670         (TARGET_MODES_TIEABLE_P): Redefine.
16671         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
16672         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
16673         (ia64_modes_tieable_p): New function.
16674         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
16675         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
16676         (iq2000_modes_tieable_p): New function.
16677         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
16678         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
16679         (lm32_modes_tieable_p): New function.
16680         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
16681         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
16682         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
16683         (TARGET_MODES_TIEABLE_P): Redefine.
16684         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
16685         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
16686         (m32r_modes_tieable_p): New function.
16687         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
16688         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
16689         (m68k_modes_tieable_p): New function.
16690         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
16691         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
16692         (mcore_modes_tieable_p): New function.
16693         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
16694         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
16695         function.
16696         (TARGET_MODES_TIEABLE_P): Redefine.
16697         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
16698         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
16699         * config/mips/mips.c (mips_modes_tieable_p): Make static.
16700         (TARGET_MODES_TIEABLE_P): Redefine.
16701         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
16702         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
16703         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
16704         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
16705         (mn10300_modes_tieable_p): ...this and make static.
16706         (TARGET_MODES_TIEABLE_P): Redefine.
16707         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
16708         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
16709         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
16710         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
16711         (msp430_modes_tieable_p): Make static.
16712         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
16713         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
16714         (TARGET_MODES_TIEABLE_P): Redefine.
16715         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
16716         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
16717         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
16718         (TARGET_MODES_TIEABLE_P): Redefine.
16719         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
16720         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
16721         * config/pa/pa.c (pa_modes_tieable_p): Make static.
16722         (TARGET_MODES_TIEABLE_P): Redefine.
16723         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
16724         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
16725         (pdp11_modes_tieable_p): New function.
16726         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
16727         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
16728         (rs6000_modes_tieable_p): New function.
16729         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16730         * config/powerpcspe/powerpcspe.md: Update comment.
16731         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
16732         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
16733         (TARGET_MODES_TIEABLE_P): Redefine.
16734         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
16735         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
16736         (rl78_modes_tieable_p): New function.
16737         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
16738         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
16739         (rs6000_modes_tieable_p): New function.
16740         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16741         * config/rs6000/rs6000.md: Update comment.
16742         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
16743         * config/rx/rx.c (rx_modes_tieable_p): New function.
16744         (TARGET_MODES_TIEABLE_P): Redefine.
16745         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
16746         * config/s390/s390.c (s390_modes_tieable_p): New function.
16747         (TARGET_MODES_TIEABLE_P): Redefine.
16748         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
16749         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
16750         (sh_modes_tieable_p): New function.
16751         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
16752         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
16753         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
16754         (sparc_modes_tieable_p): Make static.
16755         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
16756         * config/spu/spu.c (spu_modes_tieable_p): New function.
16757         (TARGET_MODES_TIEABLE_P): Redefine.
16758         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
16759         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
16760         (TARGET_MODES_TIEABLE_P): Redefine.
16761         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
16762         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
16763         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
16764         * config/v850/v850.c (v850_modes_tieable_p): New function.
16765         (TARGET_MODES_TIEABLE_P): Redefine.
16766         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
16767         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
16768         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
16769         (visium_modes_tieable_p): New function.
16770         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
16771         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
16772         (xtensa_modes_tieable_p): New function.
16773         * system.h (MODES_TIEABLE_P): Poison.
16774
16775 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16776             Alan Hayward  <alan.hayward@arm.com>
16777             David Sherwood  <david.sherwood@arm.com>
16778
16779         * target.def (hard_regno_mode_ok): New hook.
16780         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
16781         (TARGET_HARD_REGNO_MODE_OK): ...this.
16782         * doc/tm.texi.in: Regenerate.
16783         * hooks.h (hook_bool_uint_mode_true): Declare.
16784         * hooks.c (hook_bool_uint_mode_true): New function.
16785         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
16786         HARD_REGNO_MODE_OK.
16787         * genpreds.c (write_insn_preds_c): Add an include of target.h.
16788         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
16789         instead of HARD_REGNO_MODE_OK.
16790         * caller-save.c: Include target.h.
16791         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
16792         HARD_REGNO_MODE_OK.
16793         * combine.c (can_combine_p): Likewise.
16794         (combinable_i3pat): Likewise.
16795         (can_change_dest_mode): Likewise.
16796         * expr.c (init_expr_target): Likewise.
16797         (convert_move): Likewise.
16798         (convert_modes): Likewise.
16799         * ira.c (setup_prohibited_class_mode_regs): Likewise.
16800         (setup_prohibited_mode_move_regs): Likewise.
16801         * ira.h (target_ira): Likewise.
16802         * lra-assigns.c (find_hard_regno_for_1): Likewise.
16803         * lra-constraints.c (process_alt_operands): Likewise.
16804         (split_reg): Likewise.
16805         * recog.c (peep2_find_free_register): Likewise.
16806         * ree.c (combine_reaching_defs): Likewise.
16807         * regcprop.c (maybe_mode_change): Likewise.
16808         * reginfo.c (init_reg_sets_1): Likewise.
16809         (choose_hard_reg_mode): Likewise.
16810         (simplifiable_subregs): Likewise.
16811         * regrename.c (check_new_reg_p): Likewise.
16812         * reload.c (find_valid_class): Likewise.
16813         (find_valid_class_1): Likewise.
16814         (reload_inner_reg_of_subreg): Likewise.
16815         (push_reload): Likewise.
16816         (combine_reloads): Likewise.
16817         (find_dummy_reload): Likewise.
16818         (find_reloads): Likewise.
16819         * reload1.c (find_reg): Likewise.
16820         (set_reload_reg): Likewise.
16821         (allocate_reload_reg): Likewise.
16822         (choose_reload_regs): Likewise.
16823         (reload_adjust_reg_for_temp): Likewise.
16824         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
16825         (simplify_subreg_regno): Likewise.
16826         * sel-sched.c (init_regs_for_mode): Likewise.
16827         * varasm.c (make_decl_rtl): Likewise.
16828         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
16829         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
16830         HARD_REGNO_MODE_OK.
16831         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
16832         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
16833         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16834         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
16835         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
16836         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16837         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
16838         (arc_mode_class): Delete.
16839         (HARD_REGNO_MODE_OK): Delete.
16840         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16841         (arc_hard_regno_mode_ok): Rename old array to...
16842         (arc_hard_regno_mode_ok_modes): ...this.
16843         (arc_conditional_register_usage): Update accordingly.
16844         (arc_mode_class): Make static.
16845         (arc_hard_regno_mode_ok): New function.
16846         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
16847         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
16848         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16849         (arm_hard_regno_mode_ok): Make static.
16850         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
16851         HARD_REGNO_MODE_OK.
16852         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
16853         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
16854         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
16855         return a bool.
16856         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16857         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
16858         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
16859         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
16860         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
16861         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16862         * config/bfin/predicates.md (valid_reg_operand): Use
16863         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
16864         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
16865         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
16866         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16867         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
16868         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
16869         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16870         (cr16_hard_regno_mode_ok): Make static and return a bool.
16871         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
16872         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16873         (cris_hard_regno_mode_ok): New function.
16874         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
16875         (epiphany_mode_class): Delete.
16876         (HARD_REGNO_MODE_OK): Delete.
16877         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
16878         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16879         (hard_regno_mode_ok): Rename to...
16880         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
16881         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
16882         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
16883         HARD_REGNO_MODE_OK.
16884         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
16885         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
16886         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16887         (frv_hard_regno_mode_ok): Make static and return a bool.
16888         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
16889         HARD_REGNO_MODE_OK.
16890         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
16891         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
16892         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
16893         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
16894         and return a bool.
16895         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16896         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
16897         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
16898         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
16899         return a bool.
16900         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16901         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
16902         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16903         (ia64_hard_regno_mode_ok): New function.
16904         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
16905         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16906         (iq2000_hard_regno_mode_ok): New function.
16907         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
16908         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16909         (lm32_hard_regno_mode_ok): New function.
16910         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
16911         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
16912         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
16913         instead of HARD_REGNO_MODE_OK.
16914         (m32c_hard_regno_ok): Rename to...
16915         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
16916         (m32c_cannot_change_mode_class): Update accordingly.
16917         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16918         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
16919         (m32r_mode_class): Delete.
16920         (HARD_REGNO_MODE_OK): Delete.
16921         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16922         (m32r_hard_regno_mode_ok): Rename to...
16923         (m32r_hard_regno_modes): ...this.
16924         (m32r_mode_class): Make static.
16925         (m32r_hard_regno_mode_ok): New function.
16926         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
16927         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
16928         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16929         (m68k_hard_regno_mode_ok): Make static.
16930         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
16931         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16932         (mcore_hard_regno_mode_ok): New function.
16933         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
16934         (HARD_REGNO_MODE_OK): Delete.
16935         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
16936         Rename to...
16937         (microblaze_hard_regno_mode_ok_p): ...this and make static.
16938         (microblaze_hard_regno_mode_ok): New function.
16939         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16940         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
16941         (mips_hard_regno_mode_ok): Delete.
16942         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
16943         (mips_hard_regno_mode_ok_p): ...this and make static.
16944         (mips_hard_regno_mode_ok_p): Rename to...
16945         (mips_hard_regno_mode_ok_uncached): ...this.
16946         (mips_hard_regno_mode_ok): New function.
16947         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
16948         of HARD_REGNO_MODE_OK.
16949         (mips_option_override): Update after above name changes.
16950         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16951         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
16952         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
16953         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
16954         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
16955         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16956         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
16957         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
16958         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
16959         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16960         (msp430_hard_regno_mode_ok): Make static and return a bool.
16961         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
16962         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
16963         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
16964         and return a bool.
16965         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16966         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
16967         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
16968         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
16969         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
16970         (PA_HARD_REGNO_MODE_OK): ...this
16971         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
16972         (PA_HARD_REGNO_MODE_OK): ...this.
16973         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16974         (pa_hard_regno_mode_ok): New function.
16975         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
16976         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16977         (pdp11_hard_regno_mode_ok): New function.
16978         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
16979         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
16980         Delete.
16981         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
16982         Make static.
16983         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16984         (rs6000_hard_regno_mode_ok): Rename to...
16985         (rs6000_hard_regno_mode_ok_uncached): ...this.
16986         (rs6000_init_hard_regno_mode_ok): Update accordingly.
16987         (rs6000_hard_regno_mode_ok): New function.
16988         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
16989         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
16990         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
16991         (riscv_hard_regno_mode_ok): ...this and make static.
16992         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16993         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
16994         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
16995         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16996         (rl78_hard_regno_mode_ok): Make static and return bool.
16997         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
16998         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
16999         Delete.
17000         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
17001         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17002         (rs6000_hard_regno_mode_ok): Rename to...
17003         (rs6000_hard_regno_mode_ok_uncached): ...this.
17004         (rs6000_init_hard_regno_mode_ok): Update accordingly.
17005         (rs6000_hard_regno_mode_ok): New function.
17006         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
17007         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
17008         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17009         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
17010         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
17011         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
17012         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17013         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
17014         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
17015         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17016         (sh_hard_regno_mode_ok): Make static.
17017         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
17018         instead of HARD_REGNO_MODE_OK.
17019         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
17020         (sparc_mode_class): Delete.
17021         (HARD_REGNO_MODE_OK): Delete.
17022         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17023         (hard_regno_mode_classes): Make static.
17024         (sparc_mode_class): Likewise.
17025         (sparc_hard_regno_mode_ok): New function.
17026         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
17027         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
17028         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
17029         function.
17030         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17031         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
17032         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
17033         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
17034         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
17035         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17036         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
17037         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
17038         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17039         (visium_hard_regno_mode_ok): New function.
17040         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
17041         instead of HARD_REGNO_MODE_OK.
17042         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
17043         (HARD_REGNO_MODE_OK): Delete.
17044         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
17045         (xtensa_hard_regno_mode_ok_p): ...this and make static.
17046         (xtensa_option_override): Update accordingly.
17047         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17048         (xtensa_hard_regno_mode_ok): New function.
17049         * system.h (HARD_REGNO_MODE_OK): Poison.
17050
17051 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17052             Alan Hayward  <alan.hayward@arm.com>
17053             David Sherwood  <david.sherwood@arm.com>
17054
17055         * target.def (hard_regno_call_part_clobbered): New hook.
17056         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
17057         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
17058         * doc/tm.texi: Regenerate.
17059         * hooks.h (hook_bool_uint_mode_false): Declare.
17060         * hooks.c (hook_bool_uint_mode_false): New function.
17061         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17062         * cselib.c (cselib_process_insn): Use
17063         targetm.hard_regno_call_part_clobbered instead of
17064         HARD_REGNO_CALL_PART_CLOBBERED.
17065         * ira-conflicts.c (ira_build_conflicts): Likewise.
17066         * ira-costs.c (ira_tune_allocno_costs): Likewise.
17067         * lra-constraints.c (need_for_call_save_p): Likewise.
17068         * lra-lives.c: Include target.h.
17069         (check_pseudos_live_through_calls): Use
17070         targetm.hard_regno_call_part_clobbered instead of
17071         HARD_REGNO_CALL_PART_CLOBBERED.
17072         * regcprop.c: Include target.h.
17073         (copyprop_hardreg_forward_1): Use
17074         targetm.hard_regno_call_part_clobbered instead of
17075         HARD_REGNO_CALL_PART_CLOBBERED.
17076         * reginfo.c (choose_hard_reg_mode): Likewise.
17077         * regrename.c (check_new_reg_p): Likewise.
17078         * reload.c (find_equiv_reg): Likewise.
17079         * reload1.c (emit_reload_insns): Likewise.
17080         * sched-deps.c (deps_analyze_insn): Likewise.
17081         * sel-sched.c (init_regs_for_mode): Likewise.
17082         (mark_unavailable_hard_regs): Likewise.
17083         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
17084         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17085         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
17086         New function.
17087         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17088         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17089         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
17090         Delete.
17091         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
17092         and return a bool.
17093         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17094         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17095         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
17096         function.
17097         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17098         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17099         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
17100         function.
17101         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17102         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
17103         Delete.
17104         * config/powerpcspe/powerpcspe.c
17105         (rs6000_hard_regno_call_part_clobbered): New function.
17106         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17107         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17108         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
17109         New function.
17110         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17111         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17112         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
17113         function.
17114         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17115         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17116         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
17117
17118 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17119             Alan Hayward  <alan.hayward@arm.com>
17120             David Sherwood  <david.sherwood@arm.com>
17121
17122         * rtl.h (subreg_memory_offset): Declare.
17123         * emit-rtl.c (subreg_memory_offset): New function.
17124         * expmed.c (store_bit_field_1): Use it.
17125         * expr.c (undefined_operand_subword_p): Likewise.
17126         * simplify-rtx.c (simplify_subreg): Likewise.
17127
17128 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
17129
17130         PR rtl-optimization/57448
17131         PR target/67458
17132         PR target/81316
17133         * optabs.c (expand_atomic_load): Place compiler memory barriers if
17134         using atomic_load pattern.
17135         (expand_atomic_store): Likewise.
17136
17137 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
17138
17139         PR sanitizer/81981
17140         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
17141         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
17142         handling.  Use replace_call_with_value with NULL instead of
17143         gsi_replace, unlink_stmt_vdef and release_defs.
17144
17145         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
17146         instead of tab.
17147
17148         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
17149
17150 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17151
17152         PR bootstrap/82045
17153         * rtl.h (emit_library_call_value_1): Declare.
17154         (emit_library_call): Replace declaration with a series of overloads.
17155         Remove the parameter count argument.
17156         (emit_library_call_value): Likewise.
17157         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
17158         with an "rtx_mode_t *".
17159         (emit_library_call_value): Delete.
17160         (emit_library_call): Likewise.
17161         * asan.c (asan_emit_stack_protection): Update calls accordingly.
17162         (asan_emit_allocas_unpoison): Likewise.
17163         * builtins.c (expand_builtin_powi): Likewise.
17164         (expand_asan_emit_allocas_unpoison): Likewise.
17165         * cfgexpand.c (expand_main_function): Likewise.
17166         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
17167         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
17168         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
17169         * config/arm/arm.c (arm_trampoline_init): Likewise.
17170         (arm_call_tls_get_addr): Likewise.
17171         (arm_expand_divmod_libfunc): Likewise.
17172         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
17173         (smulsi3_highpart): Likewise.
17174         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
17175         (c6x_expand_compare): Likewise.
17176         (c6x_expand_movmem): Likewise.
17177         * config/frv/frv.c (frv_trampoline_init): Likewise.
17178         * config/i386/i386.c (ix86_trampoline_init): Likewise.
17179         (ix86_expand_divmod_libfunc): Likewise.
17180         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17181         (ia64_expand_compare): Likewise.
17182         (ia64_profile_hook): Likewise.
17183         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
17184         (nonlocal_goto): Likewise.
17185         (restore_stack_nonlocal): Likewise.
17186         * config/m32r/m32r.c (block_move_call): Likewise.
17187         (m32r_trampoline_init): Likewise.
17188         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
17189         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
17190         (m68k_call_m68k_read_tp): Likewise.
17191         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
17192         (microblaze_expand_divide): Likewise.
17193         * config/mips/mips.h (mips_args): Likewise.
17194         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
17195         (MIPS_ICACHE_SYNC): Likewise.
17196         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
17197         (nios2_trampoline_init): Likewise.
17198         * config/pa/pa.c (hppa_tls_call): Likewise.
17199         (pa_trampoline_init): Likewise.
17200         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
17201         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
17202         (expand_strn_compare): Likewise.
17203         (rs6000_generate_compare): Likewise.
17204         (rs6000_expand_float128_convert): Likewise.
17205         (output_profile_hook): Likewise.
17206         (rs6000_trampoline_init): Likewise.
17207         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
17208         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
17209         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
17210         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17211         (rs6000_generate_compare): Likewise.
17212         (rs6000_expand_float128_convert): Likewise.
17213         (output_profile_hook): Likewise.
17214         (rs6000_trampoline_init): Likewise.
17215         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
17216         * config/sh/sh.c (sh_trampoline_init): Likewise.
17217         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
17218         (sparc_emit_float_lib_cmp): Likewise.
17219         (sparc32_initialize_trampoline): Likewise.
17220         (sparc64_initialize_trampoline): Likewise.
17221         (sparc_profile_hook): Likewise.
17222         * config/spu/spu.c (ea_load_store): Likewise.
17223         * config/spu/spu.md (floatunssidf2): Likewise.
17224         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
17225         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
17226         * config/visium/visium.c (expand_block_move_4): Likewise.
17227         (expand_block_move_2): Likewise.
17228         (expand_block_move_1): Likewise.
17229         (expand_block_set_4): Likewise.
17230         (expand_block_set_2): Likewise.
17231         (expand_block_set_1): Likewise.
17232         (visium_trampoline_init): Likewise.
17233         (visium_profile_hook): Likewise.
17234         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
17235         (xtensa_setup_frame_addresses): Likewise.
17236         (xtensa_trampoline_init): Likewise.
17237         * except.c (sjlj_emit_function_enter): Likewise.
17238         (sjlj_emit_function_exit): Likewise.
17239         * explow.c (allocate_dynamic_stack_space): Likewise.
17240         (probe_stack_range): Likewise.
17241         * expr.c (convert_mode_scalar): Likewise.
17242         * optabs.c (expand_binop): Likewise.
17243         (expand_twoval_binop_libfunc): Likewise.
17244         (expand_unop): Likewise.
17245         (prepare_cmp_insn): Likewise.
17246         (prepare_float_lib_cmp): Likewise.
17247         (expand_float): Likewise.
17248         (expand_fix): Likewise.
17249         (expand_fixed_convert): Likewise.
17250         (maybe_emit_sync_lock_test_and_set): Likewise.
17251         (expand_atomic_compare_and_swap): Likewise.
17252         (expand_mem_thread_fence): Likewise.
17253         (expand_atomic_fetch_op): Likewise.
17254
17255 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
17256
17257         * doc/generic.texi (OpenACC): Adjust URL.
17258         * doc/invoke.texi (C Dialect Options): Ditto.
17259
17260 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
17261
17262         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
17263         predicate for operand 1.  Add (m,<S>) constraint.
17264         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
17265         Prevent memory operand 1 with register operand 2.
17266
17267 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
17268
17269         PR rtl-optimization/82024
17270         * combine.c (try_combine): If the combination result is a PARALLEL,
17271         and we only need to retain the SET in there that would be placed
17272         at I2, check that we can place that at I3 instead, before doing so.
17273
17274 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17275
17276         PR target/81766
17277         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
17278         instead of void.
17279         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
17280         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
17281         and label.
17282
17283 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
17284             Jeff Law  <law@redhat.com>
17285
17286         * varasm.c (bss_initializer_p): Do not put constants into .bss
17287         (categorize_decl_for_section): Handle bss_initializer_p returning
17288         false when DECL_INITIAL is NULL.
17289
17290 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17291
17292         PR target/82012
17293         * config/s390/s390.c (s390_can_inline_p): New function.
17294
17295 2017-09-01  Jeff Law  <law@redhat.com>
17296
17297         PR tree-optimization/82052
17298         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
17299         Always initialize the returned slot after a hash table miss
17300         when INSERT is true.
17301
17302 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
17303
17304         * config/s390/s390.md (mem_signal_fence): Remove.
17305         * doc/md.texi (mem_signal_fence): Remove.
17306         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
17307         Update comments.
17308         * target-insns.def (mem_signal_fence): Remove.
17309
17310 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17311
17312         PR sanitizer/81902
17313         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
17314
17315         PR sanitizer/81923
17316         * asan.c (create_odr_indicator): Strip name encoding from assembler
17317         name before appending it after __odr_asan_.
17318
17319 2017-09-01  Martin Liska  <mliska@suse.cz>
17320
17321         PR tree-optimization/82059
17322         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
17323         frequency only when an edge is redirected.
17324
17325 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17326
17327         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
17328         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
17329         (arc_conditional_register_usage): Remove ARC600 lp_count
17330         exception.
17331         (arc_file_start): Emit Tag_ARC_CPU_variation.
17332         (arc_can_use_doloop_p): New conditions to use ZOLs.
17333         (hwloop_fail): New function.
17334         (hwloop_optimize): Likewise.
17335         (hwloop_pattern_reg): Likewise.
17336         (arc_doloop_hooks): New struct, to be used with reorg_loops.
17337         (arc_reorg_loops): New function, calls reorg_loops.
17338         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
17339         (arc600_corereg_hazard): Remove ZOL checking, case handled by
17340         hwloop_optimize.
17341         (arc_loop_hazard): Remove function, functionality moved into
17342         hwloop_optimize.
17343         (arc_hazard): Remove arc_loop_hazard call.
17344         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
17345         into hwloop_optimize.
17346         (arc_label_align): Remove ZOL handling.
17347         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
17348         * config/arc/arc.md (doloop_begin): Remove pattern.
17349         (doloop_begin_i): Likewise.
17350         (doloop_end_i): Likewise.
17351         (doloop_fallback): Likewise.
17352         (doloop_fallback_m): Likewise.
17353         (doloop_end): Reimplement expand.
17354         (arc_lp): New pattern for LP instruction.
17355         (loop_end): New pattern.
17356         (loop_fail): Likewise.
17357         (decrement_and_branch_until_zero): Likewise.
17358         * config/arc/arc.opt (mlpc-width): New option.
17359         * doc/invoke.texi (mlpc-width): Document option.
17360
17361 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17362
17363         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
17364         (arc_ccfsm_advance): Fix checking for delay slots.
17365         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
17366
17367 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17368
17369         * config/arc/arc.md (movqi_insn): Add stores to save constant long
17370         immediates.
17371         (movhi_insn): Update store instruction constraint which are saving
17372         6-bit short immediates.
17373         (movsi_insn): Consider also short scaled load operations.
17374         (zero_extendhisi2_i): Use Usd constraint instead of T.
17375         (extendhisi2_i): Add q constraint.
17376         (arc_clzsi2): Add type and length attributes.
17377         (arc_ctzsi2): Likewise.
17378         * config/arc/constraints.md (Usc): Update constraint, the
17379         assembler can parse two relocations for a single instruction.
17380
17381 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17382
17383         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
17384         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
17385
17386 2017-08-31  Olivier Hainque  <hainque@adacore.com>
17387
17388         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
17389         match as powerpc-wrs-vxworks*.
17390
17391 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
17392
17393         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
17394         register constraint for by-element operand.
17395         (aarch64_mls_elt_merge<mode>): Likewise.
17396
17397 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17398
17399         * config/arc/arc.c (arc_can_follow_jump): Check for short
17400         branches.
17401
17402 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17403
17404         * config.gcc: Use g.opt for arc.
17405         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
17406         functionality moved to ...
17407         (legitimate_scaled_address_p): New function, ...here.
17408         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
17409         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
17410         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
17411         condition.
17412         (arc_override_options): Handle G option.
17413         (arc_output_pic_addr_const): Correct function definition.
17414         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
17415         (arc_decl_anon_ns_mem_p): Delete.
17416         (arc_in_small_data_p): Overhaul this function to take into
17417         consideration the value given via G option.
17418         (arc_rewrite_small_data_1): Renamed and corrected old
17419         arc_rewrite_small_data function.
17420         (arc_rewrite_small_data): New function.
17421         (small_data_pattern): Don't use pic_offset_table_rtx.
17422         * config/arc/arc.h (CC1_SPEC): Recognize G option.
17423         * config/arc/simdext.md (movmisalignv2hi): Use
17424         prepare_move_operands function.
17425         (mov*): Likewise.
17426         (movmisalign*): Likewise.
17427         * doc/invoke.texi (ARC options): Document -G option.
17428
17429 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17430
17431         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
17432         prototype.
17433         * config/arc/arc.c (arc_print_operand): Output scalled address for
17434         sdata whenever is possible.
17435         (arc_in_small_data_p): Allow sdata for 64bit datum when double
17436         load/stores are available.
17437         (compact_sda_memory_operand): Check for the alignment required by
17438         code density instructions.
17439         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
17440         constraint.
17441         * config/arc/constraints.md (Usd): Update constraint.
17442         (Us0): New constraint.
17443         (Usc): Update constraint.
17444
17445 2017-08-31  Richard Biener  <rguenther@suse.de>
17446
17447         PR middle-end/82054
17448         * dwarf2out.c (dwarf2out_early_global_decl): Process each
17449         function only once.
17450
17451 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
17452
17453         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17454         Resize type_signature.
17455
17456 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17457             Alan Hayward  <alan.hayward@arm.com>
17458             David Sherwood  <david.sherwood@arm.com>
17459
17460         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
17461         subregs whose inner modes can be stored in GPRs.
17462         (aarch64_classify_index): Likewise.
17463
17464 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17465             Alan Hayward  <alan.hayward@arm.com>
17466             David Sherwood  <david.sherwood@arm.com>
17467
17468         * config/aarch64/iterators.md (V_cmp_result): Rename to...
17469         (V_INT_EQUIV): ...this.
17470         (v_cmp_result): Rename to...
17471         (v_int_equiv): ...this.
17472         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
17473         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
17474         (copysign<mode>3): Likewise.
17475         (aarch64_simd_bsl<mode>_internal): Likewise.
17476         (aarch64_simd_bsl<mode>): Likewise.
17477         (vec_cmp<mode><mode>): Likewise.
17478         (vcond<mode><mode>): Likewise.
17479         (vcond<v_cmp_mixed><mode>): Likewise.
17480         (vcondu<mode><v_cmp_mixed>): Likewise.
17481         (aarch64_cm<optab><mode>): Likewise.
17482         (aarch64_cmtst<mode>): Likewise.
17483         (aarch64_fac<optab><mode>): Likewise.
17484         (vec_perm_const<mode>): Likewise.
17485         (vcond_mask_<mode><v_cmp_result>): Rename to...
17486         (vcond_mask_<mode><v_int_equiv>): ...this.
17487         (vec_cmp<mode><v_cmp_result>): Rename to...
17488         (vec_cmp<mode><v_int_equiv>): ...this.
17489
17490 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17491             Alan Hayward  <alan.hayward@arm.com>
17492             David Sherwood  <david.sherwood@arm.com>
17493
17494         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
17495         vector modes.
17496         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
17497         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
17498         (UNSPEC_LD4_DREG): New unspecs.
17499         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
17500         (aarch64_ld2<mode>_dreg_be): Replace with...
17501         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
17502         unspec.
17503         (aarch64_ld3<mode>_dreg_le)
17504         (aarch64_ld3<mode>_dreg_be): Replace with...
17505         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
17506         unspec.
17507         (aarch64_ld4<mode>_dreg_le)
17508         (aarch64_ld4<mode>_dreg_be): Replace with...
17509         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
17510         unspec.
17511
17512 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17513
17514         PR tree-optimization/81987
17515         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
17516         insert an initializer in a location not dominated by the stride
17517         definition.
17518
17519 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17520
17521         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
17522         on the entire header of the finally block in the fallthru case.
17523
17524 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17525
17526         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
17527
17528 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
17529
17530         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
17531         rs6000_emit_move_from_cr and call renamed function.
17532         (rs6000_emit_prologue): Call renamed functions.
17533         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
17534         movesi_from_cr, remove volatile CRs.
17535
17536 2017-08-30  Jon Beniston  <jon@beniston.com>
17537             Richard Biener  <rguenther@suse.de>
17538
17539         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
17540         of VECTOR_MODE_P check.
17541         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
17542         element vector types.
17543
17544 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17545
17546         * df.h (df_read_modify_subreg_p): Remove in favor of...
17547         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
17548         const_rtx instead of an rtx.
17549         * cprop.c (local_cprop_find_used_regs): Update accordingly.
17550         * df-problems.c (df_word_lr_mark_ref): Likewise.
17551         * ira-lives.c (mark_pseudo_reg_live): Likewise.
17552         (mark_pseudo_reg_dead): Likewise.
17553         (mark_ref_dead): Likewise.
17554         * reginfo.c (init_subregs_of_mode): Likewise.
17555         * sched-deps.c (sched_analyze_1): Likewise.
17556         * df-scan.c (df_def_record_1): Likewise.
17557         (df_uses_record): Likewise.
17558         (df_read_modify_subreg_p): Remove in favor of...
17559         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
17560         const_rtx instead of an rtx.
17561
17562 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17563             Alan Hayward  <alan.hayward@arm.com>
17564             David Sherwood  <david.sherwood@arm.com>
17565
17566         * rtl.h (partial_subreg_p): New function.
17567         * caller-save.c (save_call_clobbered_regs): Use it.
17568         * calls.c (expand_call): Likewise.
17569         * combine.c (combinable_i3pat): Likewise.
17570         (simplify_set): Likewise.
17571         (make_extraction): Likewise.
17572         (make_compound_operation_int): Likewise.
17573         (gen_lowpart_or_truncate): Likewise.
17574         (force_to_mode): Likewise.
17575         (make_field_assignment): Likewise.
17576         (reg_truncated_to_mode): Likewise.
17577         (record_truncated_value): Likewise.
17578         (move_deaths): Likewise.
17579         * cse.c (record_jump_cond): Likewise.
17580         (cse_insn): Likewise.
17581         * cselib.c (cselib_lookup_1): Likewise.
17582         * expmed.c (extract_bit_field_using_extv): Likewise.
17583         * function.c (assign_parm_setup_reg): Likewise.
17584         * ifcvt.c (noce_convert_multiple_sets): Likewise.
17585         * ira-build.c (create_insn_allocnos): Likewise.
17586         * lra-coalesce.c (merge_pseudos): Likewise.
17587         * lra-constraints.c (match_reload): Likewise.
17588         (simplify_operand_subreg): Likewise.
17589         (curr_insn_transform): Likewise.
17590         * lra-lives.c (process_bb_lives): Likewise.
17591         * lra.c (new_insn_reg): Likewise.
17592         (lra_substitute_pseudo): Likewise.
17593         * regcprop.c (mode_change_ok): Likewise.
17594         (maybe_mode_change): Likewise.
17595         (copyprop_hardreg_forward_1): Likewise.
17596         * reload.c (push_reload): Likewise.
17597         (find_reloads): Likewise.
17598         (find_reloads_subreg_address): Likewise.
17599         * reload1.c (alter_reg): Likewise.
17600         (eliminate_regs_1): Likewise.
17601         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17602
17603 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
17604
17605         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
17606         back to if statements, including unpack.
17607
17608 2017-08-30  Martin Liska  <mliska@suse.cz>
17609
17610         PR inline-asm/82001
17611         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
17612         Rename to ...
17613         (func_checker::compare_asm_inputs_outputs): ... this function.
17614         (func_checker::compare_gimple_asm): Use the function to compare
17615         also ASM constrains.
17616         * ipa-icf-gimple.h: Rename the function.
17617
17618 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17619             Alan Hayward  <alan.hayward@arm.com>
17620             David Sherwood  <david.sherwood@arm.com>
17621
17622         * coretypes.h (complex_mode): New type.
17623         * gdbhooks.py (build_pretty_printer): Handle it.
17624         * machmode.h (complex_mode): New class.
17625         (complex_mode::includes_p): New function.
17626         (is_complex_int_mode): Likewise.
17627         (is_complex_float_mode): Likewise.
17628         * genmodes.c (get_mode_class): Handle complex mode classes.
17629         * function.c (expand_function_end): Use is_complex_int_mode.
17630
17631 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17632             Alan Hayward  <alan.hayward@arm.com>
17633             David Sherwood  <david.sherwood@arm.com>
17634
17635         * coretypes.h (scalar_mode_pod): New typedef.
17636         * gdbhooks.py (build_pretty_printer): Handle it.
17637         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
17638         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
17639         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
17640         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
17641         as_a <scalar_mode>.
17642
17643 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17644             Alan Hayward  <alan.hayward@arm.com>
17645             David Sherwood  <david.sherwood@arm.com>
17646
17647         * machmode.h (mode_for_vector): Take a scalar_mode instead
17648         of a machine_mode.
17649         * stor-layout.c (mode_for_vector): Likewise.
17650         * explow.c (promote_mode): Use as_a <scalar_mode>.
17651         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
17652
17653 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17654             Alan Hayward  <alan.hayward@arm.com>
17655             David Sherwood  <david.sherwood@arm.com>
17656
17657         * target.def (preferred_simd_mode): Take a scalar_mode
17658         instead of a machine_mode.
17659         * targhooks.h (default_preferred_simd_mode): Likewise.
17660         * targhooks.c (default_preferred_simd_mode): Likewise.
17661         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
17662         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
17663         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
17664         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
17665         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
17666         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
17667         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
17668         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
17669         Likewise.
17670         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
17671         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
17672         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
17673         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
17674         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
17675         * doc/tm.texi: Regenerate.
17676         * optabs-query.c (can_vec_mask_load_store_p): Return false for
17677         non-scalar modes.
17678
17679 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17680             Alan Hayward  <alan.hayward@arm.com>
17681             David Sherwood  <david.sherwood@arm.com>
17682
17683         * target.def (scalar_mode_supported_p): Take a scalar_mode
17684         instead of a machine_mode.
17685         * targhooks.h (default_scalar_mode_supported_p): Likewise.
17686         * targhooks.c (default_scalar_mode_supported_p): Likewise.
17687         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
17688         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17689         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
17690         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
17691         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
17692         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
17693         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
17694         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
17695         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
17696         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
17697         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
17698         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
17699         Likewise.
17700         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
17701         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
17702         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17703         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
17704         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
17705         Likewise.
17706         * doc/tm.texi: Regenerate.
17707
17708 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17709             Alan Hayward  <alan.hayward@arm.com>
17710             David Sherwood  <david.sherwood@arm.com>
17711
17712         * coretypes.h (opt_scalar_mode): New typedef.
17713         * gdbhooks.py (build_pretty_printers): Handle it.
17714         * machmode.h (mode_iterator::get_2xwider): Add overload for
17715         opt_mode<T>.
17716         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
17717         over scalar modes.
17718         * expr.c (convert_mode_scalar): Likewise.
17719         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17720         * optabs.c (expand_float): Likewise.
17721         (expand_fix): Likewise.
17722         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17723
17724 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17725             Alan Hayward  <alan.hayward@arm.com>
17726             David Sherwood  <david.sherwood@arm.com>
17727
17728         * optabs.c (expand_float): Explicitly check for scalars before
17729         using a branching expansion.
17730         (expand_fix): Likewise.
17731
17732 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17733             Alan Hayward  <alan.hayward@arm.com>
17734             David Sherwood  <david.sherwood@arm.com>
17735
17736         * expr.c (convert_mode): Split scalar handling out into...
17737         (convert_mode_scalar): ...this new function.  Treat the modes
17738         as scalar_modes.
17739
17740 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17741             Alan Hayward  <alan.hayward@arm.com>
17742             David Sherwood  <david.sherwood@arm.com>
17743
17744         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
17745         and scalar_mode.
17746         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
17747
17748 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17749             Alan Hayward  <alan.hayward@arm.com>
17750             David Sherwood  <david.sherwood@arm.com>
17751
17752         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
17753         rather than a machine_mode.
17754         (fixed_from_string): Likewise.
17755         (fixed_convert): Likewise.
17756         (fixed_convert_from_int): Likewise.
17757         (fixed_convert_from_real): Likewise.
17758         (real_convert_from_fixed): Likewise.
17759         * fixed-value.c (fixed_from_double_int): Likewise.
17760         (fixed_from_string): Likewise.
17761         (fixed_convert): Likewise.
17762         (fixed_convert_from_int): Likewise.
17763         (fixed_convert_from_real): Likewise.
17764         (real_convert_from_fixed): Likewise.
17765         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
17766
17767 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17768             Alan Hayward  <alan.hayward@arm.com>
17769             David Sherwood  <david.sherwood@arm.com>
17770
17771         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
17772         of separate mode class checks.  Do not allow vector modes here.
17773         (immed_wide_int_const): Use as_a <scalar_mode>.
17774         * explow.c (trunc_int_for_mode): Likewise.
17775         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
17776         (wi::shwi): Likewise.
17777         (wi::min_value): Likewise.
17778         (wi::max_value): Likewise.
17779         * dwarf2out.c (loc_descriptor): Likewise.
17780         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
17781         for CONST_WIDE_INT.
17782
17783 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17784             Alan Hayward  <alan.hayward@arm.com>
17785             David Sherwood  <david.sherwood@arm.com>
17786
17787         * tree.h (SCALAR_TYPE_MODE): New macro.
17788         * expr.c (expand_expr_addr_expr_1): Use it.
17789         (expand_expr_real_2): Likewise.
17790         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
17791         (fold_convert_const_fixed_from_int): Likewise.
17792         (fold_convert_const_fixed_from_real): Likewise.
17793         (native_encode_fixed): Likewise
17794         (native_encode_complex): Likewise
17795         (native_encode_vector): Likewise.
17796         (native_interpret_fixed): Likewise.
17797         (native_interpret_real): Likewise.
17798         (native_interpret_complex): Likewise.
17799         (native_interpret_vector): Likewise.
17800         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
17801         (simd_clone_adjust_argument_types): Likewise.
17802         (simd_clone_init_simd_arrays): Likewise.
17803         (simd_clone_adjust): Likewise.
17804         * stor-layout.c (layout_type): Likewise.
17805         * tree.c (build_minus_one_cst): Likewise.
17806         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17807         * tree-inline.c (estimate_move_cost): Likewise.
17808         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
17809         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17810         (vectorizable_reduction): Likewise.
17811         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17812         (vect_recog_mixed_size_cond_pattern): Likewise.
17813         (check_bool_pattern): Likewise.
17814         (adjust_bool_pattern): Likewise.
17815         (search_type_for_mask_1): Likewise.
17816         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
17817         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17818         (vectorizable_load): Likewise.
17819         (vectorizable_store): Likewise.
17820         * ubsan.c (ubsan_encode_value): Likewise.
17821         * varasm.c (output_constant): Likewise.
17822
17823 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17824             Alan Hayward  <alan.hayward@arm.com>
17825             David Sherwood  <david.sherwood@arm.com>
17826
17827         * coretypes.h (scalar_mode): New class.
17828         * machmode.h (scalar_mode): Likewise.
17829         (scalar_mode::includes_p): New function.
17830         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
17831         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
17832         * genmodes.c (get_mode_class): Handle remaining scalar modes.
17833         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
17834         * expmed.c (store_bit_field_1): Likewise.
17835         (extract_bit_field_1): Likewise.
17836         * expr.c (write_complex_part): Likewise.
17837         (read_complex_part): Likewise.
17838         (emit_move_complex_push): Likewise.
17839         (expand_expr_real_2): Likewise.
17840         * function.c (assign_parm_setup_reg): Likewise.
17841         (assign_parms_unsplit_complex): Likewise.
17842         * optabs.c (expand_binop): Likewise.
17843         * rtlanal.c (subreg_get_info): Likewise.
17844         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17845         * varasm.c (output_constant_pool_2): Likewise.
17846
17847 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17848             Alan Hayward  <alan.hayward@arm.com>
17849             David Sherwood  <david.sherwood@arm.com>
17850
17851         * expmed.c (extract_high_half): Use scalar_int_mode and remove
17852         assertion.
17853         (expmed_mult_highpart_optab): Likewise.
17854         (expmed_mult_highpart): Likewise.
17855
17856 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17857             Alan Hayward  <alan.hayward@arm.com>
17858             David Sherwood  <david.sherwood@arm.com>
17859
17860         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
17861         instead of a machine_mode.
17862         (builtin_memset_read_str): Likewise.
17863         * builtins.c (c_readstr): Likewise.
17864         (builtin_memcpy_read_str): Likewise.
17865         (builtin_strncpy_read_str): Likewise.
17866         (builtin_memset_read_str): Likewise.
17867         (builtin_memset_gen_str): Likewise.
17868         (expand_builtin_signbit): Use scalar_int_mode for local variables.
17869         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
17870         instead of a machine_mode.
17871         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
17872         variables.
17873         (make_extraction): Likewise.
17874         (try_widen_shift_mode): Take and return scalar_int_modes instead
17875         of machine_modes.
17876         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
17877         a scalar_int_mode instead of a machine_mode.
17878         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
17879         (avr_addr_space_pointer_mode): Likewise.
17880         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
17881         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
17882         (msp430_unwind_word_mode): Likewise.
17883         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
17884         (spu_addr_space_pointer_mode): Likewise.
17885         (spu_addr_space_address_mode): Likewise.
17886         (spu_libgcc_cmp_return_mode): Likewise.
17887         (spu_libgcc_shift_count_mode): Likewise.
17888         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
17889         (rl78_addr_space_pointer_mode): Likewise.
17890         (fl78_unwind_word_mode): Likewise.
17891         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
17892         machine_mode.
17893         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
17894         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
17895         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
17896         (mips_valid_pointer_mode): Likewise.
17897         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
17898         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
17899         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
17900         of a machine_mode.
17901         (ft32_addr_space_address_mode): Likewise.
17902         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
17903         scalar_int_mode instead of a machine_mode.
17904         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
17905         of a machine_mode.
17906         (m32c_addr_space_address_mode): Likewise.
17907         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
17908         (rs6000_eh_return_filter_mode): Likewise.
17909         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
17910         (rs6000_eh_return_filter_mode): Likewise.
17911         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
17912         (s390_libgcc_shift_count_mode): Likewise.
17913         (s390_unwind_word_mode): Likewise.
17914         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
17915         machine_mode.
17916         * target.def (mode_rep_extended): Likewise.
17917         (valid_pointer_mode): Likewise.
17918         (addr_space.valid_pointer_mode): Likewise.
17919         (eh_return_filter_mode): Return a scalar_int_mode rather than
17920         a machine_mode.
17921         (libgcc_cmp_return_mode): Likewise.
17922         (libgcc_shift_count_mode): Likewise.
17923         (unwind_word_mode): Likewise.
17924         (addr_space.pointer_mode): Likewise.
17925         (addr_space.address_mode): Likewise.
17926         * doc/tm.texi: Regenerate.
17927         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
17928         a machine_mode.
17929         (do_jump): Use scalar_int_mode for local variables.
17930         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
17931         rather than a machine_mode.
17932         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
17933         (scompare_loc_descriptor_wide): Likewise.
17934         (scompare_loc_descriptor_narrow): Likewise.
17935         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
17936         variables.
17937         * except.c (sjlj_emit_dispatch_table): Likewise.
17938         (expand_builtin_eh_copy_values): Likewise.
17939         * explow.c (convert_memory_address_addr_space_1): Likewise.
17940         Take a scalar_int_mode rather than a machine_mode.
17941         (convert_memory_address_addr_space): Take a scalar_int_mode rather
17942         than a machine_mode.
17943         (memory_address_addr_space): Use scalar_int_mode for local variables.
17944         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
17945         rather than a machine_mode.
17946         * expmed.c (mask_rtx): Likewise.
17947         (init_expmed_one_conv): Likewise.
17948         (expand_mult_highpart_adjust): Likewise.
17949         (extract_high_half): Likewise.
17950         (expmed_mult_highpart_optab): Likewise.
17951         (expmed_mult_highpart): Likewise.
17952         (expand_smod_pow2): Likewise.
17953         (expand_sdiv_pow2): Likewise.
17954         (emit_store_flag_int): Likewise.
17955         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
17956         variables.
17957         (extract_low_bits): Likewise.
17958         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
17959         a machine_mode.
17960         * expr.c (pieces_addr::adjust):  Likewise.
17961         (can_store_by_pieces): Likewise.
17962         (store_by_pieces): Likewise.
17963         (clear_by_pieces_1): Likewise.
17964         (expand_expr_addr_expr_1): Likewise.
17965         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
17966         (expand_expr_real_1): Likewise.
17967         (try_casesi): Likewise.
17968         * final.c (shorten_branches): Likewise.
17969         * fold-const.c (fold_convert_const_int_from_fixed): Change the
17970         type of "mode" to machine_mode.
17971         * internal-fn.c (expand_arith_overflow_result_store): Take a
17972         scalar_int_mode rather than a machine_mode.
17973         (expand_mul_overflow): Use scalar_int_mode for local variables.
17974         * loop-doloop.c (doloop_modify): Likewise.
17975         (doloop_optimize): Likewise.
17976         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
17977         than a machine_mode.
17978         (expand_doubleword_shift_condmove): Likewise.
17979         (expand_doubleword_shift): Likewise.
17980         (expand_doubleword_clz): Likewise.
17981         (expand_doubleword_popcount): Likewise.
17982         (expand_doubleword_parity): Likewise.
17983         (expand_absneg_bit): Use scalar_int_mode for local variables.
17984         (prepare_float_lib_cmp): Likewise.
17985         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
17986         rather than a machine_mode.
17987         (convert_memory_address_addr_space): Likewise.
17988         (get_mode_bounds): Likewise.
17989         (get_address_mode): Return a scalar_int_mode rather than a
17990         machine_mode.
17991         * rtlanal.c (get_address_mode): Likewise.
17992         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
17993         than a machine_mode.
17994         * targhooks.c (default_mode_rep_extended): Likewise.
17995         (default_valid_pointer_mode): Likewise.
17996         (default_addr_space_valid_pointer_mode): Likewise.
17997         (default_eh_return_filter_mode): Return a scalar_int_mode rather
17998         than a machine_mode.
17999         (default_libgcc_cmp_return_mode): Likewise.
18000         (default_libgcc_shift_count_mode): Likewise.
18001         (default_unwind_word_mode): Likewise.
18002         (default_addr_space_pointer_mode): Likewise.
18003         (default_addr_space_address_mode): Likewise.
18004         * targhooks.h (default_eh_return_filter_mode): Likewise.
18005         (default_libgcc_cmp_return_mode): Likewise.
18006         (default_libgcc_shift_count_mode): Likewise.
18007         (default_unwind_word_mode): Likewise.
18008         (default_addr_space_pointer_mode): Likewise.
18009         (default_addr_space_address_mode): Likewise.
18010         (default_mode_rep_extended): Take a scalar_int_mode rather than
18011         a machine_mode.
18012         (default_valid_pointer_mode): Likewise.
18013         (default_addr_space_valid_pointer_mode): Likewise.
18014         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
18015         local variables.
18016         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
18017         rather than a machine_mode.
18018         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
18019         for local variables.
18020         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18021         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
18022         than a machine_mode.
18023
18024 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18025             Alan Hayward  <alan.hayward@arm.com>
18026             David Sherwood  <david.sherwood@arm.com>
18027
18028         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
18029         the mode argument to scalar_int_mode.
18030         (do_jump_by_parts_zero_rtx): Likewise.
18031         (do_jump_by_parts_equality_rtx): Likewise.
18032         (do_jump_by_parts_greater): Take a mode argument.
18033         (do_jump_by_parts_equality): Likewise.
18034         (do_jump_1): Update calls accordingly.
18035
18036 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18037             Alan Hayward  <alan.hayward@arm.com>
18038             David Sherwood  <david.sherwood@arm.com>
18039
18040         * is-a.h (safe_dyn_cast): New function.
18041         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
18042         (jump_table_for_label): Likewise.
18043         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
18044         instead of an rtx_insn *.
18045         (shorten_branches): Use dyn_cast instead of LABEL_P and
18046         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
18047         rtx_jump_table_data::get_data_mode.
18048         (final_scan_insn): Likewise.
18049
18050 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18051             Alan Hayward  <alan.hayward@arm.com>
18052             David Sherwood  <david.sherwood@arm.com>
18053
18054         * combine.c (try_combine): Use is_a <scalar_int_mode> when
18055         trying to combine a full-register integer set with a subreg
18056         integer set.
18057
18058 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18059             Alan Hayward  <alan.hayward@arm.com>
18060             David Sherwood  <david.sherwood@arm.com>
18061
18062         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
18063         that is always either address_mode or pointer_mode.
18064
18065 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18066             Alan Hayward  <alan.hayward@arm.com>
18067             David Sherwood  <david.sherwood@arm.com>
18068
18069         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
18070         when the two are known to be equal.
18071
18072 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18073             Alan Hayward  <alan.hayward@arm.com>
18074             David Sherwood  <david.sherwood@arm.com>
18075
18076         * simplify-rtx.c (simplify_const_unary_operation): Use
18077         is_a <scalar_int_mode> instead of checking for a nonzero
18078         precision.  Forcibly convert op_mode to a scalar_int_mode
18079         in that case.  More clearly differentiate the operand and
18080         result modes and use the former when deciding what the value
18081         of a count-bits operation should be.  Use is_int_mode instead
18082         of checking for a MODE_INT.  Remove redundant check for whether
18083         this mode has a zero precision.
18084
18085 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18086             Alan Hayward  <alan.hayward@arm.com>
18087             David Sherwood  <david.sherwood@arm.com>
18088
18089         * optabs.c (widen_leading): Change the type of the mode argument
18090         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
18091         (widen_bswap): Likewise.
18092         (expand_parity): Likewise.
18093         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
18094         (expand_ffs): Likewise.
18095         (epand_unop): Check for scalar integer modes before calling the
18096         above routines.
18097
18098 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18099             Alan Hayward  <alan.hayward@arm.com>
18100             David Sherwood  <david.sherwood@arm.com>
18101
18102         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
18103         Expand commentary.
18104         (expand_expr_real_1): Update call accordingly.
18105
18106 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18107             Alan Hayward  <alan.hayward@arm.com>
18108             David Sherwood  <david.sherwood@arm.com>
18109
18110         * expmed.c (store_bit_field_using_insv): Add op0_mode and
18111         value_mode arguments.  Use scalar_int_mode internally.
18112         (store_bit_field_1): Rename the new integer mode from imode
18113         to op0_mode and use it instead of GET_MODE (op0).  Update calls
18114         to store_split_bit_field, store_bit_field_using_insv and
18115         store_fixed_bit_field.
18116         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
18117         Use scalar_int_mode internally.  Use a bit count rather than a mode
18118         when calculating the largest bit size for get_best_mode.
18119         Update calls to store_split_bit_field and store_fixed_bit_field_1.
18120         (store_fixed_bit_field_1): Add mode and value_mode arguments.
18121         Remove assertion that OP0 has a scalar integer mode.
18122         (store_split_bit_field): Add op0_mode and value_mode arguments.
18123         Update calls to extract_fixed_bit_field.
18124         (extract_bit_field_using_extv): Add an op0_mode argument.
18125         Use scalar_int_mode internally.
18126         (extract_bit_field_1): Rename the new integer mode from imode to
18127         op0_mode and use it instead of GET_MODE (op0).  Update calls to
18128         extract_split_bit_field, extract_bit_field_using_extv and
18129         extract_fixed_bit_field.
18130         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
18131         to extract_split_bit_field and extract_fixed_bit_field_1.
18132         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
18133         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
18134         on the target mode.
18135         (extract_split_bit_field): Add an op0_mode argument.  Update call
18136         to extract_fixed_bit_field.
18137
18138 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18139             Alan Hayward  <alan.hayward@arm.com>
18140             David Sherwood  <david.sherwood@arm.com>
18141
18142         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
18143         * explow.c (hard_function_value): Likewise.
18144         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
18145         convert_to_mode call outside the loop.
18146         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
18147         for the mode iterator.  Require the mode specified by max_pieces
18148         to exist.
18149         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
18150         mode iterator.
18151         (copy_blkmode_to_reg): Likewise.
18152         (set_storage_via_setmem): Likewise.
18153         * optabs.c (prepare_cmp_insn): Likewise.
18154         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18155         * stor-layout.c (finish_bitfield_representative): Likewise.
18156
18157 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18158             Alan Hayward  <alan.hayward@arm.com>
18159             David Sherwood  <david.sherwood@arm.com>
18160
18161         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
18162         * expr.c (convert_move): Use them.
18163         (convert_modes): Likewise.
18164         (store_expr_with_bounds): Likewise.
18165
18166 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18167             Alan Hayward  <alan.hayward@arm.com>
18168             David Sherwood  <david.sherwood@arm.com>
18169
18170         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
18171         parameter for the mode of "x".  Remove the "known_x", "known_mode"
18172         and "known_ret" arguments.  Change the type of the mode argument
18173         to scalar_int_mode.
18174         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
18175         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
18176         (reg_num_sign_bit_copies_for_combine): Likewise.
18177         * rtlanal.c (nonzero_bits1): Likewise.
18178         (num_sign_bit_copies1): Likewise.
18179         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
18180         (reg_num_sign_bit_copies_general): Likewise.
18181         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
18182         (reg_nonzero_bits_general): Likewise.
18183
18184 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18185             Alan Hayward  <alan.hayward@arm.com>
18186             David Sherwood  <david.sherwood@arm.com>
18187
18188         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
18189         than in subroutines.  Return 1 for non-integer modes.
18190         (cached_num_sign_bit_copies): Change the type of the mode parameter
18191         to scalar_int_mode.
18192         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
18193         classes.  Handle CONST_INT_P first and then check whether X also
18194         has a scalar integer mode.  Check the same thing for inner registers
18195         of a SUBREG and for values that are being extended or truncated.
18196
18197 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18198             Alan Hayward  <alan.hayward@arm.com>
18199             David Sherwood  <david.sherwood@arm.com>
18200
18201         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
18202         in subroutines.  Return the mode mask for non-integer modes.
18203         (cached_nonzero_bits): Change the type of the mode parameter
18204         to scalar_int_mode.
18205         (nonzero_bits1): Likewise.  Remove early exit for other mode
18206         classes.  Handle CONST_INT_P first and then check whether X
18207         also has a scalar integer mode.
18208
18209 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18210             Alan Hayward  <alan.hayward@arm.com>
18211             David Sherwood  <david.sherwood@arm.com>
18212
18213         * expr.c (widest_int_mode_for_size): Make the comment match the code.
18214         Return a scalar_int_mode and assert that the size is greater than
18215         one byte.
18216         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
18217         (op_by_pieces_d::op_by_pieces_d): Likewise.
18218         (op_by_pieces_d::run): Likewise.
18219         (can_store_by_pieces): Likewise.
18220
18221 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18222             Alan Hayward  <alan.hayward@arm.com>
18223             David Sherwood  <david.sherwood@arm.com>
18224
18225         * combine.c (extract_left_shift): Add a mode argument and update
18226         recursive calls.
18227         (make_compound_operation_int): Change the type of the mode parameter
18228         to scalar_int_mode and update the call to extract_left_shift.
18229
18230 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18231             Alan Hayward  <alan.hayward@arm.com>
18232             David Sherwood  <david.sherwood@arm.com>
18233
18234         * combine.c (simplify_and_const_int): Change the type of the mode
18235         parameter to scalar_int_mode.
18236         (simplify_and_const_int_1): Likewise.  Update recursive call.
18237
18238 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18239             Alan Hayward  <alan.hayward@arm.com>
18240             David Sherwood  <david.sherwood@arm.com>
18241
18242         * combine.c (simplify_compare_const): Check that the mode is a
18243         scalar_int_mode (rather than VOIDmode) before testing its
18244         precision.
18245         (simplify_comparison): Move COMPARISON_P handling out of the
18246         loop and restrict the latter part of the loop to scalar_int_modes.
18247         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
18248         and when considering SUBREG_REGs.  Use is_int_mode instead of
18249         checking GET_MODE_CLASS against MODE_INT.
18250
18251 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18252             Alan Hayward  <alan.hayward@arm.com>
18253             David Sherwood  <david.sherwood@arm.com>
18254
18255         * combine.c (try_widen_shift_mode): Move check for equal modes to...
18256         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
18257         shift_unit_mode and for modes involved in scalar shifts.
18258
18259 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18260             Alan Hayward  <alan.hayward@arm.com>
18261             David Sherwood  <david.sherwood@arm.com>
18262
18263         * combine.c (force_int_to_mode): New function, split out from...
18264         (force_to_mode): ...here.  Keep xmode up-to-date and use it
18265         instead of GET_MODE (x).
18266
18267 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18268             Alan Hayward  <alan.hayward@arm.com>
18269             David Sherwood  <david.sherwood@arm.com>
18270
18271         * optabs-query.h (extraction_insn::struct_mode): Change type to
18272         opt_scalar_int_mode and update comment.
18273         (extraction_insn::field_mode): Change type to scalar_int_mode.
18274         (extraction_insn::pos_mode): Likewise.
18275         * combine.c (make_extraction): Update accordingly.
18276         * optabs-query.c (get_traditional_extraction_insn): Likewise.
18277         (get_optab_extraction_insn): Likewise.
18278         * recog.c (simplify_while_replacing): Likewise.
18279         * expmed.c (narrow_bit_field_mem): Change the type of the mode
18280         parameter to opt_scalar_int_mode.
18281
18282 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18283             Alan Hayward  <alan.hayward@arm.com>
18284             David Sherwood  <david.sherwood@arm.com>
18285
18286         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
18287         to a scalar_int_mode instead of a machine_mode.
18288         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
18289         (get_best_mode): Return a boolean and use a pointer argument to store
18290         the selected mode.  Replace the limit mode parameter with a bit limit.
18291         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
18292         for the values returned by bit_field_mode_iterator::next_mode.
18293         (store_bit_field): Update call to get_best_mode.
18294         (store_fixed_bit_field): Likewise.
18295         (extract_fixed_bit_field): Likewise.
18296         * expr.c (optimize_bitfield_assignment_op): Likewise.
18297         * fold-const.c (optimize_bit_field_compare): Likewise.
18298         (fold_truth_andor_1): Likewise.
18299         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
18300         Update for new type of m_mode.
18301         (get_best_mode): As above.
18302
18303 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18304             Alan Hayward  <alan.hayward@arm.com>
18305             David Sherwood  <david.sherwood@arm.com>
18306
18307         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
18308         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
18309         (store_bit_field): Check is_a <scalar_int_mode> before calling
18310         strict_volatile_bitfield_p.
18311         (extract_bit_field): Likewise.
18312
18313 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18314             Alan Hayward  <alan.hayward@arm.com>
18315             David Sherwood  <david.sherwood@arm.com>
18316
18317         * target.def (cstore_mode): Return a scalar_int_mode.
18318         * doc/tm.texi: Regenerate.
18319         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
18320         * targhooks.h (default_cstore_mode): Likewise.
18321         * targhooks.c (default_cstore_mode): Likewise, using a forced
18322         conversion.
18323         * expmed.c (emit_cstore): Expect the target of the cstore to be
18324         a scalar_int_mode.
18325
18326 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18327             Alan Hayward  <alan.hayward@arm.com>
18328             David Sherwood  <david.sherwood@arm.com>
18329
18330         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
18331         scalar_int_mode.
18332         (niter_desc): Likewise mode.
18333         (iv_analyze): Add a mode parameter.
18334         (biv_p): Likewise.
18335         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
18336         and change its type to scalar_int_mode.
18337         * loop-iv.c: Update commentary at head of file.
18338         (iv_constant): Pass the mode paraeter before the rtx it describes
18339         and change its type to scalar_int_mode.  Remove VOIDmode handling.
18340         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
18341         (iv_extend): Likewise.
18342         (shorten_into_mode): Likewise.
18343         (iv_add): Use scalar_int_mode.
18344         (iv_mult): Likewise.
18345         (iv_shift): Likewise.
18346         (canonicalize_iv_subregs): Likewise.
18347         (get_biv_step_1): Pass the outer_mode parameter before the rtx
18348         it describes and change its mode to scalar_int_mode.   Also change
18349         the type of the returned inner_mode to scalar_int_mode.
18350         (get_biv_step): Likewise, turning outer_mode from a pointer
18351         into a direct parameter.  Update call to get_biv_step_1.
18352         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
18353         iv_constant and get_biv_step.
18354         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
18355         and change its type to scalar_int_mode.  Don't initialise iv->mode
18356         to VOIDmode and remove later checks for its still being VOIDmode.
18357         Update calls to iv_analyze_op and iv_analyze_expr.  Check
18358         is_a <scalar_int_mode> when changing the mode under consideration.
18359         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
18360         Update call to iv_analyze_expr.
18361         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
18362         inner register is not also a scalar_int_mode.  Update call to
18363         iv_analyze_biv.
18364         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
18365         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
18366         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
18367         separate mode class checks.  Update calls to iv_analyze.  Remove
18368         fix-up of VOIDmodes after iv_analyze_biv.
18369         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
18370         don't have a scalar_int_mode.  Update call to biv_p.
18371
18372 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18373             Alan Hayward  <alan.hayward@arm.com>
18374             David Sherwood  <david.sherwood@arm.com>
18375
18376         * cfgexpand.c (convert_debug_memory_address): Use
18377         as_a <scalar_int_mode>.
18378         * combine.c (expand_compound_operation): Likewise.
18379         (make_extraction): Likewise.
18380         (change_zero_ext): Likewise.
18381         (simplify_comparison): Likewise.
18382         * cse.c (cse_insn): Likewise.
18383         * dwarf2out.c (minmax_loc_descriptor): Likewise.
18384         (mem_loc_descriptor): Likewise.
18385         (loc_descriptor): Likewise.
18386         * expmed.c (init_expmed_one_mode): Likewise.
18387         (synth_mult): Likewise.
18388         (emit_store_flag_1): Likewise.
18389         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
18390         of a comparison with size.
18391         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
18392         (reduce_to_bit_field_precision): Likewise.
18393         * function.c (expand_function_end): Likewise.
18394         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
18395         * loop-doloop.c (doloop_modify): Likewise.
18396         * optabs.c (expand_binop): Likewise.
18397         (expand_unop): Likewise.
18398         (expand_copysign_absneg): Likewise.
18399         (prepare_cmp_insn): Likewise.
18400         (maybe_legitimize_operand): Likewise.
18401         * recog.c (const_scalar_int_operand): Likewise.
18402         * rtlanal.c (get_address_mode): Likewise.
18403         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18404         (simplify_cond_clz_ctz): Likewise.
18405         * tree-nested.c (get_nl_goto_field): Likewise.
18406         * tree.c (build_vector_type_for_mode): Likewise.
18407         * var-tracking.c (use_narrower_mode): Likewise.
18408
18409 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18410             Alan Hayward  <alan.hayward@arm.com>
18411             David Sherwood  <david.sherwood@arm.com>
18412
18413         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
18414         * builtins.c (expand_builtin_signbit): Use it.
18415         * cfgexpand.c (expand_debug_expr): Likewise.
18416         * dojump.c (do_jump): Likewise.
18417         (do_compare_and_jump): Likewise.
18418         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
18419         * expmed.c (make_tree): Likewise.
18420         * expr.c (expand_expr_real_2): Likewise.
18421         (expand_expr_real_1): Likewise.
18422         (try_casesi): Likewise.
18423         * fold-const-call.c (fold_const_call_ss): Likewise.
18424         * fold-const.c (unextend): Likewise.
18425         (extract_muldiv_1): Likewise.
18426         (fold_single_bit_test): Likewise.
18427         (native_encode_int): Likewise.
18428         (native_encode_string): Likewise.
18429         (native_interpret_int): Likewise.
18430         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
18431         * internal-fn.c (expand_addsub_overflow): Likewise.
18432         (expand_neg_overflow): Likewise.
18433         (expand_mul_overflow): Likewise.
18434         (expand_arith_overflow): Likewise.
18435         * match.pd: Likewise.
18436         * stor-layout.c (layout_type): Likewise.
18437         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
18438         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
18439         * tree-ssanames.c (get_range_info): Likewise.
18440         * tree-switch-conversion.c (array_value_type) Likewise.
18441         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
18442         (vect_recog_divmod_pattern): Likewise.
18443         (vect_recog_mixed_size_cond_pattern): Likewise.
18444         * tree-vrp.c (extract_range_basic): Likewise.
18445         (simplify_float_conversion_using_ranges): Likewise.
18446         * tree.c (int_fits_type_p): Likewise.
18447         * ubsan.c (instrument_bool_enum_load): Likewise.
18448         * varasm.c (mergeable_string_section): Likewise.
18449         (narrowing_initializer_constant_valid_p): Likewise.
18450         (output_constant): Likewise.
18451
18452 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18453             Alan Hayward  <alan.hayward@arm.com>
18454             David Sherwood  <david.sherwood@arm.com>
18455
18456         * machmode.h (NARROWEST_INT_MODE): New macro.
18457         * expr.c (alignment_for_piecewise_move): Use it instead of
18458         GET_CLASS_NARROWEST_MODE (MODE_INT).
18459         (push_block): Likewise.
18460         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
18461         Likewise.
18462         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18463
18464 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18465             Alan Hayward  <alan.hayward@arm.com>
18466             David Sherwood  <david.sherwood@arm.com>
18467
18468         * postreload.c (move2add_valid_value_p): Change the type of the
18469         mode parameter to scalar_int_mode.
18470         (move2add_use_add2_insn): Add a mode parameter and use it instead
18471         of GET_MODE (reg).
18472         (move2add_use_add3_insn): Likewise.
18473         (reload_cse_move2add): Update accordingly.
18474
18475 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18476             Alan Hayward  <alan.hayward@arm.com>
18477             David Sherwood  <david.sherwood@arm.com>
18478
18479         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
18480         double-word mode.
18481         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
18482         * optabs.c (expand_unop): Likewise.
18483
18484 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18485             Alan Hayward  <alan.hayward@arm.com>
18486             David Sherwood  <david.sherwood@arm.com>
18487
18488         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
18489         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
18490         (popcount_loc_descriptor): Likewise.
18491         (bswap_loc_descriptor): Likewise.
18492         (rotate_loc_descriptor): Likewise.
18493         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
18494         calling the functions above.
18495
18496 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18497             Alan Hayward  <alan.hayward@arm.com>
18498             David Sherwood  <david.sherwood@arm.com>
18499
18500         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
18501         checks.
18502         (try_combine): Likewise.
18503         (simplify_if_then_else): Likewise.
18504         * cse.c (cse_insn): Likewise.
18505         * dwarf2out.c (mem_loc_descriptor): Likewise.
18506         * emit-rtl.c (gen_lowpart_common): Likewise.
18507         * simplify-rtx.c (simplify_truncation): Likewise.
18508         (simplify_binary_operation_1): Likewise.
18509         (simplify_const_relational_operation): Likewise.
18510         (simplify_ternary_operation): Likewise.
18511         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
18512
18513 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18514             Alan Hayward  <alan.hayward@arm.com>
18515             David Sherwood  <david.sherwood@arm.com>
18516
18517         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
18518         * reload.c (push_reload): Likewise.
18519         (find_reloads): Likewise.
18520
18521 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18522             Alan Hayward  <alan.hayward@arm.com>
18523             David Sherwood  <david.sherwood@arm.com>
18524
18525         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
18526         (make_compound_operation_int): Likewise.
18527         (change_zero_ext): Likewise.
18528         * expr.c (convert_move): Likewise.
18529         (convert_modes): Likewise.
18530         * fwprop.c (forward_propagate_subreg): Likewise.
18531         * loop-iv.c (get_biv_step_1): Likewise.
18532         * optabs.c (widen_operand): Likewise.
18533         * postreload.c (move2add_valid_value_p): Likewise.
18534         * recog.c (simplify_while_replacing): Likewise.
18535         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18536         (simplify_binary_operation_1): Likewise.  Remove redundant
18537         mode equality check.
18538
18539 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18540             Alan Hayward  <alan.hayward@arm.com>
18541             David Sherwood  <david.sherwood@arm.com>
18542
18543         * combine.c (combine_simplify_rtx): Add checks for
18544         is_a <scalar_int_mode>.
18545         (simplify_if_then_else): Likewise.
18546         (make_field_assignment): Likewise.
18547         (simplify_comparison): Likewise.
18548         * ifcvt.c (noce_try_bitop): Likewise.
18549         * loop-invariant.c (canonicalize_address_mult): Likewise.
18550         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18551
18552 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18553             Alan Hayward  <alan.hayward@arm.com>
18554             David Sherwood  <david.sherwood@arm.com>
18555
18556         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
18557         is_a <scalar_int_mode> instead of != BLKmode.
18558
18559 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18560             Alan Hayward  <alan.hayward@arm.com>
18561             David Sherwood  <david.sherwood@arm.com>
18562
18563         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
18564         instead of != VOIDmode.
18565         * combine.c (if_then_else_cond): Likewise.
18566         (change_zero_ext): Likewise.
18567         * dwarf2out.c (mem_loc_descriptor): Likewise.
18568         (loc_descriptor): Likewise.
18569         * rtlanal.c (canonicalize_condition): Likewise.
18570         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
18571
18572 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18573             Alan Hayward  <alan.hayward@arm.com>
18574             David Sherwood  <david.sherwood@arm.com>
18575
18576         * simplify-rtx.c (simplify_binary_operation_1): Use
18577         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
18578
18579 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18580             Alan Hayward  <alan.hayward@arm.com>
18581             David Sherwood  <david.sherwood@arm.com>
18582
18583         * wide-int.h (int_traits<unsigned char>) New class.
18584         (int_traits<unsigned short>) Likewise.
18585         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
18586         Use GET_MODE_UNIT_PRECISION and remove redundant test for
18587         SCALAR_INT_MODE_P.
18588         * combine.c (set_nonzero_bits_and_sign_copies): Use
18589         is_a <scalar_int_mode>.
18590         (find_split_point): Likewise.
18591         (combine_simplify_rtx): Likewise.
18592         (simplify_logical): Likewise.
18593         (expand_compound_operation): Likewise.
18594         (expand_field_assignment): Likewise.
18595         (make_compound_operation): Likewise.
18596         (extended_count): Likewise.
18597         (change_zero_ext): Likewise.
18598         (simplify_comparison): Likewise.
18599         * dwarf2out.c (scompare_loc_descriptor): Likewise.
18600         (ucompare_loc_descriptor): Likewise.
18601         (minmax_loc_descriptor): Likewise.
18602         (mem_loc_descriptor): Likewise.
18603         (loc_descriptor): Likewise.
18604         * expmed.c (init_expmed_one_mode): Likewise.
18605         * lra-constraints.c (lra_constraint_offset): Likewise.
18606         * optabs.c (prepare_libcall_arg): Likewise.
18607         * postreload.c (move2add_note_store): Likewise.
18608         * reload.c (operands_match_p): Likewise.
18609         * rtl.h (load_extend_op): Likewise.
18610         * rtlhooks.c (gen_lowpart_general): Likewise.
18611         * simplify-rtx.c (simplify_truncation): Likewise.
18612         (simplify_unary_operation_1): Likewise.
18613         (simplify_binary_operation_1): Likewise.
18614         (simplify_const_binary_operation): Likewise.
18615         (simplify_const_relational_operation): Likewise.
18616         (simplify_subreg): Likewise.
18617         * stor-layout.c (bitwise_mode_for_mode): Likewise.
18618         * var-tracking.c (adjust_mems): Likewise.
18619         (prepare_call_arguments): Likewise.
18620
18621 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18622             Alan Hayward  <alan.hayward@arm.com>
18623             David Sherwood  <david.sherwood@arm.com>
18624
18625         * machmode.h (is_int_mode): New fuction.
18626         * combine.c (find_split_point): Use it.
18627         (combine_simplify_rtx): Likewise.
18628         (simplify_if_then_else): Likewise.
18629         (simplify_set): Likewise.
18630         (simplify_shift_const_1): Likewise.
18631         (simplify_comparison): Likewise.
18632         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
18633         * cse.c (notreg_cost): Likewise.
18634         (cse_insn): Likewise.
18635         * cselib.c (cselib_lookup_1): Likewise.
18636         * dojump.c (do_jump_1): Likewise.
18637         (do_compare_rtx_and_jump): Likewise.
18638         * dse.c (get_call_args): Likewise.
18639         * dwarf2out.c (rtl_for_decl_init): Likewise.
18640         (native_encode_initializer): Likewise.
18641         * expmed.c (emit_store_flag_1): Likewise.
18642         (emit_store_flag): Likewise.
18643         * expr.c (convert_modes): Likewise.
18644         (store_field): Likewise.
18645         (expand_expr_real_1): Likewise.
18646         * fold-const.c (fold_read_from_constant_string): Likewise.
18647         * gimple-ssa-sprintf.c (get_format_string): Likewise.
18648         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
18649         * optabs.c (expand_binop): Likewise.
18650         (expand_unop): Likewise.
18651         (expand_abs_nojump): Likewise.
18652         (expand_one_cmpl_abs_nojump): Likewise.
18653         * simplify-rtx.c (mode_signbit_p): Likewise.
18654         (val_signbit_p): Likewise.
18655         (val_signbit_known_set_p): Likewise.
18656         (val_signbit_known_clear_p): Likewise.
18657         (simplify_relational_operation_1): Likewise.
18658         * tree.c (vector_type_mode): Likewise.
18659
18660 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18661             Alan Hayward  <alan.hayward@arm.com>
18662             David Sherwood  <david.sherwood@arm.com>
18663
18664         * machmode.h (smallest_mode_for_size): Fix formatting.
18665         (smallest_int_mode_for_size): New function.
18666         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
18667         instead of smallest_mode_for_size.
18668         * combine.c (make_extraction): Likewise.
18669         * config/arc/arc.c (arc_expand_movmem): Likewise.
18670         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
18671         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
18672         * config/s390/s390.c (s390_expand_insv): Likewise.
18673         * config/sparc/sparc.c (assign_int_registers): Likewise.
18674         * config/spu/spu.c (spu_function_value): Likewise.
18675         (spu_function_arg): Likewise.
18676         * coverage.c (get_gcov_type): Likewise.
18677         (get_gcov_unsigned_t): Likewise.
18678         * dse.c (find_shift_sequence): Likewise.
18679         * expmed.c (store_bit_field_1): Likewise.
18680         * expr.c (convert_move): Likewise.
18681         (store_field): Likewise.
18682         * internal-fn.c (expand_arith_overflow): Likewise.
18683         * optabs-query.c (get_best_extraction_insn): Likewise.
18684         * optabs.c (expand_twoval_binop_libfunc): Likewise.
18685         * stor-layout.c (layout_type): Likewise.
18686         (initialize_sizetypes): Likewise.
18687         * targhooks.c (default_get_mask_mode): Likewise.
18688         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
18689
18690 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18691             Alan Hayward  <alan.hayward@arm.com>
18692             David Sherwood  <david.sherwood@arm.com>
18693
18694         * machmode.h (opt_mode::else_blk): New function.
18695         (int_mode_for_mode): Declare.
18696         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
18697         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
18698         return type.
18699         * cfgexpand.c (expand_debug_expr): Likewise.
18700         * combine.c (gen_lowpart_or_truncate): Likewise.
18701         (gen_lowpart_for_combine): Likewise.
18702         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
18703         * config/avr/avr.c (avr_to_int_mode): Likewise.
18704         (avr_out_plus_1): Likewise.
18705         (avr_out_plus): Likewise.
18706         (avr_out_round): Likewise.
18707         * config/i386/i386.c (ix86_split_to_parts): Likewise.
18708         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
18709         (s390_expand_vcond): Likewise.
18710         * config/spu/spu.c (spu_split_immediate): Likewise.
18711         (spu_expand_mov): Likewise.
18712         * dse.c (get_stored_val): Likewise.
18713         * expmed.c (store_bit_field_1): Likewise.
18714         (convert_extracted_bit_field): Use int_mode_for_mode instead of
18715         int_mode_for_size.
18716         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
18717         (extract_low_bits): Likewise.
18718         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
18719         handling rather than repeating the check.
18720         (emit_group_store): Likewise.
18721         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
18722         * optabs.c (expand_absneg_bit): Likewise.
18723         (expand_copysign_absneg): Likewise.
18724         (expand_copysign_bit): Likewise.
18725         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
18726         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
18727         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
18728         * var-tracking.c (prepare_call_arguments):  Likewise.
18729         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
18730         int_mode_for_mode instead of mode_for_size.
18731         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
18732
18733 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18734             Alan Hayward  <alan.hayward@arm.com>
18735             David Sherwood  <david.sherwood@arm.com>
18736
18737         * machmode.h (int_mode_for_size): New function.
18738         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
18739         instead of mode_for_size.
18740         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
18741         explicit.
18742         * combine.c (expand_field_assignment): Use int_mode_for_size
18743         instead of mode_for_size.
18744         (make_extraction): Likewise.
18745         (simplify_shift_const_1): Likewise.
18746         (simplify_comparison): Likewise.
18747         * dojump.c (do_jump): Likewise.
18748         * dwarf2out.c (mem_loc_descriptor): Likewise.
18749         * emit-rtl.c (init_derived_machine_modes): Likewise.
18750         * expmed.c (flip_storage_order): Likewise.
18751         (convert_extracted_bit_field): Likewise.
18752         * expr.c (copy_blkmode_from_reg): Likewise.
18753         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
18754         * internal-fn.c (expand_mul_overflow): Likewise.
18755         * lower-subreg.c (simple_move): Likewise.
18756         * optabs-libfuncs.c (init_optabs): Likewise.
18757         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18758         * tree.c (vector_type_mode): Likewise.
18759         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
18760         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
18761         * tree-vect-generic.c (expand_vector_parallel): Likewise.
18762         * tree-vect-stmts.c (vectorizable_load): Likewise.
18763         (vectorizable_store): Likewise.
18764
18765 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18766             Alan Hayward  <alan.hayward@arm.com>
18767             David Sherwood  <david.sherwood@arm.com>
18768
18769         * coretypes.h (pod_mode): New type.
18770         (scalar_int_mode_pod): New typedef.
18771         * machmode.h (pod_mode): New class.
18772         (int_n_data_t::m): Change type to scalar_int_mode_pod.
18773         * genmodes.c (emit_mode_int_n): Update accordingly.
18774         * lower-subreg.h (target_lower_subreg): Change type to
18775         scalar_int_mode_pod.
18776         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
18777         scalar_int_mode_pod.
18778
18779 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18780             Alan Hayward  <alan.hayward@arm.com>
18781             David Sherwood  <david.sherwood@arm.com>
18782
18783         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
18784         machine_mode to scalar_int_mode.
18785         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
18786         (rs6000_option_override_internal): Remove cast to int.
18787         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
18788         machine_mode to scalar_int_mode.
18789         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
18790         (rs6000_option_override_internal): Remove cast to int.
18791         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
18792         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
18793         to machine_mode.
18794         * config/s390/s390.c (s390_expand_builtin): Likewise.
18795         * coretypes.h (scalar_int_mode): New type.
18796         (opt_scalar_int_mode): New typedef.
18797         * machmode.h (scalar_int_mode): New class.
18798         (scalar_int_mode::includes_p): New function.
18799         (byte_mode): Change type to scalar_int_mode.
18800         (word_mode): Likewise.
18801         (ptr_mode): Likewise.
18802         * emit-rtl.c (byte_mode): Likewise.
18803         (word_mode): Likewise.
18804         (ptr_mode): Likewise.
18805         (init_derived_machine_modes): Update accordingly.
18806         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
18807         and MODE_PARTIAL_INT.
18808         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
18809         opt_scalar_int_mode.
18810
18811 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18812             Alan Hayward  <alan.hayward@arm.com>
18813             David Sherwood  <david.sherwood@arm.com>
18814
18815         * target.def (libgcc_floating_mode_supported_p): Take a
18816         scalar_float_mode.
18817         * doc/tm.texi: Regenerate.
18818         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
18819         scalar_float_mode.
18820         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18821         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
18822         Likewise.
18823
18824 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18825             Alan Hayward  <alan.hayward@arm.com>
18826             David Sherwood  <david.sherwood@arm.com>
18827
18828         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
18829         * doc/tm.texi: Regenerate.
18830         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
18831         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
18832         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
18833         * targhooks.h (default_floatn_mode): Likewise.
18834         * targhooks.c (default_floatn_mode): Likewise.
18835         * tree.c (build_common_tree_nodes): Update accordingly.
18836
18837 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18838             Alan Hayward  <alan.hayward@arm.com>
18839             David Sherwood  <david.sherwood@arm.com>
18840
18841         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
18842         (mode_iterator::iterate_p): Likewise.
18843         (mode_iterator::get_wider): Likewise.
18844         * expr.c (init_expr_target): Use opt_scalar_float_mode.
18845
18846 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18847             Alan Hayward  <alan.hayward@arm.com>
18848             David Sherwood  <david.sherwood@arm.com>
18849
18850         * coretypes.h (opt_scalar_float_mode): New typedef.
18851         * machmode.h (float_mode_for_size): New function.
18852         * emit-rtl.c (double_mode): Delete.
18853         (init_emit_once): Use float_mode_for_size.
18854         * stor-layout.c (layout_type): Likewise.
18855         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
18856
18857 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18858             Alan Hayward  <alan.hayward@arm.com>
18859             David Sherwood  <david.sherwood@arm.com>
18860
18861         * output.h (assemble_real): Take a scalar_float_mode.
18862         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
18863         * config/arm/arm.md (consttable_4): Likewise.
18864         (consttable_8): Likewise.
18865         (consttable_16): Likewise.
18866         * config/mips/mips.md (consttable_float): Likewise.
18867         * config/s390/s390.c (s390_output_pool_entry): Likewise.
18868         * varasm.c (assemble_real): Take a scalar_float_mode.
18869         (output_constant_pool_2): Update accordingly.
18870         (output_constant): Likewise.
18871
18872 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18873             Alan Hayward  <alan.hayward@arm.com>
18874             David Sherwood  <david.sherwood@arm.com>
18875
18876         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
18877         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
18878         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
18879         (native_encode_real): Likewise.
18880         (native_interpret_real): Likewise.
18881         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
18882         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18883
18884 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18885             Alan Hayward  <alan.hayward@arm.com>
18886             David Sherwood  <david.sherwood@arm.com>
18887
18888         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
18889         <scalar_float_mode>.  Simplify.
18890         (gen_extend_conv_libfunc): Likewise.
18891
18892 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18893             Alan Hayward  <alan.hayward@arm.com>
18894             David Sherwood  <david.sherwood@arm.com>
18895
18896         * coretypes.h (scalar_float_mode): New type.
18897         * machmode.h (mode_traits::from_int): Use machine_mode if
18898         USE_ENUM_MODES is defined.
18899         (is_a): New function.
18900         (as_a): Likewise.
18901         (dyn_cast): Likewise.
18902         (scalar_float_mode): New class.
18903         (scalar_float_mode::includes_p): New function.
18904         (is_float_mode): Likewise.
18905         * gdbhooks.py (MachineModePrinter): New class.
18906         (build_pretty_printer): Use it for scalar_float_mode.
18907         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
18908         (format_helper::format_helper): Turn into a template.
18909         * genmodes.c (get_mode_class): New function.
18910         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
18911         or machine_mode if none.
18912         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
18913         as_a <scalar_float_mode>.
18914         * dwarf2out.c (mem_loc_descriptor): Likewise.
18915         (insert_float): Likewise.
18916         (add_const_value_attribute): Likewise.
18917         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18918         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
18919         (expand_unop): Update accordingly.
18920         (expand_abs_nojump): Likewise.
18921         (expand_copysign_absneg): Take a scalar_float_mode.
18922         (expand_copysign_bit): Likewise.
18923         (expand_copysign): Update accordingly.
18924
18925 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18926             Alan Hayward  <alan.hayward@arm.com>
18927             David Sherwood  <david.sherwood@arm.com>
18928
18929         * coretypes.h (opt_mode): New class.
18930         * machmode.h (opt_mode): Likewise.
18931         (opt_mode::else_void): New function.
18932         (opt_mode::require): Likewise.
18933         (opt_mode::exists): Likewise.
18934         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
18935         (GET_MODE_2XWIDER_MODE): Likewise.
18936         (mode_iterator::get_wider): Update accordingly.
18937         (mode_iterator::get_2xwider): Likewise.
18938         (mode_iterator::get_known_wider): Likewise, turning into a template.
18939         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
18940         forcing a wider mode to exist.
18941         * config/cr16/cr16.h (LONG_REG_P): Likewise.
18942         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18943         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
18944         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
18945         * lower-subreg.c (init_lower_subreg): Likewise.
18946         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
18947         on the final iteration.
18948         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
18949         a wider mode exists before asking for a move pattern.
18950         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
18951         forcing a wider mode to exist.
18952         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
18953         returning false if no such mode exists.
18954         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
18955         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
18956         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
18957         Avoid checking for a MODE_INT if we already know the mode is not a
18958         SCALAR_INT_MODE_P.
18959         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
18960         forcing a wider mode to exist.
18961         (expmed_mult_highpart_optab): Likewise.
18962         (expmed_mult_highpart): Likewise.
18963         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
18964         using else_void.
18965         * lto-streamer-in.c (lto_input_mode_table): Likewise.
18966         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
18967         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
18968         * internal-fn.c (expand_mul_overflow): Update use of
18969         GET_MODE_2XWIDER_MODE.
18970         * omp-low.c (omp_clause_aligned_alignment): Likewise.
18971         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
18972         GET_MODE_WIDER_MODE.
18973         (convert_plusminus_to_widen): Likewise.
18974         * tree-switch-conversion.c (array_value_type): Likewise.
18975         * var-tracking.c (emit_note_insn_var_location): Likewise.
18976         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18977         Return false inside rather than outside the loop if no wider mode
18978         exists
18979         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
18980         and GET_MODE_2XWIDER_MODE
18981         (can_compare_p): Use else_void.
18982         * gdbhooks.py (OptMachineModePrinter): New class.
18983         (build_pretty_printer): Use it for opt_mode.
18984
18985 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18986             Alan Hayward  <alan.hayward@arm.com>
18987             David Sherwood  <david.sherwood@arm.com>
18988
18989         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
18990         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
18991
18992 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18993             Alan Hayward  <alan.hayward@arm.com>
18994             David Sherwood  <david.sherwood@arm.com>
18995
18996         * machmode.h (mode_traits): New structure.
18997         (get_narrowest_mode): New function.
18998         (mode_iterator::start): Likewise.
18999         (mode_iterator::iterate_p): Likewise.
19000         (mode_iterator::get_wider): Likewise.
19001         (mode_iterator::get_known_wider): Likewise.
19002         (mode_iterator::get_2xwider): Likewise.
19003         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
19004         (FOR_EACH_MODE): Likewise.
19005         (FOR_EACH_MODE_FROM): Likewise.
19006         (FOR_EACH_MODE_UNTIL): Likewise.
19007         (FOR_EACH_WIDER_MODE): Likewise.
19008         (FOR_EACH_2XWIDER_MODE): Likewise.
19009         * builtins.c (expand_builtin_strlen): Use new mode iterators.
19010         * combine.c (simplify_comparison): Likewise
19011         * config/i386/i386.c (type_natural_mode): Likewise.
19012         * cse.c (cse_insn): Likewise.
19013         * dse.c (find_shift_sequence): Likewise.
19014         * emit-rtl.c (init_derived_machine_modes): Likewise.
19015         (init_emit_once): Likewise.
19016         * explow.c (hard_function_value): Likewise.
19017         * expmed.c (extract_fixed_bit_field_1): Likewise.
19018         (extract_bit_field_1): Likewise.
19019         (expand_divmod): Likewise.
19020         (emit_store_flag_1): Likewise.
19021         * expr.c (init_expr_target): Likewise.
19022         (convert_move): Likewise.
19023         (alignment_for_piecewise_move): Likewise.
19024         (widest_int_mode_for_size): Likewise.
19025         (emit_block_move_via_movmem): Likewise.
19026         (copy_blkmode_to_reg): Likewise.
19027         (set_storage_via_setmem): Likewise.
19028         (compress_float_constant): Likewise.
19029         * omp-low.c (omp_clause_aligned_alignment): Likewise.
19030         * optabs-query.c (get_best_extraction_insn): Likewise.
19031         * optabs.c (expand_binop): Likewise.
19032         (expand_twoval_unop): Likewise.
19033         (expand_twoval_binop): Likewise.
19034         (widen_leading): Likewise.
19035         (widen_bswap): Likewise.
19036         (expand_parity): Likewise.
19037         (expand_unop): Likewise.
19038         (prepare_cmp_insn): Likewise.
19039         (prepare_float_lib_cmp): Likewise.
19040         (expand_float): Likewise.
19041         (expand_fix): Likewise.
19042         (expand_sfix_optab): Likewise.
19043         * postreload.c (move2add_use_add2_insn): Likewise.
19044         * reg-stack.c (reg_to_stack): Likewise.
19045         * reginfo.c (choose_hard_reg_mode): Likewise.
19046         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
19047         * stor-layout.c (mode_for_size): Likewise.
19048         (smallest_mode_for_size): Likewise.
19049         (mode_for_vector): Likewise.
19050         (finish_bitfield_representative): Likewise.
19051         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
19052         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
19053         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19054         * var-tracking.c (prepare_call_arguments): Likewise.
19055
19056 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19057             Alan Hayward  <alan.hayward@arm.com>
19058             David Sherwood  <david.sherwood@arm.com>
19059
19060         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
19061         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
19062         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
19063         * machmode.h (mode_size): Move earlier in file.
19064         (mode_precision): Likewise.
19065         (mode_inner): Likewise.
19066         (mode_nunits): Likewise.
19067         (mode_unit_size): Likewise.
19068         (unit_unit_precision): Likewise.
19069         (mode_wider): Likewise.
19070         (mode_2xwider): Likewise.
19071         (machine_mode): New class.
19072         (mode_to_bytes): New function.
19073         (mode_to_bits): Likewise.
19074         (mode_to_precision): Likewise.
19075         (mode_to_inner): Likewise.
19076         (mode_to_unit_size): Likewise.
19077         (mode_to_unit_precision): Likewise.
19078         (mode_to_nunits): Likewise.
19079         (GET_MODE_SIZE): Use mode_to_bytes.
19080         (GET_MODE_BITSIZE): Use mode_to_bits.
19081         (GET_MODE_PRECISION): Use mode_to_precision.
19082         (GET_MODE_INNER): Use mode_to_inner.
19083         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
19084         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
19085         (GET_MODE_NUNITS): Use mode_to_nunits.
19086         * system.h (ALWAYS_INLINE): New macro.
19087         * config/powerpcspe/powerpcspe-c.c
19088         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
19089         int for arg1_mode and arg2_mode.
19090
19091 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19092             Alan Hayward  <alan.hayward@arm.com>
19093             David Sherwood  <david.sherwood@arm.com>
19094
19095         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
19096         Prefix mode names with E_ in case statements.
19097         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19098         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
19099         (aarch64_split_simd_move): Likewise.
19100         (aarch64_gen_storewb_pair): Likewise.
19101         (aarch64_gen_loadwb_pair): Likewise.
19102         (aarch64_gen_store_pair): Likewise.
19103         (aarch64_gen_load_pair): Likewise.
19104         (aarch64_get_condition_code_1): Likewise.
19105         (aarch64_constant_pool_reload_icode): Likewise.
19106         (get_rsqrte_type): Likewise.
19107         (get_rsqrts_type): Likewise.
19108         (get_recpe_type): Likewise.
19109         (get_recps_type): Likewise.
19110         (aarch64_gimplify_va_arg_expr): Likewise.
19111         (aarch64_simd_container_mode): Likewise.
19112         (aarch64_emit_load_exclusive): Likewise.
19113         (aarch64_emit_store_exclusive): Likewise.
19114         (aarch64_expand_compare_and_swap): Likewise.
19115         (aarch64_gen_atomic_cas): Likewise.
19116         (aarch64_emit_bic): Likewise.
19117         (aarch64_emit_atomic_swap): Likewise.
19118         (aarch64_emit_atomic_load_op): Likewise.
19119         (aarch64_evpc_trn): Likewise.
19120         (aarch64_evpc_uzp): Likewise.
19121         (aarch64_evpc_zip): Likewise.
19122         (aarch64_evpc_ext): Likewise.
19123         (aarch64_evpc_rev): Likewise.
19124         (aarch64_evpc_dup): Likewise.
19125         (aarch64_gen_ccmp_first): Likewise.
19126         (aarch64_gen_ccmp_next): Likewise.
19127         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
19128         (alpha_emit_xfloating_libcall): Likewise.
19129         (emit_insxl): Likewise.
19130         (alpha_arg_type): Likewise.
19131         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
19132         (arc_preferred_simd_mode): Likewise.
19133         (arc_secondary_reload): Likewise.
19134         (get_arc_condition_code): Likewise.
19135         (arc_print_operand): Likewise.
19136         (arc_legitimate_constant_p): Likewise.
19137         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19138         * config/arc/arc.md (casesi_load): Likewise.
19139         (casesi_compact_jump): Likewise.
19140         * config/arc/predicates.md (proper_comparison_operator): Likewise.
19141         (cc_use_register): Likewise.
19142         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19143         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
19144         (arm_init_iwmmxt_builtins): Likewise.
19145         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
19146         (neon_expand_vector_init): Likewise.
19147         (arm_attr_length_move_neon): Likewise.
19148         (maybe_get_arm_condition_code): Likewise.
19149         (arm_emit_vector_const): Likewise.
19150         (arm_preferred_simd_mode): Likewise.
19151         (arm_output_iwmmxt_tinsr): Likewise.
19152         (thumb1_output_casesi): Likewise.
19153         (thumb2_output_casesi): Likewise.
19154         (arm_emit_load_exclusive): Likewise.
19155         (arm_emit_store_exclusive): Likewise.
19156         (arm_expand_compare_and_swap): Likewise.
19157         (arm_evpc_neon_vuzp): Likewise.
19158         (arm_evpc_neon_vzip): Likewise.
19159         (arm_evpc_neon_vrev): Likewise.
19160         (arm_evpc_neon_vtrn): Likewise.
19161         (arm_evpc_neon_vext): Likewise.
19162         (arm_validize_comparison): Likewise.
19163         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
19164         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
19165         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
19166         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
19167         (c6x_preferred_simd_mode): Likewise.
19168         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
19169         (epiphany_rtx_costs): Likewise.
19170         * config/epiphany/predicates.md (proper_comparison_operator):
19171         Likewise.
19172         * config/frv/frv.c (condexec_memory_operand): Likewise.
19173         (frv_emit_move): Likewise.
19174         (output_move_single): Likewise.
19175         (output_condmove_single): Likewise.
19176         (frv_hard_regno_mode_ok): Likewise.
19177         (frv_matching_accg_mode): Likewise.
19178         * config/h8300/h8300.c (split_adds_subs): Likewise.
19179         (h8300_rtx_costs): Likewise.
19180         (h8300_print_operand): Likewise.
19181         (compute_mov_length): Likewise.
19182         (output_logical_op): Likewise.
19183         (compute_logical_op_length): Likewise.
19184         (compute_logical_op_cc): Likewise.
19185         (h8300_shift_needs_scratch_p): Likewise.
19186         (output_a_shift): Likewise.
19187         (compute_a_shift_length): Likewise.
19188         (compute_a_shift_cc): Likewise.
19189         (expand_a_rotate): Likewise.
19190         (output_a_rotate): Likewise.
19191         * config/i386/i386.c (classify_argument): Likewise.
19192         (function_arg_advance_32): Likewise.
19193         (function_arg_32): Likewise.
19194         (function_arg_64): Likewise.
19195         (function_value_64): Likewise.
19196         (ix86_gimplify_va_arg): Likewise.
19197         (ix86_legitimate_constant_p): Likewise.
19198         (put_condition_code): Likewise.
19199         (split_double_mode): Likewise.
19200         (ix86_avx256_split_vector_move_misalign): Likewise.
19201         (ix86_expand_vector_logical_operator): Likewise.
19202         (ix86_split_idivmod): Likewise.
19203         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
19204         (ix86_build_const_vector): Likewise.
19205         (ix86_build_signbit_mask): Likewise.
19206         (ix86_match_ccmode): Likewise.
19207         (ix86_cc_modes_compatible): Likewise.
19208         (ix86_expand_branch): Likewise.
19209         (ix86_expand_sse_cmp): Likewise.
19210         (ix86_expand_sse_movcc): Likewise.
19211         (ix86_expand_int_sse_cmp): Likewise.
19212         (ix86_expand_vec_perm_vpermi2): Likewise.
19213         (ix86_expand_vec_perm): Likewise.
19214         (ix86_expand_sse_unpack): Likewise.
19215         (ix86_expand_int_addcc): Likewise.
19216         (ix86_split_to_parts): Likewise.
19217         (ix86_vectorize_builtin_gather): Likewise.
19218         (ix86_vectorize_builtin_scatter): Likewise.
19219         (avx_vpermilp_parallel): Likewise.
19220         (inline_memory_move_cost): Likewise.
19221         (ix86_tieable_integer_mode_p): Likewise.
19222         (x86_maybe_negate_const_int): Likewise.
19223         (ix86_expand_vector_init_duplicate): Likewise.
19224         (ix86_expand_vector_init_one_nonzero): Likewise.
19225         (ix86_expand_vector_init_one_var): Likewise.
19226         (ix86_expand_vector_init_concat): Likewise.
19227         (ix86_expand_vector_init_interleave): Likewise.
19228         (ix86_expand_vector_init_general): Likewise.
19229         (ix86_expand_vector_set): Likewise.
19230         (ix86_expand_vector_extract): Likewise.
19231         (emit_reduc_half): Likewise.
19232         (ix86_emit_i387_round): Likewise.
19233         (ix86_mangle_type): Likewise.
19234         (ix86_expand_round_sse4): Likewise.
19235         (expand_vec_perm_blend): Likewise.
19236         (canonicalize_vector_int_perm): Likewise.
19237         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
19238         (expand_vec_perm_1): Likewise.
19239         (expand_vec_perm_interleave3): Likewise.
19240         (expand_vec_perm_even_odd_pack): Likewise.
19241         (expand_vec_perm_even_odd_1): Likewise.
19242         (expand_vec_perm_broadcast_1): Likewise.
19243         (ix86_vectorize_vec_perm_const_ok): Likewise.
19244         (ix86_expand_vecop_qihi): Likewise.
19245         (ix86_expand_mul_widen_hilo): Likewise.
19246         (ix86_expand_sse2_abs): Likewise.
19247         (ix86_expand_pextr): Likewise.
19248         (ix86_expand_pinsr): Likewise.
19249         (ix86_preferred_simd_mode): Likewise.
19250         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
19251         * config/i386/sse.md (*andnot<mode>3): Likewise.
19252         (<mask_codefor><code><mode>3<mask_name>): Likewise.
19253         (*<code><mode>3): Likewise.
19254         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
19255         (ia64_expand_atomic_op): Likewise.
19256         (ia64_arg_type): Likewise.
19257         (ia64_mode_to_int): Likewise.
19258         (ia64_scalar_mode_supported_p): Likewise.
19259         (ia64_vector_mode_supported_p): Likewise.
19260         (expand_vec_perm_broadcast): Likewise.
19261         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
19262         (iq2000_function_arg_advance): Likewise.
19263         (iq2000_function_arg): Likewise.
19264         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
19265         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
19266         (m68k_libcall_value): Likewise.
19267         (m68k_function_value): Likewise.
19268         (sched_attr_op_type): Likewise.
19269         * config/mcore/mcore.c (mcore_output_move): Likewise.
19270         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
19271         Likewise.
19272         (microblaze_function_arg): Likewise.
19273         * config/mips/mips.c (mips16_build_call_stub): Likewise.
19274         (mips_print_operand): Likewise.
19275         (mips_mode_ok_for_mov_fmt_p): Likewise.
19276         (mips_vector_mode_supported_p): Likewise.
19277         (mips_preferred_simd_mode): Likewise.
19278         (mips_expand_vpc_loongson_even_odd): Likewise.
19279         (mips_expand_vec_unpack): Likewise.
19280         (mips_expand_vi_broadcast): Likewise.
19281         (mips_expand_vector_init): Likewise.
19282         (mips_expand_vec_reduc): Likewise.
19283         (mips_expand_msa_cmp): Likewise.
19284         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
19285         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
19286         (cc_flags_for_mode): Likewise.
19287         * config/msp430/msp430.c (msp430_print_operand): Likewise.
19288         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
19289         (nds32_output_casesi_pc_relative): Likewise.
19290         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19291         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
19292         (nvptx_gen_unpack): Likewise.
19293         (nvptx_gen_pack): Likewise.
19294         (nvptx_gen_shuffle): Likewise.
19295         (nvptx_gen_wcast): Likewise.
19296         (nvptx_preferred_simd_mode): Likewise.
19297         * config/pa/pa.c (pa_secondary_reload): Likewise.
19298         * config/pa/predicates.md (base14_operand): Likewise.
19299         * config/powerpcspe/powerpcspe-c.c
19300         (altivec_resolve_overloaded_builtin): Likewise.
19301         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
19302         Likewise.
19303         (rs6000_preferred_simd_mode): Likewise.
19304         (output_vec_const_move): Likewise.
19305         (rs6000_expand_vector_extract): Likewise.
19306         (rs6000_split_vec_extract_var): Likewise.
19307         (reg_offset_addressing_ok_p): Likewise.
19308         (rs6000_legitimate_offset_address_p): Likewise.
19309         (rs6000_legitimize_address): Likewise.
19310         (rs6000_emit_set_const): Likewise.
19311         (rs6000_const_vec): Likewise.
19312         (rs6000_emit_move): Likewise.
19313         (spe_build_register_parallel): Likewise.
19314         (rs6000_darwin64_record_arg_recurse): Likewise.
19315         (swap_selector_for_mode): Likewise.
19316         (spe_init_builtins): Likewise.
19317         (paired_init_builtins): Likewise.
19318         (altivec_init_builtins): Likewise.
19319         (do_load_for_compare): Likewise.
19320         (rs6000_generate_compare): Likewise.
19321         (rs6000_expand_float128_convert): Likewise.
19322         (emit_load_locked): Likewise.
19323         (emit_store_conditional): Likewise.
19324         (rs6000_output_function_epilogue): Likewise.
19325         (rs6000_handle_altivec_attribute): Likewise.
19326         (rs6000_function_value): Likewise.
19327         (emit_fusion_gpr_load): Likewise.
19328         (emit_fusion_p9_load): Likewise.
19329         (emit_fusion_p9_store): Likewise.
19330         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
19331         (fusion_gpr_mem_load): Likewise.
19332         (fusion_addis_mem_combo_load): Likewise.
19333         (fusion_addis_mem_combo_store): Likewise.
19334         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
19335         (fusion_gpr_mem_load): Likewise.
19336         (fusion_addis_mem_combo_load): Likewise.
19337         (fusion_addis_mem_combo_store): Likewise.
19338         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19339         Likewise.
19340         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
19341         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
19342         (rs6000_preferred_simd_mode): Likewise.
19343         (output_vec_const_move): Likewise.
19344         (rs6000_expand_vector_extract): Likewise.
19345         (rs6000_split_vec_extract_var): Likewise.
19346         (reg_offset_addressing_ok_p): Likewise.
19347         (rs6000_legitimate_offset_address_p): Likewise.
19348         (rs6000_legitimize_address): Likewise.
19349         (rs6000_emit_set_const): Likewise.
19350         (rs6000_const_vec): Likewise.
19351         (rs6000_emit_move): Likewise.
19352         (rs6000_darwin64_record_arg_recurse): Likewise.
19353         (swap_selector_for_mode): Likewise.
19354         (paired_init_builtins): Likewise.
19355         (altivec_init_builtins): Likewise.
19356         (rs6000_expand_float128_convert): Likewise.
19357         (emit_load_locked): Likewise.
19358         (emit_store_conditional): Likewise.
19359         (rs6000_output_function_epilogue): Likewise.
19360         (rs6000_handle_altivec_attribute): Likewise.
19361         (rs6000_function_value): Likewise.
19362         (emit_fusion_gpr_load): Likewise.
19363         (emit_fusion_p9_load): Likewise.
19364         (emit_fusion_p9_store): Likewise.
19365         * config/rx/rx.c (rx_gen_move_template): Likewise.
19366         (flags_from_mode): Likewise.
19367         * config/s390/predicates.md (s390_alc_comparison): Likewise.
19368         (s390_slb_comparison): Likewise.
19369         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
19370         (s390_vector_mode_supported_p): Likewise.
19371         (s390_cc_modes_compatible): Likewise.
19372         (s390_match_ccmode_set): Likewise.
19373         (s390_canonicalize_comparison): Likewise.
19374         (s390_emit_compare_and_swap): Likewise.
19375         (s390_branch_condition_mask): Likewise.
19376         (s390_rtx_costs): Likewise.
19377         (s390_secondary_reload): Likewise.
19378         (__SECONDARY_RELOAD_CASE): Likewise.
19379         (s390_expand_cs): Likewise.
19380         (s390_preferred_simd_mode): Likewise.
19381         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
19382         * config/sh/sh.c (sh_print_operand): Likewise.
19383         (dump_table): Likewise.
19384         (sh_secondary_reload): Likewise.
19385         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19386         * config/sh/sh.md (casesi_worker_1): Likewise.
19387         (casesi_worker_2): Likewise.
19388         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
19389         (fcc_comparison_operator): Likewise.
19390         * config/sparc/sparc.c (sparc_expand_move): Likewise.
19391         (emit_soft_tfmode_cvt): Likewise.
19392         (sparc_preferred_simd_mode): Likewise.
19393         (output_cbranch): Likewise.
19394         (sparc_print_operand): Likewise.
19395         (sparc_expand_vec_perm_bmask): Likewise.
19396         (vector_init_bshuffle): Likewise.
19397         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
19398         (spu_vector_mode_supported_p): Likewise.
19399         (spu_expand_insv): Likewise.
19400         (spu_emit_branch_or_set): Likewise.
19401         (spu_handle_vector_attribute): Likewise.
19402         (spu_builtin_splats): Likewise.
19403         (spu_builtin_extract): Likewise.
19404         (spu_builtin_promote): Likewise.
19405         (spu_expand_sign_extend): Likewise.
19406         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
19407         (tilegx_simd_int): Likewise.
19408         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
19409         (tilepro_simd_int): Likewise.
19410         * config/v850/v850.c (const_double_split): Likewise.
19411         (v850_print_operand): Likewise.
19412         (ep_memory_offset): Likewise.
19413         * config/vax/vax.c (vax_rtx_costs): Likewise.
19414         (vax_output_int_move): Likewise.
19415         (vax_output_int_add): Likewise.
19416         (vax_output_int_subtract): Likewise.
19417         * config/visium/predicates.md (visium_branch_operator): Likewise.
19418         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
19419         (visium_print_operand_address): Likewise.
19420         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19421         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
19422         (xtensa_expand_conditional_branch): Likewise.
19423         (xtensa_copy_incoming_a7): Likewise.
19424         (xtensa_output_literal): Likewise.
19425         * dfp.c (decimal_real_maxval): Likewise.
19426         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
19427
19428 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19429             Alan Hayward  <alan.hayward@arm.com>
19430             David Sherwood  <david.sherwood@arm.com>
19431
19432         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
19433         (mode_nunits_inline): Likewise.
19434         (mode_inner_inline): Likewise.
19435         (mode_unit_size_inline): Likewise.
19436         (mode_unit_precision_inline): Likewise.
19437         (emit_insn_modes_h): Likewise.  Also emit a #define of the
19438         unprefixed name.
19439         (emit_mode_wider): Add an E_ prefix to mode names.
19440         (emit_mode_complex): Likewise.
19441         (emit_mode_inner): Likewise.
19442         (emit_mode_adjustments): Likewise.
19443         (emit_mode_int_n): Likewise.
19444         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
19445         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
19446         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
19447         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
19448         (CRC32_BUILTIN, ENTRY): Likewise.
19449         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
19450         (aarch64_pop_regs): Likewise.
19451         (aarch64_process_components): Likewise.
19452         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
19453         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
19454         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
19455         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
19456         * config/arm/arm.c (arm_init_libfuncs): Likewise.
19457         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
19458         Likewise.
19459         * config/i386/i386-builtin.def (pcmpestr): Likewise.
19460         (pcmpistr): Likewise.
19461         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
19462         * config/mmix/mmix.c (mmix_output_condition): Likewise.
19463         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
19464         Likewise.
19465         * config/rl78/rl78.c (mduc_regs): Likewise.
19466         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19467         (htm_expand_builtin): Likewise.
19468         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
19469         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
19470         * config/xtensa/xtensa.c (print_operand): Likewise.
19471         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
19472         (NUM_MODE_VECTOR_INT): Likewise.
19473         * genoutput.c (null_operand): Likewise.
19474         (output_operand_data): Likewise.
19475         * genrecog.c (print_parameter_value): Likewise.
19476         * lra.c (debug_operand_data): Likewise.
19477
19478 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19479
19480         * dwarf2out.c (scompare_loc_descriptor_wide)
19481         (scompare_loc_descriptor_narrow): New functions, split out from...
19482         (scompare_loc_descriptor): ...here.
19483         * expmed.c (emit_store_flag_int): New function, split out from...
19484         (emit_store_flag): ...here.
19485
19486 2017-08-30  Richard Biener  <rguenther@suse.de>
19487
19488         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
19489         (dwarf2out_early_finish): Move setting of AT_pubnames from
19490         early debug output to early finish.
19491
19492 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19493
19494         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
19495         and -mdata-region to the assembler.
19496
19497 2017-08-30  Richard Biener  <rguenther@suse.de>
19498
19499         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
19500         attributes.
19501         (gen_subprogram_die): Add DW_AT_object_pointer only early.
19502         (dwarf2out_early_global_decl): Only generate a DIE for the
19503         abstract origin if it doesn't already exist or is a declaration DIE.
19504         (resolve_addr): Do not add the linkage name twice when
19505         generating a stub DIE for the DW_TAG_GNU_call_site target.
19506
19507 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19508
19509         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19510         Use machine_mode rather than int for arg1_mode.
19511
19512 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
19513
19514         PR target/82015
19515         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
19516         that the second argument of the built-in functions to unpack
19517         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
19518         switch statement instead a lot of if statements.
19519         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
19520         Allow 64-bit values to be in Altivec registers as well as
19521         traditional floating point registers.
19522         (pack<mode>, FMOVE128_VSX iterator): Likewise.
19523
19524 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
19525
19526         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
19527         MAX_REGS_PER_ADDRESS == 1.
19528
19529 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
19530
19531         * config/i386/i386.opt (flag_fentry): Do not init to -1.
19532         * config/i386/i386.c (ix86_option_override_internal): Simplify
19533         setting of opts->x_flag_entry.
19534
19535 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19536             Jakub Jelinek  <jakub@redhat.com>
19537             Richard Biener  <rguenther@suse.de>
19538
19539         PR tree-optimization/81503
19540         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
19541         folded constant fits in the target type; reorder tests for clarity.
19542
19543 2017-08-29  Martin Liska  <mliska@suse.cz>
19544
19545         * passes.def: Include pass_lower_switch.
19546         * stmt.c (dump_case_nodes): Remove and move to
19547         tree-switch-conversion.
19548         (case_values_threshold): Likewise.
19549         (expand_switch_as_decision_tree_p): Likewise.
19550         (emit_case_decision_tree): Likewise.
19551         (expand_case): Likewise.
19552         (balance_case_nodes): Likewise.
19553         (node_has_low_bound): Likewise.
19554         (node_has_high_bound): Likewise.
19555         (node_is_bounded): Likewise.
19556         (emit_case_nodes): Likewise.
19557         (struct simple_case_node): New struct.
19558         (add_case_node): Remove.
19559         (emit_case_dispatch_table): Use vector instead of case_list.
19560         (reset_out_edges_aux): Remove.
19561         (compute_cases_per_edge): Likewise.
19562         (expand_case): Build list of simple_case_node.
19563         (expand_sjlj_dispatch_table): Use it.
19564         * tree-switch-conversion.c (struct case_node): Moved from
19565         stmt.c and adjusted.
19566         (emit_case_nodes): Likewise.
19567         (node_has_low_bound): Likewise.
19568         (node_has_high_bound): Likewise.
19569         (node_is_bounded): Likewise.
19570         (case_values_threshold): Likewise.
19571         (reset_out_edges_aux): Likewise.
19572         (compute_cases_per_edge): Likewise.
19573         (add_case_node): Likewise.
19574         (dump_case_nodes): Likewise.
19575         (balance_case_nodes): Likewise.
19576         (expand_switch_as_decision_tree_p): Likewise.
19577         (emit_jump): Likewise.
19578         (emit_case_decision_tree): Likewise.
19579         (try_switch_expansion): Likewise.
19580         (do_jump_if_equal): Likewise.
19581         (emit_cmp_and_jump_insns): Likewise.
19582         (fix_phi_operands_for_edge): New function.
19583         (record_phi_operand_mapping): Likewise.
19584         (class pass_lower_switch): New pass.
19585         (pass_lower_switch::execute): New function.
19586         (make_pass_lower_switch): Likewise.
19587         (conditional_probability):
19588         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
19589         * tree-pass.h: Add make_pass_lower_switch.
19590
19591 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19592
19593         PR target/80993
19594         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
19595         handlers as used.
19596
19597 2017-08-29  Richard Biener  <rguenther@suse.de>
19598
19599         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
19600         we do not add a DW_AT_inline attribute twice.
19601         (gen_subprogram_die): Remove code setting DW_AT_inline on
19602         DECL_ABSTRACT_P nodes.
19603
19604 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
19605
19606         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
19607         calls to internal functions.
19608         (gimplify_modify_expr): Likewise.
19609         * tree-call-cdce.c (use_internal_fn): Likewise.
19610         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
19611         (convert_to_divmod): Set the nothrow flag.
19612         * tree-if-conv.c (predicate_mem_writes):  Likewise.
19613         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19614         (vectorizable_call): Likewise.
19615         (vectorizable_store): Likewise.
19616         (vectorizable_load): Likewise.
19617         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
19618         (vect_recog_mask_conversion_pattern): Likewise.
19619
19620 2017-08-29  Martin Liska  <mliska@suse.cz>
19621
19622         PR other/39851
19623         * gcc.c (driver_handle_option): Add new argument.
19624         * opts-common.c (handle_option): Pass
19625         target_option_override_hook.
19626         * opts-global.c (lang_handle_option): Add new option.
19627         (set_default_handlers):  Add new argument.
19628         (decode_options): Likewise.
19629         * opts.c (target_handle_option): Likewise.
19630         (common_handle_option): Call target_option_override_hook.
19631         * opts.h (struct cl_option_handler_func): Add hook for
19632         target option override.
19633         (struct cl_option_handlers): Likewise.
19634         (set_default_handlers): Add new argument.
19635         (decode_options): Likewise.
19636         (common_handle_option): Likewise.
19637         (target_handle_option): Likewise.
19638         * toplev.c (toplev::main): Pass targetm.target_option.override
19639         hook.
19640
19641 2017-08-29  Richard Biener  <rguenther@suse.de>
19642         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
19643
19644         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
19645         life to the active subtree.
19646
19647 2017-08-28  Jeff Law  <law@redhat.com>
19648
19649         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
19650         derive_equivalences.
19651         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
19652         Code moved into....
19653         (edge_info::derive_equivalences): New private member function
19654
19655         * tree-ssa-dom.c (class edge_info): Changed from a struct
19656         to a class.  Add ctor/dtor, methods and data members.
19657         (edge_info::edge_info): Renamed from allocate_edge_info.
19658         Initialize additional members.
19659         (edge_info::~edge_info): New.
19660         (free_dom_edge_info): Delete the edge info.
19661         (record_edge_info): Use new class & associated member functions.
19662         Tighten forms for testing for edge equivalences.
19663         (record_temporary_equivalences): Iterate over the simple
19664         equivalences rather than assuming there's only one per edge.
19665         (cprop_into_successor_phis): Iterate over the simple
19666         equivalences rather than assuming there's only one per edge.
19667         (optimize_stmt): Use operand_equal_p rather than pointer
19668         equality for mini-DSE code.
19669
19670 2017-08-28  Nathan Sidwell  <nathan@acm.org>
19671
19672         * gcc.c (execute): Fold SIGPIPE handling into switch
19673         statement.  Adjust internal error message.
19674
19675 2017-08-28  Richard Biener  <rguenther@suse.de>
19676
19677         PR debug/81993
19678         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
19679         Do nothing for removed DIEs.
19680
19681 2017-08-28  Richard Biener  <rguenther@suse.de>
19682
19683         PR tree-optimization/81977
19684         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
19685         memcpy.
19686
19687 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
19688
19689         PR target/80640
19690         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
19691         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
19692         using targetm.gen_mem_thread_fence.
19693
19694 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
19695
19696         PR target/81995
19697         * config/i386/i386.md (*<btsc><mode>): Change operand 2
19698         predicate to register_operand.  Reorder operands.
19699         (*btr<mode>): Ditto.
19700         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
19701         (*btr<mode>_mask): Ditto.
19702
19703 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
19704
19705         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
19706         * config/rs6000/xmmintrin.h: New file.
19707         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
19708
19709 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19710
19711         PR target/81504
19712         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
19713         parameter and_insn and return it.
19714         (recombine_lvx_pattern): Insert a copy to ensure availability of
19715         the base register of the copied masking operation at the point of
19716         the instruction replacement.
19717         (recombine_stvx_pattern): Likewise.
19718
19719 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19720
19721         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
19722         undocumented switches.
19723         (-mpower9-dform-vector): Likewise.
19724         (-mpower9-dform): Likewise.
19725         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
19726         comments to delete references to -mpower9-dform* switches.
19727         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
19728         Delete reference to -mpower9-dform* switches, test for
19729         -mpower9-vector instead.
19730         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
19731         (OTHER_P9_VECTOR_MASKS): Likewise.
19732         (POWERPC_MASKS): Likewise.
19733         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
19734         tests against -mpower9-dform* to -mpower9-vector.  Delete code
19735         that checked for -mpower9-dform* consistancy with other options.
19736         Add test for -mpower9-misc to enable other power9 switches.
19737         (rs6000_init_hard_regno_mode_ok): Likewise.
19738         (rs6000_option_override_internal): Likewise.
19739         (rs6000_emit_prologue): Likewise.
19740         (rs6000_emit_epilogue): Likewise.
19741         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
19742         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
19743         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
19744         -mpower9-vector.
19745         (emit_fusion_p9_store): Likewise.
19746         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
19747         resetting these macros if the assembler does not support ISA 3.0
19748         instructions.
19749         (TARGET_P9_DFORM_VECTOR): Likewise.
19750         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
19751         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
19752
19753 2017-08-25  Alan Modra  <amodra@gmail.com>
19754
19755         PR rtl-optimization/81747
19756         * cse.c (cse_extended_basic_block): Don't attempt to record
19757         equivalences for degenerate conditional branches that branch
19758         to their fall-through.
19759
19760 2017-08-24  Martin Sebor  <msebor@redhat.com>
19761
19762         PR middle-end/81908
19763         * gimple-fold.c (size_must_be_zero_p): New function.
19764         (gimple_fold_builtin_memory_op): Call it.
19765
19766 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
19767
19768         * config/rs6000/mm_malloc.h: New file.
19769
19770 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
19771
19772         PR tree-optimization/81913
19773         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
19774         analysis when either IVs in condition can wrap.
19775
19776 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
19777
19778         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
19779         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
19780
19781 2017-08-24  Richard Biener  <rguenther@suse.de>
19782
19783         PR target/81921
19784         * targhooks.c (default_target_can_inline_p): Properly
19785         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
19786         is present and always compare.
19787         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
19788         infer -mfpmath=sse from TARGET_SSE_P.
19789         (ix86_can_inline_p): Properly use target_option_default_node when
19790         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
19791
19792 2017-08-24  Richard Biener  <rguenther@suse.de>
19793
19794         PR debug/81936
19795         * dwarf2out.c (output_die): Handle flag_generate_offload like
19796         flag_generate_lto.
19797         (output_comp_unit): Likewise.
19798         (gen_array_type_die): Likewise.
19799         (dwarf2out_early_finish): Likewise.
19800         (note_variable_value_in_expr): Likewise.
19801         (dwarf2out_finish): Likewise.  Adjust assert.
19802         * cgraphunit.c (symbol_table::compile): Move setting of
19803         flag_generate_offload earlier ...
19804         (symbol_table::finalize_compilation_unit): ... here, before
19805         early debug finalization.
19806
19807 2017-08-24  Richard Biener  <rguenther@suse.de>
19808
19809         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
19810         and ipa-fnsummary.h.
19811         (ix86_can_inline_p): When ix86_fpmath flags do not match
19812         check whether the callee uses FP math at all.
19813
19814 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
19815
19816         PR middle-end/81931
19817         * tree-ssanames.c (get_nonzero_bits): Use element_precision
19818         instead of TYPE_PRECISION.
19819
19820 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
19821             Alan Hayward  <alan.hayward@arm.com>
19822             David Sherwood  <david.sherwood@arm.com>
19823
19824         * combine.c (make_extraction): Use subreg_offset_from_lsb.
19825
19826 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
19827
19828         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
19829         Remove field.
19830         (ix86_frame::stack_realign_allocate): New field.
19831         (struct machine_frame_state): Modify comments.
19832         (machine_frame_state::sp_realigned_fp_end): New field.
19833         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
19834         layout calculation.
19835         (sp_valid_at): Add assertion to assure no attempt to access invalid
19836         offset of a realigned stack.
19837         (fp_valid_at): Likewise.
19838         (choose_baseaddr): Modify comments.
19839         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
19840         ix86_expand_prologue.
19841         (ix86_expand_prologue): Modify stack realignment and allocation.
19842         (ix86_expand_epilogue): Modify comments.
19843         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
19844         avx2_runtime, avx512f, and avx512f_runtime.
19845
19846 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
19847
19848         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
19849         (mstackrealign): Do not init to -1.
19850         * config/i386/i386.c (ix86_option_override_internal):
19851         Check opts_set, not opts when setting default value of
19852         opts->x_ix86_force_align_arg_pointer.
19853
19854 2017-08-23  Richard Biener  <rguenther@suse.de>
19855
19856         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
19857         lang_hooks.decl_printable_name.
19858         * print-rtl-function.c (print_rtx_function): Likewise.
19859         * tree-pretty-print.c (dump_function_header): Likewise.
19860
19861 2017-08-23  Richard Biener  <rguenther@suse.de>
19862
19863         PR lto/81940
19864         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
19865         -g0 at compile-time.
19866
19867 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19868
19869         PR middle-end/19706
19870         * doc/sourcebuild.texi (Other hardware attributes):
19871         Document xorsign.
19872
19873 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19874
19875         PR middle-end/19706
19876         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
19877         Fix single-use check.
19878
19879 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19880
19881         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
19882
19883 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19884
19885         * doc/install.texi: Modify to add more details on running selected
19886         tests.
19887
19888 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19889
19890         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
19891         is combined with -mabi=ms.
19892         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
19893         ms_abi.
19894
19895 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19896
19897         PR tree-optimization/81488
19898         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
19899         and cached_basis fields.
19900         (MAX_SPREAD): New constant.
19901         (alloc_cand_and_find_basis): Initialize new fields.
19902         (clear_visited): New function.
19903         (create_phi_basis_1): Rename from create_phi_basis, set visited
19904         and cached_basis fields.
19905         (create_phi_basis): New wrapper function.
19906         (phi_add_costs_1): Rename from phi_add_costs, add spread
19907         parameter, set visited field, short-circuit when limits reached.
19908         (phi_add_costs): New wrapper function.
19909         (record_phi_increments_1): Rename from record_phi_increments, set
19910         visited field.
19911         (record_phi_increments): New wrapper function.
19912         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
19913         (phi_incr_cost): New wrapper function.
19914         (all_phi_incrs_profitable_1): Rename from
19915         all_phi_incrs_profitable, set visited field.
19916         (all_phi_incrs_profitable): New wrapper function.
19917
19918 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19919             Alan Hayward  <alan.hayward@arm.com>
19920             David Sherwood  <david.sherwood@arm.com>
19921
19922         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
19923         that takes the outer and inner modes.
19924         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
19925         comparison as the canonical test for a paradoxical subreg.
19926         * combine.c (simplify_set): Use paradoxical_subreg_p.
19927         (make_extraction): Likewise.
19928         (force_to_mode): Likewise.
19929         (rtx_equal_for_field_assignment_p): Likewise.
19930         (gen_lowpart_for_combine): Likewise.
19931         (simplify_comparison): Likewise.
19932         * cse.c (equiv_constant): Likewise.
19933         * expmed.c (store_bit_field_1): Likewise.
19934         * final.c (alter_subreg): Likewise.
19935         * fwprop.c (propagate_rtx): Likewise.
19936         (forward_propagate_subreg): Likewise.
19937         * ira-conflicts.c (ira_build_conflicts): Likewise.
19938         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
19939         * lra-constraints.c (curr_insn_transform): Likewise.
19940         (split_reg): Likewise.
19941         * lra-eliminations.c (move_plus_up): Likewise.
19942         (lra_eliminate_regs_1): Likewise.
19943         * recog.c (general_operand): Likewise.
19944         * ree.c (combine_reaching_defs): Likewise.
19945         * reload.c (push_reload): Likewise.
19946         (find_reloads): Likewise.
19947         * reload1.c (elimination_effects): Likewise.
19948         (compute_reload_subreg_offset): Likewise.
19949         (choose_reload_regs): Likewise.
19950         * rtlanal.c (subreg_lsb_1): Likewise.
19951         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
19952         (simplify_subreg): Likewise.
19953         * var-tracking.c (track_loc_p): Likewise.
19954         * emit-rtl.c (byte_lowpart_offset): Likewise.
19955         (paradoxical_subreg_p): Delete out-of-line definition.
19956
19957 2017-08-22  Jeff Law  <law@redhat.com>
19958
19959         PR tree-optimization/81741
19960         PR tree-optimization/71947
19961         * tree-ssa-dom.c: Include tree-inline.h.
19962         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
19963         equivalences if one is more expensive to compute than the other.
19964         * tree-ssa-scopedtables.h (class const_or_copies): Make
19965         record_const_or_copy_raw method private.
19966         (class avail_exprs_stack): New method simplify_binary_operation.
19967         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
19968         avail_exprs_stack::simplify_binary_operation as needed.
19969         (avail_exprs_stack::simplify_binary_operation): New function.
19970
19971 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19972
19973         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
19974         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
19975         (DOT_SYMBOLS): Likewise.
19976         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
19977         (RELOCATABLE_NEEDS_FIXUP): Likewise.
19978         (RS6000_ABI_NAME): Likewise.
19979         (TARGET_CMODEL): Likewise.
19980         (TOC_SECTION_ASM_OP): Likewise.
19981         (SET_CMODEL): New macro.
19982         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
19983
19984 2017-08-22  Richard Biener  <rguenther@suse.de>
19985
19986         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
19987         to allow for free-lang-data replacements similar to verify_type_variant.
19988
19989 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19990             Alan Hayward  <alan.hayward@arm.com>
19991             David Sherwood  <david.sherwood@arm.com>
19992
19993         * config/aarch64/aarch64.md (casesi): Use DImode rather than
19994         VOIDmode for the LABEL_REF.
19995
19996 2017-08-22  Richard Biener  <rguenther@suse.de>
19997
19998         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
19999
20000 2017-08-22  Richard Biener  <rguenther@suse.de>
20001
20002         * common.opt (feliminate-dwarf2-dups): Ignore.
20003         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
20004         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
20005         same_die_p_wrap, compute_section_prefix,
20006         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
20007         (comdat_symbol_id, comdat_symbol_number): Likewise.
20008         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
20009         Likewise.
20010         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
20011         (output_die): Mark unreachable path unreachable.
20012         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
20013         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
20014         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
20015         (dwarf2out_early_finish): Likewise.
20016
20017 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
20018
20019         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
20020
20021 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
20022
20023         PR target/81910
20024         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
20025         not VAR_P. Filter attribute warnings with OPT_Wattributes.
20026         (avr_attribute_table) <io, io_low, address>: Initialize
20027         .decl_required with true.
20028
20029 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20030
20031         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
20032         undocumented debugging options.
20033         (-mvsx-scalar-double): Likewise.
20034         (-mallow-df-permute): Likewise.
20035         (-mvectorize-builtins): Likewise.
20036         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
20037         (rs6000_builtin_vectorized_function): Likewise.
20038         (rs6000_builtin_md_vectorized_function): Likewise.
20039         (rs6000_opt_vars): Likewise.
20040
20041 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
20042
20043         PR target/46091
20044         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
20045         (*btrq_imm): Rename from *btrq.
20046         (*btcq_imm): Rename from *btcq.
20047         (btsc): New code attribute.
20048         (*<btsc><mode>): New insn pattern.
20049         (*btr<mode>): Ditto.
20050         (*<btsc><mode>_mask): New insn_and_split pattern.
20051         (*btr<mode>_mask): Ditto.
20052
20053 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20054             Alan Hayward  <alan.hayward@arm.com>
20055             David Sherwood  <david.sherwood@arm.com>
20056
20057         * function.c (pad_below): Simplify padding calculation.
20058
20059 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20060             Alan Hayward  <alan.hayward@arm.com>
20061             David Sherwood  <david.sherwood@arm.com>
20062
20063         * target.def (function_prologue): Remove frame size argument.
20064         (function_epilogue): Likewise.
20065         * doc/tm.texi: Regenerate.
20066         * final.c (final_start_function): Update call to function_prologue.
20067         (final_end_function): Update call to function_epilogue.
20068         (default_function_pro_epilogue): Remove frame size argument.
20069         * output.h (default_function_pro_epilogue): Likewise.
20070         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
20071         (arm_output_function_prologue): Likewise.
20072         * config/frv/frv.c (frv_function_prologue): Likewise.
20073         (frv_function_epilogue): Likewise.
20074         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
20075         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
20076         (ia64_output_function_epilogue): Likewise.
20077         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
20078         (m32r_output_function_epilogue): Likewise.
20079         * config/microblaze/microblaze.c (microblaze_function_prologue)
20080         (microblaze_function_epilogue): Likewise.
20081         * config/mips/mips.c (mips_output_function_prologue): Likewise.
20082         (mips_output_function_epilogue): Likewise.
20083         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
20084         (mmix_target_asm_function_epilogue): Likewise.
20085         * config/msp430/msp430.c (msp430_start_function): Likewise.
20086         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
20087         (nds32_asm_function_epilogue): Likewise.
20088         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
20089         * config/pa/pa.c (pa_output_function_prologue): Likewise.
20090         (pa_output_function_epilogue): Likewise.
20091         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
20092         (rs6000_output_function_epilogue): Likewise.
20093         * config/rl78/rl78.c (rl78_start_function): Likewise.
20094         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
20095         (rs6000_output_function_epilogue): Likewise.
20096         * config/rx/rx.c (rx_output_function_prologue): Likewise.
20097         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
20098         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
20099         (sparc_asm_function_epilogue): Likewise.
20100
20101 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20102
20103         * tree.h (type_has_mode_precision_p): New function.
20104         * convert.c (convert_to_integer_1): Use it.
20105         * expr.c (expand_expr_real_2): Likewise.
20106         (expand_expr_real_1): Likewise.
20107         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
20108         * match.pd: Likewise.
20109         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
20110         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
20111         * tree-tailcall.c (process_assignment): Likewise.
20112         * tree-vect-loop.c (vectorizable_reduction): Likewise.
20113         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
20114         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
20115         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
20116         (vectorizable_assignment): Likewise.
20117         (vectorizable_shift): Likewise.
20118         (vectorizable_operation): Likewise.
20119         * tree-vrp.c (register_edge_assert_for_2): Likewise.
20120
20121 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
20122
20123         * match.pd: Add pow (C, x) simplification.
20124
20125 2017-08-21  Richard Biener  <rguenther@suse.de>
20126
20127         PR tree-optimization/81900
20128         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
20129         for blocks with abnormal predecessors.
20130         (compute_antic): Do not set visited flag prematurely.
20131
20132 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
20133
20134         PR target/79883
20135         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
20136
20137 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20138
20139         * stor-layout.h (vector_type_mode): Move to...
20140         * tree.h (vector_type_mode): ...here.
20141         * stor-layout.c (vector_type_mode): Move to...
20142         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
20143
20144 2017-08-21  Richard Biener  <rguenther@suse.de>
20145
20146         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
20147         register_external_die hooks.
20148         (debug_false_tree_charstarstar_uhwistar): Declare.
20149         (debug_nothing_tree_charstar_uhwi): Likewise.
20150         * debug.c (do_nothing_debug_hooks): Adjust.
20151         (debug_false_tree_charstarstar_uhwistar): New do nothing.
20152         (debug_nothing_tree_charstar_uhwi): Likewise.
20153         * dbxout.c (dbx_debug_hooks): Adjust.
20154         (xcoff_debug_hooks): Likewise.
20155         * sdbout.c (sdb_debug_hooks): Likewise.
20156         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20157         * dwarf2out.c (macinfo_label_base): New global.
20158         (dwarf2out_register_external_die): New function for the
20159         register_external_die hook.
20160         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
20161         (dwarf2_debug_hooks): Use them.
20162         (dwarf2_lineno_debug_hooks): Adjust.
20163         (struct die_struct): Add with_offset flag.
20164         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
20165         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
20166         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
20167         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
20168         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
20169         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
20170         defining section names for the early LTO debug variants.
20171         (reset_indirect_string): New helper.
20172         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
20173         (print_dw_val): Add support for offsetted symbol references.
20174         (get_ultimate_context): Split out from is_cxx.
20175         (is_cxx): Use get_ultimate_context.
20176         (is_fortran): Add decl overload.
20177         (compute_comp_unit_symbol): Split out worker from
20178         compute_section_prefix.
20179         (compute_section_prefix): Call compute_comp_unit_symbol and
20180         set comdat_type_p here.
20181         (output_die): Skip DIE symbol output for the LTO added one.
20182         Handle DIE symbol references with offset.
20183         (output_comp_unit): Guard section name mangling properly.
20184         For LTO debug sections emit a symbol at the section beginning
20185         which we use to refer to its DIEs.
20186         (add_abstract_origin_attribute): For DIEs registered via
20187         dwarf2out_register_external_die directly refer to the early
20188         DIE rather than indirectly through the shadow one we created.
20189         Remove obsolete call to dwarf2out_abstract_function for
20190         non-function/block origins.
20191         (gen_array_type_die): When generating early LTO debug do
20192         not emit DW_AT_string_length.
20193         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
20194         late when in LTO.  As suggested place a gcc_unreachable for
20195         the DECL_ABSTRACT_P case.
20196         (gen_subprogram_die): Avoid another specification DIE
20197         for early built declarations/definitions for the late LTO case.
20198         (gen_variable_die): Add type references for late duplicated VLA dies
20199         when in late LTO.
20200         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
20201         we have the abstract instance already.
20202         (process_scope_var): Adjust decl DIE contexts in LTO which
20203         first puts them in limbo.
20204         (gen_decl_die): Do not generate type DIEs late apart from
20205         types for VLAs or for decls we do not yet have a DIE.  Do not
20206         call dwarf2out_abstract_function late.
20207         (dwarf2out_early_global_decl): Make sure to create DIEs
20208         for abstract instances of a decl first.
20209         (dwarf2out_late_global_decl): Adjust comment.
20210         (output_macinfo_op): With multiple macro sections use
20211         macinfo_label_base to distinguish labels.
20212         (output_macinfo): Likewise.  Update macinfo_label_base.
20213         Pass in the line info label.
20214         (note_variable_value_in_expr): When generating LTO resolve
20215         all variable values here by generating DIEs as needed.
20216         (init_sections_and_labels): Add early LTO debug flag parameter
20217         and generate different sections and names if set.  Add generation
20218         counter for the labels so we can have multiple of them.
20219         (reset_dies): Helper to allow DIEs to be output multiple times.
20220         (dwarf2out_finish): When outputting DIEs to the fat part of an
20221         LTO object first reset DIEs.
20222         (dwarf2out_early_finish): Output early DIEs when generating LTO.
20223         (modified_type_die): Check for decl_ultimate_origin being self
20224         before recursing.
20225         (gen_type_die_with_usage): Likewise.
20226         (gen_typedef_die): Allow decl_ultimate_origin being self.
20227         (set_decl_abstract_flags): Remove.
20228         (set_block_abstract_flags): Likewise.
20229         (dwarf2out_abstract_function): Treat the early generated DIEs
20230         as the abstract copy and only add DW_AT_inline and
20231         DW_AT_artificial here and call set_decl_origin_self.
20232         If the DIE has an abstract origin don't do anything.
20233         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
20234         if we have none yet (Go fails to build one, PR78628).
20235         (variably_modified_type_p): Prevent endless recursion for Ada
20236         cyclic pointer types.
20237         * lto-streamer-in.c: Include debug.h.
20238         (dref_queue): New global.
20239         (lto_read_tree_1): Stream in DIE references.
20240         (lto_input_tree): Register DIE references.
20241         (input_function): Stream DECL_DEBUG_ARGS.
20242         * lto-streamer-out.c: Include debug.h.
20243         (lto_write_tree_1): Output DIE references.
20244         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
20245         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
20246         (output_function): Stream DECL_DEBUG_ARGS.
20247         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20248         Stream DECL_ABSTRACT_ORIGIN.
20249         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
20250         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
20251         DECL_CONTEXT for file-scope decls.
20252         * lto-streamer.h (struct dref_entry): Declare.
20253         (dref_queue): Likewise.
20254         * cfgexpand.c (pass_expand::execute): Do not call the
20255         outlining_inline_function hook here.
20256         * lto-wrapper.c (debug_obj): New global.
20257         (tool_cleanup): Unlink it if required.
20258         (debug_objcopy): New function.
20259         (run_gcc): Handle early debug sections in the IL files by
20260         extracting them to separate files, partially linkin them and
20261         feeding the result back as result to the linker.
20262         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
20263         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
20264         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
20265         sections into a separate segment.
20266         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
20267         segments.
20268         (darwin_asm_dwarf_section): Likewise.
20269         (darwin_asm_output_dwarf_offset): Likewise.
20270         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
20271
20272 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20273             Alan Hayward  <alan.hayward@arm.com>
20274             David Sherwood  <david.sherwood@arm.com>
20275
20276         * read-md.h (md_reader::record_potential_iterator_use): Replace
20277         pointer argument with an rtx and an index.
20278         * read-rtl.c (iterator_group::apply_iterator): Likewise.
20279         (apply_mode_iterator): Likewise.
20280         (apply_code_iterator): Likewise.
20281         (apply_int_iterator): Likewise.
20282         (apply_subst_iterator): Likewise.
20283         (record_iterator_use): Likewise.
20284         (record_attribute_use): Likewise.
20285         (md_reader::record_potential_iterator_use): Likewise.  Update calls
20286         to record_iterator_use and apply_iterator.
20287         (iterator_use): Replace ptr with x and index.
20288         (attribute_use): Likewise.
20289         (apply_attribute_uses): Update calls to apply_iterator.
20290         (apply_iterators): Likewise.  Update initialization of iterator_use.
20291         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
20292         and record_potential_iterator_use.
20293         (rtx_reader::read_rtx_operand): Likewise.
20294
20295 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20296             Alan Hayward  <alan.hayward@arm.com>
20297             David Sherwood  <david.sherwood@arm.com>
20298
20299         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
20300         CONST_WIDE_INT.
20301
20302 2017-08-21  Richard Biener  <rguenther@suse.de>
20303
20304         PR middle-end/81884
20305         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
20306         at struct end conservatively when comparing common bases.
20307
20308 2017-08-21  Richard Biener  <rguenther@suse.de>
20309
20310         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
20311         (mem_ref_in_stmt): Remove.
20312         (determine_max_movement): Use ref index to get at the reference.
20313         (invariantness_dom_walker::before_dom_children): Deal with
20314         lim data already initialized.
20315         (gather_mem_refs_stmt): Initialize lim data and record ref index.
20316
20317 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20318
20319         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
20320         (TARGET_ISA_ROUND): Ditto.
20321         (TARGET_ROUND): Ditto.
20322         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
20323         * config/i386/i386.md: Ditto.
20324         * config/i386/sse.md: Ditto.
20325         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
20326         with OPTION_MASK_ISA_SSE4_1.
20327
20328 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20329
20330         PR target/81894
20331         * doc/extend.texi (x86 Built-in Functions): Correct the name of
20332         __builtin_ia32_lzcnt_u16.
20333
20334 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
20335
20336         PR target/80210
20337         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
20338         (rs6000_set_current_function): Rewrite function to use it.
20339
20340 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
20341
20342         PR c/53037
20343         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
20344         and TYPE_WARN_IF_NOT_ALIGN.
20345         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
20346         (handle_warn_if_not_align): New.
20347         (place_union_field): Call handle_warn_if_not_align.
20348         (place_field): Call handle_warn_if_not_align.
20349         Copy TYPE_WARN_IF_NOT_ALIGN.
20350         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
20351         (layout_type): Likewise.
20352         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
20353         spare to 18.
20354         (tree_decl_common): Add warn_if_not_align.
20355         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
20356         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
20357         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
20358         (DECL_WARN_IF_NOT_ALIGN): Likewise.
20359         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
20360         * doc/extend.texi: Document warn_if_not_aligned attribute.
20361         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
20362
20363 2017-08-17  Martin Liska  <mliska@suse.cz>
20364
20365         PR bootstrap/81864
20366         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
20367         (get_data_dependence): Use it as pointer type.
20368         (distribute_loop): Likewise.
20369
20370 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20371
20372         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
20373         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
20374         (p8_vmrgow_<mode>_direct): New define_insn.
20375         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
20376         handle endianness for vmrgew and vmrgow permute patterns.
20377
20378 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20379
20380         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
20381         * config/rs6000/rs6000-cpus.def: Remove comment.
20382         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
20383         (POWERPC_MASKS): Likewise.
20384         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
20385         use of TARGET_VSX_TIMODE.
20386         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
20387         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
20388         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
20389         (rs6000_option_override_internal): Remove dead code.
20390         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
20391         (rs6000_legitimize_reload_address): Likewise.
20392         (rs6000_legitimate_address_p): Likewise.
20393         (rs6000_opt_masks): Delete "vsx-timode".
20394         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
20395         from function comment.
20396         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
20397         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
20398         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
20399         condition.
20400         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
20401         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
20402         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
20403         (VSX_TI): Likewise.
20404         (VSX_M): Likewise.
20405         (define_peephole2): Likewise.
20406
20407 2017-08-17  Martin Sebor  <msebor@redhat.com>
20408
20409         PR c/81859
20410         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
20411         past the end of an array.
20412         (test_pp_format): Add test cases.
20413
20414 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
20415
20416         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
20417         missing ECF_NOTHROW flags.
20418
20419 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20420
20421         PR target/72804
20422         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
20423         operands residing in integer registers.
20424         (*vsx_le_perm_load_<mode>): Likewise.
20425         (*vsx_le_perm_store_<mode>): Likewise.
20426         (define_peephole2): Add peepholes to optimize the above.
20427
20428 2017-08-17  Marek Polacek  <polacek@redhat.com>
20429
20430         PR middle-end/81814
20431         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
20432         to mimic what shorten_compare did.  Change the return type to bool.
20433         (fold_cond_expr_with_comparison): Update call to
20434         operand_equal_for_comparison_p.
20435         (fold_ternary_loc): Likewise.
20436
20437 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
20438
20439         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
20440         register.
20441         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
20442
20443 2017-08-17  Richard Biener  <rguenther@suse.de>
20444
20445         * tree-ssa-structalias.c (solve_graph): When propagating
20446         to successors update the graphs succ edges and avoid duplicate work.
20447
20448 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
20449
20450         PR target/81861
20451         * config/i386/i386.c (ix86_option_override_internal): Save target
20452         specific options after ix86_stack_protector_guard_reg was changed.
20453
20454 2017-08-17  Richard Biener  <rguenther@suse.de>
20455
20456         PR tree-optimization/81827
20457         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
20458         (new_var_info): Initialize it conservatively.
20459         (get_call_vi): Mark register vars.
20460         (new_scalar_tmp_constraint_exp): Likewise.
20461         (handle_rhs_call): Likewise.
20462         (handle_const_call): Likewise.
20463         (create_function_info_for): Likewise.
20464         (solve_constraints): Sort varinfos to separate register from
20465         non-register vars to pack points-to solution bitmaps during
20466         iteration.
20467
20468 2017-08-17  Marek Polacek  <polacek@redhat.com>
20469
20470         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
20471
20472 2017-08-17  Richard Biener  <rguenther@suse.de>
20473
20474         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
20475         to true when overflow is undefined and we saturated the result.
20476
20477 2017-08-17  Alan Modra  <amodra@gmail.com>
20478
20479         PR target/80938
20480         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
20481         Don't use store multiple if only one reg needs saving.
20482         (interesting_frame_related_regno): New function.
20483         (rs6000_frame_related): Don't emit frame info for regs that
20484         don't need saving.
20485         (rs6000_emit_epilogue): Likewise.
20486
20487 2017-08-16  Nathan Sidwell  <nathan@acm.org>
20488
20489         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
20490         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
20491         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
20492         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
20493         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
20494         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
20495         (verify_type): Adjust for TYPE_BINFO move.
20496         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
20497         process TYPE_BINFO directly.
20498         (hash_tree): Likewise.
20499         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20500         Likewise.
20501         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20502         Likewise.
20503
20504 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
20505
20506         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
20507
20508 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
20509
20510         PR target/46091
20511         * config/i386/i386.md (*anddi_1_btr): Change predicates of
20512         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
20513         Add ix86_binary_operator_ok to insn constraint.
20514         (*iordi_1_bts): Ditto.
20515         (*xordi_1_btc): Ditto.
20516         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
20517         Update corresponding peephole2 pattern.
20518         (*btrq): Ditto.
20519         (*btcq): Ditto.
20520
20521 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
20522
20523         PR tree-optimization/81832
20524         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
20525         copy loop header which has IFN_LOOP_DIST_ALIAS call.
20526
20527 2017-08-16  Marek Polacek  <polacek@redhat.com>
20528
20529         PR middle/81695
20530         * fold-const.c (fold_indirect_ref_1): Restore original behavior
20531         regarding size_zero_node.
20532
20533 2017-08-16  Martin Liska  <mliska@suse.cz>
20534
20535         PR target/81753
20536         * config.gcc: Respect previously set extra_objs in case
20537         of darwin target.
20538
20539 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
20540
20541         PR tree-optimization/81835
20542         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
20543         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
20544         not depend on the phi.
20545
20546 2017-08-16  Alan Modra  <amodra@gmail.com>
20547
20548         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
20549         dead code.
20550
20551 2017-08-16  Alan Modra  <amodra@gmail.com>
20552
20553         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
20554         (save_reg_p): ..into this.  Update all callers.
20555         (first_reg_to_save): Simplify.
20556
20557 2017-08-16  Alan Modra  <amodra@gmail.com>
20558
20559         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
20560         fixed regs.
20561
20562 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
20563
20564         PR target/78460
20565         PR target/67712
20566         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
20567         constant count if that count is less than 32.
20568
20569 2017-08-15  Nathan Sidwell  <nathan@acm.org>
20570
20571         * gcc.c (execute): Emit friendlier message if inferior is killed
20572         by an external cause.
20573
20574 2017-08-15  Richard Biener  <rguenther@suse.de>
20575
20576         PR tree-optimization/81790
20577         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
20578         CONSTRUCTORs from simplifying and VN.
20579
20580 2017-08-14  Martin Sebor  <msebor@redhat.com>
20581
20582         * builtin-attrs.def: Add comments.
20583
20584 2017-08-14  Martin Sebor  <msebor@redhat.com>
20585
20586         PR c/81117
20587         * doc/extend.texi (attribute nonstring): Document new attribute.
20588
20589 2017-08-14  Martin Sebor  <msebor@redhat.com>
20590
20591         PR c/81117
20592         * tree-diagnostic.c (default_tree_printer): Handle %G.
20593         * gimple-pretty-print.h (percent_G_format): Declare new function.
20594         * gimple-pretty-print.c (percent_G_format): Define.
20595         * tree-pretty-print.c (percent_K_format): Add argument.
20596
20597 2017-08-14  Martin Sebor  <msebor@redhat.com>
20598
20599         PR translation/79998
20600         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
20601         Remove a stray space.
20602
20603 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
20604
20605         PR target/46091
20606         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
20607         (*iordi_1_bts): Ditto.
20608         (*xordi_1_btc): Ditto.
20609
20610 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20611
20612         PR target/79845
20613         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
20614         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20615         Likewise.
20616         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
20617         quoted strings, and make more translator-friendly.
20618         (darwin_rs6000_override_options): Likewise.
20619         (rs6000_option_override_internal): Likewise.
20620         (rs6000_return_in_memory): Fix overlong line.
20621         (init_cmulative_args): Use quoted strings, and make more
20622         translator-friendly.
20623         (rs6000_pass_by_reference): Fix overlong line.
20624         (def_builtin): Use quoted strings.
20625         (altivec_expand_predicate_builtin): Use quoted strings, and make
20626         more translator-friendly.
20627         (htm_expand_builtin): Use quoted strings.
20628         (cpu_expand_builtin): Use quoted strings, and make more
20629         translator-friendly.
20630         (altivec_expand_builtin): Likewise.
20631         (paired_expand_predicate_builtin): Likewise.
20632         (rs6000_invalid_builtin): Likewise.
20633         (builtin_function_type): Use quoted strings.
20634         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
20635         more translator-friendly.
20636         (rs6000_trampoline_init): Likewise.
20637         (rs6000_handle_altivec_attribute): Likewise.
20638         (rs6000_inner_target_options): Use quoted strings.
20639         (rs6000_disable_incompatible_switches): Likewise.
20640         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
20641         strings, and make more translator-friendly.
20642         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
20643
20644 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
20645
20646         PR tree-optimization/81799
20647         * tree-loop-distribution.c (version_loop_by_alias_check): Force
20648         cond_expr to simple gimple operand.
20649
20650 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
20651
20652         PR middle-end/46932
20653         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
20654
20655 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
20656
20657         PR target/81754
20658         PR target/81268
20659         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
20660         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
20661         TARGET_GASISR_PROLOGUES.
20662         * config/avr/avr.c (avr_option_override): Same.
20663         (avr_pass_pre_proep::execute): Same.
20664
20665 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
20666
20667         PR target/81820
20668         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
20669         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
20670
20671 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
20672
20673         * config/i386/i386.md (*load_tp_<mode>): Redefine as
20674         define_insn_and_split.  Split to a memory load from 0 in
20675         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
20676         using PTR mode iterator.
20677         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
20678         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
20679         (*add_tp_<mode>): Redefine as define_insn_and_split.
20680         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
20681         address space.  Merge with *add_tp_x32 using PTR mode iterator.
20682         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
20683         Split to an add with a  memory load from 0 in
20684         DEFAULT_TLS_SEG_REG address space.
20685
20686 2017-08-12  Andrew Pinski  <apinski@cavium.com>
20687
20688         * config/aarch64/aarch64-option-extensions.def (rdma):
20689         Fix feature string to what Linux prints out in /proc/cpuinfo.
20690
20691 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
20692
20693         PR ada/79542
20694         * dwarf2out.c (modified_type_die): For C typedef types that have
20695         an ultimate origin, process the ultimate origin instead of the
20696         input type.
20697         (gen_typedef_die): Assert that input DECLs have no ultimate
20698         origin.
20699         (gen_type_die_with_usage): For typedef variants that have an
20700         ultimate origin, just call gen_decl_die on the original DECL.
20701         (process_scope_var): Avoid creating DIEs for local typedefs and
20702         concrete static variables.
20703
20704 2017-08-12  Alan Modra  <amodra@gmail.com>
20705
20706         PR target/81170
20707         PR target/81295
20708         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
20709         match gnu-user.h startfile.
20710         (ENDFILE_LINUX_SPEC): Similarly.
20711
20712 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
20713
20714         PR lto/81430
20715         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
20716         Remove function.
20717         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
20718
20719 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
20720         * config/aarch64/aarch64.md (mov<mode>): Change.
20721         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20722         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
20723         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
20724
20725 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
20726
20727         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
20728         for storage order barriers.
20729
20730 2017-08-11  Martin Liska  <mliska@suse.cz>
20731
20732         PR tree-opt/79987
20733         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
20734         variables of void type.
20735
20736 2017-08-11  Martin Liska  <mliska@suse.cz>
20737
20738         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
20739         TARGET_SUPPORTS_ALIASES.
20740         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
20741         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
20742         (optimize_weakref): Likewise.
20743         * symtab.c (symtab_node::noninterposable_alias): Likewise.
20744         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
20745         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
20746
20747 2017-08-11  Martin Liska  <mliska@suse.cz>
20748
20749         PR ipa/81213
20750         * config/i386/i386.c (make_resolver_func): Do complete
20751         refactoring of the function.
20752
20753 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20754
20755         PR target/81708
20756         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
20757         * config/i386/i386.c (ix86_stack_protect_guard): Use
20758         ix86_stack_protect_guard_symbol_str to generate varible declaration.
20759         * doc/invoke.texi (x86 Options): Document
20760         -mstack-protector-guard-symbol= option.
20761
20762 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20763
20764         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
20765         * config/i386/i386.c (ix86_split_stack_guard): New function.
20766         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
20767         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
20768         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
20769         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
20770         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
20771         (split_stack_space_check): Call ix86_split_stack_guard.
20772
20773 2017-08-10  Martin Sebor  <msebor@redhat.com>
20774
20775         * print-tree.c (print_node): Print location using the established
20776         format %s:%i%i.
20777         Replace spaces with colons.
20778         (debug_raw, debug): Ditto.
20779
20780 2017-08-10  Martin Sebor  <msebor@redhat.com>
20781
20782         PR c++/81586
20783         * pretty-print.c (pp_format): Correct the handling of %s precision.
20784
20785 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
20786
20787         PR target/81736
20788         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20789         to ...
20790         (ix86_finalize_stack_frame_flags): This.  Also clear
20791         frame_pointer_needed if -fno-omit-frame-pointer is used without
20792         stack access.
20793         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20794         with ix86_finalize_stack_frame_flags.
20795         (ix86_expand_epilogue): Likewise.
20796         (ix86_expand_split_stack_prologue): Likewise.
20797         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
20798
20799 2017-08-10  Martin Liska  <mliska@suse.cz>
20800
20801         PR c++/81355
20802         * c-attribs.c (handle_target_attribute):
20803         Report warning for an empty string argument of target attribute.
20804
20805 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
20806
20807         PR c/81687
20808         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
20809         LABEL_DECLs.
20810         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
20811         or DECL_NONLOCAL labels.
20812         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
20813         or DECL_NONLOCAL labels here.
20814
20815 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
20816
20817         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
20818         to indicate when early gimple folding has been disabled.
20819         (rs6000_gimple_fold_builtin): Add debug content.
20820         (rs6000_invalid_builtin): Fix whitespace.
20821         (rs6000_expand_builtin): Fix whitespace.
20822         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
20823
20824 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
20825
20826         PR target/80938
20827         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
20828         SAVE_MULTIPLE if not all the registers that saves, should be saved.
20829
20830 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
20831
20832         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
20833         (qdf24xx): Likewise.
20834         * config/aarch64/aarch64.md: Include falkor.md.
20835         * config/aarch64/falkor.md: New.
20836
20837 2017-08-09  Marek Polacek  <polacek@redhat.com>
20838
20839         PR c/81233
20840         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
20841         * diagnostic.c (emit_diagnostic): Add a comment.
20842         (emit_diagnostic_valist): New function.
20843
20844 2017-08-09  Marek Polacek  <polacek@redhat.com>
20845
20846         PR c/81417
20847         * input.c (make_location): New overload.
20848         * input.h (make_location): Declare.
20849
20850 2017-08-08  Alan Modra  <amodra@gmail.com>
20851             H.J. Lu  <hongjiu.lu@intel.com>
20852
20853         PR driver/81523
20854         * gcc.c (NO_PIE_SPEC): Delete.
20855         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
20856         exclusion..
20857         (LINK_PIE_SPEC): ..to here.
20858         (LINK_COMMAND_SPEC): Support -no-pie.
20859         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
20860         chain of crtbegin*.o selection, update for PIE_SPEC changes and
20861         format.
20862         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
20863         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
20864         (ENDFILE_CRTEND_SPEC): Similarly.
20865
20866 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
20867
20868         PR target/81708
20869         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
20870         (mstack-protector-guard-offset=): Ditto.
20871         * config/i386/i386.c (ix86_option_override): Handle
20872         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
20873         options.
20874         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
20875         ix86_stack_protect_guard_offset variables.
20876         (TARGET_STACK_PROTECT_GUARD): Always define.
20877         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
20878         and -mstack-protector-guard-offset= options.
20879
20880 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20881
20882         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
20883         boundary case for the last candidate.
20884
20885 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20886
20887         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
20888         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
20889
20890 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20891
20892         PR middle-end/19706
20893         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
20894         * config/aarch64/aarch64-builtins.c
20895         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
20896         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
20897         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
20898
20899 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20900             Andrew Pinski <pinskia@gmail.com>
20901
20902         PR middle-end/19706
20903         * internal-fn.def (XORSIGN): New.
20904         * optabs.def (xorsign_optab): New.
20905         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
20906         (convert_expand_mult_copysign): New.
20907         (pass_optimize_widening_mul::execute): Call
20908         convert_expand_mult_copysign.
20909
20910 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20911
20912         PR tree-optimization/81354
20913         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
20914         Insert on edges rather than explicitly creating landing pads.
20915         (analyze_candidates_and_replace): Commit edge inserts.
20916
20917 2017-08-08  Richard Biener  <rguenther@suse.de>
20918
20919         PR middle-end/81719
20920         * tree-ssa-loop-niter.c: Include tree-dfa.h.
20921         (expand_simple_operations): Also look through ADDR_EXPRs with
20922         MEM_REF bases treating them as POINTER_PLUS_EXPR.
20923
20924 2017-08-08  Richard Biener  <rguenther@suse.de>
20925
20926         PR tree-optimization/81723
20927         * tree-vect-slp.c (struct bst_traits): New hash traits.
20928         (bst_fail): New global.
20929         (vect_build_slp_tree_2): New worker, split out from ...
20930         (vect_build_slp_tree): ... this now wrapping it with using
20931         bst_fail set to cache SLP tree build fails.  Properly handle
20932         max_tree_size.
20933         (vect_analyze_slp_instance): Allocate and free bst_fail.
20934
20935 2017-08-08  Martin Liska  <mliska@suse.cz>
20936
20937         PR tree-opt/81696
20938         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
20939         LABEL_DECLs that can be from a different function.
20940
20941 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20942
20943         PR tree-optimization/81744
20944         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
20945         loop's number of iterations.
20946
20947 2017-08-08  Martin Liska  <mliska@suse.cz>
20948
20949         * asan.c: Include header files.
20950         * attribs.c (build_decl_attribute_variant): New function moved
20951         from tree.[ch].
20952         (build_type_attribute_qual_variant): Likewise.
20953         (cmp_attrib_identifiers): Likewise.
20954         (simple_cst_list_equal): Likewise.
20955         (omp_declare_simd_clauses_equal): Likewise.
20956         (attribute_value_equal): Likewise.
20957         (comp_type_attributes): Likewise.
20958         (build_type_attribute_variant): Likewise.
20959         (lookup_ident_attribute): Likewise.
20960         (remove_attribute): Likewise.
20961         (merge_attributes): Likewise.
20962         (merge_type_attributes): Likewise.
20963         (merge_decl_attributes): Likewise.
20964         (merge_dllimport_decl_attributes): Likewise.
20965         (handle_dll_attribute): Likewise.
20966         (attribute_list_equal): Likewise.
20967         (attribute_list_contained): Likewise.
20968         * attribs.h (lookup_attribute): New function moved from tree.[ch].
20969         (lookup_attribute_by_prefix): Likewise.
20970         * bb-reorder.c: Include header files.
20971         * builtins.c: Likewise.
20972         * calls.c: Likewise.
20973         * cfgexpand.c: Likewise.
20974         * cgraph.c: Likewise.
20975         * cgraphunit.c: Likewise.
20976         * convert.c: Likewise.
20977         * dwarf2out.c: Likewise.
20978         * final.c: Likewise.
20979         * fold-const.c: Likewise.
20980         * function.c: Likewise.
20981         * gimple-expr.c: Likewise.
20982         * gimple-fold.c: Likewise.
20983         * gimple-pretty-print.c: Likewise.
20984         * gimple.c: Likewise.
20985         * gimplify.c: Likewise.
20986         * hsa-common.c: Likewise.
20987         * hsa-gen.c: Likewise.
20988         * internal-fn.c: Likewise.
20989         * ipa-chkp.c: Likewise.
20990         * ipa-cp.c: Likewise.
20991         * ipa-devirt.c: Likewise.
20992         * ipa-fnsummary.c: Likewise.
20993         * ipa-inline.c: Likewise.
20994         * ipa-visibility.c: Likewise.
20995         * ipa.c: Likewise.
20996         * lto-cgraph.c: Likewise.
20997         * omp-expand.c: Likewise.
20998         * omp-general.c: Likewise.
20999         * omp-low.c: Likewise.
21000         * omp-offload.c: Likewise.
21001         * omp-simd-clone.c: Likewise.
21002         * opts-global.c: Likewise.
21003         * passes.c: Likewise.
21004         * predict.c: Likewise.
21005         * sancov.c: Likewise.
21006         * sanopt.c: Likewise.
21007         * symtab.c: Likewise.
21008         * toplev.c: Likewise.
21009         * trans-mem.c: Likewise.
21010         * tree-chkp.c: Likewise.
21011         * tree-eh.c: Likewise.
21012         * tree-into-ssa.c: Likewise.
21013         * tree-object-size.c: Likewise.
21014         * tree-parloops.c: Likewise.
21015         * tree-profile.c: Likewise.
21016         * tree-ssa-ccp.c: Likewise.
21017         * tree-ssa-live.c: Likewise.
21018         * tree-ssa-loop.c: Likewise.
21019         * tree-ssa-sccvn.c: Likewise.
21020         * tree-ssa-structalias.c: Likewise.
21021         * tree-ssa.c: Likewise.
21022         * tree-streamer-in.c: Likewise.
21023         * tree-vectorizer.c: Likewise.
21024         * tree-vrp.c: Likewise.
21025         * tsan.c: Likewise.
21026         * ubsan.c: Likewise.
21027         * varasm.c: Likewise.
21028         * varpool.c: Likewise.
21029         * tree.c: Remove functions moved to attribs.[ch].
21030         * tree.h: Likewise.
21031         * config/aarch64/aarch64.c: Add attrs.h header file.
21032         * config/alpha/alpha.c: Likewise.
21033         * config/arc/arc.c: Likewise.
21034         * config/arm/arm.c: Likewise.
21035         * config/avr/avr.c: Likewise.
21036         * config/bfin/bfin.c: Likewise.
21037         * config/c6x/c6x.c: Likewise.
21038         * config/cr16/cr16.c: Likewise.
21039         * config/cris/cris.c: Likewise.
21040         * config/darwin.c: Likewise.
21041         * config/epiphany/epiphany.c: Likewise.
21042         * config/fr30/fr30.c: Likewise.
21043         * config/frv/frv.c: Likewise.
21044         * config/ft32/ft32.c: Likewise.
21045         * config/h8300/h8300.c: Likewise.
21046         * config/i386/winnt.c: Likewise.
21047         * config/ia64/ia64.c: Likewise.
21048         * config/iq2000/iq2000.c: Likewise.
21049         * config/lm32/lm32.c: Likewise.
21050         * config/m32c/m32c.c: Likewise.
21051         * config/m32r/m32r.c: Likewise.
21052         * config/m68k/m68k.c: Likewise.
21053         * config/mcore/mcore.c: Likewise.
21054         * config/microblaze/microblaze.c: Likewise.
21055         * config/mips/mips.c: Likewise.
21056         * config/mmix/mmix.c: Likewise.
21057         * config/mn10300/mn10300.c: Likewise.
21058         * config/moxie/moxie.c: Likewise.
21059         * config/msp430/msp430.c: Likewise.
21060         * config/nds32/nds32-isr.c: Likewise.
21061         * config/nds32/nds32.c: Likewise.
21062         * config/nios2/nios2.c: Likewise.
21063         * config/nvptx/nvptx.c: Likewise.
21064         * config/pa/pa.c: Likewise.
21065         * config/pdp11/pdp11.c: Likewise.
21066         * config/powerpcspe/powerpcspe.c: Likewise.
21067         * config/riscv/riscv.c: Likewise.
21068         * config/rl78/rl78.c: Likewise.
21069         * config/rx/rx.c: Likewise.
21070         * config/s390/s390.c: Likewise.
21071         * config/sh/sh.c: Likewise.
21072         * config/sol2.c: Likewise.
21073         * config/sparc/sparc.c: Likewise.
21074         * config/spu/spu.c: Likewise.
21075         * config/stormy16/stormy16.c: Likewise.
21076         * config/tilegx/tilegx.c: Likewise.
21077         * config/tilepro/tilepro.c: Likewise.
21078         * config/v850/v850.c: Likewise.
21079         * config/vax/vax.c: Likewise.
21080         * config/visium/visium.c: Likewise.
21081         * config/xtensa/xtensa.c: Likewise.
21082
21083 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
21084
21085         PR target/81593
21086         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
21087         constraints since the -mupper-regs-* switches have been
21088         eliminated.
21089         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
21090         into a vector from a double word element that was extracted from
21091         another vector, and eliminate extra XXPERMDI instructions.
21092         (vsx_concat_<mode>_2): Likewise.
21093         (vsx_concat_<mode>_3): Likewise.
21094         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
21095         concat to allow optimizing inserts from previous extracts.
21096
21097 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
21098
21099         * config/i386/i386.c (ix86_stack_protect_guard): Generate
21100         memory reference to a SSP offset in TLS address space.
21101         (ix86_print_operand) <case '@'>: Remove.
21102         (ix86_print_operand_punct_valid_p): Remove '@' code.
21103         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
21104         UNSPEC_SP_TLS_TEST.
21105         (stack_tls_protect_set_<mode>): Remove.
21106         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
21107         (stack_tls_protect_test_<mode>): Remove.
21108         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
21109
21110 2017-08-07  Olivier Hainque  <hainque@adacore.com>
21111
21112         PR target/81755
21113         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
21114
21115 2017-08-07  Douglas Rupp  <rupp@adacore.com>
21116
21117         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
21118         variable was referenced as multidir in command.
21119
21120 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21121
21122         PR c/69389
21123         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
21124         BIT_FIELD_REF.
21125
21126 2017-08-07  Martin Liska  <mliska@suse.cz>
21127
21128         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
21129         * config/rl78/rl78.c: Add include of attribs.h.
21130         * config/sh/sh.c: Likewise.
21131         * config/v850/v850.c: Likewise.
21132
21133 2017-08-07  Tom de Vries  <tom@codesourcery.com>
21134
21135         PR middle-end/78266
21136         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
21137
21138 2017-08-07  Martin Liska  <mliska@suse.cz>
21139
21140         * config/mips/mips.c: Include attribs.h.
21141
21142 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
21143
21144         PR fortran/68829
21145         * doc/invoke.texi: Document change in behvaior for -Ofast for
21146         Fortran.
21147
21148 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
21149
21150         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
21151         Use gen_frame_mem.
21152         (aarch64_pop_regs): Likewise.
21153         (aarch64_gen_load_pair): Likewise.
21154         (aarch64_save_callee_saves): Likewise.
21155         (aarch64_restore_callee_saves): Likewise.
21156
21157 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21158
21159         * config/i386/i386.c: Revert the last change.
21160
21161 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21162
21163         PR target/81736
21164         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
21165         to ...
21166         (ix86_finalize_stack_frame_flags): This.  Also clear
21167         frame_pointer_needed if -fno-omit-frame-pointer is used without
21168         stack access.
21169         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
21170         with ix86_finalize_stack_frame_flags.
21171         (ix86_expand_epilogue): Likewise.
21172         (ix86_expand_split_stack_prologue): Likewise.
21173
21174 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21175
21176         PR target/81743
21177         * config/i386/i386.c (get_builtin_code_for_version): Set priority
21178         to P_AES for Westmere.
21179
21180 2017-08-07  Jonathan Yong  <10walls@gmail.com>
21181
21182         * config/i386/mingw.opt (fset-stack-executable): Removed.
21183         * config/i386/cygming.opt (fset-stack-executable): Moved
21184         from mingw.opt.
21185         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
21186
21187 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
21188
21189         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
21190
21191 2017-08-07  Marek Polacek  <polacek@redhat.com>
21192
21193         PR middle-end/81737
21194         * fold-const.c (fold_indirect_ref_1): Check type_domain.
21195
21196 2017-08-07  Martin Liska  <mliska@suse.cz>
21197
21198         * attribs.h (canonicalize_attr_name): New function.
21199         (cmp_attribs): Move from c-format.c and adjusted.
21200         (is_attribute_p): Moved from tree.h.
21201         * tree-inline.c: Add new includes.
21202         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
21203         (private_is_attribute_p): Remove.
21204         (private_lookup_attribute): Likewise.
21205         (private_lookup_attribute_by_prefix): Simplify.
21206         (remove_attribute): Use is_attribute_p.
21207         * tree.h: Remove removed declarations.
21208
21209 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21210
21211         PR middle-end/81698
21212         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
21213         instead of computing it in the function.  Formatting fix.
21214         (expand_case): Don't rely on default_edge being the first edge,
21215         clear it if removing it, pass default_edge to
21216         emit_case_dispatch_table.
21217         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
21218         fix.
21219
21220 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
21221
21222         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
21223         insn in the function, emit NOP after the insn.
21224
21225 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21226
21227         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
21228         and element loops.
21229
21230 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21231
21232         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
21233         loop.
21234
21235 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
21236
21237         PR tree-optimization/57371
21238         * match.pd: New pattern.
21239
21240 2017-08-04  Marek Polacek  <polacek@redhat.com>
21241
21242         PR middle-end/81695
21243         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
21244         perform the computation in offset_int.
21245
21246 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21247
21248         PR tree-optimization/81136
21249         * tree-vectorizer.h: Include tree-hash-traits.h.
21250         (vec_base_alignments): New typedef.
21251         (vec_info): Add a base_alignments field.
21252         (vect_record_base_alignments): Declare.
21253         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
21254         field.
21255         (DR_IS_CONDITIONAL_IN_STMT): New macro.
21256         (create_data_ref): Add an is_conditional_in_stmt argument.
21257         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
21258         the is_conditional_in_stmt field.
21259         (data_ref_loc): Add an is_conditional_in_stmt field.
21260         (get_references_in_stmt): Set the is_conditional_in_stmt field.
21261         (find_data_references_in_stmt): Update call to create_data_ref.
21262         (graphite_find_data_references_in_stmt): Likewise.
21263         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
21264         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
21265         (vect_record_base_alignment): New function.
21266         (vect_record_base_alignments): Likewise.
21267         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
21268         for nested statements even if we fail to compute a misalignment.
21269         Use pooled base alignments for unconditional references.
21270         (vect_find_same_alignment_drs): Compare base addresses instead
21271         of base objects.
21272         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
21273         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
21274
21275 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21276
21277         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
21278         Add an explicit name for the enum.  Use auto_vec for slp_instances
21279         and grouped_stores.
21280         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
21281         for all vectors.
21282         (_bb_vec_info): Add a constructor and destructor.
21283         (vinfo_for_stmt): Return NULL for uids of -1 as well.
21284         (destroy_loop_vec_info): Delete.
21285         (vect_destroy_datarefs): Likewise.
21286         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
21287         (vec_info::vec_info): New function.
21288         (vec_info::~vec_info): Likewise.
21289         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
21290         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
21291         destroy_loop_vec_info.
21292         * tree-vect-loop.c (new_loop_vec_info): Replace with...
21293         (_loop_vec_info::_loop_vec_info): ...this.
21294         (destroy_loop_vec_info): Replace with...
21295         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
21296         the stmt_vec_infos.  Leave handling of vec_info information to its
21297         destructor.  Remove explicit vector releases.
21298         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
21299         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
21300         * tree-vect-slp.c (new_bb_vec_info): Replace with...
21301         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
21302         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
21303         (destroy_bb_vec_info): Replace with...
21304         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
21305         information to its destructor.
21306         (vect_slp_analyze_bb_1): Use new and delete instead of
21307         new_bb_vec_info and destroy_bb_vec_info.
21308         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
21309         single delete.
21310
21311 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21312
21313         * tree-data-ref.h (subscript): Add access_fn field.
21314         (data_dependence_relation): Add could_be_independent_p.
21315         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
21316         (same_access_functions): Move to tree-data-ref.c.
21317         * tree-data-ref.c (ref_contains_union_access_p): New function.
21318         (access_fn_component_p): Likewise.
21319         (access_fn_components_comparable_p): Likewise.
21320         (dr_analyze_indices): Add a reference to access_fn_component_p.
21321         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
21322         DR_ACCESS_FN.
21323         (constant_access_functions): Likewise.
21324         (add_other_self_distances): Likewise.
21325         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
21326         (initialize_data_dependence_relation): Use XCNEW and remove
21327         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
21328         of access functions that have the same type.  Allow the
21329         subsequence to end with different bases in some circumstances.
21330         Record the chosen access functions in SUB_ACCESS_FN.
21331         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
21332         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
21333         (subscript_dependence_tester_1): Likewise dra and drb.
21334         (build_classic_dist_vector): Update calls accordingly.
21335         (subscript_dependence_tester): Likewise.
21336         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
21337         DDR_COULD_BE_INDEPENDENT_P.
21338         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
21339         comp_alias_ddrs instead of may_alias_ddrs.
21340         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
21341         New function.
21342         (vect_analyze_data_ref_dependence): Use it if
21343         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
21344         distance vectors if that fails.
21345         (dependence_distance_ge_vf): New function.
21346         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
21347         LOOP_VINFO_MAY_ALIAS_DDRS.
21348
21349 2017-08-04  Richard Biener  <rguenther@suse.de>
21350
21351         PR middle-end/81705
21352         * fold-const.c (fold_binary_loc): Properly restrict
21353         minus_var0 && minus_var1 case when associating undefined overflow
21354         entities.
21355
21356 2017-08-04  Tom de Vries  <tom@codesourcery.com>
21357
21358         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
21359
21360 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21361
21362         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
21363         Don't start diagnostic messages with a capital letter.
21364         * config/rs6000/rs6000.c (rs6000_option_override_internal):
21365         Likewise.
21366         (rs6000_invalid_builtin): Likewise.
21367         (rs6000_trampoline_init): Likewise.
21368
21369 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21370
21371         PR target/81621
21372         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
21373         after setting changeable df flags.
21374
21375 2017-08-03  Richard Biener  <rguenther@suse.de>
21376
21377         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
21378         up if the use is in USE - X.
21379
21380 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
21381
21382         * toplev.c (dumpfile.h): New include.
21383         (internal_error_reentered): New static function.  Use it...
21384         (internal_error_function): ...here to handle reentered internal_error.
21385
21386 2017-08-03  Richard Biener  <rguenther@suse.de>
21387
21388         PR middle-end/81148
21389         * fold-const.c (split_tree): Add minus_var and minus_con
21390         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
21391         here but always use minus_*.
21392         (associate_trees): Assert we never associate with MINUS_EXPR
21393         and NULL first operand.  Do not recurse for PLUS_EXPR operands
21394         when associating as MINUS_EXPR either.
21395         (fold_binary_loc): Track minus_var and minus_con.
21396
21397 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21398
21399         PR lto/81430
21400         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
21401         ACCEL_COMPILER, apply finish_options on
21402         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
21403
21404 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21405
21406         PR target/81662
21407         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
21408         function_entry_patch_area_size > 0.
21409
21410 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21411
21412         PR driver/81650
21413         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
21414         instead of 10??LU, perform unit multiplication in wide_int,
21415         don't change alloc_object_size_limit if the limit is larger
21416         than SSIZE_MAX.
21417
21418         PR tree-optimization/81655
21419         PR tree-optimization/81588
21420         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
21421         the case when ranges[i].low and high are 1 for unsigned type with
21422         precision 1.
21423
21424         PR middle-end/81052
21425         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
21426         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
21427
21428 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21429
21430         * tree-vrp.h: Add include guard.
21431
21432 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
21433
21434         PR target/81644
21435         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
21436         (ud2): New insn pattern.
21437         * config/i386/i386.c (ix86_expand_epilogue):
21438         For naked functions, generate ud2 instead of trap insn.
21439
21440 2017-08-02  Marek Polacek  <polacek@redhat.com>
21441
21442         PR other/81667
21443         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
21444
21445 2017-08-02  Tom de Vries  <tom@codesourcery.com>
21446             Cesar Philippidis  <cesar@codesourcery.com>
21447
21448         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
21449         Add missing edge probabilities.
21450
21451 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
21452
21453         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
21454         Correct endianness.
21455
21456 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
21457
21458         PR middle-end/79499
21459         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
21460         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
21461         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
21462         prologue_seq sequences - if any.
21463
21464 2017-08-02  Richard Biener  <rguenther@suse.de>
21465
21466         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
21467         via vectors if supported, integer extracts via punning if supported
21468         or otherwise vector extracts.
21469
21470 2017-08-02  Richard Biener  <rguenther@suse.de>
21471
21472         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
21473         into ...
21474         (bitmap_insert_into_set): ... this.
21475
21476 2017-08-02  Richard Biener  <rguenther@suse.de>
21477
21478         PR tree-optimization/81633
21479         Revert
21480         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
21481
21482         PR tree-optimization/71752
21483         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
21484
21485 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
21486
21487         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
21488         (machine_function::call_ms2sysv_pad_out): Remove field.
21489         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
21490         (ix86_compute_frame_layout): Likewise.
21491
21492 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
21493
21494         PR target/81654
21495         * config/i386/i386.c (ix86_set_func_type): Disallow naked
21496         attribute with interrupt attribute.
21497
21498 2017-08-01  Andrew Pinski  <apinski@cavium.com>
21499
21500         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
21501         BIT_INSERT_EXPR's operand 1
21502         to see if the types precision matches.
21503
21504 2017-08-01  Martin Liska  <mliska@suse.cz>
21505
21506         PR middle-end/70140
21507         * builtins.c (expand_builtin_memcpy_args): Remove.
21508         (expand_builtin_memcpy): Call newly added function
21509         expand_builtin_memory_copy_args.
21510         (expand_builtin_memcpy_with_bounds): Likewise.
21511         (expand_builtin_mempcpy): Remove last argument.
21512         (expand_builtin_mempcpy_with_bounds): Likewise.
21513         (expand_builtin_memory_copy_args): New function created from
21514         expand_builtin_mempcpy_args with small modifications.
21515         (expand_builtin_mempcpy_args): Remove.
21516         (expand_builtin_stpcpy): Remove unused argument.
21517         (expand_builtin): Likewise.
21518         (expand_builtin_with_bounds): Likewise.
21519
21520 2017-08-01  Martin Liska  <mliska@suse.cz>
21521
21522         Revert r250771
21523         Make mempcpy more optimal (PR middle-end/70140).
21524
21525 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21526
21527         PR target/81622
21528         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
21529         __builtin_vec_cmpne verify both arguments are compatible vectors
21530         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
21531         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
21532         move computation of aligned to after checking the argument types.
21533         Formatting fixes.
21534
21535         PR target/80846
21536         * config/rs6000/vsx.md (vextract_fp_from_shorth,
21537         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
21538         calls.
21539
21540 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
21541             Doug Rupp  <rupp@adacore.com>
21542             Olivier Hainque  <hainque@adacore.com>
21543
21544         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
21545         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
21546         arm8 (arch v4).
21547         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
21548         for TARGET_OS_CPP_BUILTIN.
21549         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
21550         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
21551         arm_arch7.
21552         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
21553         passing required abi options to the assembler for EABI configurations.
21554         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
21555         of .text.hot and .text.unlikely sections for kernel modules when
21556         using ARM style exceptions.
21557         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
21558         options. Add EXTRA_CC1_SPEC.
21559         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
21560         toolchain options.
21561         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
21562         transition.
21563         (ARM_TARGET2_DWARF_FORMAT): Define.
21564         * config/arm/t-vxworks: Adjust multilib control to removal of the
21565         Diab command line options.
21566
21567 2017-08-01  Martin Liska  <mliska@suse.cz>
21568
21569         PR gcov-profile/81561
21570         * gcov.c (unblock): Make unblocking safe as we need to preserve
21571         index correspondence of blocks and block_lists.
21572
21573 2017-08-01  Richard Biener  <rguenther@suse.de>
21574
21575         PR tree-optimization/81181
21576         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
21577         (compute_antic): ... end of iteration here.
21578
21579 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
21580
21581         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
21582         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
21583         (ftree-slp-vectorize): Likewise.
21584         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
21585         can no longer be set independent of flag_tree_loop_vectorize.
21586         * omp-general.c (emp_max_vf): Likewise.
21587         * opts.c (enable_fdo_optimizations): Remove references to
21588         flag_tree_vectorize, these are now implicit.
21589         (common_handle_option): Remove handling for OPT_ftree_vectorize,
21590         and leave it for the options machinery.
21591
21592 2017-08-01  Martin Liska  <mliska@suse.cz>
21593
21594         PR middle-end/70140
21595         * builtins.c (expand_builtin_memcpy_args): Remove.
21596         (expand_builtin_memcpy): Call newly added function
21597         expand_builtin_memory_copy_args.
21598         (expand_builtin_memcpy_with_bounds): Likewise.
21599         (expand_builtin_mempcpy): Remove last argument.
21600         (expand_builtin_mempcpy_with_bounds): Likewise.
21601         (expand_builtin_memory_copy_args): New function created from
21602         expand_builtin_mempcpy_args with small modifications.
21603         (expand_builtin_mempcpy_args): Remove.
21604         (expand_builtin_stpcpy): Remove unused argument.
21605         (expand_builtin): Likewise.
21606         (expand_builtin_with_bounds): Likewise.
21607
21608 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21609
21610         PR target/81641
21611         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
21612         print "ds:" only for immediates in generic address space.
21613
21614 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21615
21616         PR target/81639
21617         * config/i386/i386.c (ix86_funciton_naked): New prototype.
21618         (ix86_function_ok_for_sibcall): Return false for naked functions.
21619
21620 2017-08-01  Richard Biener  <rguenther@suse.de>
21621
21622         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
21623         (compute_antic): Seed worklist with exit block predecessors.
21624         * cfganal.c (dfs_find_deadend): For a cycle return the source
21625         of the edge closing it.
21626
21627 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
21628
21629         * config/aarch64/aarch64.c
21630         (aarch64_can_const_movi_rtx_p): Move 0 check.
21631
21632 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21633
21634         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
21635         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
21636         above macro.
21637         * match.pd: Ditto in address comparison pattern.
21638
21639 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21640
21641         PR tree-optimization/81627
21642         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
21643         closed ssa form for store-store chain.
21644
21645 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21646
21647         PR tree-optimization/81620
21648         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
21649         for store-store chain.
21650
21651 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21652
21653         PR tree-optimization/81588
21654         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
21655         ranges[i].in_p, invert comparison code ccode.  For >/>=,
21656         swap rhs1 and rhs2 and comparison code unconditionally,
21657         for </<= don't do that.  Don't swap rhs1/rhs2 again if
21658         ranges[i].in_p, instead invert comparison code ccode if
21659         opcode or oe->rank is BIT_IOR_EXPR.
21660
21661         PR target/80846
21662         * optabs.def (vec_extract_optab, vec_init_optab): Change from
21663         a direct optab to conversion optab.
21664         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
21665         with GET_MODE_INNER as last argument instead of optab_handler.
21666         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
21667         vector extraction if possible and optab is available.
21668         * expr.c (store_constructor): Use convert_optab_handler instead
21669         of optab_handler.  Use vector initialization from smaller
21670         vectors if possible and optab is available.
21671         * tree-vect-stmts.c (vectorizable_load): Likewise.
21672         * doc/md.texi (vec_extract, vec_init): Document that the optabs
21673         now have two modes.
21674         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
21675         of vec_init from half-sized vectors with the same element mode.
21676         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
21677         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
21678         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
21679         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
21680         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
21681         after mode in gen_vec_extract* calls.
21682         (vec_extract<mode>): Renamed to ...
21683         (vec_extract<mode><ssescalarmodelower>): ... this.
21684         (vec_extract<mode><ssehalfvecmodelower>): New expander.
21685         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
21686         element mode after mode in gen_vec_init* calls.
21687         (VEC_INIT_HALF_MODE): New mode iterator.
21688         (vec_init<mode>): Renamed to ...
21689         (vec_init<mode><ssescalarmodelower>): ... this.
21690         (vec_init<mode><ssehalfvecmodelower>): New expander.
21691         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
21692         (vec_extractv2sfsf): ... this.
21693         (vec_initv2sf): Renamed to ...
21694         (vec_initv2sfsf): ... this.
21695         (vec_extractv2si): Renamed to ...
21696         (vec_extractv2sisi): ... this.
21697         (vec_initv2si): Renamed to ...
21698         (vec_initv2sisi): ... this.
21699         (vec_extractv4hi): Renamed to ...
21700         (vec_extractv4hihi): ... this.
21701         (vec_initv4hi): Renamed to ...
21702         (vec_initv4hihi): ... this.
21703         (vec_extractv8qi): Renamed to ...
21704         (vec_extractv8qiqi): ... this.
21705         (vec_initv8qi): Renamed to ...
21706         (vec_initv8qiqi): ... this.
21707         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
21708         (vec_init<mode>): Renamed to ...
21709         (vec_init<mode><VEC_base_l>): ... this.
21710         (vec_extract<mode>): Renamed to ...
21711         (vec_extract<mode><VEC_base_l>): ... this.
21712         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
21713         (vec_initv2sfsf): ... this.
21714         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
21715         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21716         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
21717         element mode after mode in gen_vec_init* calls.
21718         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
21719         (vec_init<mode><Vel>): ... this.
21720         (vec_extract<mode>): Renamed to ...
21721         (vec_extract<mode><Vel>): ... this.
21722         * config/aarch64/iterators.md (Vel): New mode attribute.
21723         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
21724         Add element mode after mode in gen_vec_extract* calls.
21725         * config/s390/vector.md (non_vec_l): New mode attribute.
21726         (vec_extract<mode>): Renamed to ...
21727         (vec_extract<mode><non_vec_l>): ... this.
21728         (vec_init<mode>): Renamed to ...
21729         (vec_init<mode><non_vec_l>): ... this.
21730         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
21731         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
21732         vec_extract mode.
21733         * config/arm/iterators.md (V_elem_l): New mode attribute.
21734         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
21735         (vec_extract<mode><V_elem_l>): ... this.
21736         (vec_extractv2di): Renamed to ...
21737         (vec_extractv2didi): ... this.
21738         (vec_init<mode>): Renamed to ...
21739         (vec_init<mode><V_elem_l>): ... this.
21740         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
21741         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
21742         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
21743         Add element mode after gen_vec_extract* calls.
21744         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
21745         (vec_init<mode><unitmode>): ... this.
21746         (vec_extract<mode>): Renamed to ...
21747         (vec_extract<mode><unitmode>): ... this.
21748         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
21749         (vec_init<mode><unitmode>): ... this.
21750         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
21751         (vec_initv2sfsf): ... this.
21752         (vec_extractv2sf): Renamed to ...
21753         (vec_extractv2sfsf): ... this.
21754         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
21755         Add element mode after gen_vec_extract* calls.
21756         * config/mips/mips.md (unitmode): New mode iterator.
21757         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
21758         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
21759         * config/spu/spu.md (inner_l): New mode attribute.
21760         (vec_init<mode>): Renamed to ...
21761         (vec_init<mode><inner_l>): ... this.
21762         (vec_extract<mode>): Renamed to ...
21763         (vec_extract<mode><inner_l>): ... this.
21764         * config/sparc/sparc.md (veltmode): New mode iterator.
21765         (vec_init<VMALL:mode>): Renamed to ...
21766         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
21767         * config/ia64/vect.md (vec_initv2si): Renamed to ...
21768         (vec_initv2sisi): ... this.
21769         (vec_initv2sf): Renamed to ...
21770         (vec_initv2sfsf): ... this.
21771         (vec_extractv2sf): Renamed to ...
21772         (vec_extractv2sfsf): ... this.
21773         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
21774         (vec_init<mode>): Renamed to ...
21775         (vec_init<mode><VEC_base_l>): ... this.
21776         (vec_extract<mode>): Renamed to ...
21777         (vec_extract<mode><VEC_base_l>): ... this.
21778         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
21779         (vec_initv2sfsf): ... this.
21780         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
21781         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21782         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
21783         gen_vec_init* calls.
21784
21785 2017-08-01  Richard Biener  <rguenther@suse.de>
21786
21787         PR tree-optimization/81297
21788         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
21789         TREE_OVERFLOW from INTEGER_CSTs.
21790
21791 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
21792
21793         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
21794
21795 2017-07-31  Carl Love  <cel@us.ibm.com>
21796
21797         * config/rs6000/rs6000-c: Add support for built-in functions
21798         vector signed char vec_xl_be (signed long long, signed char *);
21799         vector unsigned char vec_xl_be (signed long long, unsigned char *);
21800         vector signed int vec_xl_be (signed long long, signed int *);
21801         vector unsigned int vec_xl_be (signed long long, unsigned int *);
21802         vector signed long long vec_xl_be (signed long long, signed long long *);
21803         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
21804         vector signed short vec_xl_be (signed long long, signed short *);
21805         vector unsigned short vec_xl_be (signed long long, unsigned short *);
21806         vector double vec_xl_be (signed long long, double *);
21807         vector float vec_xl_be (signed long long, float *);
21808         * config/rs6000/altivec.h (vec_xl_be): Add #define.
21809         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
21810         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
21811         for the builtins.
21812         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
21813         (altivec_expand_builtin): Add switch statement to call
21814         altivec_expand_xl_be for each builtin.
21815         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
21816         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
21817         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
21818         __builtin_vsx_le_be_v16qi.
21819         * doc/extend.texi: Update the built-in documentation file for the
21820         new built-in functions.
21821
21822 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21823
21824         PR target/25967
21825         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
21826         New function.
21827         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
21828
21829 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21830
21831         * config.gcc: Add z14.
21832         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
21833         CPU model numbers for z13s and z14.
21834         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
21835         arch12 with z14.
21836         * config/s390/s390-opts.h (enum processor_type): Rename
21837         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21838         * config/s390/s390.c (processor_table): Add field for CPU name to
21839         be passed to Binutils.
21840         (s390_asm_output_machine_for_arch): Use the new field in
21841         processor_table for Binutils.
21842         (s390_expand_builtin): Replace arch12 with z14.
21843         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21844         (s390_get_sched_attrmask): Likewise.
21845         (s390_get_unit_mask): Likewise.
21846         * config/s390/s390.opt: Add z14 to processor_type enum.
21847
21848 2017-07-31  Martin Jambor  <mjambor@suse.cz>
21849
21850         PR hsa/81477
21851         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
21852         regardless of optimization level.
21853
21854 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
21855             Martin Liska  <mliska@suse.cz>
21856
21857         * predict.def: Remove old comment and adjust probability.
21858         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
21859         PREDICT statements.
21860
21861 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21862
21863         PR target/25967
21864         * config/i386/i386.c (ix86_function_naked): New function.
21865         (ix86_can_use_return_insn_p): Return false for naked functions.
21866         (ix86_expand_prologue): Skip prologue for naked functions.
21867         (ix86_expand_epilogue): Skip epilogue for naked functions
21868         and emit trap instruction.
21869         (ix86_warn_func_return): New function.
21870         (ix86_attribute_table): Add "naked" attribute specification.
21871         (TARGET_WARN_FUNC_RETURN): Define.
21872         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
21873
21874 2017-07-31  Martin Liska  <mliska@suse.cz>
21875
21876         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
21877         (dump_gimple_bb_header): Always dump BB info.
21878         (pp_cfg_jump): Do not append info about BB when dumping a jump.
21879
21880 2017-07-31  Martin Liska  <mliska@suse.cz>
21881
21882         PR sanitize/81530
21883         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
21884         also with current_function_decl non-null equality.
21885
21886 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
21887
21888         PR sanitizer/81604
21889         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
21890         change type to the element type, instead add eltype variable and
21891         use it where we are interested in the element type.
21892
21893         PR tree-optimization/81603
21894         * ipa-polymorphic-call.c
21895         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
21896         offset arithmetic in offset_int, bail out if the resulting bit offset
21897         doesn't fit into shwi.
21898
21899 2017-07-31  Martin Liska  <mliska@suse.cz>
21900
21901         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
21902         (gimplify_save_expr): Fix comment.
21903
21904 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
21905
21906         PR target/79793
21907         * config/i386/i386.c (ix86_function_arg): Update arguments for
21908         exception handler.
21909         (ix86_compute_frame_layout): Set the initial stack offset to
21910         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
21911         INCOMING_FRAME_SP_OFFSET.
21912         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
21913         stack before exception handler returns.
21914         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
21915         the 'ERROR_CODE' for exception handler.
21916
21917 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
21918
21919         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
21920         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
21921         (ASM_OUTPUT_REG_POP): Ditto.
21922         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
21923         instead of asm_fprintf to output pure string.
21924
21925 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
21926
21927         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
21928         to imported_module_or_decl hook.
21929         (debug_nothing_tree_tree_tree_bool): Remove.
21930         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
21931         * debug.c (do_nothing_debug_hooks): Use
21932         debug_nothing_tree_tree_tree_bool_bool instead of
21933         debug_nothing_tree_tree_tree_bool.
21934         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
21935         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
21936         * sdbout.c (sdb_debug_hooks): Likewise.
21937         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
21938         (gen_namespace_die): Add DW_AT_export_symbols attribute if
21939         langhook wants it.
21940         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
21941         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
21942         attribute, don't add anything.
21943
21944 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21945
21946         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
21947         (fold_build2_stat_loc): Likewise.
21948         (fold_build3_stat_loc): Likewise.
21949         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
21950         (fold_build1_loc): Remove macro.
21951         (fold_build2_loc): Likewise.
21952         (fold_build3_loc): Likewise.
21953
21954 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21955
21956         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
21957         (gimple_build_debug_bind_source_stat): Likewise.
21958         * gimple.h (gimple_build_debug_bind): Remove macro.
21959         (gimple_build_debug_bind_source): Likewise.
21960
21961 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21962
21963         * bitmap.c (bitmap_alloc): Adjust.
21964         (bitmap_gc_alloc): Likewise.
21965         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
21966
21967 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21968
21969         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
21970         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
21971         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
21972         (bitmap_gc_alloc_stat): Likewise.
21973         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
21974
21975 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21976
21977         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
21978         * rtl.h (shallow_copy_rtx): Remove macro.
21979
21980 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21981
21982         * emit-rtl.c (gen_raw_REG): Adjust.
21983         * gengenrtl.c (gendef): Likewise.
21984         * rtl.c (rtx_alloc_stat): Remove _stat from name.
21985         * rtl.h (rtx_alloc): Remove macro.
21986
21987 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21988
21989         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
21990         (build_tree_list_stat): Likewise.
21991         * tree.h (build_tree_list): Remove macro.
21992         (build_tree_list_vec): Likewise.
21993
21994 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21995
21996         * tree.c (make_vector_stat): Remove _stat from name.
21997         (build_vector_stat): Likewise.
21998         * tree.h (make_vector_stat): Remove macro.
21999         (build_vector_stat): Likewise.
22000
22001 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22002
22003         * tree.h (build_var_debug_value): Remove prototype.
22004
22005 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22006
22007         * tree.c (tree_cons_stat): Remove _stat from name.
22008         * tree.h (tree_cons): Remove macro.
22009
22010 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22011
22012         * tree.c (build_vl_exp_stat): Remove _stat from name.
22013         * tree.h (build_vl_exp): Remove macro.
22014
22015 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22016
22017         * tree.c (build_decl_stat): Remove _stat from name.
22018         * tree.h (build_decl): Remove macro.
22019
22020 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22021
22022         * gimple.c (gimple_build_with_ops_stat): Adjust.
22023         (gimple_alloc_stat): Remove _stat from name.
22024         * gimple.h (gimple_alloc): Remove macro.
22025
22026 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22027
22028         * tree.c (make_tree_vec_stat): Remove _stat from name.
22029         (grow_tree_vec_stat): Likewise.
22030         * tree.h (make_tree_vec_stat): Adjust prototype.
22031         (grow_tree_vec_stat): Likewise.
22032         (make_tree_vec): Remove macro.
22033         (grow_tree_vec): Likewise.
22034
22035 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22036
22037         * fold-const.c (fold_build1_stat_loc): Adjust.
22038         (fold_build2_stat_loc): Likewise.
22039         (fold_build3_stat_loc): Likewise.
22040         * tree.c (build0_stat): Remove _stat from name.
22041         (build1_stat): Likewise.
22042         (build2_stat): Likewise.
22043         (build3_stat): Likewise.
22044         (build4_stat): Likewise.
22045         (build5_stat): Likewise.
22046         * tree.h (build1_loc): Remove macro, and rename _stat function
22047         to this.
22048         (build2_loc): Likewise.
22049         (build3_loc): Likewise.
22050         (build4_loc): Likewise.
22051         (build5_loc): Likewise.
22052
22053 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22054
22055         * tree.c (make_int_cst_stat): Remove _stat from name.
22056         * tree.h (make_int_cst_stat): Adjust prototype.
22057         (make_int_cst): Remove macro.
22058
22059 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22060
22061         * tree.c (make_tre_binfo_stat): Remove _stat from name.
22062         * tree.h (make_tree_binfo_stat): Adjust prototype.
22063         (make_tree_binfo): Remove.
22064
22065 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22066
22067         * tree.c (copy_node_stat): Rename to copy_node.
22068         (build_distinct_type_copy): Adjust.
22069         * tree.h (copy_node_stat): Adjust prototype.
22070         (copy_node): Remove macro.
22071
22072 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22073
22074         * tree.c (make_node_stat): rename to make_node.
22075         (build_tree_list_stat): Adjust.
22076         (build0_stat): Likewise.
22077         (build2_stat): Likewise.
22078         (build3_stat): Likewise.
22079         (build4_stat): Likewise.
22080         (build5_stat): Likewise.
22081         (build_decl_stat): Likewise.
22082         * tree.h (make_node_stat): Adjust prototype.
22083         (make_node): remove macro.
22084
22085 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
22086
22087         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
22088         (PPC_FEATURE2_SCV): Likewise.
22089         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
22090
22091 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22092
22093         * config/aarch64/aarch64.c
22094         (aarch64_internal_mov_immediate): Add new special pattern.
22095         * config/aarch64/aarch64.md (*movdi_aarch64):
22096         Add reg/32bit const mov case.
22097
22098 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22099             Richard Sandiford <richard.sandiford@linaro.org>
22100
22101         * config/aarch64/aarch64.md (mov<mode>): Generalize.
22102         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
22103         Add integer and movi cases.
22104         (movi-split-hf-df-sf split, fp16): New.
22105         (enabled): Added TARGET_FP_F16INST.
22106         * config/aarch64/iterators.md (GPF_HF): New.
22107         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
22108
22109 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22110
22111         * config/aarch64/aarch64.c
22112         (aarch64_simd_container_mode): Add prototype.
22113         (aarch64_expand_mov_immediate): Add HI support.
22114         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
22115         (aarch64_can_const_movi_rtx_p): New.
22116         (aarch64_preferred_reload_class):
22117         Remove restrictions of using FP registers for certain SIMD operations.
22118         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
22119         (aarch64_valid_floating_const): Add integer move validation.
22120         (aarch64_simd_imm_scalar_p): Remove.
22121         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
22122         (aarch64_legitimate_constant_p): Expand list of supported cases.
22123         * config/aarch64/aarch64-protos.h
22124         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
22125         (aarch64_reinterpret_float_as_int): New.
22126         (aarch64_simd_imm_scalar_p): Remove.
22127         * config/aarch64/constraints.md (Uvi): New.
22128         (Dd): Split into Ds and new Dd.
22129         * config/aarch64/aarch64.md (*movsi_aarch64):
22130         Add SIMD mov case.
22131         (*movdi_aarch64): Add SIMD mov case.
22132
22133 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22134
22135         * tree-predcom.c: (struct chain): Handle store-store chain in which
22136         stores for elimination only store loop invariant values.
22137         (execute_pred_commoning_chain): Ditto.
22138         (prepare_initializers_chain_store_elim): Ditto.
22139         (prepare_finalizers): Ditto.
22140         (is_inv_store_elimination_chain): New function.
22141         (initialize_root_vars_store_elim_1): New function.
22142
22143 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22144
22145         * tree-predcom.c: Revise general description of the pass.
22146         (enum chain_type): New enum type for store elimination.
22147         (struct chain): New field supporting store elimination.
22148         (struct component): Ditto.
22149         (dump_chain): Dump store-stores chain.
22150         (release_chain): Release resources.
22151         (split_data_refs_to_components): Compute and create component
22152         contains only stores for elimination.
22153         (get_chain_last_ref_at): New function.
22154         (make_invariant_chain): Initialization.
22155         (make_rooted_chain): Specify chain type in parameter and record it.
22156         (add_looparound_copies): Skip for store-stores chain.
22157         (determine_roots_comp): Compute type of chain and pass it to
22158         make_rooted_chain.
22159         (initialize_root_vars_store_elim_2): New function.
22160         (finalize_eliminated_stores): New function.
22161         (remove_stmt): Handle store for elimination.
22162         (execute_pred_commoning_chain): Execute predictive commoning on
22163         store-store chains.
22164         (determine_unroll_factor): Skip unroll for store-stores chain.
22165         (prepare_initializers_chain_store_elim): New function.
22166         (prepare_initializers_chain): Hanlde store-store chain.
22167         (prepare_finalizers_chain, prepare_finalizers): New function.
22168         (tree_predictive_commoning_loop): Return integer value indicating
22169         if loop is unrolled or lcssa form is corrupted.
22170         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
22171
22172 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22173
22174         * tree-predcom.c (initialize_root): Delete.
22175         (execute_pred_commoning_chain): Initialize root vars and replace
22176         reference of non-combined chain directly, rather than call above
22177         function.
22178
22179 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22180
22181         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
22182         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
22183
22184 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22185
22186         * tree-predcom.c (struct chain): New field init_seq.
22187         (release_chain): Release init_seq.
22188         (prepare_initializers_chain): Record intialization stmts in above
22189         field.
22190         (insert_init_seqs): New function.
22191         (tree_predictive_commoning_loop): Call insert_init_seqs.
22192
22193 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22194
22195         * tree-predcom.c (determine_roots_comp): Skip trivial components.
22196
22197 2017-07-28  Richard Biener  <rguenther@suse.de>
22198
22199         * match.pd: Remove superfluous :c.
22200         * genmatch.c (simplify::id): Add member.
22201         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
22202         Copy id.
22203         (current_id): New global.
22204         (dt_node::parent): Move from ...
22205         (dt_operand::parent): ... here.  Add for_id member.
22206         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
22207         (decision_tree::find_node): Relax order requirement when
22208         merging DT_TRUE nodes to ones inbetween the current simplify
22209         and the one we try to merge with.  Add diagnostic whenever
22210         we need to enforce pattern order by not merging.
22211         (decision_tree::insert): Set current_id.
22212         (decision_tree::print_node): Dump parent node and for_id.
22213         (parser::last_id): Add member.
22214         (parser::push_simplify): Assign unique id.
22215         (parser::parser): Initialize last_id.
22216
22217 2017-07-28  Martin Liska  <mliska@suse.cz>
22218
22219         PR sanitizer/81340
22220         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
22221         gimple_build_debug_bind.
22222
22223 2017-07-28  Richard Biener  <rguenther@suse.de>
22224
22225         PR tree-optimization/81502
22226         * match.pd: Add pattern combining BIT_INSERT_EXPR with
22227         BIT_FIELD_REF.
22228         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
22229         size/pos operands.
22230         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
22231         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
22232         for BIT_FIELD_REF args.
22233         * fold-const.c (make_bit_field_ref): Likewise.
22234         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
22235
22236 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22237
22238         PR sanitizer/80998
22239         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
22240         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
22241         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
22242         Or it into SANITIZER_UNDEFINED.
22243         * ubsan.c: Include gimple-fold.h and varasm.h.
22244         (ubsan_expand_ptr_ifn): New function.
22245         (instrument_pointer_overflow): New function.
22246         (maybe_instrument_pointer_overflow): New function.
22247         (instrument_object_size): Formatting fix.
22248         (pass_ubsan::execute): Call instrument_pointer_overflow
22249         and maybe_instrument_pointer_overflow.
22250         * internal-fn.c (expand_UBSAN_PTR): New function.
22251         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
22252         * sanitizer.def (__ubsan_handle_pointer_overflow,
22253         __ubsan_handle_pointer_overflow_abort): New builtins.
22254         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
22255         * internal-fn.def (UBSAN_PTR): New internal function.
22256         * opts.c (sanitizer_opts): Add pointer-overflow.
22257         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
22258         * fold-const.c (build_range_check): Compute pointer range check in
22259         integral type if pointer arithmetics would be needed.  Formatting
22260         fixes.
22261
22262 2017-07-28  Martin Liska  <mliska@suse.cz>
22263
22264         PR sanitizer/81460
22265         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
22266         parameters that are of a variable-length.
22267
22268 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22269
22270         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
22271         rs6000/biarch64.h.
22272         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
22273         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
22274         (CRT_CALL_STATIC_FUNCTION): Likewise.
22275         (ASM_DEFAULT_SPEC): New define.
22276         (ASM_SPEC32): Likewise.
22277         (ASM_SPEC64): Likewise.
22278         (ASM_SPEC_COMMON): Likewise.
22279         (ASM_SPEC): Likewise.
22280         (INVALID_64BIT): Likewise.
22281         (LINK_OS_DEFAULT_SPEC): Likewise.
22282         (LINK_OS_SPEC32): Likewise.
22283         (LINK_OS_SPEC64): Likewise.
22284         (POWERPC_LINUX): Likewise.
22285         (PTRDIFF_TYPE): Likewise.
22286         (RESTORE_FP_PREFIX): Likewise.
22287         (RESTORE_FP_SUFFIX): Likewise.
22288         (SAVE_FP_PREFIX): Likewise.
22289         (SAVE_FP_SUFFIX): Likewise.
22290         (SIZE_TYPE): Likewise.
22291         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
22292         (TARGET_64BIT): Likewise.
22293         (TARGET_64BIT): Likewise.
22294         (TARGET_AIX): Likewise.
22295         (WCHAR_TYPE_SIZE): Likewise.
22296         (WCHAR_TYPE): Undefine.
22297         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
22298         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
22299         (CPP_OS_RTEMS_SPEC): Delete.
22300         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
22301         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
22302         link_os_spec64.
22303         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
22304
22305 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22306
22307         PR tree-optimization/81578
22308         * tree-parloops.c (build_new_reduction): Bail out if
22309         reduction_code isn't one of the standard OpenMP reductions.
22310         Move the details printing after that decision.
22311
22312 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22313
22314         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
22315         related to reload_in_progress.
22316         (splat_input_operand): Likewise.
22317         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
22318         Delete prototype.
22319         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
22320         field.
22321         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
22322         (TARGET_INSTANTIATE_DECLS): Likewise.
22323         (legitimate_indexed_address_p): Delete reload_in_progress code.
22324         (rs6000_debug_legitimate_address_p): Likewise.
22325         (rs6000_eliminate_indexed_memrefs): Likewise.
22326         (rs6000_emit_le_vsx_store): Likewise.
22327         (rs6000_emit_move_si_sf_subreg): Likewise.
22328         (rs6000_emit_move): Likewise.
22329         (register_to_reg_type): Likewise.
22330         (rs6000_pre_atomic_barrier): Likewise.
22331         (rs6000_machopic_legitimize_pic_address): Likewise.
22332         (rs6000_allocate_stack_temp): Likewise.
22333         (rs6000_address_for_fpconvert): Likewise.
22334         (rs6000_address_for_altivec): Likewise.
22335         (rs6000_secondary_memory_needed_rtx): Delete function.
22336         (rs6000_check_sdmode): Likewise.
22337         (rs6000_alloc_sdmode_stack_slot): Likewise.
22338         (rs6000_instantiate_decls): Likewise.
22339         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
22340         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
22341         Delete reload_in_progress.
22342         (*vec_reload_and_plus_<mptrsize>): Likewise.
22343         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
22344         (vsx_div_v2di): Likewise.
22345         (vsx_udiv_v2di): Likewise.
22346
22347 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22348
22349         * config/rs6000/rs6000.opt (mlra): Replace with stub.
22350         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
22351         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
22352         (rs6000_debug_reg_global): Delete print of LRA status.
22353         (rs6000_option_override_internal): Delete dead LRA related code.
22354         (rs6000_lra_p): Delete function.
22355         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
22356
22357 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22358
22359         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
22360         * config/riscv/rtems.h: New file.
22361
22362 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22363             Sudakshina Das  <sudi.das@arm.com>
22364
22365         * config/aarch64/aarch64.md
22366         (define_split for and<mode>3nr_compare): Move
22367         non aarch64_logical_operand to a register.
22368         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
22369         register immediate operand to a register.
22370         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
22371
22372 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22373
22374         PR middle-end/81564
22375         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
22376
22377 2017-07-27  Richard Biener  <rguenther@suse.de>
22378
22379         PR tree-optimization/81573
22380         PR tree-optimization/81494
22381         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22382         multi defuse cycle case.
22383
22384 2017-07-27  Richard Biener  <rguenther@suse.de>
22385
22386         PR tree-optimization/81571
22387         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
22388         PHIs.
22389
22390 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
22391
22392         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
22393         earlier and only if MASK_FPU is set.  Adjust formatting.
22394
22395 2017-07-27  Martin Liska  <mliska@suse.cz>
22396
22397         * opt-functions.awk: Add validation of value of Init.
22398         * optc-gen.awk: Pass new argument.
22399
22400 2017-07-27  Martin Liska  <mliska@suse.cz>
22401
22402         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
22403         Fix wrong condition.
22404
22405 2017-07-27  Martin Liska  <mliska@suse.cz>
22406
22407         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
22408         BBs and edges seen by autoFDO.
22409
22410 2017-07-27  Richard Biener  <rguenther@suse.de>
22411
22412         PR tree-optimization/81502
22413         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
22414         with incompatible but same sized type.
22415         (execute_update_addresses_taken): Likewise.
22416
22417 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
22418
22419         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
22420         flag_tree_loop_vectorize rather than flag_tree_vectorize.
22421
22422 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22423
22424         PR target/81534
22425         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
22426         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
22427         Change s_operand to memory_operand.
22428
22429 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
22430
22431         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
22432         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
22433         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
22434         Emit instructions rather than returning an expression.  Handle TFmode
22435         and KFmode by casting to TImode.
22436         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
22437         (rs6000_emit_le_vsx_store): Likewise.
22438         * config/rs6000/vsx.md (VSX_TI): New iterator.
22439         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
22440         (*vsx_le_undo_permute_<mode>): Likewise.
22441         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
22442         emit the split sequence.
22443         (*vsx_le_perm_store_<mode>): Likewise.
22444
22445 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
22446
22447         PR tree-optimization/81555
22448         PR tree-optimization/81556
22449         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
22450         if true, force CHANGED for the recursive invocation.
22451         (reassociate_bb): Remember original length of ops array, pass
22452         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
22453
22454         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
22455         attributes for noipa attribute.  For naked attribute use
22456         lookup_attribute first before lookup_attribute_spec.
22457         * final.c (rest_of_handle_final): Disable IPA RA for functions with
22458         noipa attribute.
22459         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
22460         for functions with noipa attribute.
22461         (cgraph_externally_visible_p): Return true for functions with noipa
22462         attribute.
22463         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
22464         for functions with noipa attribute.
22465         * doc/extend.texi: Document noipa function attribute.
22466         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
22467         also for functions with noipa attribute.
22468         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
22469
22470 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22471
22472         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
22473         vec_unalign_load_cost and vec_unalign_store_cost.
22474
22475 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22476
22477         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
22478         -mvsx-small-integer option.
22479         (ISA_3_0_MASKS_IEEE): Likewise.
22480         (OTHER_VSX_VECTOR_MASKS): Likewise.
22481         (POWERPC_MASKS): Likewise.
22482         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
22483         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
22484         code, only testing for DImode being allowed in non-VSX floating
22485         point registers.
22486         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
22487         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
22488         another VSX test.
22489         (rs6000_option_override_internal): Delete -mvsx-small-integer.
22490         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
22491         TARGET_P8_VECTOR test.
22492         (rs6000_secondary_reload_simple_move): Likewise.
22493         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
22494         since TARGET_P9_VECTOR was already tested.
22495         (rs6000_opt_masks): Remove -mvsx-small-integer.
22496         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
22497         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22498         used.
22499         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
22500         test for TARGET_VEXTRACTUB was used, and that uses
22501         TARGET_P9_VECTOR.
22502         (p9 extract splitter): Likewise.
22503         (vsx_extract_<mode>_di_p9): Likewise.
22504         (vsx_extract_<mode>_store_p9): Likewise.
22505         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
22506         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
22507         the elimination of TARGET_VSX_SMALL_INTEGER.
22508         (vsx_extract_<mode>_p8): Likewise.
22509         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
22510         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
22511         (vsx_set_<mode>_p9): Likewise.
22512         (vsx_set_v4sf_p9): Likewise.
22513         (vsx_set_v4sf_p9_zero): Likewise.
22514         (vsx_insert_extract_v4sf_p9): Likewise.
22515         (vsx_insert_extract_v4sf_p9_2): Likewise.
22516         * config/rs6000/rs6000.md (sign extend splitter): Change
22517         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
22518         (floatsi<mode>2_lfiwax_mem): Likewise.
22519         (floatunssi<mode>2_lfiwzx_mem): Likewise.
22520         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
22521         since a test for TARGET_P9_VECTOR was used.
22522         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22523         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
22524         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22525         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22526         TARGET_P8_VECTOR test.
22527         (fix_trunc<mode>si2_stfiwx): Likewise.
22528         (fix_trunc<mode>si2_internal): Likewise.
22529         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
22530         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22531         used.
22532         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22533         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22534         TARGET_P8_VECTOR test.
22535         (fixuns_trunc<mode>si2_stfiwx): Likewise.
22536         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
22537         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22538         used.
22539         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22540         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
22541         since a test for TARGET_P9_VECTOR was used.
22542         (splitter for loading small constants): Likewise.
22543
22544 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22545
22546         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
22547         vec_fp_stmt_cost.
22548
22549 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
22550
22551         PR target/81563
22552         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
22553         (fp_valid_at): Likewise.
22554
22555 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22556
22557         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
22558         (qdf24xx_addrcost_table): Likewise.
22559         (cortexa57_tunings): Update to use generic_branch_cost.
22560         (cortexa72_tunings): Likewise.
22561         (cortexa73_tunings): Likewise.
22562         (qdf24xx_tunings): Likewise.
22563
22564 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22565
22566         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
22567         (thunderx2t99_branch_cost): Likewise.
22568         (cortexa35_tunings): Update to use generic_branch_cost.
22569         (cortexa53_tunings): Likewise.
22570         (cortexa57_tunings): Likewise.
22571         (cortexa72_tunings): Likewise.
22572         (cortexa73_tunings): Likewise.
22573         (thunderx2t99_tunings): Likewise.
22574
22575 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22576
22577         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
22578         (sparc_option_override): Honour MASK_FSMULD.
22579         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
22580         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
22581         * config/sparc/sparc.opt (mfsmuld): New option.
22582         * doc/invoke.texi (mfsmuld): Document option.
22583
22584 2017-07-26  Marek Polacek  <polacek@redhat.com>
22585
22586         PR middle-end/70992
22587         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
22588
22589 2017-07-26  Richard Biener  <rguenther@suse.de>
22590
22591         * gimple-match-head.c (do_valueize): Return OP if valueize
22592         returns NULL_TREE.
22593         (get_def): New helper to get at the def stmt of a SSA name
22594         if valueize allows.
22595         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
22596         do_valueize to get at the def stmt.
22597         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
22598
22599 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
22600
22601         PR middle-end/46932
22602         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
22603
22604 2017-07-26  Martin Liska  <mliska@suse.cz>
22605
22606         PR sanitize/81186
22607         * function.c (expand_function_start): Make expansion of
22608         nonlocal_goto_save_area after parm_birth_insn.
22609
22610 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22611
22612         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
22613         from all CPU target flags enable members.
22614
22615 2017-07-26  Richard Biener  <rguenther@suse.de>
22616
22617         * genmatch.c (dt_simplify::gen): Make iterator vars const.
22618         (decision_tree::gen): Make 'type' const.
22619         (write_predicate): Likewise.
22620
22621 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22622
22623         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
22624         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
22625         (rs6000_option_override_internal): Likewise.
22626         (rs6000_expand_vector_set): Likewise.
22627         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
22628         (TARGET_UPPER_REGS_SF): Likewise.
22629         (TARGET_UPPER_REGS_DI): Likewise.
22630         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
22631         (TARGET_DIRECT_MOVE_64BIT): Likewise.
22632         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
22633         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22634         (Splitters for DI constants in Altivec registers): Likewise.
22635         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
22636         (vsx_set_v4sf_p9): Likewise.
22637         (vsx_set_v4sf_p9_zero): Likewise.
22638         (vsx_insert_extract_v4sf_p9): Likewise.
22639         (vsx_insert_extract_v4sf_p9_2): Likewise.
22640
22641 2017-07-25  Carl Love  <cel@us.ibm.com>
22642
22643         * doc/extend.texi: Update the built-in documentation file for the
22644         existing built-in functions
22645         vector signed char vec_cnttz (vector signed char);
22646         vector unsigned char vec_cnttz (vector unsigned char);
22647         vector signed short vec_cnttz (vector signed short);
22648         vector unsigned short vec_cnttz (vector unsigned short);
22649         vector signed int vec_cnttz (vector signed int);
22650         vector unsigned int vec_cnttz (vector unsigned int);
22651         vector signed long long vec_cnttz (vector signed long long);
22652         vector unsigned long long vec_cnttz (vector unsigned long long);
22653
22654 2017-07-25  Andrew Pinski  <apinski@cavium.com>
22655
22656         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
22657         accesses where the use is for the first operand of a BIT_INSERT.
22658
22659 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22660
22661         PR bootstrap/81521
22662         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22663         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22664
22665 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22666
22667         * config/i386/gstabs.h: Delete.
22668         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
22669
22670 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
22671
22672         * config/i386/i386.c (ix86_decompose_address): Do not check for
22673         register RTX when looking at index_reg or base_reg.
22674         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
22675
22676 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
22677
22678         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
22679         to update EH info here.
22680
22681 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22682
22683         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
22684
22685 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22686
22687         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
22688
22689 2017-07-25  Torsten Duwe  <duwe@suse.de>
22690
22691         * common.opt: Introduce -fpatchable-function-entry
22692         command line option, and its variables function_entry_patch_area_size
22693         and function_entry_patch_area_start.
22694         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
22695         including a two-value parser.
22696         * target.def (print_patchable_function_entry): New target hook.
22697         * targhooks.h (default_print_patchable_function_entry): New function.
22698         * targhooks.c (default_print_patchable_function_entry): Likewise.
22699         * toplev.c (process_options): Switch off IPA-RA if
22700         patchable function entries are being generated.
22701         * varasm.c (assemble_start_function): Look at the
22702         patchable-function-entry command line switch and current
22703         function attributes and maybe generate NOP instructions by
22704         calling the print_patchable_function_entry hook.
22705         * doc/extend.texi: Document patchable_function_entry attribute.
22706         * doc/invoke.texi: Document -fpatchable_function_entry
22707         command line option.
22708         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
22709         New target hook.
22710         * doc/tm.texi: Re-generate.
22711
22712 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
22713
22714         PR target/81532
22715         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
22716         TARGET_AVX512DQ rather than TARGET_AVX512BW.
22717
22718 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
22719
22720         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
22721
22722 2017-07-25  Richard Biener  <rguenther@suse.de>
22723
22724         PR tree-optimization/81455
22725         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
22726         not walk in cycles when looking for guards.
22727
22728 2017-07-25  Richard Biener  <rguenther@suse.de>
22729
22730         PR tree-optimization/81529
22731         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
22732         when optimizing backedge uses.
22733
22734 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
22735
22736         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
22737         character for AIX.
22738         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
22739         to dl_section_ref.  On AIX, append an expression to subtract
22740         the size of the section length to dl_section_ref.
22741
22742 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
22743
22744         * configure.ac: If any of the config.* scripts fail, exit 1.
22745         * configure: Regenerate.
22746
22747 2017-07-25  Richard Biener  <rguenther@suse.de>
22748
22749         PR middle-end/81546
22750         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
22751         of immediate uses, be more verbose on errors.
22752
22753 2017-07-25  Richard Biener  <rguenther@suse.de>
22754
22755         PR tree-optimization/81510
22756         * tree-vect-loop.c (vect_is_simple_reduction): When the
22757         reduction stmt is not inside the loop bail out.
22758
22759 2017-07-25  Richard Biener  <rguenther@suse.de>
22760
22761         PR tree-optimization/81303
22762         * tree-vect-loop-manip.c (vect_loop_versioning): Build
22763         profitability check against LOOP_VINFO_NITERSM1.
22764
22765 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22766
22767         * domwalk.c (cmp_bb_postorder): Simplify.
22768         (sort_bbs_postorder): New function.  Use it...
22769         (dom_walker::walk): ...here to optimize common cases.
22770
22771 2017-07-25  Martin Liska  <mliska@suse.cz>
22772
22773         PR ipa/81520
22774         * ipa-visibility.c (function_and_variable_visibility): Make the
22775         redirection just on target that supports aliasing.
22776         Fix GNU coding style.
22777
22778 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22779
22780         PR libgcc/61152
22781         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
22782         Format changes.
22783         * config/arm/rtems.h: Likewise.
22784         * config/bfin/rtems.h: Likewise.
22785         * config/i386/rtemself.h: Likewise.
22786         * config/lm32/rtems.h: Likewise.
22787         * config/m32c/rtems.h: Likewise.
22788         * config/m68k/rtemself.h: Likewise.
22789         * config/microblaze/rtems.h: Likewise.
22790         * config/mips/rtems.h: Likewise.
22791         * config/moxie/rtems.h: Likewise.
22792         * config/nios2/rtems.h: Likewise.
22793         * config/powerpcspe/rtems.h: Likewise.
22794         * config/rs6000/rtems.h: Likewise.
22795         * config/rtems.h: Likewise.
22796         * config/sh/rtems.h: Likewise.
22797         * config/sh/rtemself.h: Likewise.
22798         * config/sparc/rtemself.h: Likewise.
22799
22800 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22801
22802         PR 81487
22803         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
22804         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
22805         * tree-ssa-structalias.c (alias_get_name): Same.
22806
22807 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
22808
22809         PR target/81414
22810         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
22811         instructions if no du chain is found.
22812
22813 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22814
22815         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
22816
22817 2017-07-25  Richard Biener  <rguenther@suse.de>
22818
22819         PR middle-end/81505
22820         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
22821         sticky.
22822
22823 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22824
22825         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
22826         upper-regs options.
22827         (ISA_2_7_MASKS_SERVER): Likewise.
22828         (ISA_3_0_MASKS_IEEE): Likewise.
22829         (OTHER_P8_VECTOR_MASKS): Likewise.
22830         (OTHER_VSX_VECTOR_MASKS): Likewise.
22831         (POWERPC_MASKS): Likewise.
22832         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
22833         duplicate list of options.
22834         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
22835         explicit -mupper-regs options.
22836         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
22837         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
22838         alias for -mupper-regs-df.
22839         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
22840         (rs6000_init_hard_regno_mode_ok): Likewise.
22841         (rs6000_option_override_internal): Likewise.
22842         (rs6000_opt_masks): Likewise.
22843         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
22844         options in terms of whether -mvsx or -mpower8-vector was used.
22845         (TARGET_UPPER_REGS_DI): Likewise.
22846         (TARGET_UPPER_REGS_SF): Likewise.
22847         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
22848         -mupper-regs-* options.
22849
22850 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22851
22852         * passes.c (emergency_dump_function): Print some empty lines and a
22853         header before the RTL dump.
22854
22855 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22856
22857         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
22858
22859 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
22860
22861         PR target/79041
22862         * config/aarch64/aarch64.c (aarch64_classify_symbol):
22863         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
22864
22865 2017-07-24  Carl Love  <cel@us.ibm.com>
22866
22867         * config/rs6000/rs6000-c.c: Add support for built-in functions
22868         vector float vec_extract_fp32_from_shorth (vector unsigned short);
22869         vector float vec_extract_fp32_from_shortl (vector unsigned short);
22870         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
22871         vec_extract_fp_from_shortl): Add defines for the two builtins.
22872         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
22873         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
22874         new builtins.
22875         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
22876         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
22877         * doc/extend.texi: Update the built-in documentation file for the
22878         new built-in function.
22879
22880 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
22881
22882         PR bootstrap/81521
22883         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
22884         documentation.
22885         * doc/generic.texi: Likewise.
22886         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22887         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22888
22889 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
22890
22891         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
22892         (aarch64_mls_elt_merge<mode>): Likewise.
22893
22894 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
22895
22896         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
22897         having __cxa_atexit.
22898
22899 2017-07-23  Michael Collison  <michael.collison@arm.com>
22900
22901         * config/arm/arm.c (arm_option_override): Deprecate
22902         use of -mstructure-size-boundary.
22903         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
22904         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
22905
22906 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22907
22908         PR target/80695
22909         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
22910         Reduce cost estimate for direct moves.
22911
22912 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
22913
22914         PR target/80569
22915         * config/i386/i386.c (ix86_option_override_internal): Disable
22916         BMI, BMI2 and TBM instructions for -m16.
22917
22918 2017-07-21  Carl Love  <cel@us.ibm.com>
22919
22920         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22921         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22922         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22923         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22924         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22925         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22926         VMULOSW): New enum "unspec" values.
22927         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22928         altivec_vmulosw): New patterns.
22929         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22930         VMULOSW): Add definitions.
22931
22932 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
22933
22934         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
22935         (qdf24xx): Likewise.
22936         * config/aarch64/aarch64-options-extensions.def (rdma); New.
22937         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
22938         (AARCH64_FL_V8_1): Renumber.
22939         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
22940         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
22941         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
22942         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
22943         rdma to feature modifiers list.
22944
22945 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
22946
22947         PR middle-end/56727
22948         * ipa-visibility (function_and_variable_visibility): Convert
22949         recursive PLT call to direct call if appropriate.
22950
22951 2017-07-21  Andrew Pinski  <apinski@cavium.com>
22952
22953         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
22954         operand 1 to see if the types precision matches.
22955         * fold-const.c (operand_equal_p): Likewise.
22956
22957 2017-07-21  Richard Biener  <rguenther@suse.de>
22958
22959         PR tree-optimization/81303
22960         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
22961         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
22962         (vect_peeling_hash_get_lowest_cost): Adjust.
22963         (vect_enhance_data_refs_alignment): Likewise.  Use
22964         vect_get_peeling_costs_all_drs to compute the penalty for no
22965         peeling to match up costs.
22966
22967 2017-07-21  Richard Biener  <rguenther@suse.de>
22968
22969         PR tree-optimization/81500
22970         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
22971         we didn't identify a reduction path.
22972
22973 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22974             Cesar Philippidis  <cesar@codesourcery.com>
22975
22976         PR gcov-profile/81442
22977         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
22978         probabilities.
22979
22980 2017-07-21  Tom de Vries  <tom@codesourcery.com>
22981
22982         PR lto/81430
22983         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
22984         function.
22985         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
22986         nvptx_override_options_after_change.
22987
22988 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
22989
22990         * dwarf2out.c (output_file_names): Avoid double testing for
22991         dwarf_version >= 5.
22992
22993 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
22994
22995         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
22996
22997 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
22998
22999         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
23000         hot/cold regions.
23001         (try_crossjump_to_edge): Do not punt on partitioned functions.
23002
23003 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
23004
23005         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
23006         Put all BBs reachable only via paths crossing cold region to cold
23007         region.
23008         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
23009
23010 2016-07-21  Richard Biener  <rguenther@suse.de>
23011
23012         PR tree-optimization/81303
23013         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
23014         into account prologue and epilogue iterations when raising
23015         min_profitable_iters to sth at least covering one vector iteration.
23016
23017 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
23018
23019         * config/arm/arm.c (arm_test_cpu_arch_dat):
23020         Check for overlap.
23021
23022 2017-07-20  Nathan Sidwell  <nathan@acm.org>
23023
23024         Remove TYPE_METHODS.
23025         * tree.h (TYPE_METHODS): Delete.
23026         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
23027         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
23028         (dbxout_type_methods): Scan TYPE_FIELDS.
23029         (dbxout_type): Don't check TYPE_METHODS here.
23030         * function.c (use_register_for_decl): Always ignore register for
23031         class types when not optimizing.
23032         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
23033         * tree.c (free_lang_data_in_type): Stitch out member functions and
23034         templates from TYPE_FIELDS.
23035         (build_distinct_type_copy, verify_type_variant,
23036         verify_type): Member fns are on TYPE_FIELDS.
23037         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
23038         * tree-pretty-print.c (dump_generic_node): Likewise.
23039
23040 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
23041
23042         PR target/80846
23043         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
23044         V2TImode and V4TImode.
23045         (ix86_expand_vector_extract): Likewise.
23046         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
23047         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
23048         (ssescalarmode): Handle V4TImode and V2TImode.
23049         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
23050         (*vec_extractv2ti, *vec_extractv4ti): New insns.
23051         (VEXTRACTI128_MODE): New mode iterator.
23052         (splitter for *vec_extractv?ti first element): New.
23053         (VEC_INIT_MODE): New mode iterator.
23054         (vec_init<mode>): Consolidate 3 expanders into one using
23055         VEC_INIT_MODE mode iterator.
23056
23057 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23058
23059         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
23060         non_spilled_static_chain_regno_p.
23061
23062 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23063
23064         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
23065
23066 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
23067
23068         * bb-reorder.c (connect_traces): Allow copying of blocks within
23069         single partition.
23070
23071 2017-07-20  Richard Biener  <rguenther@suse.de>
23072
23073         * gimple.h (gimple_phi_result): Add gphi * overload.
23074         (gimple_phi_result_ptr): Likewise.
23075         (gimple_phi_arg): Likewise.  Adjust index assert to only
23076         allow actual argument accesses rather than all slots available
23077         by capacity.
23078         (gimple_phi_arg_def): Add gphi * overload.
23079         * tree-phinodes.c (make_phi_node): Initialize only actual
23080         arguments.
23081         (resize_phi_node): Clear memory not covered by old node,
23082         do not initialize excess argument slots.
23083         (reserve_phi_args_for_new_edge): Initialize new argument slot
23084         completely.
23085
23086 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
23087
23088         PR tree-optimization/81388
23089         Revert r238585:
23090         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
23091
23092         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
23093         by removing computation of may_be_zero.
23094
23095 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23096             Tom de Vries  <tom@codesourcery.com>
23097
23098         PR middle-end/81030
23099         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
23100         when gimple level profile disagrees with what RTL expander did.
23101
23102 2017-07-20  Richard Biener  <rguenther@suse.de>
23103
23104         PR tree-optimization/61171
23105         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
23106         (vect_analyze_stmt): Add slp instance parameter.
23107         (vectorizable_reduction): Likewise.
23108         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
23109         (vect_is_simple_reduction): Deal with chains not detected
23110         as SLP reduction chain, specifically not properly associated
23111         chains containing a mix of plus/minus.
23112         (get_reduction_op): Remove.
23113         (get_initial_defs_for_reduction): Simplify, pass in whether
23114         this is a reduction chain, pass in the SLP node for the PHIs.
23115         (vect_create_epilog_for_reduction): Get the SLP instance as
23116         arg and adjust.
23117         (vectorizable_reduction): Get the SLP instance as arg.
23118         During analysis remember the SLP node with the PHIs in the
23119         instance.  Simplify getting at the vectorized reduction PHIs.
23120         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
23121         through SLP instance.
23122         (vect_slp_analyze_operations): Likewise.
23123         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
23124         (vect_transform_stmt): Likewise.
23125
23126 2017-07-20  Tom de Vries  <tom@codesourcery.com>
23127
23128         PR tree-optimization/81489
23129         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
23130         read of phi arg location to before loop that modifies phi.
23131
23132 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23133
23134         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
23135         New pattern.
23136
23137 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23138
23139         PR middle-end/81331
23140         * except.c (execute): Fix ordering issue.
23141
23142 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23143
23144         PR rtl-optimization/81423
23145         * combine.c (make_compound_operation_int): Don't try to optimize
23146         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
23147
23148 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23149
23150         PR rtl-optimization/81423
23151         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
23152         with a constant that is -1 in the truncated to mode.
23153
23154 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23155
23156         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
23157         (determine_unlikely_bbs): ... here.
23158         * predict.h (propagate_unlikely_bbs_forward): Declare.
23159         * cfgexpand.c (pass_expand::execute): Use it.
23160         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
23161         unlikely edges.
23162         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
23163         propagate_unlikely_bbs_forward.
23164
23165 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23166
23167         PR middle-end/81331
23168         * except.c (maybe_add_nop_after_section_switch): New function.
23169         (execute): Use it.
23170
23171 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23172
23173         * gimple.h (gimple_phi_set_arg): Make assert more strict.
23174
23175 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23176
23177         * gimple.h (gimple_phi_arg): Make assert more strict.
23178
23179 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
23180
23181         * config.gcc (powerpc*-*-*): Add mmintrin.h.
23182         * config/rs6000/mmintrin.h: New file.
23183         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
23184
23185 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23186
23187         PR tree-optimization/81346
23188         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
23189
23190 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23191
23192         * config/nvptx/nvptx.md (VECIM): Add V2DI.
23193
23194 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23195
23196         * config/nvptx/nvptx-modes.def: Add V2DImode.
23197         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
23198         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
23199         (nvptx_output_mov_insn): Handle lack of mov.b128.
23200         (nvptx_print_operand): Handle 'H' and 'L' codes.
23201         (nvptx_vector_mode_supported): Allow V2DImode.
23202         (nvptx_preferred_simd_mode): New function.
23203         (nvptx_data_alignment): New function.
23204         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
23205         nvptx_preferred_simd_mode.
23206         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
23207         64 to 128 bits.
23208         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
23209
23210 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23211
23212         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
23213         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
23214         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
23215         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
23216         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
23217         (mov<VECIM>_insn): New define_insn.
23218         (define_expand "mov<VECIM>): New define_expand.
23219
23220 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23221
23222         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
23223
23224 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23225
23226         PR tree-optimization/81346
23227         * fold-const.h (fold_div_compare, range_check_type): Declare.
23228         * fold-const.c (range_check_type): New function.
23229         (build_range_check): Use range_check_type.
23230         (fold_div_compare): No longer static, rewritten into
23231         a match.pd helper function.
23232         (fold_comparison): Don't call fold_div_compare here.
23233         * match.pd (X / C1 op C2): New optimization using fold_div_compare
23234         as helper function.
23235
23236 2017-07-19  Nathan Sidwell  <nathan@acm.org>
23237
23238         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
23239         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
23240         * tree.c (find_decls_types_r, verify_type): Use
23241         TYPE_{MIN,MAX}_VALUE_RAW.
23242         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
23243         (hash_tree): Likewise.
23244         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
23245         Likewise.
23246         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
23247         Likewise.
23248
23249 2017-07-18  Tom de Vries  <tom@codesourcery.com>
23250
23251         PR middle-end/81464
23252         * omp-expand.c (expand_omp_for_static_chunk): Handle
23253         equal-argument loop exit phi.
23254
23255 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
23256
23257         PR target/81471
23258         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
23259         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
23260         operand 2 predicate.
23261         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
23262         operand 2 predicate.
23263         (ror,rol -> rorx splitters): Use const_int_operand as
23264         operand 2 predicate.
23265
23266 2017-06-18  Richard Biener  <rguenther@suse.de>
23267
23268         PR tree-optimization/81410
23269         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
23270         the gap in the ! slp_perm SLP case after each group.
23271
23272 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23273
23274         PR middle-end/81463
23275         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
23276         again.
23277
23278 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23279
23280         PR middle-end/81462
23281         * predict.c (set_even_probabilities): Cleanup; do not affect
23282         probabilities that are already known.
23283         (combine_predictions_for_bb): Call even when count is set.
23284
23285 2017-07-18  Nathan Sidwell  <nathan@acm.org>
23286
23287         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
23288         TYPE_MAX_VALUE.
23289
23290 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23291
23292         PR target/81408
23293         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
23294         optimization for loop niter analysis.
23295
23296 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
23297
23298         PR target/81473
23299         * config/avr/avr.c (avr_optimize_casesi): Don't use
23300         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
23301
23302 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
23303
23304         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
23305         body_cost_vec from _vect_peel_extended_info.
23306         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
23307         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
23308         npeel.
23309
23310 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23311
23312         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
23313
23314 2017-07-18  Richard Biener  <rguenther@suse.de>
23315
23316         PR tree-optimization/80620
23317         PR tree-optimization/81403
23318         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
23319         info when re-using a VN table entry.
23320
23321 2017-07-18  Richard Biener  <rguenther@suse.de>
23322
23323         PR tree-optimization/81418
23324         * tree-vect-loop.c (vectorizable_reduction): Properly compute
23325         vectype_in.  Verify that with lane-reducing reduction operations
23326         we have a single def-use cycle.
23327
23328 2017-07-17  Carl Love  <cel@us.ibm.com>
23329
23330         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
23331
23332         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23333         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
23334         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
23335         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
23336         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
23337         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
23338         VMULOSW): New enum "unspec" values.
23339         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
23340         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
23341         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
23342         altivec_vmulosw): New patterns.
23343         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
23344         VMULOSW): Add definitions.
23345
23346 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
23347
23348         * config/alpha/alpha.c: Include predict.h.
23349
23350 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
23351
23352         * tree-vrp.c (compare_assert_loc): Fix comparison function
23353         to return predictable results.
23354
23355 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23356
23357         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
23358         option.
23359         (subdi3): Likewise.
23360         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
23361         * doc/invoke.texi (mexpand-adddi): Update text.
23362
23363 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23364
23365         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
23366         that also clobbers the CC register. The old expand code is moved
23367         to ...
23368         (*arc_clzsi2): ... here.
23369         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
23370         the CC register. The old expand code is moved to ...
23371         (arc_ctzsi2): ... here.
23372
23373 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23374
23375         * config/arc/arc.opt (mindexed-loads): Use initial value
23376         TARGET_INDEXED_LOADS_DEFAULT.
23377         (mauto-modify-reg): Use initial value
23378         TARGET_AUTO_MODIFY_REG_DEFAULT.
23379         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23380         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23381         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23382         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23383
23384 2017-07-17  Martin Liska  <mliska@suse.cz>
23385
23386         PR sanitizer/81302
23387         * opts.c (finish_options): Do not allow -fgnu-tm
23388         w/ -fsanitize={kernel-,}address.  Say sorry.
23389
23390 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23391
23392         PR target/81369
23393         * tree-loop-distribution.c (classify_partition): Only assert on
23394         numer of iterations.
23395         (merge_dep_scc_partitions): Delete prameter.  Update function call.
23396         (distribute_loop): Remove code handling loop with unknown niters.
23397         (pass_loop_distribution::execute): Skip loop with unknown niters.
23398
23399 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23400
23401         PR target/81369
23402         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
23403         function sort_partitions_by_post_order.
23404
23405 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23406
23407         PR tree-optimization/81374
23408         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
23409         the max index of basic blocks, rather than number of basic blocks.
23410
23411 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23412
23413         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
23414         proto.
23415         (arc_legitimate_pic_operand_p): Likewise.
23416         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
23417         function.
23418         (arc_needs_pcl_p): Likewise.
23419         (arc_legitimate_pc_offset_p): Likewise.
23420         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
23421         function is also used in constrains.md.
23422         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
23423         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
23424         PLUS.  Only return true/false in known cases, otherwise assert.
23425         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
23426         is already called in arc_legitimate_constant_p.
23427         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
23428         pic addresses.
23429         (LEGITIMATE_PIC_OPERAND_P): Use
23430         arc_raw_symbolic_reference_mentioned_p function.
23431         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
23432         function.
23433         (Cal): Likewise.
23434         (C32): Likewise.
23435
23436 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23437         Andrew Burgess  <andrew.burgess@embecosm.com>
23438
23439         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
23440         (arc_return_address_register): New function.
23441         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
23442         (arc_handle_fndecl_attribute): Add naked attribute.
23443         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
23444         (TARGET_WARN_FUNC_RETURN): Likewise.
23445         (arc_allocate_stack_slots_for_args): New function.
23446         (arc_warn_func_return): Likewise.
23447         (machine_function): Change type fn_type.
23448         (arc_compute_function_type): Consider new naked function type,
23449         change function return type.
23450         (arc_must_save_register): Adapt to handle new
23451         arc_compute_function_type's return type.
23452         (arc_expand_prologue): Likewise.
23453         (arc_expand_epilogue): Likewise.
23454         (arc_return_address_regs): Delete.
23455         (arc_return_address_register): New function.
23456         (arc_epilogue_uses): Use above function.
23457         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
23458         (arc_function_type): Change encoding, add naked type.
23459         (ARC_INTERRUPT_P): Change to handle the new encoding.
23460         (ARC_FAST_INTERRUPT_P): Likewise.
23461         (ARC_NORMAL_P): Define.
23462         (ARC_NAKED_P): Likewise.
23463         (arc_compute_function_type): Delete prototype.
23464         * config/arc/arc.md (in_ret_delay_slot): Use
23465         arc_return_address_register function.
23466         (simple_return): Likewise.
23467         (p_return_i): Likewise.
23468
23469 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23470
23471         PR tree-optimization/81428
23472         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
23473         can't be built for those types.
23474
23475 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23476
23477         Remove stuff dead since r239246.
23478
23479         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
23480         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
23481         (avr_inform_devices): Remove dead stuff.
23482
23483 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
23484
23485         * config/arm/arm_neon.h: Fix softp typo.
23486
23487 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23488
23489         PR tree-optimization/81365
23490         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
23491         aggregate moves onto bb predecessor edges, make sure there are no
23492         loads that could alias the lhs in between the start of bb and the
23493         loads from *phi.
23494
23495 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23496
23497         PR 80929
23498         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
23499         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
23500         [LSHIFTRT, outer_code = TRUNCATE]: Same.
23501
23502 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23503
23504         PR tree-optimization/81396
23505         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
23506         (init_symbolic_number): Initialize it to 1.
23507         (perform_symbolic_merge): Add n_ops from both operands into the new
23508         n_ops.
23509         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
23510         without base_addr as useless if they need more than one operation.
23511         (bswap_replace): Handle !bswap case for NULL base_addr.
23512
23513 2017-07-17  Tom de Vries  <tom@codesourcery.com>
23514
23515         PR target/81069
23516         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
23517         as possible.
23518
23519 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23520
23521         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
23522         conditional builtin define __FIX_LEON3FT_B2BST.
23523
23524 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
23525
23526         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
23527         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
23528         with -mfix-ut700.
23529
23530 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23531
23532         PR rtl-optimization/81424
23533         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
23534         to remove potential trapping from operands if -fnon-call-exceptions.
23535
23536 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23537
23538         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
23539         profile_proability for scalling.
23540         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
23541
23542 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23543
23544         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
23545
23546 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23547
23548         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
23549         fixpoint arithmetics.
23550
23551 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23552
23553         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
23554         fixpoint arithmetics.
23555
23556 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23557
23558         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
23559         fixpoint arithmetics.
23560
23561 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23562
23563         * profile-count.h (profile_probability::from_reg_br_prob_note,
23564         profile_probability::to_reg_br_prob_note): New functions.
23565         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
23566         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
23567         * predict.c (probability_reliable_p): Update.
23568         (edge_probability_reliable_p): Update.
23569         (br_prob_note_reliable_p): Update.
23570         (invert_br_probabilities): Update.
23571         (add_reg_br_prob_note): New function.
23572         (combine_predictions_for_insn): Update.
23573         * asan.c (asan_clear_shadow): Update.
23574         * cfgbuild.c (compute_outgoing_frequencies): Update.
23575         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
23576         (update_br_prob_note): Update.
23577         (rtl_verify_edges): Update.
23578         (purge_dead_edges): Update.
23579         (fixup_reorder_chain): Update.
23580         * emit-rtl.c (try_split): Update.
23581         * ifcvt.c (cond_exec_process_insns): Update.
23582         (cond_exec_process_if_block): Update.
23583         (dead_or_predicable): Update.
23584         * internal-fn.c (expand_addsub_overflow): Update.
23585         (expand_neg_overflow): Update.
23586         (expand_mul_overflow): Update.
23587         * loop-doloop.c (doloop_modify): Update.
23588         * loop-unroll.c (compare_and_jump_seq): Update.
23589         * optabs.c (emit_cmp_and_jump_insn_1): Update.
23590         * predict.h: Update.
23591         * reorg.c (mostly_true_jump): Update.
23592         * rtl.h: Update.
23593         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
23594         * config/alpha/alpha.c (emit_unlikely_jump): Update.
23595         * config/arc/arc.c: (emit_unlikely_jump): Update.
23596         * config/arm/arm.c: (emit_unlikely_jump): Update.
23597         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
23598         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
23599         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
23600         (ix86_print_operand): Update.
23601         (ix86_split_fp_branch): Update.
23602         (predict_jump): Update.
23603         * config/ia64/ia64.c (ia64_print_operand): Update.
23604         * config/mmix/mmix.c (mmix_print_operand): Update.
23605         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
23606         (rs6000_expand_split_stack_prologue): Update.
23607         * config/rs6000/rs6000.c: Update.
23608         * config/s390/s390.c (s390_expand_vec_strlen): Update.
23609         (s390_expand_vec_movstr): Update.
23610         (s390_expand_cs_tdsi): Update.
23611         (s390_expand_split_stack_prologue): Update.
23612         * config/sh/sh.c (sh_print_operand): Update.
23613         (expand_cbranchsi4): Update.
23614         (expand_cbranchdi4): Update.
23615         * config/sparc/sparc.c (output_v9branch): Update.
23616         * config/spu/spu.c (get_branch_target): Update.
23617         (ea_load_store_inline): Update.
23618         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
23619         * config/tilepro/tilepro.c: Update.
23620
23621 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23622
23623         * gimplify.c (mostly_copy_tree_r): Revert latest change.
23624         (gimplify_save_expr): Likewise.
23625
23626 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23627
23628         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
23629
23630 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23631
23632         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
23633         TV_IPA_FNSUMMARY.
23634         * timevar.def (TV_IPA_FNSUMMARY): Define.
23635
23636 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
23637
23638         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
23639         to back store errata sensitive sequence from being generated.
23640         (sqrtdf2_fix): Likewise.
23641
23642 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23643
23644         * tree-ssa-threadupdate.c (compute_path_counts,
23645         update_joiner_offpath_counts): Use profile_probability.
23646
23647 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23648
23649         Revert:
23650         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23651
23652         * config/arm/arm-c.c (arm_cpu_builtins): Define
23653         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23654
23655 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23656
23657         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23658         array entries to represent __ieee128 versions of the
23659         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
23660         scalar_extract_sig, and scalar_insert_exp built-in functions.
23661         (altivec_resolve_overloaded_builtin): Add special case handling
23662         for the __builtin_scalar_insert_exp function, as represented by
23663         the P9V_BUILTIN_VEC_VSIEDP constant.
23664         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
23665         exponent support for __ieee128 argument.
23666         (VSESQP): Add scalar extract signature support for __ieee128
23667         argument.
23668         (VSTDCNQP): Add scalar test negative support for __ieee128
23669         argument.
23670         (VSIEQP): Add scalar insert exponent support for __int128 argument
23671         with __ieee128 result.
23672         (VSIEQPF): Add scalar insert exponent support for __ieee128
23673         argument with __ieee128 result.
23674         (VSTDCQP): Add scalar test data class support for __ieee128
23675         argument.
23676         (VSTDCNQP): Add overload support for scalar test negative with
23677         __ieee128 argument.
23678         (VSTDCQP): Add overload support for scalar test data class
23679         __ieee128 argument.
23680         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
23681         UNSPEC_VSX_SXSIGDP.
23682         (UNSPEC_VSX_SIEXPQP): New constant.
23683         (xsxexpqp): New insn for VSX scalar extract exponent quad
23684         precision.
23685         (xsxsigqp): New insn for VSX scalar extract significand quad
23686         precision.
23687         (xsiexpqpf): New insn for VSX scalar insert exponent quad
23688         precision with floating point argument.
23689         (xststdcqp): New expand for VSX scalar test data class quad
23690         precision.
23691         (xststdcnegqp): New expand for VSX scalar test negative quad
23692         precision.
23693         (xststdcqp): New insn to match expansions for VSX scalar test data
23694         class quad precision and VSX scalar test negative quad precision.
23695         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
23696         special case operand checking to enforce that second operand of
23697         VSX scalar test data class with quad precision argument is a 7-bit
23698         unsigned literal.
23699         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23700         prototypes and descriptions of __ieee128 versions of
23701         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
23702         scalar_test_data_class, and scalar_test_neg built-in functions.
23703
23704 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23705
23706         PR tree-optimization/81162
23707         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
23708         replace a negate with an add.
23709
23710 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
23711
23712         * doc/invoke.texi (arm/-mcpu): Document +crypto.
23713
23714 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23715
23716         * config/arm/arm-c.c (arm_cpu_builtins): Define
23717         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23718
23719 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23720
23721         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
23722         (armv8-r): Set ARM Cortex-R52 as default CPU.
23723         * config/arm/arm-tables.opt: Regenerate.
23724         * config/arm/arm-tune.md: Regenerate.
23725         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23726         Cortex-R52.
23727         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
23728         extension for -mcpu=cortex-r52.
23729
23730 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23731
23732         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
23733         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
23734         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
23735         (fp-armv8): Define it as FP_ARMv8 only.
23736         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
23737         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
23738         TARGET_FPU_ARMV8.
23739         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
23740         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
23741         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
23742         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
23743         than TARGET_FPU_ARMV8.
23744         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
23745         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
23746         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
23747         TARGET_FPU_ARMV8.
23748         * config/arm/neon.md (neon_vrint): Likewise.
23749         (neon_vcvt): Likewise.
23750         (neon_<fmaxmin_op><mode>): Likewise.
23751         (<fmaxmin><mode>3): Likewise.
23752         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
23753         * config/arm/predicates.md (arm_cond_move_operator): Check against
23754         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
23755
23756 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
23757
23758         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
23759         to top of function.
23760
23761 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23762
23763         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
23764         loop in comment with memset.
23765
23766 2017-07-14  Martin Liska  <mliska@suse.cz>
23767
23768         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
23769         * dwarf2out.c (is_java): Remove the function.
23770         (output_pubname): Remove usage of the function.
23771         (lower_bound_default): Remove usage of DW_LANG_Java.
23772         (gen_compile_unit_die): Likewise.
23773         * gcc.c: Remove compiler defaults for .java and .zip files.
23774         * gimple-expr.c (remove_suffix): Change as there's no longer
23775         extension than 4-letter one.
23776         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
23777         (gimplify_save_expr): Likewise.
23778         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
23779         as it's possible even for other languages than Java.
23780         * langhooks.h (struct lang_hooks): Remove Java from a comment.
23781         * lto-opts.c (lto_write_options): Remove reference to Java.
23782         * opts.c (strip_off_ending): Update file extension handling.
23783         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
23784         * tree-eh.c (lower_resx): Likewise.
23785         * tree.c (free_lang_data_in_type): Remove dead code.
23786         (find_decls_types_r): Likewise.
23787         (build_common_builtin_nodes): Remove Java from a comment.
23788         (verify_type): Remove dead code.
23789         * varasm.c (assemble_external): Remove Java from a comment.
23790
23791 2017-07-14  Martin Liska  <mliska@suse.cz>
23792
23793         * opts.c (finish_options): Add quotes.
23794         (common_handle_option): Likewise.
23795
23796 2017-07-14  Martin Liska  <mliska@suse.cz>
23797
23798         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
23799         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
23800         Remove N_SO_PASCAL.
23801         * dwarf2out.c (lower_bound_default): Do not handle
23802         DW_LANG_Pascal83.
23803         (gen_compile_unit_die): Likewise.
23804         * gcc.c: Remove default extension binding for GNU Pascal.
23805         * stmt.c: Remove Pascal language from a comment.
23806         * xcoffout.c: Likewise.
23807
23808 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
23809
23810         PR c/81405
23811         * diagnostic-show-locus.c (fixit_cmp): New function.
23812         (layout::layout): Sort m_fixit_hints.
23813         (column_range::column_range): Assert that the values are valid.
23814         (struct char_span): New struct.
23815         (correction::overwrite): New method.
23816         (struct source_line): New struct.
23817         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
23818         calls in terms of classes source_line and char_span, and
23819         correction::overwrite.
23820         (selftest::test_overlapped_fixit_printing_2): New function.
23821         (selftest::diagnostic_show_locus_c_tests): Call it.
23822
23823 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
23824
23825         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
23826         early if there is no lhs.
23827
23828 2017-07-13  Martin Liska  <mliska@suse.cz>
23829
23830         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
23831         (gen_reference_type_die): Likewise.
23832         * stor-layout.c: Remove Pascal-related comment.
23833
23834 2017-07-13  Martin Liska  <mliska@suse.cz>
23835
23836         * opts.c (finish_options): Add quotes to error messages.
23837         (parse_sanitizer_options): Likewise.
23838
23839 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23840
23841         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
23842
23843 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
23844
23845         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
23846
23847 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
23848
23849         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
23850         during expansion.
23851         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
23852
23853 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23854
23855         PR target/81193
23856         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
23857         provides the hardware capability bits, define the macro
23858         __BUILTIN_CPU_SUPPORTS__.
23859         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
23860         if GLIBC does not provide the hardware capability bits.  Add a
23861         gcc_unreachable call if the built-in cpu function is neither
23862         __builtin_cpu_is nor __builtin_cpu_supports.
23863         (rs6000_get_function_versions_dispatcher): Change the warning
23864         that an old GLIBC is used which does not export the capability
23865         bits to be an error.
23866         * doc/extend.texi (target_clones attribute): Document the
23867         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
23868         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
23869         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
23870         the macros defined by GCC if the newer GLIBC is available.
23871
23872 2017-07-12  Jeff Law  <law@redhat.com>
23873
23874         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
23875         remaining includes slightly.
23876         * config/riscv/riscv-builtins.c: Include profile-count.h.
23877
23878 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23879
23880         PR target/79883
23881         * config/avr/avr.c (avr_set_current_function): In diagnostic
23882         messages: Quote keywords and (parts of) identifiers.
23883         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
23884         "INTERUPT".
23885
23886 2017-07-12  Carl Love  <cel@us.ibm.com>
23887
23888         * config/rs6000/rs6000-c.c: Add support for built-in functions
23889         vector bool char vec_revb (vector bool char);
23890         vector bool short vec_revb (vector short char);
23891         vector bool int vec_revb (vector bool int);
23892         vector bool long long vec_revb (vector bool long long);
23893         * doc/extend.texi: Update the built-in documentation file for the
23894         new built-in functions.
23895
23896 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23897
23898         * config/s390/s390.md: Remove movcc splitter.
23899
23900 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23901
23902         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
23903         load/store on condition.
23904
23905 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23906
23907         PR target/81407
23908         * config/avr/avr.c (avr_encode_section_info)
23909         [progmem && !TREE_READONLY]: Error if progmem object needs
23910         constructing.
23911
23912 2017-07-11  Michael Collison  <michael.collison@arm.com>
23913
23914         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
23915         New pattern.
23916
23917 2017-07-11  Carl Love  <cel@us.ibm.com>
23918
23919         * config/rs6000/rs6000-c.c: Add support for builtins
23920         vector unsigned int vec_parity_lsbb (vector signed int);
23921         vector unsigned int vec_parity_lsbb (vector unsigned int);
23922         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
23923         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
23924         vector unsigned long long vec_parity_lsbb (vector signed long long);
23925         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
23926         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
23927         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
23928         * doc/extend.texi: Update the built-in documentation file for the
23929         new built-in functions.
23930
23931 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
23932
23933         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
23934         (layout::m_primary_loc): New field.
23935         (layout::layout): Initialize new field.  Move location filtering
23936         logic from here to...
23937         (layout::maybe_add_location_range): ...this new method.  Add
23938         support for filtering to just the lines already specified by other
23939         locations.
23940         (layout::will_show_line_p): New method.
23941         (gcc_rich_location::add_location_if_nearby): New method.
23942         (selftest::test_add_location_if_nearby): New test function.
23943         (selftest::diagnostic_show_locus_c_tests): Call it.
23944         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
23945         New method.
23946
23947 2017-07-11  Tom de Vries  <tom@codesourcery.com>
23948
23949         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
23950         (bb_first_real_insn): New function.
23951         (nvptx_single): Add extra initialization of broadcasted condition
23952         variables.
23953
23954 2017-07-11  Nathan Sidwell  <nathan@acm.org>
23955
23956         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
23957
23958 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
23959
23960         * doc/extend.texi (AVR Function Attributes): Remove weblink to
23961         Binutils doc as TEXI will mess them up.
23962         * doc/invoke.texi (AVR Options): Same here.
23963
23964 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
23965
23966         * config/sparc/sparc.opt (mfix-ut700): New option.
23967         (mfix-gr712rc): Likewise.
23968         (sparc_fix_b2bst): New variable.
23969         * doc/invoke.texi (SPARC options): Document them.
23970         (ARM options): Fix warnings.
23971         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
23972         instructions to prevent sequences that can trigger the store-store
23973         errata for certain LEON3FT processors.
23974         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
23975         (sparc_option_override): Set sparc_fix_b2bst appropriately.
23976         * config/sparc/sparc.md (fix_b2bst): New attribute.
23977         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
23978
23979 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
23980
23981         PR target/81375
23982         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
23983         (rcpps): Ditto.
23984         (*rsqrtsf2_sse): Ditto.
23985         (rsqrtsf2): Ditto.
23986         (div<mode>3): Macroize insn from divdf3 and divsf3
23987         using MODEF mode iterator.
23988
23989 2017-07-10  Martin Sebor  <msebor@redhat.com>
23990
23991         PR tree-optimization/80397
23992         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
23993         instead of testing for equality to INTEGER_TYPE.
23994
23995 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
23996
23997         * config.gcc: Remove uclibc from arc target spec.
23998
23999 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
24000
24001         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
24002
24003 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
24004
24005         PR lto/80838
24006         * lto-wrapper.c (remove_option): New function.
24007         (merge_and_complain): Merge PIC/PIE options more realistically.
24008
24009 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24010
24011         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
24012
24013         PR target/20296
24014         PR target/81268
24015         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
24016         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
24017         * config.in: Regenerate.
24018         * configure: Regenerate.
24019         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
24020         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
24021         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
24022         (TARGET_GASISR_PROLOGUES): ...target mask.
24023         * common/config/avr/avr-common.c
24024         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
24025         Set -mgas-isr-prologues.
24026         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
24027         INSERT_PASS_BEFORE for it.
24028         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
24029         * config/avr/avr.c (avr_option_override)
24030         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
24031         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
24032         (avr_attribute_table) <no_gccisr>: Add new function attribute.
24033         (avr_set_current_function) <is_no_gccisr>: Init machine field.
24034         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
24035         and rtl_opt_pass.
24036         (make_avr_pass_pre_proep): New function.
24037         (emit_push_sfr) <treg>: Add argument to function and use it
24038         instead of TMP_REG.
24039         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
24040         and set machine->gasisr.yes.
24041         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
24042         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
24043         __gcc_isr.n_pushed to .L__stack_usage.
24044         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
24045         (avr_asm_final_postscan_insn): ...this new static function.
24046         * config/avr/avr.h (machine_function)
24047         <is_no_gccisr, use_L__stack_usage>: New fields.
24048         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
24049         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
24050         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
24051         (gasisr, *gasisr): New expander and insn.
24052         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
24053         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
24054         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
24055
24056 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
24057
24058         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
24059         in quoted strings.
24060
24061 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24062
24063         Move jump-tables out of .text again.
24064
24065         PR target/81075
24066         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
24067         (ASM_OUTPUT_ADDR_VEC): New function.
24068         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
24069         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
24070         INSN_ADDRESSes as asm comment.
24071         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
24072         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
24073         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
24074         * config/avr/avr.md (*tablejump): Adjust comment.
24075         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
24076         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
24077         New detail.
24078         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
24079         (avr_output_addr_vec): New proto.
24080         (avr_log_t) <insn_addresses>: New field.
24081
24082 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
24083
24084         PR target/81313
24085         * config/i386/i386.c (ix86_function_arg_advance): Set
24086         outgoing_args_on_stack to true if there are outgoing arguments
24087         on stack.
24088         (ix86_function_arg): Likewise.
24089         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
24090         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
24091         * config/i386/i386.h (machine_function): Add
24092         outgoing_args_on_stack.
24093
24094 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
24095
24096         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
24097         supporting pthreds.
24098         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
24099
24100 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
24101
24102         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
24103         (REAL_H): Remove $(MACHMODE_H).
24104         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
24105         double-int.h.
24106         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
24107         $(MACHMODE_H) and double-int.h.
24108         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
24109         $(MACHMODE_H).
24110         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
24111         double-int.h.
24112
24113 2017-07-07  Andrew Pinski  <apinski@cavium.com>
24114
24115         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
24116         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
24117
24118 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24119
24120         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
24121         Add warning if GCC was not configured to link against a GLIBC that
24122         exports the hardware capability bits.
24123         (make_resolver_func): Make resolver function private and not a
24124         COMDAT function.  Create the name with clone_function_name instead
24125         of make_unique_name.
24126
24127         PR target/81348
24128         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
24129         correct operand in doing the split.
24130
24131 2017-07-07 Carl Love  <cel@us.ibm.com>
24132
24133         * config/rs6000/rs6000-c: Add support for built-in function
24134         vector unsigned short vec_pack_to_short_fp32 (vector float,
24135                                                       vector float).
24136         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
24137         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
24138         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
24139         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
24140         (convert_4f32_8i16): Add define_expand.
24141         * doc/extend.texi: Update the built-in documentation file for the
24142         new built-in function.
24143
24144 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24145
24146         * config/sparc/m8.md: New file.
24147         * config/sparc/sparc.md: Include m8.md.
24148
24149 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24150
24151         * config/sparc/sparc.opt: New option -mvis4b.
24152         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
24153         (sparc_option_override): Handle VIS4B.
24154         (enum sparc_builtins): Define
24155         SPARC_BUILTIN_DICTUNPACK{8,16,32},
24156         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
24157         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
24158         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
24159         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
24160         (check_constant_argument): New function.
24161         (sparc_vis_init_builtins): Define builtins
24162         __builtin_vis_dictunpack{8,16,32},
24163         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
24164         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
24165         __builtin_vis_fpcmpde{8,16,32}shl and
24166         __builtin_vis_fpcmpur{8,16,32}shl.
24167         (sparc_expand_builtin): Check that the constant operands to
24168         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
24169         constant and in range.
24170         * config/sparc/sparc-c.c (sparc_target_macros): Handle
24171         TARGET_VIS4B.
24172         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
24173         (SPARC_IMM5_P): Likewise.
24174         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
24175         (enabled): Handle vis4b.
24176         (UNSPEC_DICTUNPACK): New unspec.
24177         (UNSPEC_FPCMPSHL): Likewise.
24178         (UNSPEC_FPUCMPSHL): Likewise.
24179         (UNSPEC_FPCMPDESHL): Likewise.
24180         (UNSPEC_FPCMPURSHL): Likewise.
24181         (cpu_feature): New CPU feature `vis4b'.
24182         (dictunpack{8,16,32}): New insns.
24183         (FPCSMODE): New mode iterator.
24184         (fpcscond): New code iterator.
24185         (fpcsucond): Likewise.
24186         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
24187         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
24188         (fpcmpde{8,16,32}{si,di}shl): Likewise.
24189         (fpcmpur{8,16,32}{si,di}shl): Likewise.
24190         * config/sparc/constraints.md: Define constraints `q' for unsigned
24191         2-bit integer constants and `t' for unsigned 5-bit integer
24192         constants.
24193         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
24194         predicate.
24195         (imm5_operand_dictunpack16): Likewise.
24196         (imm5_operand_dictunpack32): Likewise.
24197         (imm2_operand): Likewise.
24198         * doc/invoke.texi (SPARC Options): Document -mvis4b.
24199         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
24200         ditunpack* and fpcmp*shl builtins.
24201
24202 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24203
24204         * config.gcc: Handle m8 in --with-{cpu,tune} options.
24205         * config.in: Add HAVE_AS_SPARC6 define.
24206         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
24207         M8.
24208         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
24209         TARGET_CPU_m8.
24210         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
24211         (CPP_CPU_SPEC): Handle m8.
24212         (ASM_CPU_SPEC): Likewise.
24213         * config/sparc/sparc-opts.h (enum processor_type): Add
24214         PROCESSOR_M8.
24215         * config/sparc/sparc.c (m8_costs): New struct.
24216         (sparc_option_override): Handle TARGET_CPU_m8.
24217         (sparc32_initialize_trampoline): Likewise.
24218         (sparc64_initialize_trampoline): Likewise.
24219         (sparc_issue_rate): Likewise.
24220         (sparc_register_move_cost): Likewise.
24221         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
24222         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
24223         (ASM_CPU64_DEFAULT_SPEC): Likewise.
24224         (CPP_CPU_SPEC): Handle M8.
24225         (ASM_CPU_SPEC): Likewise.
24226         (AS_M8_FLAG): Define.
24227         * config/sparc/sparc.md: Add m8 to the cpu attribute.
24228         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
24229         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
24230         M8 instructions.
24231         * configure: Regenerate.
24232         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
24233         -mtune=m8.
24234
24235 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24236
24237         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
24238         subtypes.
24239         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
24240         ("*movdi_insn_sp32"): Do not set v3pipe.
24241         ("*movsi_insn"): Likewise.
24242         ("*movdi_insn_sp64"): Likewise.
24243         ("*movsf_insn"): Likewise.
24244         ("*movdf_insn_sp32"): Likewise.
24245         ("*movdf_insn_sp64"): Likewise.
24246         ("*zero_extendsidi2_insn_sp64"): Likewise.
24247         ("*sign_extendsidi2_insn"): Likewise.
24248         ("*mov<VM32:mode>_insn"): Likewise.
24249         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24250         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24251         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24252         ("<vlop:code><VL:mode>3"): Likewise.
24253         ("*not_<vlop:code><VL:mode>3"): Likewise.
24254         ("*nand<VL:mode>_vis"): Likewise.
24255         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
24256         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
24257         ("one_cmpl<VL:mode>2"): Likewise.
24258         ("faligndata<VM64:mode>_vis"): Likewise.
24259         ("alignaddrsi_vis"): Likewise.
24260         ("alignaddrdi_vis"): Likweise.
24261         ("alignaddrlsi_vis"): Likewise.
24262         ("alignaddrldi_vis"): Likewise.
24263         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24264         ("bmaskdi_vis"): Likewise.
24265         ("bmasksi_vis"): Likewise.
24266         ("bshuffle<VM64:mode>_vis"): Likewise.
24267         ("cmask8<P:mode>_vis"): Likewise.
24268         ("cmask16<P:mode>_vis"): Likewise.
24269         ("cmask32<P:mode>_vis"): Likewise.
24270         ("pdistn<P:mode>_vis"): Likewise.
24271         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24272
24273 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24274
24275         * config/sparc/sparc.md ("subtype"): New insn attribute.
24276         ("*wrgsr_sp64"): Set insn subtype.
24277         ("*rdgsr_sp64"): Likewise.
24278         ("alignaddrsi_vis"): Likewise.
24279         ("alignaddrdi_vis"): Likewise.
24280         ("alignaddrlsi_vis"): Likewise.
24281         ("alignaddrldi_vis"): Likewise.
24282         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24283         ("fexpand_vis"): Likewise.
24284         ("fpmerge_vis"): Likewise.
24285         ("faligndata<VM64:mode>_vis"): Likewise.
24286         ("bshuffle<VM64:mode>_vis"): Likewise.
24287         ("cmask8<P:mode>_vis"): Likewise.
24288         ("cmask16<P:mode>_vis"): Likewise.
24289         ("cmask32<P:mode>_vis"): Likewise.
24290         ("fchksm16_vis"): Likewise.
24291         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
24292         ("fmean16_vis"): Likewise.
24293         ("fp<plusminus_insn>64_vis"): Likewise.
24294         ("<plusminus_insn>v8qi3"): Likewise.
24295         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24296         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
24297         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
24298         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
24299         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
24300         ("*movqi_insn"): Likewise.
24301         ("*movhi_insn"): Likewise.
24302         ("*movsi_insn"): Likewise.
24303         ("movsi_pic_gotdata_op"): Likewise.
24304         ("*movdi_insn_sp32"): Likewise.
24305         ("*movdi_insn_sp64"): Likewise.
24306         ("movdi_pic_gotdata_op"): Likewise.
24307         ("*movsf_insn"): Likewise.
24308         ("*movdf_insn_sp32"): Likewise.
24309         ("*movdf_insn_sp64"): Likewise.
24310         ("*zero_extendhisi2_insn"): Likewise.
24311         ("*zero_extendqihi2_insn"): Likewise.
24312         ("*zero_extendqisi2_insn"): Likewise.
24313         ("*zero_extendqidi2_insn"): Likewise.
24314         ("*zero_extendhidi2_insn"): Likewise.
24315         ("*zero_extendsidi2_insn_sp64"): Likewise.
24316         ("ldfsr"): Likewise.
24317         ("prefetch_64"): Likewise.
24318         ("prefetch_32"): Likewise.
24319         ("tie_ld32"): Likewise.
24320         ("tie_ld64"): Likewise.
24321         ("*tldo_ldub_sp32"): Likewise.
24322         ("*tldo_ldub1_sp32"): Likewise.
24323         ("*tldo_ldub2_sp32"): Likewise.
24324         ("*tldo_ldub_sp64"): Likewise.
24325         ("*tldo_ldub1_sp64"): Likewise.
24326         ("*tldo_ldub2_sp64"): Likewise.
24327         ("*tldo_ldub3_sp64"): Likewise.
24328         ("*tldo_lduh_sp32"): Likewise.
24329         ("*tldo_lduh1_sp32"): Likewise.
24330         ("*tldo_lduh_sp64"): Likewise.
24331         ("*tldo_lduh1_sp64"): Likewise.
24332         ("*tldo_lduh2_sp64"): Likewise.
24333         ("*tldo_lduw_sp32"): Likewise.
24334         ("*tldo_lduw_sp64"): Likewise.
24335         ("*tldo_lduw1_sp64"): Likewise.
24336         ("*tldo_ldx_sp64"): Likewise.
24337         ("*mov<VM32:mode>_insn"): Likewise.
24338         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24339         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24340
24341 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24342
24343         * config/sparc/sparc.md ("type"): New insn type viscmp.
24344         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
24345         viscmp.
24346         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
24347         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
24348         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24349         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
24350         viscmp.
24351         ("n7_vis_logical_11cycle"): Likewise.
24352         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
24353         * config/sparc/niagara2.md ("niag3_vis": Likewise.
24354         * config/sparc/niagara.md ("niag_vis"): Likewise.
24355         * config/sparc/ultra3.md ("us3_fga"): Likewise.
24356         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
24357
24358 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24359
24360         * config/sparc/sparc.md: New instruction type `bmask'.
24361         (bmaskdi_vis): Use the `bmask' type.
24362         (bmasksi_vis): Likewise.
24363         * config/sparc/ultra3.md (us3_array): Likewise.
24364         * config/sparc/niagara7.md (n7_array): Likewise.
24365         * config/sparc/niagara4.md (n4_array): Likewise.
24366         * config/sparc/niagara2.md (niag2_vis): Likewise.
24367         (niag3_vis): Likewise.
24368         * config/sparc/niagara.md (niag_vis): Likewise.
24369
24370 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24371
24372         * ipa-comdats.c: Remove optimize check from gate.
24373         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
24374         for functions not optimized.
24375         (ipa_fn_summary_read): Skip optimize check.
24376         (ipa_fn_summary_write): Likewise.
24377         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
24378         is optimized.
24379         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
24380         uninlinable.
24381         (can_inline_edge_p): Check flag_pcc_struct_return for match.
24382         (check_callers): Give up on caller which is not optimized.
24383         (inline_small_functions): Likewise.
24384         (ipa_inline): Do not give up when not optimizing.
24385         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
24386         away unoptimizes cdtors.
24387         (whole_program_function_and_variable_visibility): Do
24388         ipa_discover_readonly_nonaddressable_vars in LTO mode.
24389         * ipa.c (process_references): Do not check optimize.
24390         (symbol_table::remove_unreachable_nodes): Update optimize check.
24391         (set_writeonly_bit): Update optimize check.
24392         (pass_ipa_cdtor_merge::gate): Do not check optimize.
24393         (pass_ipa_single_use::gate): Remove.
24394
24395 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24396
24397         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
24398         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
24399         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
24400         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
24401         permute_load, permute_store, adjust_extract, adjust_splat,
24402         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
24403         replace_swap_with_copy, dump_swap_insn_table,
24404         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
24405         recombine_lvx_pattern, recombine_stvx_pattern,
24406         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
24407         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
24408         to file rs6000-p8swap.c.
24409         * config/rs6000/rs6000-p8swap.c: New file.
24410         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
24411         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
24412         and rs6000*-*-* targets.
24413
24414 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24415
24416         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
24417
24418 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24419
24420         * lto-wrapper.c (merge_and_complain): Do not merge
24421         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
24422         fsigned_zeros, ftrapping_math, fwrapv.
24423         (append_compiler_options): Do not track these options.
24424         (append_linker_options): Likewie
24425
24426 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24427
24428         * cgraphunit.c (cgraph_node::finalize_function): When
24429         !flag_toplevel_reorde set no_reorder flag.
24430         (varpool_node::finalize_decl): Likewise.
24431         (symbol_table::compile): Drop no toplevel reorder path.
24432
24433 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24434
24435         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
24436         edges; zero probability is not better than uninitialized.
24437
24438 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24439
24440         * asan.h (asan_sanitize_allocas_p): Declare.
24441         * asan.c (asan_sanitize_allocas_p): New function.
24442         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
24443         (handle_builtin_alloca): Likewise.
24444         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
24445         if !asan_sanitize_allocas_p.
24446         * params.def (asan-instrument-allocas): Add new option.
24447         * params.h (ASAN_PROTECT_ALLOCAS): Define.
24448         * opts.c (common_handle_option): Disable allocas sanitization for
24449         KASan by default.
24450
24451 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24452
24453         * asan.c: Include gimple-fold.h.
24454         (get_last_alloca_addr): New function.
24455         (handle_builtin_stackrestore): Likewise.
24456         (handle_builtin_alloca): Likewise.
24457         (asan_emit_allocas_unpoison): Likewise.
24458         (get_mem_refs_of_builtin_call): Add new parameter, remove const
24459         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
24460         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
24461         (instrument_builtin_call): Pass gimple iterator to
24462         get_mem_refs_of_builtin_call.
24463         (last_alloca_addr): New global.
24464         * asan.h (asan_emit_allocas_unpoison): Declare.
24465         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
24466         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
24467         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
24468         if function calls alloca.
24469         * gimple-fold.c (replace_call_with_value): Remove static keyword.
24470         * gimple-fold.h (replace_call_with_value): Declare.
24471         * internal-fn.c: Include asan.h.
24472         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
24473         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
24474
24475 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24476
24477         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
24478         (C_SELFTEST_FLAGS): New.
24479         (CPP_SELFTEST_FLAGS): New.
24480         (SELFTEST_DEPS): New, from deps of s-selftest.
24481         (C_SELFTEST_DEPS): New, from deps of s-selftest.
24482         (CPP_SELFTEST_DEPS): New.
24483         (selftest): Add dependency on s-selftest-c++.
24484         (s-selftest): Rename to...
24485         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
24486         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
24487         than SELFTEST_FLAGS.
24488         (selftest-gdb): Rename to...
24489         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
24490         C_SELFTEST_FLAGS.
24491         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
24492         (selftest-valgrind): Rename to...
24493         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
24494         C_SELFTEST_FLAGS.
24495         (selftest-valgrind): Reintroduce as an alias for
24496         selftest-c-valgrind.
24497         (s-selftest-c++): New.
24498         (selftest-c++-gdb): New.
24499         (selftest-c++-valgrind): New.
24500
24501 2017-07-06  Olivier Hainque  <hainque@adacore.com>
24502
24503         * gcc.c (process_command): When deciding if undefined variables
24504         should be ignored when processing specs, accept "gcc -v" as well.
24505
24506 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24507
24508         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
24509         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
24510
24511 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24512
24513         * config/arm/arm-cpus.in (armv8-r): Add new entry.
24514         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
24515         * config/arm/arm-tables.opt: Regenerate.
24516         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
24517         enumerator.
24518         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
24519
24520 2017-07-06  Carl Love  <cel@us.ibm.com>
24521
24522         * ChangeLog: Clean up from mid air collision
24523
24524 2017-07-06  Carl Love  <cel@us.ibm.com>
24525
24526         * config/rs6000/rs6000-c.c: Add support for built-in functions
24527         vector signed int vec_subc (vector signed int, vector signed int);
24528         vector signed __int128 vec_subc (vector signed __int128,
24529                                          vector signed __int128);
24530         vector unsigned __int128 vec_subc (vector unsigned __int128,
24531                                            vector unsigned __int128);
24532         vector signed int vec_sube (vector signed int, vector signed int,
24533                                     vector signed int);
24534         vector unsigned int vec_sube (vector unsigned int,
24535                                       vector unsigned int,
24536                                       vector unsigned int);
24537         vector signed __int128 vec_sube (vector signed __int128,
24538                                          vector signed __int128,
24539                                          vector signed__int128);
24540         vector unsigned __int128 vec_sube (vector unsigned __int128,
24541                                            vector unsigned __int128,
24542                                            vector unsigned __int128);
24543         vector signed int vec_subec (vector signed int, vector signed int,
24544                                      vector signed int);
24545         vector unsigned int vec_subec (vector unsigned int,
24546                                        vector unsigned int,
24547                                        vector unsigned int);
24548         vector signed __int128 vec_subec (vector signed __int128,
24549                                           vector signed __int128,
24550                                           vector signed__int128);
24551         vector unsigned __int128 vec_subec (vector unsigned __int128,
24552                                             vector unsigned __int128,
24553                                             vector unsigned __int128);
24554         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
24555         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
24556         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
24557         BU_ALTIVEC_OVERLOAD_X definitions.
24558         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
24559         * doc/extend.texi: Update the built-in documentation file for the new
24560         built-in functions.
24561
24562 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24563
24564         PR c++/79300
24565         * diagnostic-show-locus.c (layout::layout): Use start and finish
24566         spelling location for the start and finish of each range.
24567         * genmatch.c (linemap_client_expand_location_to_spelling_point):
24568         Add unused aspect param.
24569         * input.c (expand_location_1): Add "aspect" param, and use it
24570         to access the correct part of the location.
24571         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
24572         expand_location_1.
24573         (expand_location_to_spelling_point): Likewise.
24574         (linemap_client_expand_location_to_spelling_point): Add "aspect"
24575         param, and pass it to expand_location_1.
24576
24577 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
24578
24579         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
24580         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
24581         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
24582         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
24583         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
24584         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
24585         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
24586         _mm_maskz_getmant_ss): New intrinsics.
24587         (__builtin_ia32_getexpss128_mask): Changed to ...
24588         __builtin_ia32_getexpss128_round ... this.
24589         (__builtin_ia32_getexpsd128_mask): Changed to ...
24590         __builtin_ia32_getexpsd128_round ... this.
24591         * config/i386/i386-builtin-types.def
24592         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
24593         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
24594         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
24595         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
24596         __builtin_ia32_getmantss_mask_round): New builtins.
24597         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
24598         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
24599         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
24600         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
24601         * config/i386/sse.md
24602         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
24603         avx512f_sgetexp<mode><mask_scalar_name>
24604         <round_saeonly_scalar_name> ... this.
24605         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
24606         %0, %1, %2<round_saeonly_op3>}): Changed to ...
24607         vgetexp<ssescalarmodesuffix>
24608         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24609         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
24610         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
24611         avx512f_vgetmant<mode><mask_scalar_name>
24612         <round_saeonly_scalar_name> ... this.
24613         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
24614         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
24615         vgetmant<ssescalarmodesuffix>
24616         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
24617         %0<mask_scalar_operand4>, %1, %2
24618         <round_saeonly_scalar_mask_op4>, %3} ... this.
24619         * config/i386/subst.md (mask_scalar_operand4,
24620         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
24621         round_saeonly_scalar_nimm_predicate): New subst attributes.
24622
24623 2017-07-06  Julia Koval  <julia.koval@intel.com>
24624
24625         * config/i386/i386.c (ix86_erase_embedded_rounding):
24626         Remove code for old rounding pattern.
24627
24628 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
24629
24630         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
24631
24632 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
24633
24634         * doc/sourcebuild.texi (Test Directives, Variants of
24635         dg-require-support): Add documentation for dg-require-stack-check.
24636
24637 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
24638
24639         * config/i386/subst.md (mask_scalar, round_scalar,
24640         round_saeonly_scalar): New meta-templates.
24641         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
24642         round_scalar_mask_operand3, round_scalar_mask_op3,
24643         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
24644         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
24645         round_saeonly_scalar_constraint,
24646         round_saeonly_scalar_prefix): New subst attribute.
24647         * config/i386/sse.md
24648         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
24649         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
24650         <round_scalar_name> ... this.
24651         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
24652         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
24653         <round_scalar_name> ... this.
24654         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
24655         <sse>_vm<code><mode>3<mask_scalar_name>
24656         <round_saeonly_scalar_name> ... this.
24657         (v<plusminus_mnemonic><ssescalarmodesuffix>
24658         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24659         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24660         v<plusminus_mnemonic><ssescalarmodesuffix>
24661         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24662         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24663         (v<multdiv_mnemonic><ssescalarmodesuffix>
24664         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24665         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24666         v<multdiv_mnemonic><ssescalarmodesuffix>
24667         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24668         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24669         (v<maxmin_float><ssescalarmodesuffix>
24670         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
24671         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
24672         v<maxmin_float><ssescalarmodesuffix>
24673         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24674         %0<mask_scalar_operand3>, %1, %<iptr>2
24675         <round_saeonly_scalar_mask_op3>} ... this.
24676
24677 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
24678
24679         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
24680         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
24681
24682 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
24683             Alan Hayward  <alan.hayward@arm.com>
24684             David Sherwood  <david.sherwood@arm.com>
24685
24686         * combine.c (simplify_if_then_else): Remove "enum" before
24687         "machine_mode".
24688         * compare-elim.c (can_eliminate_compare): Likewise.
24689         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
24690         Likewise.
24691         (aarch64_lookup_simd_builtin_type): Likewise.
24692         (aarch64_simd_builtin_type): Likewise.
24693         (aarch64_init_simd_builtin_types): Likewise.
24694         (aarch64_simd_expand_args): Likewise.
24695         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
24696         Likewise.
24697         (aarch64_reverse_mask): Likewise.
24698         (aarch64_simd_emit_reg_reg_move): Likewise.
24699         (aarch64_gen_adjusted_ldpstp): Likewise.
24700         (aarch64_ccmp_mode_to_code): Likewise.
24701         (aarch64_operands_ok_for_ldpstp): Likewise.
24702         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24703         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
24704         Likewise.
24705         (aarch64_min_divisions_for_recip_mul): Likewise.
24706         (aarch64_reassociation_width): Likewise.
24707         (aarch64_get_condition_code_1): Likewise.
24708         (aarch64_simd_emit_reg_reg_move): Likewise.
24709         (aarch64_simd_attr_length_rglist): Likewise.
24710         (aarch64_reverse_mask): Likewise.
24711         (aarch64_operands_ok_for_ldpstp): Likewise.
24712         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24713         (aarch64_gen_adjusted_ldpstp): Likewise.
24714         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
24715         Likewise.
24716         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
24717         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
24718         (arm_lookup_simd_builtin_type): Likewise.
24719         (arm_simd_builtin_type): Likewise.
24720         (arm_init_simd_builtin_types): Likewise.
24721         (arm_expand_builtin_args): Likewise.
24722         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
24723         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
24724         (ft32_setup_incoming_varargs): Likewise.
24725         (ft32_function_arg): Likewise.
24726         (ft32_function_arg_advance): Likewise.
24727         (ft32_pass_by_reference): Likewise.
24728         (ft32_arg_partial_bytes): Likewise.
24729         (ft32_valid_pointer_mode): Likewise.
24730         (ft32_addr_space_pointer_mode): Likewise.
24731         (ft32_addr_space_legitimate_address_p): Likewise.
24732         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
24733         Likewise.
24734         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
24735         (ix86_emit_outlined_ms2sysv_restore): Likewise.
24736         (iamcu_alignment): Likewise.
24737         (canonicalize_vector_int_perm): Likewise.
24738         (ix86_noce_conversion_profitable_p): Likewise.
24739         (ix86_mpx_bound_mode): Likewise.
24740         (ix86_operands_ok_for_move_multiple): Likewise.
24741         * config/microblaze/microblaze-protos.h
24742         (microblaze_expand_conditional_branch_reg): Likewise.
24743         * config/microblaze/microblaze.c
24744         (microblaze_expand_conditional_branch_reg): Likewise.
24745         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
24746         Likewise.
24747         (rs6000_reassociation_width): Likewise.
24748         (rs6000_invalid_binary_op): Likewise.
24749         (fusion_p9_p): Likewise.
24750         (emit_fusion_p9_load): Likewise.
24751         (emit_fusion_p9_store): Likewise.
24752         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
24753         Likewise.
24754         (riscv_hard_regno_mode_ok_p): Likewise.
24755         (riscv_address_insns): Likewise.
24756         (riscv_split_symbol): Likewise.
24757         (riscv_legitimize_move): Likewise.
24758         (riscv_function_value): Likewise.
24759         (riscv_hard_regno_nregs): Likewise.
24760         (riscv_expand_builtin): Likewise.
24761         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
24762         (riscv_build_integer): Likewise.
24763         (riscv_split_integer): Likewise.
24764         (riscv_legitimate_constant_p): Likewise.
24765         (riscv_cannot_force_const_mem): Likewise.
24766         (riscv_regno_mode_ok_for_base_p): Likewise.
24767         (riscv_valid_base_register_p): Likewise.
24768         (riscv_valid_offset_p): Likewise.
24769         (riscv_valid_lo_sum_p): Likewise.
24770         (riscv_classify_address): Likewise.
24771         (riscv_legitimate_address_p): Likewise.
24772         (riscv_address_insns): Likewise.
24773         (riscv_load_store_insns): Likewise.
24774         (riscv_force_binary): Likewise.
24775         (riscv_split_symbol): Likewise.
24776         (riscv_force_address): Likewise.
24777         (riscv_legitimize_address): Likewise.
24778         (riscv_move_integer): Likewise.
24779         (riscv_legitimize_const_move): Likewise.
24780         (riscv_legitimize_move): Likewise.
24781         (riscv_address_cost): Likewise.
24782         (riscv_subword): Likewise.
24783         (riscv_output_move): Likewise.
24784         (riscv_canonicalize_int_order_test): Likewise.
24785         (riscv_emit_int_order_test): Likewise.
24786         (riscv_function_arg_boundary): Likewise.
24787         (riscv_pass_mode_in_fpr_p): Likewise.
24788         (riscv_pass_fpr_single): Likewise.
24789         (riscv_pass_fpr_pair): Likewise.
24790         (riscv_get_arg_info): Likewise.
24791         (riscv_function_arg): Likewise.
24792         (riscv_function_arg_advance): Likewise.
24793         (riscv_arg_partial_bytes): Likewise.
24794         (riscv_function_value): Likewise.
24795         (riscv_pass_by_reference): Likewise.
24796         (riscv_setup_incoming_varargs): Likewise.
24797         (riscv_print_operand): Likewise.
24798         (riscv_elf_select_rtx_section): Likewise.
24799         (riscv_save_restore_reg): Likewise.
24800         (riscv_for_each_saved_reg): Likewise.
24801         (riscv_register_move_cost): Likewise.
24802         (riscv_hard_regno_mode_ok_p): Likewise.
24803         (riscv_hard_regno_nregs): Likewise.
24804         (riscv_class_max_nregs): Likewise.
24805         (riscv_memory_move_cost): Likewise.
24806         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
24807         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
24808         (rl78_addr_space_address_mode): Likewise.
24809         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24810         Likewise.
24811         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
24812         (rs6000_reassociation_width): Likewise.
24813         (rs6000_invalid_binary_op): Likewise.
24814         (fusion_p9_p): Likewise.
24815         (emit_fusion_p9_load): Likewise.
24816         (emit_fusion_p9_store): Likewise.
24817         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
24818         (ok_for_simple_move_operands): Likewise.
24819         (ok_for_simple_move_strict_operands): Likewise.
24820         (ok_for_simple_arith_logic_operands): Likewise.
24821         (visium_legitimize_reload_address): Likewise.
24822         (visium_select_cc_mode): Likewise.
24823         (output_cbranch): Likewise.
24824         (visium_split_double_move): Likewise.
24825         (visium_expand_copysign): Likewise.
24826         (visium_expand_int_cstore): Likewise.
24827         (visium_expand_fp_cstore): Likewise.
24828         * config/visium/visium.c (visium_pass_by_reference): Likewise.
24829         (visium_function_arg): Likewise.
24830         (visium_function_arg_advance): Likewise.
24831         (visium_libcall_value): Likewise.
24832         (visium_setup_incoming_varargs): Likewise.
24833         (visium_legitimate_constant_p): Likewise.
24834         (visium_legitimate_address_p): Likewise.
24835         (visium_legitimize_address): Likewise.
24836         (visium_secondary_reload): Likewise.
24837         (visium_register_move_cost): Likewise.
24838         (visium_memory_move_cost): Likewise.
24839         (prepare_move_operands): Likewise.
24840         (ok_for_simple_move_operands): Likewise.
24841         (ok_for_simple_move_strict_operands): Likewise.
24842         (ok_for_simple_arith_logic_operands): Likewise.
24843         (visium_function_value_1): Likewise.
24844         (rtx_ok_for_offset_p): Likewise.
24845         (visium_legitimize_reload_address): Likewise.
24846         (visium_split_double_move): Likewise.
24847         (visium_expand_copysign): Likewise.
24848         (visium_expand_int_cstore): Likewise.
24849         (visium_expand_fp_cstore): Likewise.
24850         (visium_split_cstore): Likewise.
24851         (visium_select_cc_mode): Likewise.
24852         (visium_split_cbranch): Likewise.
24853         (output_cbranch): Likewise.
24854         (visium_print_operand_address): Likewise.
24855         * expmed.c (flip_storage_order): Likewise.
24856         * expmed.h (emit_cstore): Likewise.
24857         (flip_storage_order): Likewise.
24858         * genrecog.c (validate_pattern): Likewise.
24859         * hsa-gen.c (gen_hsa_addr): Likewise.
24860         * internal-fn.c (expand_arith_overflow): Likewise.
24861         * ira-color.c (allocno_copy_cost_saving): Likewise.
24862         * lra-assigns.c (find_hard_regno_for_1): Likewise.
24863         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
24864         (process_invariant_for_inheritance): Likewise.
24865         * lra-eliminations.c (move_plus_up): Likewise.
24866         * omp-low.c (lower_oacc_reductions): Likewise.
24867         * simplify-rtx.c (simplify_subreg): Likewise.
24868         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
24869         (TARGET_CHKP_BOUND_MODE): Likewise..
24870         * targhooks.c (default_chkp_bound_mode): Likewise.
24871         (default_setup_incoming_vararg_bounds): Likewise.
24872         * targhooks.h (default_chkp_bound_mode): Likewise.
24873         (default_setup_incoming_vararg_bounds): Likewise.
24874         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
24875         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
24876         (have_whole_vector_shift): Likewise.
24877         * tree-vect-stmts.c (vectorizable_load): Likewise.
24878         * doc/tm.texi: Regenerate.
24879
24880 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24881
24882         Graceful degrade if Binutils PR21472 is not available.
24883
24884         PR target/81072
24885         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
24886         .rodata in flash test fails.
24887         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
24888         * confgure: Regenerate.
24889         * config.in: Regenerate.
24890         * config/avr/avr.c (avr_asm_named_section)
24891         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
24892         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
24893         (avr_asm_init_sections): Same.
24894
24895 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24896
24897         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
24898         (fma<VH:mode>4_intrinsic): Likewise.
24899         (*fmsub<VCVTF:mode>4): Likewise.
24900         (*fmsub<VH:mode>4_intrinsic): Likewise.
24901
24902 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24903
24904         PR target/81305
24905         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
24906         Don't depend on "optimize > 0".
24907         (out_movhi_r_mr, out_movqi_mr_r): Same.
24908         (out_movhi_mr_r, out_movqi_r_mr): Same.
24909         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
24910         io_address_operand on "optimize > 0".
24911
24912 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24913
24914         * tree-loop-distribution.c: Add general explanantion on the pass.
24915         (generate_loops_for_partition): Mark distributed loop.
24916         (pg_add_dependence_edges): New parameter.  Handle alias data
24917         dependence specially and record it in the parameter if asked.
24918         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
24919         (init_partition_graph_vertices, add_partition_graph_edge): New.
24920         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
24921         (free_partition_graph_vdata, build_partition_graph): New.
24922         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
24923         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
24924         (data_ref_segment_size, latch_dominated_by_data_ref): New.
24925         (compute_alias_check_pairs, version_loop_by_alias_check): New.
24926         (version_for_distribution_p, finalize_partitions): New.
24927         (distribute_loop): Handle alias data dependence specially.  Factor
24928         out loop fusion code as functions and call these functions.
24929
24930 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24931
24932         * tree-loop-distribution.c (classify_partition): New parameter and
24933         better handle reduction statement.
24934         (rdg_build_partitions): Revise comment.
24935         (distribute_loop): Compute statements in all partitions and pass it
24936         to classify_partition.
24937
24938 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24939
24940         * tree-loop-distribution.c (enum partition_type): New.
24941         (struct partition): New field type.
24942         (partition_merge_into): Add parameter.  Update partition type.
24943         (data_dep_in_cycle_p, update_type_for_merge): New functions.
24944         (build_rdg_partition_for_vertex): Compute partition type.
24945         (rdg_build_partitions): Dump partition type.
24946         (distribute_loop): Update calls to partition_merge_into.
24947
24948 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24949
24950         * tree-loop-distribution.c (struct ddr_hasher): New.
24951         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
24952         (ddrs_table): New.
24953         (classify_partition): Call get_data_dependence.
24954         (pg_add_dependence_edges): Ditto.
24955         (distribute_loop): Release data dependence hash table.
24956
24957 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24958
24959         * tree-loop-distribution.c (ref_base_address): Delete.
24960         (similar_memory_accesses): Rename ...
24961         (share_memory_accesses): ... to this.  Check if partitions access
24962         the same memory reference.
24963         (distribute_loop): Call share_memory_accesses.
24964
24965 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24966
24967         * tree-loop-distribution.c (struct partition): New field recording
24968         its data reference.
24969         (partition_alloc, partition_free): Init and release data refs.
24970         (partition_merge_into): Merge data refs.
24971         (build_rdg_partition_for_vertex): Collect data refs for partition.
24972         (pg_add_dependence_edges): Change parameters from vector to bitmap.
24973         Update uses.
24974         (distribute_loop): Remve data refs from vertice data of partition
24975         graph.
24976
24977 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24978
24979         * tree-loop-distribution.c (params.h): Include header file.
24980         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
24981         (datarefs_vec): New global var.
24982         (create_rdg_vertices): Use datarefs_vec directly.
24983         (free_rdg): Don't free data references.
24984         (build_rdg): Update use.  Don't free data references.
24985         (distribute_loop): Compute global variable for data references.
24986         Bail out if there are too many data references.
24987
24988 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24989
24990         * tree-loop-distribution.c (loop_nest): New global var.
24991         (build_rdg): Use loop directly, rather than loop nest.
24992         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
24993         variable directly.
24994         (distribute_loop): Compute global variable loop nest.  Update use.
24995
24996 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24997
24998         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
24999         (partition_merge_into): New parameter.  Dump reason for fusion.
25000         (distribute_loop): Update use of partition_merge_into.
25001
25002 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25003
25004         * tree-loop-distribution.c (bb_top_order_index): New.
25005         (bb_top_order_index_size, bb_top_order_cmp): New.
25006         (stmts_from_loop): Use topological order.
25007         (pass_loop_distribution::execute): Compute and release topological
25008         order for basic blocks.
25009
25010 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25011
25012         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
25013         if no loops.
25014
25015 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25016
25017         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
25018         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
25019         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
25020         * internal-fn.def (LOOP_DIST_ALIAS): New.
25021         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
25022         (fold_loop_internal_call): ... this.
25023         (vect_loop_dist_alias_call): New function.
25024         (set_uid_loop_bbs): Call fold_loop_internal_call.
25025         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
25026         internal calls.
25027
25028 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25029
25030         PR target/81300
25031         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
25032         Require dead FLAGS_REG at the beginning of a peephole.
25033
25034 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25035
25036         PR target/81294
25037         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
25038         arguments in the call to __builtin_ia32_sbb_u32.
25039         (_subborrow_u64): Swap _X and _Y arguments in the call to
25040         __builtin_ia32_sbb_u64.
25041
25042 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
25043
25044         PR debug/81278
25045         * tree-vrp.c (compare_assert_loc): Turn into a function template
25046         with stable template parameter.  Only test if a->e is NULL,
25047         !a->e == !b->e has been verified already.  Use e == NULL or
25048         e != NULL instead of e or ! e tests.  If stable is true, don't use
25049         iterative_hash_expr, on the other side allow a or b or both NULL
25050         and sort the NULLs last.
25051         (process_assert_insertions): Sort using compare_assert_loc<false>
25052         instead of compare_assert_loc, later sort using
25053         compare_assert_loc<true> before calling process_assert_insertions_for
25054         in a loop.  Use break instead of continue once seen NULL pointer.
25055
25056 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25057
25058         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
25059         Cortex-R7 and Cortex-R8 processors.
25060
25061 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25062
25063         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
25064         uninitialized while src is not.
25065
25066 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
25067
25068         * common/config/arm/arm-common.c: Adjust include path for
25069         arm-cpu-cdata.h
25070         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
25071         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
25072         (arm-cpu-data.h): Likewise.
25073         (arm-cpu-cdata.h): Likewise.
25074         * config/arm/arm-cpu.h: Delete.
25075         * config/arm/arm-cpu-cdata.h: Delete.
25076         * config/arm/arm-cpu-data.h: Delete.
25077
25078 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
25079
25080         * config/arm/arm-cpus.in (cortex-a55): New.
25081         (cortex-a75): Likewise.
25082         (cortex-a75.cortex-a55): Likewise.
25083         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
25084         cortex-a75.
25085         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
25086         * config/arm/arm-cpu-cdata.h: Regenerate.
25087         * config/arm/arm-cpu-data.h: Regenerate.
25088         * config/arm/arm-cpu.h: Regenerate.
25089         * config/arm/arm-tables.opt: Regenerate.
25090         * config/arm/arm-tune.md: Regenerate.
25091
25092 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25093
25094         * haifa-sched.c (sched_create_recovery_edges): Update profile.
25095
25096 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25097
25098         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
25099         probability.
25100
25101 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
25102
25103         PR tree-optimization/81292
25104         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
25105         full_string_p, also call adjust_related_strinfos if the adjustment
25106         is simple, otherwise invalidate related strinfos.
25107
25108 2017-07-04  Martin Liska  <mliska@suse.cz>
25109
25110         PR sanitizer/81040
25111         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
25112         newly created variable as DECL_IGNORED_P.
25113
25114 2017-07-04  Martin Liska  <mliska@suse.cz>
25115
25116         PR ipa/81293
25117         * ipa-inline.c (inline_small_functions):
25118         Use xstrdup_for_dump.
25119
25120 2017-07-04  Tom de Vries  <tom@codesourcery.com>
25121
25122         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
25123
25124 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25125
25126         PR target/81033
25127         * config/darwin.c (darwin_function_switched_text_sections):
25128         Fix spaces.
25129
25130 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
25131
25132         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
25133
25134 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25135
25136         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
25137
25138 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25139
25140         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
25141         min_profitable_iters, and th as inclusive lower bounds.
25142         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
25143         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
25144         for min_profitable_iters and min_profitable_estimate.
25145         (vect_transform_loop): Treat th as an inclusive lower bound.
25146         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
25147
25148 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25149
25150         PR target/81033
25151         * config/darwin.c (darwin_function_switched_text_sections):
25152         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
25153         in two pieces, and suppress the use of buf.
25154
25155 2017-07-03  Nathan Sidwell  <nathan@acm.org>
25156
25157         * hash-table.h (hash_table_mod1): Fix indentation.
25158
25159 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25160
25161         PR middle-end/81290
25162         * predict.c (force_edge_cold): Be more careful about propagation
25163         backward.
25164         * profile-count.h (profile_probability::guessed,
25165         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
25166         New.
25167         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
25168
25169 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
25170
25171         * doc/invoke.texi (rcpc architecture extension): Document it.
25172
25173 2017-07-03  Richard Biener  <rguenther@suse.de>
25174
25175         PR tree-optimization/60510
25176         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
25177         the scalar reduction PHI and use it.
25178         (vectorizable_reduction): Properly guard the single_defuse_cycle
25179         path for non-SLP reduction chains where we cannot use it.
25180         Rework reduc_def/index and vector type deduction.  Rework
25181         vector operand gathering during reduction op code-gen.
25182         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
25183         chains dissolve the chain and leave it to non-SLP reduction
25184         handling.
25185
25186 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25187
25188         * tree-data-ref.h (dr_alignment): Declare.
25189         * tree-data-ref.c (dr_alignment): New function.
25190         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
25191         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
25192         set it.
25193         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
25194
25195 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25196
25197         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
25198         and base_misalignment fields.
25199         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
25200         * tree-data-ref.c: Include builtins.h.
25201         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
25202         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
25203         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
25204         * tree-vect-data-refs.c: Include tree-cfg.h.
25205         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
25206         fields instead of calculating an alignment here.
25207         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
25208         innermost_loop_behavior fields.
25209
25210 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25211
25212         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
25213         field.
25214         (DR_STEP_ALIGNMENT): New macro.
25215         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
25216         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
25217         (create_data_ref): Print it.
25218         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
25219         to tell whether the step preserves vector (mis)alignment.
25220         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25221         Move the check for an integer step and generalise to all INTEGER_CST.
25222         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
25223         Print the outer step alignment.
25224
25225 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25226
25227         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
25228         with offset_alignment.
25229         (DR_ALIGNED_TO): Delete.
25230         (DR_OFFSET_ALIGNMENT): New macro.
25231         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
25232         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
25233         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
25234         (create_data_ref): Likewise.
25235         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25236         (vect_analyze_data_refs): Likewise.
25237         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
25238         creating dummy innermost behavior.
25239
25240 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25241
25242         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
25243         with a "innermost_loop_behavior *" and refeence tree.
25244         * tree-data-ref.c (dr_analyze_innermost): Likewise.
25245         (create_data_ref): Update call accordingly.
25246         * tree-predcom.c (find_looparound_phi): Likewise.
25247
25248 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25249
25250         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
25251         fields with dr_wrt_vec_loop.
25252         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
25253         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
25254         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
25255         (vect_dr_behavior): New function.
25256         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25257         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
25258         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
25259         track whether the step preserves the misalignment.
25260         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25261         Use vect_dr_behavior.
25262         (vect_setup_realignment): Update call accordingly.
25263         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
25264         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
25265         call to vect_create_addr_base_for_vector_ref.
25266         (vect_create_cond_for_align_checks): Likewise.
25267         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
25268         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
25269         (vect_recog_mask_conversion_pattern): Likewise.
25270         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
25271         (new_stmt_vec_info): Remove redundant zeroing.
25272
25273 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25274
25275         * common/config/arm/arm-common.c (arm_be8_option): New function.
25276         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
25277         (ISA_ARMv6): Add isa_bit_be8.
25278         * config/arm/arm.h (arm_be8_option): Add prototype.
25279         (BE8_SPEC_FUNCTION): New define.
25280         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
25281         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
25282         (mlittle-endian): Similarly.
25283         (mbe8, mbe32): New options.
25284         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
25285         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
25286
25287 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25288
25289         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
25290
25291 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25292
25293         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
25294         (cleanup_tree_cfg_bb): Use it.
25295         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
25296         New functions.
25297         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
25298
25299 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25300
25301         PR bootstrap/81285
25302         * loop-doloop.c (add_test): Update profile.
25303
25304 2017-07-03  Martin Liska  <mliska@suse.cz>
25305
25306         PR sanitize/81040
25307         * sanopt.c (rewrite_usage_of_param): New function.
25308         (sanitize_rewrite_addressable_params): Likewise.
25309         (pass_sanopt::execute): Call rewrite_usage_of_param.
25310
25311 2017-07-03  Richard Biener  <rguenther@suse.de>
25312
25313         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
25314         back to using VIEW_CONVERT_EXPR.
25315
25316 2017-07-03  Martin Liska  <mliska@suse.cz>
25317
25318         PR other/78366
25319         * doc/extend.texi: Document when a resolver function is
25320         generated for target_clones.
25321
25322 2017-07-03  Martin Liska  <mliska@suse.cz>
25323
25324         * asan.c (asan_emit_stack_protection): Unpoison just red zones
25325         and shadow memory of auto variables which are subject of
25326         use-after-scope sanitization.
25327         (asan_expand_mark_ifn): Add do set only when is_poison.
25328
25329 2016-07-03  Richard Biener  <rguenther@suse.de>
25330
25331         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
25332         reduction PHIs.
25333         (vect_force_simple_reduction): Record reduction def -> phi mapping.
25334         (vectorizable_reduction): Perform reduction PHI creation when
25335         visiting a reduction PHI and adjust and simplify code generation
25336         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
25337         (vect_transform_loop): Visit reduction PHIs.
25338         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
25339         defs into the SLP tree.
25340         (vect_build_slp_tree): Reduction defs terminate the recursion.
25341         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
25342         of reduction defs.
25343         (vect_get_vec_defs_for_stmt_copy): Export.
25344         (vect_get_vec_defs): Likewise.
25345         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
25346         purpose.
25347         (vect_get_vec_defs_for_stmt_copy): Declare.
25348         (vect_get_vec_defs): Likewise.
25349
25350 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25351
25352         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
25353         parameter with a "loop" parameter and use it instead of the
25354         loop containing DR_STMT.  Don't check simple_iv when doing
25355         BB analysis.  Describe the two analysis modes in the comment.
25356
25357 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25358
25359         PR tree-optimization/69468
25360         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
25361         (find_same_succ_bb): Handle ignore_edge_flags.
25362
25363 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25364
25365         PR tree-optimization/81192
25366         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
25367         hash.
25368         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
25369         differs.
25370         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
25371
25372 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25373
25374         PR tree-optimization/81192
25375         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
25376         BB_SAME_SUCC (bb) == NULL.
25377
25378 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25379
25380         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
25381         consistency.
25382
25383 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25384
25385         * dumpfile.c: Include profile-count.h
25386         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
25387         update profile.
25388         (insert_cond_bb): Update profile.
25389         * tree-cfg.h (insert_cond_bb): Update prototype.
25390         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
25391         * tree-dump.c: Do not include tree-cfg.
25392
25393 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25394
25395         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
25396
25397 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25398
25399         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
25400         bb.
25401
25402 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25403
25404         * tree-complex.c (expand_complex_div_wide): update profile.
25405
25406 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25407             Alan Hayward  <alan.hayward@arm.com>
25408             David Sherwood  <david.sherwood@arm.com>
25409
25410         * Makefile.in (MACHMODE_H): Remove insn-modes.h
25411         (CORETYPES_H): New define.
25412         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
25413         (insn-modes-inline.h, s-modes-inline-h): New rules.
25414         (generated_files): Add insn-modes-inline.h.
25415         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
25416         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
25417         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
25418         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
25419         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
25420         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
25421         (build/gencodes.o, build/genconditions.o): Likewise.
25422         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
25423         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
25424         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
25425         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
25426         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
25427         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
25428         * coretypes.h: Include everything up to real.h for generators.
25429         Include insn-modes.h first.  Include wide-int-print.h after
25430         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
25431         * machmode.h: Don't include insn-modes.h here.
25432         * function-tests.c: Remove includes of signop.h, machmode.h,
25433         double-int.h and wide-int.h.
25434         * rtl.h: Likewise.
25435         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
25436         and wide-int.h.
25437         * optc-save-gen.awk: Likewise.
25438         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
25439         * godump.c: Remove include of wide-int-print.h.
25440         * pretty-print.h: Likewise.
25441         * wide-int-print.cc: Likewise.
25442         * wide-int.cc: Likewise.
25443         * hash-map-tests.c: Remove include of signop.h.
25444         * hash-set-tests.c: Likewise.
25445         * rtl-tests.c: Likewise.
25446         * mkconfig.sh: Remove include of machmode.h.
25447         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
25448         into...
25449         (emit_insn_modes_inline_h): ...this new function.  Emit the code
25450         into an insn-modes-inline.h header file, adding appropriate
25451         include guards and end comments.
25452         (emit_insn_modes_c_header): Remove include of machmode.h.
25453         (emit_min_insn_modes_c_header): Include coretypes.h rather than
25454         machmode.h.
25455         (main): Handle -i flag and call emit_insn_modes_inline_h when
25456         it is passed.
25457
25458 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25459
25460         * tree-ssa-strlen.c (strinfo): Rename the length field to
25461         nonzero_chars.  Add a full_string_p field.
25462         (compare_nonzero_chars, zero_length_string_p): New functions.
25463         (get_addr_stridx): Add an offset_out parameter.
25464         Use compare_nonzero_chars.
25465         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
25466         (new_strinfo): Update after above changes to strinfo.
25467         (set_endptr_and_length): Set full_string_p.
25468         (get_string_length): Update after above changes to strinfo.
25469         (unshare_strinfo): Update call to new_strinfo.
25470         (maybe_invalidate): Likewise.
25471         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
25472         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
25473         as a uhwi instead of an shwi.  Update after above changes to
25474         strinfo and new_strinfo.
25475         (zero_length_string): Assert that chainsi contains full strings.
25476         Use zero_length_string_p.  Update call to new_strinfo.
25477         (adjust_related_strinfos): Update after above changes to strinfo.
25478         Copy full_string_p from origsi.
25479         (adjust_last_stmt): Use zero_length_string_p.
25480         (handle_builtin_strlen): Update after above changes to strinfo and
25481         new_strinfo.  Install the lhs as the string length if the previous
25482         entry didn't describe a full string.
25483         (handle_builtin_strchr): Update after above changes to strinfo
25484         and new_strinfo.
25485         (handle_builtin_strcpy): Likewise.
25486         (handle_builtin_strcat): Likewise.
25487         (handle_builtin_malloc): Likewise.
25488         (handle_pointer_plus): Likewise.
25489         (handle_builtin_memcpy): Likewise.  Track nonzero characters
25490         that aren't necessarily followed by a nul terminator.
25491         (handle_char_store): Likewise.
25492
25493 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25494
25495         PR tree-optimization/80769
25496         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
25497         for malloc and calloc.  Document the new invariant that all related
25498         strinfos have delayed lengths or none do.
25499         (verify_related_strinfos): Move earlier in file.
25500         (set_endptr_and_length): New function, split out from...
25501         (get_string_length): ...here.  Also set the lengths of related
25502         strinfos.
25503         (zero_length_string): Assert that chainsi has known (rather than
25504         delayed) lengths.
25505         (adjust_related_strinfos): Likewise.
25506
25507 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25508
25509         PR tree-optimization/81136
25510         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
25511         assert that two references with the same misalignment have the same
25512         compile-time misalignment if those compile-time misalignments
25513         are known.
25514
25515 2017-07-01  Andi Kleen  <ak@linux.intel.com>
25516
25517         * print-tree.c (print_node): Print all attributes.
25518
25519 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25520
25521         * cfg.c (scale_bbs_frequencies): New function.
25522         * cfg.h (scale_bbs_frequencies): Declare it.
25523         * cfgloopanal.c (single_likely_exit): Cleanup.
25524         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
25525         as parameter.
25526         (scale_loop_profile): Likewise.
25527         (loop_version): Likewise.
25528         (create_empty_loop_on_edge): Update.
25529         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
25530         scale_loop_frequencies, scale_loop_profile, loopify,
25531         loop_version): Update prototypes.
25532         * modulo-sched.c (sms_schedule): Update.
25533         * predict.c (unlikely_executed_edge_p): Also check probability.
25534         (probably_never_executed_edge_p): Fix typo.
25535         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25536         * tree-parloops.c (gen_parallel_loop): Update.
25537         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
25538         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25539         * tree-ssa-loop-split.c (split_loop): Update.
25540         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25541         * tree-vect-loop-manip.c (vect_do_peeling): Update.
25542         (vect_loop_versioning): Update.
25543         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25544
25545 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25546
25547         * trans-mem.c (split_bb_make_tm_edge): Update profile.
25548
25549 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25550
25551         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
25552         to keep profile consistent.
25553
25554 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25555
25556         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
25557         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
25558         * profile-count.h (max_safe_multiplier): Make unsigned.
25559         (profile_count::guessed_zero): New.
25560
25561 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25562
25563         * bb-reorder.c (fix_up_crossing_landing_pad,
25564         fix_crossing_conditional_branches): Use make_single_succ_edge
25565         to keep profile consistent.
25566
25567 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25568
25569         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
25570         to update profile.
25571
25572 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
25573
25574         PR sanitizer/81262
25575         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
25576         the right scopes, make sure cond_jump isn't preserved between multiple
25577         iterations.  Search for fallthru edge whenever there are 3+ edges and
25578         use find_fallthru_edge for it.
25579
25580 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25581
25582         Patch by Alexander Monakov <amonakov@ispras.ru>
25583         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
25584         probabilities consistently.
25585
25586 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25587
25588         * pa.c (pa_expand_compare_and_swap_loop): Update call of
25589         emit_cmp_and_jump_insns.
25590
25591 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25592
25593         PR ipa/81261
25594         * tree-inline.c (expand_call_inline): Combine profile statuses.
25595
25596 2017-06-30  Andrew Pinski  <apinski@cavium.com>
25597
25598         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
25599         fold_stmt returned true.
25600
25601 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25602
25603         * ggc.h (empty_string): Delete.
25604         * cfgexpand.c (expand_asm_stmt): Use plain "".
25605         * optabs.c (expand_asm_memory_barrier): Likewise.
25606         * stringpool.c (empty_string): Delete.
25607         (digit_vector, digit_string): Delete.
25608         (ggc_alloc_string): Use plain "", don't optimize single digit
25609         strings.  Use ggc_alloc_atomic.
25610
25611 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
25612
25613         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
25614         comparison set and one other set, use the cost of the non-comparison
25615         set.
25616
25617 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25618
25619         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
25620         some formatting.
25621
25622 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
25623
25624         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
25625         loops.  Remove now unneeded calls to gimple_switch_set_label() that
25626         just set removed labels to NULL_TREE.
25627
25628 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
25629
25630         * tree-ssanames.c (set_range_info_raw): Abstract from ...
25631         (set_range_info): ...here.  Only call set_range_info_raw if domain
25632         is useful.
25633         (set_nonzero_bits): Call set_range_info_raw.
25634         * tree-ssanames.h (set_range_info_raw): New.
25635
25636 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
25637
25638         PR target/81225
25639         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
25640         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
25641         of nonimmediate_operand and <store_mask_constraint> instead of m
25642         for the input operand.  For V8FI iterator, always split if input
25643         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
25644         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
25645         <store_mask_predicate> instead of register_operand and
25646         <store_mask_constraint> instead of v for the input operand.  Make
25647         sure both operands aren't MEMs for if not <mask_applied>.
25648
25649 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
25650
25651         * lto-wrapper.c (copy_file) Close both file descriptors before
25652         exiting normally.
25653
25654 2017-06-30  Martin Liska  <mliska@suse.cz>
25655
25656         PR ipa/81214
25657         * multiple_target.c (create_dispatcher_calls): Make ifunc
25658         also for function that don't have calls or are not referenced.
25659
25660 2017-06-30  Richard Biener  <rguenther@suse.de>
25661
25662         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
25663         analyze the first scalar stmt.  Move vector type computation
25664         for the BB case here from ...
25665         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
25666         live operation processing in the SLP case properly.
25667
25668 2017-06-30  Richard Biener  <rguenther@suse.de>
25669
25670         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
25671
25672 2017-06-30  Martin Liska  <mliska@suse.cz>
25673
25674         PR sanitizer/81021
25675         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
25676         before BUILT_IN_UNWIND_RESUME when ASAN is used.
25677
25678 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
25679
25680         * doc/invoke.texi (AArch64): Add missing options and remove redundant
25681         ones.
25682
25683 2017-06-30  Richard Biener  <rguenther@suse.de>
25684
25685         PR tree-optimization/81249
25686         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
25687         condition reduction result to original scalar type.
25688
25689 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25690
25691         * profile-count.h (enum profile_quality): Fix typos and whitespace
25692         issues.
25693
25694 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25695
25696         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
25697         type for branch probabilities.
25698
25699 2017-06-29  Julian Brown  <julian@codesourcery.com>
25700             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25701
25702         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
25703         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
25704         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
25705         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
25706
25707 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25708
25709         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
25710         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
25711         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
25712         CC usage from generic code to here.
25713         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
25714         CC usage into the target macros.
25715
25716 2017-06-29  Maya Rashish  <coypu@sdf.org>
25717
25718         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
25719         objects.
25720
25721 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25722
25723         * arm/arm-builtins.c: Include profile-count.h
25724         * except.c (sjlj_emit_function_enter): Use
25725         profile_probability::unlikely.
25726
25727 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25728
25729         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
25730         and tocrel_offset be pointer args rather than implicitly using
25731         static versions.
25732         (legitimate_constant_pool_address_p, rs6000_emit_move,
25733         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
25734         tocrel_offset and use in toc_relative_expr_p call.
25735         (print_operand, print_operand_address): Use static tocrel_base_oac
25736         and tocrel_offset_oac.
25737         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
25738         tocrel_offset_oac.
25739
25740 2017-06-29  Maya Rashish  <coypu@sdf.org>
25741
25742         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
25743
25744 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
25745
25746         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
25747         objects, take into account only the alignment of 'op0' and 'mode1' if
25748         'op0' is a MEM.
25749
25750 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
25751
25752         * ccmp.c (ccmp_tree_comparison_p): New function.
25753         (ccmp_candidate_p): Update to use above function.
25754         (get_compare_parts): New function.
25755         (expand_ccmp_next): Update to use new functions.
25756         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
25757         new functions.
25758         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
25759         take mode as argument.
25760         * ccmp.h (expand_ccmp_expr): Add mode as argument.
25761         * expr.c (expand_expr_real_1): Pass mode as argument.
25762
25763 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
25764
25765         * combine.c (combine_instructions): Print insns to dump_file, together
25766         with their costs.
25767
25768 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25769
25770         * asan.c (asan_emit_stack_protection): Update.
25771         (create_cond_insert_point): Update.
25772         * auto-profile.c (afdo_propagate_circuit): Update.
25773         * basic-block.h (struct edge_def): Turn probability to
25774         profile_probability.
25775         (EDGE_FREQUENCY): Update.
25776         * bb-reorder.c (find_traces_1_round): Update.
25777         (better_edge_p): Update.
25778         (sanitize_hot_paths): Update.
25779         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
25780         (make_single_succ_edge): Update.
25781         (check_bb_profile): Update.
25782         (dump_edge_info): Update.
25783         (update_bb_profile_for_threading): Update.
25784         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
25785         probabilitycount to 0.
25786         * cfgbuild.c (compute_outgoing_frequencies): Update.
25787         * cfgcleanup.c (try_forward_edges): Update.
25788         (outgoing_edges_match): Update.
25789         (try_crossjump_to_edge): Update.
25790         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
25791         (expand_gimple_tailcall): Update.
25792         (construct_init_block): Use make_single_succ_edge.
25793         (construct_exit_block): Use make_single_succ_edge.
25794         * cfghooks.c (verify_flow_info): Update.
25795         (redirect_edge_succ_nodup): Update.
25796         (split_edge): Update.
25797         (account_profile_record): Update.
25798         * cfgloopanal.c (single_likely_exit): Update.
25799         * cfgloopmanip.c (scale_loop_profile): Update.
25800         (set_zero_probability): Remove.
25801         (duplicate_loop_to_header_edge): Update.
25802         * cfgloopmanip.h (loop_version): Update prototype.
25803         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
25804         (force_nonfallthru_and_redirect): Update.
25805         (update_br_prob_note): Update.
25806         (rtl_verify_edges): Update.
25807         (purge_dead_edges): Update.
25808         (rtl_lv_add_condition_to_bb): Update.
25809         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
25810         * cgraphunit.c (init_lowered_empty_function): Update.
25811         (cgraph_node::expand_thunk): Update.
25812         * cilk-common.c: Include profile-count.h
25813         * dojump.c (inv): Remove.
25814         (jumpifnot): Update.
25815         (jumpifnot_1): Update.
25816         (do_jump_1): Update.
25817         (do_jump): Update.
25818         (do_jump_by_parts_greater_rtx): Update.
25819         (do_compare_rtx_and_jump): Update.
25820         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
25821         do_jump_1. do_compare_rtx_and_jump): Update prototype.
25822         * dwarf2cfi.c: Include profile-count.h
25823         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
25824         (sjlj_emit_dispatch_table): Likewise.
25825         * explow.c: Include profile-count.h
25826         * expmed.c (emit_store_flag_force): Update.
25827         (do_cmp_and_jump): Update.
25828         * expr.c (compare_by_pieces_d::generate): Update.
25829         (compare_by_pieces_d::finish_mode): Update.
25830         (emit_block_move_via_loop): Update.
25831         (store_expr_with_bounds): Update.
25832         (store_constructor): Update.
25833         (expand_expr_real_2): Update.
25834         (expand_expr_real_1): Update.
25835         * expr.h (try_casesi, try_tablejump): Update prototypes.
25836         * gimple-pretty-print.c (dump_probability): Update.
25837         (dump_profile): New.
25838         (dump_gimple_label): Update.
25839         (dump_gimple_bb_header): Update.
25840         * graph.c (draw_cfg_node_succ_edges): Update.
25841         * hsa-gen.c (convert_switch_statements): Update.
25842         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
25843         (find_if_case_1): Update.
25844         (find_if_case_2): Update.
25845         * internal-fn.c (expand_arith_overflow_result_store): Update.
25846         (expand_addsub_overflow): Update.
25847         (expand_neg_overflow): Update.
25848         (expand_mul_overflow): Update.
25849         (expand_vector_ubsan_overflow): Update.
25850         * ipa-cp.c (good_cloning_opportunity_p): Update.
25851         * ipa-split.c (split_function): Use make_single_succ_edge.
25852         * ipa-utils.c (ipa_merge_profiles): Update.
25853         * loop-doloop.c (add_test): Update.
25854         (doloop_modify): Update.
25855         * loop-unroll.c (compare_and_jump_seq): Update.
25856         (unroll_loop_runtime_iterations): Update.
25857         * lra-constraints.c (lra_inheritance): Update.
25858         * lto-streamer-in.c (input_cfg): Update.
25859         * lto-streamer-out.c (output_cfg): Update.
25860         * mcf.c (adjust_cfg_counts): Update.
25861         * modulo-sched.c (sms_schedule): Update.
25862         * omp-expand.c (expand_omp_for_init_counts): Update.
25863         (extract_omp_for_update_vars): Update.
25864         (expand_omp_ordered_sink): Update.
25865         (expand_omp_for_ordered_loops): Update.
25866         (expand_omp_for_generic): Update.
25867         (expand_omp_for_static_nochunk): Update.
25868         (expand_omp_for_static_chunk): Update.
25869         (expand_cilk_for): Update.
25870         (expand_omp_simd): Update.
25871         (expand_omp_taskloop_for_outer): Update.
25872         (expand_omp_taskloop_for_inner): Update.
25873         * omp-simd-clone.c (simd_clone_adjust): Update.
25874         * optabs.c (expand_doubleword_shift): Update.
25875         (expand_abs): Update.
25876         (emit_cmp_and_jump_insn_1): Update.
25877         (expand_compare_and_swap_loop): Update.
25878         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
25879         * predict.c (predictable_edge_p): Update.
25880         (edge_probability_reliable_p): Update.
25881         (set_even_probabilities): Update.
25882         (combine_predictions_for_insn): Update.
25883         (combine_predictions_for_bb): Update.
25884         (propagate_freq): Update.
25885         (estimate_bb_frequencies): Update.
25886         (force_edge_cold): Update.
25887         * profile-count.c (profile_count::dump): Add missing space into dump.
25888         (profile_count::debug): Add newline.
25889         (profile_count::differs_from_p): Explicitly convert to unsigned.
25890         (profile_count::stream_in): Update.
25891         (profile_probability::dump): New member function.
25892         (profile_probability::debug): New member function.
25893         (profile_probability::differs_from_p): New member function.
25894         (profile_probability::differs_lot_from_p): New member function.
25895         (profile_probability::stream_in): New member function.
25896         (profile_probability::stream_out): New member function.
25897         * profile-count.h (profile_count_quality): Rename to ...
25898         (profile_quality): ... this one.
25899         (profile_probability): New.
25900         (profile_count): Update.
25901         * profile.c (compute_branch_probabilities): Update.
25902         * recog.c (peep2_attempt): Update.
25903         * sched-ebb.c (schedule_ebbs): Update.
25904         * sched-rgn.c (find_single_block_region): Update.
25905         (compute_dom_prob_ps): Update.
25906         (schedule_region): Update.
25907         * sel-sched-ir.c (compute_succs_info): Update.
25908         * stmt.c (struct case_node): Update.
25909         (do_jump_if_equal): Update.
25910         (get_outgoing_edge_probs): Update.
25911         (conditional_probability): Update.
25912         (emit_case_dispatch_table): Update.
25913         (expand_case): Update.
25914         (expand_sjlj_dispatch_table): Update.
25915         (emit_case_nodes): Update.
25916         * targhooks.c: Update.
25917         * tracer.c (better_p): Update.
25918         (find_best_successor): Update.
25919         * trans-mem.c (expand_transaction): Update.
25920         * tree-call-cdce.c: Update.
25921         * tree-cfg.c (gimple_split_edge): Upate.
25922         (move_sese_region_to_fn): Upate.
25923         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
25924         * tree-eh.c (lower_resx): Upate.
25925         (cleanup_empty_eh_move_lp): Upate.
25926         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25927         * tree-inline.c (copy_edges_for_bb): Update.
25928         (copy_cfg_body): Update.
25929         * tree-parloops.c (gen_parallel_loop): Update.
25930         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
25931         (gimple_gen_time_profiler): Update.
25932         * tree-ssa-dce.c (remove_dead_stmt): Update.
25933         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
25934         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
25935         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
25936         (unloop_loops): Update.
25937         (try_peel_loop): Update.
25938         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25939         * tree-ssa-loop-split.c (connect_loops): Update.
25940         (split_loop): Update.
25941         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25942         (hoist_guard): Update.
25943         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
25944         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
25945         (value_replacement): Update.
25946         * tree-ssa-reassoc.c (branch_fixup): Update.
25947         * tree-ssa-tail-merge.c (replace_block_by): Update.
25948         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
25949         (create_edge_and_update_destination_phis): Update.
25950         (compute_path_counts): Update.
25951         (recompute_probabilities): Update.
25952         (update_joiner_offpath_counts): Update.
25953         (freqs_to_counts_path): Update.
25954         (duplicate_thread_path): Update.
25955         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
25956         (struct switch_conv_info): Update.
25957         (gen_inbound_check): Update.
25958         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
25959         (vect_do_peeling): Update.
25960         (vect_loop_versioning): Update.
25961         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25962         (optimize_mask_stores): Update.
25963         * ubsan.c (ubsan_expand_null_ifn): Update.
25964         * value-prof.c (gimple_divmod_fixed_value): Update.
25965         (gimple_divmod_fixed_value_transform): Update.
25966         (gimple_mod_pow2): Update.
25967         (gimple_mod_pow2_value_transform): Update.
25968         (gimple_mod_subtract): Update.
25969         (gimple_mod_subtract_transform): Update.
25970         (gimple_ic): Update.
25971         (gimple_stringop_fixed_value): Update.
25972         (gimple_stringops_transform): Update.
25973         * value-prof.h: Update.
25974
25975 2017-06-29  Carl Love  <cel@us.ibm.com>
25976
25977         * config/rs6000/rs6000-c.c: Add support for built-in functions
25978         vector signed int vec_signed (vector float);
25979         vector signed long long vec_signed (vector double);
25980         vector signed int vec_signed2 (vector double, vector double);
25981         vector signed int vec_signede (vector double);
25982         vector signed int vec_signedo (vector double);
25983         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
25984         instruction generator.
25985         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25986         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
25987         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
25988         Add define_insn.
25989         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
25990         vunsignede_v2df): Add define_expands.
25991         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
25992         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
25993         VEC_UNSIGNEDO): Add definitions.
25994         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
25995         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
25996         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
25997         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
25998         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
25999         * config/rs6000/altivec.h (vec_signed, vec_signed2,
26000         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
26001         vec_unsignede, vec_unsignedo): Add builtin defines.
26002         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
26003         declaration.
26004         * doc/extend.texi: Update the built-in documentation file for the
26005         new built-in functions.
26006
26007 2017-06-29  Richard Biener  <rguenther@suse.de>
26008
26009         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
26010         reduction chains to LOOP_VINFO_REDUCTIONS.
26011         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
26012         SLP reductions after processing reduction chains.
26013
26014 2017-06-29  Nathan Sidwell  <nathan@acm.org>
26015
26016         * builtins.c (fold_builtin_FUNCTION): Use
26017         lang_hooks.decl_printable_name.
26018
26019 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
26020
26021         PR middle-end/81194
26022         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
26023         with only one label.
26024         * stmt.c (expand_case): Assert NCASES is greater than one.
26025
26026 2017-06-29  Richard Biener  <rguenther@suse.de>
26027
26028         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
26029         anything.
26030         (group_case_labels): Likewise.
26031         (find_taken_edge): Push sanity checking on val to workers...
26032         (find_taken_edge_cond_expr): ... here
26033         (find_taken_edge_switch_expr): ... and here, handle cases
26034         with just a default label.
26035         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
26036         (group_case_labels): Likewise.
26037         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
26038         group_case_labels does anything cleanup the CFG again.
26039
26040 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
26041
26042         PR tree-optimization/81196
26043         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
26044         exit condition comparing two IVs.
26045
26046 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
26047
26048         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
26049         profile to the dummy entry at the end of the list of architectures.
26050         * config/arm/arm-cpu-cdata.h: Regenerated.
26051
26052 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26053             Michael Collison <michael.collison@arm.com>
26054
26055         PR target/70119
26056         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
26057         New pattern.
26058         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
26059         (*aarch64_reg_<mode>3_minus_mask): New pattern.
26060         (*aarch64_<optab>_reg_di3_mask2): New pattern.
26061         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
26062         of shift when the shift amount is masked with constant equal to
26063         the size of the mode.
26064         * config/aarch64/predicates.md (subreg_lowpart_operator): New
26065         predicate.
26066
26067 2017-06-29  Martin Liska  <mliska@suse.cz>
26068
26069         * config/i386/i386.opt: Change range from [1,5] to [0,5].
26070
26071 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
26072
26073         PR bootstrap/80565
26074         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
26075         code.
26076         * ipa-inline.h
26077         (edge_growth_cache_entry::edge_growth_cache_entry): New
26078         function.
26079         (reset_edge_growth_cache): Update to use constructor.
26080
26081 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26082
26083         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
26084         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26085         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26086
26087 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
26088
26089         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
26090         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
26091
26092 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26093
26094         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
26095         (*-linux-uclibc*): Add t-uclibc tmake_file.
26096         * config/t-musl: New.
26097         * config/t-uclibc: New.
26098
26099 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
26100
26101         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
26102         context.
26103         (gen_comm_data): Emit architectural setting of arch_prof.
26104         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
26105         profile.
26106         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
26107         (armv8-m.base, armv8-m.main): Likewise.
26108         * arm-protos.h (arm_build_target): Add profile field.
26109         (arch_option): Likewise.
26110         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
26111         the active target.
26112         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
26113         arm_active_target.profile.
26114
26115 2017-06-28  Richard Biener  <rguenther@suse.de>
26116
26117         PR middle-end/81227
26118         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
26119         TYPE_OVERFLOW_WRAPS.
26120         * match.pd (negate_expr_p): Likewise.
26121         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
26122         fold_build2, not fold_binary.
26123
26124 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26125
26126         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
26127         Convert memory address to Pmode.
26128         (aarch64_print_operand): Assert MEM operands are always Pmode.
26129
26130 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26131
26132         PR target/79665
26133         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
26134         Remove redundant if.
26135         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
26136         * config/arm/aarch-common-protos.h
26137         (aarch_forward_to_shift_is_not_shifted_re): Remove.
26138         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
26139
26140 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
26141
26142         PR ipa/81238
26143         * multiple_target.c (create_dispatcher_calls): Set the default
26144         clone to be static, not public.
26145
26146 2017-06-28  Richard Biener  <rguenther@suse.de>
26147
26148         * tree-vect-loop.c (vectorizable_reduction): Move special
26149         cond reduction IV var creation ...
26150         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
26151         parameter.  Use STMT_VINFO_VECTYPE.
26152         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
26153         constant_p.
26154
26155 2017-06-28  Martin Liska  <mliska@suse.cz>
26156
26157         PR ipa/81128
26158         * ipa-visibility.c (non_local_p): Handle visibility.
26159
26160 2017-06-28  Martin Liska  <mliska@suse.cz>
26161
26162         PR driver/79659
26163         * common.opt: Add IntegerRange to various options.
26164         * opt-functions.awk (integer_range_info): New function.
26165         * optc-gen.awk: Add integer_range_info to cl_options struct.
26166         * opts-common.c (decode_cmdline_option): Handle
26167         CL_ERR_INT_RANGE_ARG.
26168         (cmdline_handle_error): Likewise.
26169         * opts.c (print_filtered_help): Show valid interval in
26170         when --help is provided.
26171         * opts.h (struct cl_option): Add range_min and range_max fields.
26172         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
26173
26174 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
26175
26176         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
26177         (x * C EQ/NE y * C): New transformation.
26178
26179 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
26180
26181         * genmultilib (combination_space): Accept '+' in option names.
26182
26183 2017-06-28  Martin Liska  <mliska@suse.cz>
26184
26185         PR sanitizer/81224
26186         * asan.c (instrument_derefs): Bail out inner references
26187         that are hard register variables.
26188
26189 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
26190
26191         PR target/81175
26192         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
26193         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
26194
26195 2017-06-28  Richard Biener  <rguenther@suse.de>
26196
26197         * tree-vectorizer.h (vect_get_vec_defs): Remove.
26198         (vect_get_slp_defs): Adjust.
26199         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
26200         out from ...
26201         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
26202         simplify.
26203         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
26204         get_initial_defs_for_reduction instead of vect_get_vec_defs.
26205         (vectorizable_reduction): Adjust.
26206         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
26207         handling.
26208         (vect_get_slp_defs): Likewise.
26209         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
26210         (vectorizable_bswap): Adjust.
26211         (vectorizable_call): Likewise.
26212         (vectorizable_conversion): Likewise.
26213         (vectorizable_assignment): Likewise.
26214         (vectorizable_shift): Likewise.
26215         (vectorizable_operation): Likewise.
26216         (vectorizable_store): Likewise.
26217         (vectorizable_condition): Likewise.
26218         (vectorizable_comparison): Likewise.
26219
26220 2017-06-28  Michael Collison  <michael.collison@arm.com>
26221
26222         PR target/68535
26223         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
26224         set of base_reg
26225         (arm_gen_movmemqi): Removed unused variable 'i'.
26226         Convert 'for' loop into 'while' loop.
26227         (arm_expand_prologue): Remove last unnecessary set of insn.
26228         (thumb_pop): Remove unused variable 'pushed_words'.
26229         (thumb_exit): Remove last unnecessary set of regs_to_pop.
26230
26231 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26232
26233         * config/s390/predicates.md: Use s390_rel_address_ok_p.
26234         * config/s390/s390-protos.h: Add prototype of
26235         s390_rel_address_ok_p.
26236         * config/s390/s390.c (s390_got_symbol): New function.
26237         (s390_rel_address_ok_p): New function.
26238         (legitimize_pic_address): Use s390_rel_address_ok_p.
26239         (s390_load_got): Use s390_got_symbol.
26240         (s390_option_override): Issue error if
26241         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
26242         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
26243         New macro.
26244         * config/s390/s390.opt: New option mpic-data-is-text-relative.
26245
26246 2017-06-27  Andrew Pinski  <apinski@cavium.com>
26247
26248         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
26249         (X * copysign (1.0, X)): New pattern.
26250         (X * copysign (1.0, -X)): New pattern.
26251         (copysign (-1.0, CST)): New pattern.
26252
26253 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
26254
26255         * genmultilib (combination_space): Remove variable.
26256         Validate reuse rules against regular expression for any sequence
26257         of multilib options in any order.
26258
26259 2017-06-27  Michael Collison  <michael.collison@arm.com>
26260
26261         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
26262         call aarch64_split_simd_combine.
26263         * (aarch64_combine_internal<mode>): Delete pattern.
26264         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
26265         Allow register and subreg operands.
26266
26267 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26268
26269         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
26270         specific need, just fallback on defaults.
26271         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
26272
26273 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26274             Olivier Hainque  <hainque@adacore.com>
26275
26276         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
26277         map for 64bits.
26278         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
26279         targets. Pick a default if no particular attempt applied.
26280         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
26281         larger contexts.
26282
26283 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26284
26285         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
26286         (x86_64-wrs-vxworks7): Likewise.
26287
26288 2017-06-27  Marek Polacek  <polacek@redhat.com>
26289
26290         PR sanitizer/81223
26291         * ubsan.c (instrument_null): Check get_base_address's result for null.
26292
26293 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26294
26295         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
26296
26297 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26298
26299         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
26300         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
26301         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
26302         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
26303         New function types.
26304         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
26305         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
26306         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
26307         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
26308         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
26309         BUILT_IN_FEUPDATEENV): New builtins.
26310         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
26311         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
26312         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
26313         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
26314         macros.
26315         (builtin_structptr_types): Adjust size.
26316         * tree.c (builtin_structptr_types): Add four entries.
26317
26318 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26319             Olivier Hainque  <hainque@adacore.com>
26320
26321         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
26322         (TLS_SYM): New local macro, forcing reference to __tls__ on
26323         link command lines for VxWorks 7 RTPs, triggering initialization
26324         of tlsLib.
26325         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
26326         OS features TLS support, true for RTPs on VxWorks 7.
26327         * config/vxworks.c (vxworks_override_options): Setup emutls
26328         accordingly.
26329
26330 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26331
26332         * predict.c (test_prediction_value_range): Use -1U instead of -1
26333         to avoid narrowing conversion warning.
26334         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
26335         to avoid narrowing conversion warning.
26336         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
26337         -1.
26338         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
26339
26340 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26341
26342         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
26343         64bit configurations.
26344         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
26345         (SIZE_TYPE): Likewise.
26346         * config/vxworks.c (vxworks_emutls_var_fields): Use
26347         long_unsigned_type_node instead of unsigned_type_node as the offset
26348         field type, which is "pointer" mode in emutls.c.
26349
26350 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26351
26352         PR sanitizer/81209
26353         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
26354
26355         PR middle-end/81207
26356         * gimple-fold.c (replace_call_with_call_and_fold): Handle
26357         gimple_vuse copying separately from gimple_vdef copying.
26358
26359 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26360
26361         * value-prof.c (free_hist): Remove call to memset and the enclosing if
26362         condition.
26363
26364 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26365             Olivier Hainque  <hainque@adacore.com>
26366
26367         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
26368         for all vxworks7 targets.
26369         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
26370         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
26371         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
26372         variations for VX6/VX7 and 32/64bits later on in ...
26373         (VXWORKS_LIB_SPEC): Leverage new macros.
26374         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
26375         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
26376
26377 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26378
26379         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
26380         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
26381
26382 2017-06-26  Carl Love  <cel@us.ibm.com>
26383
26384         * config/rs6000/rs6000-c.c: Add support for built-in functions
26385         vector bool char vec_reve (vector bool char);
26386         vector signed char vec_reve (vector signed char);
26387         vector unsigned char vec_reve (vector unsigned char);
26388         vector bool int vec_reve (vector bool int);
26389         vector signed int vec_reve (vector signed int);
26390         vector unsigned int vec_reve (vector unsigned int);
26391         vector bool long long vec_reve (vector bool long long);
26392         vector signed long long vec_reve (vector signed long long);
26393         vector unsigned long long vec_reve (vector unsigned long long);
26394         vector bool short vec_reve (vector bool short);
26395         vector signed short vec_reve (vector signed short);
26396         vector double vec_reve (vector double);
26397         vector float vec_reve (vector float);
26398         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
26399         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
26400         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
26401         (altivec_vreve): New pattern.
26402         * config/rs6000/altivec.h (vec_reve): New define.
26403         * doc/extend.texi (vec_rev): Update the built-in documentation file
26404         for the new built-in functions.
26405
26406 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26407
26408         PR tree-optimization/71815
26409         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
26410         function.
26411         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
26412         has_single_use.
26413         (slsr_process_phi): Likewise.
26414         (replace_uncond_cands_and_profitable_phis): Don't replace a
26415         multiply candidate with a stride of 1 (copy or cast).
26416         (phi_incr_cost): Call uses_consumed_by_stmt rather than
26417         has_single_use.
26418         (lowest_cost_path): Likewise.
26419         (total_savings): Likewise.
26420
26421 2017-06-26  Richard Biener  <rguenther@suse.de>
26422
26423         PR target/81175
26424         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
26425         Use def_builtin_pure for all gather builtins.
26426
26427 2017-06-26  Richard Biener  <rguenther@suse.de>
26428
26429         PR tree-optimization/81203
26430         * tree-tailcall.c (find_tail_calls): Do not move stmts into
26431         non-dominating BBs.
26432
26433 2017-06-26  Marek Polacek  <polacek@redhat.com>
26434
26435         PR c/80116
26436         * doc/invoke.texi: Document -Wmultistatement-macros.
26437
26438 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
26439
26440         * doc/sourcebuild.texi (ARM-specific attributes): Document new
26441         arm_neon_ok_no_float_abi effective target.
26442
26443 2017-06-26  Richard Biener  <rguenther@suse.de>
26444
26445         PR tree-optimization/80928
26446         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
26447         (copy_bbs): Set BB_DUPLICATED flag early.
26448         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
26449         marked blocks.
26450         (execute_on_shrinking_pred): Likewise.
26451         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
26452         BB_DUPLICATED blocks.
26453         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
26454         iterate over all PHIs considering removal of *gsi.
26455
26456 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
26457
26458         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
26459         qdf24xx.
26460
26461 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26462
26463         * config/rs6000/rs6000-string.c: (expand_block_clear,
26464         do_load_for_compare, select_block_compare_mode,
26465         compute_current_alignment, expand_block_compare,
26466         expand_strncmp_align_check, expand_strn_compare,
26467         expand_block_move, rs6000_output_load_multiple)
26468         Move functions related to string/block move/compare
26469         to a separate file.
26470         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
26471         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
26472         for this function which is now used in two files.
26473         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
26474         * config.gcc: Add rs6000-string.o to extra_objs for
26475         targets powerpc*-*-* and rs6000*-*-*.
26476
26477 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
26478
26479         PR target/80510
26480         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
26481         32-bit, since indexed is not valid for DImode.
26482         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
26483         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
26484         (define_peephole2 for Altivec d-form load): Add 32-bit support.
26485         (define_peephole2 for Altivec d-form store): Likewise.
26486
26487         PR ipa/81185
26488         * multiple_target.c (create_dispatcher_calls): Only create the
26489         dispatcher call if the function is the default clone of a
26490         versioned function.
26491
26492 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
26493
26494         PR middle-end/80902
26495         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
26496         a call, force the call to not be a tail call.
26497
26498 2017-06-23  Jeff Law  <law@redhat.com>
26499
26500         * doc/contrib.texi: Add entry for Steven Pemberton's work on
26501         enquire.
26502
26503 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
26504
26505         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
26506         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
26507         handling for early expansion of vector shifts (sl,sr,sra,rl).
26508         (builtin_function_type): Add vector shift right instructions
26509         to the unsigned argument list.
26510
26511 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26512
26513         rtl-optimizatoin/79286
26514         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
26515         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
26516         trap.  PIC register plus a const unspec without offset can never trap.
26517
26518 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
26519
26520         * tree.h (builtin_structptr_type): New type.
26521         (builtin_structptr_types): Declare new array.
26522         * tree.c (builtin_structptr_types): New array.
26523         (free_lang_data, build_common_tree_nodes): Use it.
26524
26525 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
26526
26527         PR c++/81187
26528         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
26529         -Wnoexcept.
26530
26531 2017-06-22  Matt Turner  <mattst88@gmail.com>
26532
26533         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
26534         Lake models to skylake case.  Assume skylake for unknown
26535         models with clflushopt.
26536
26537 2017-06-22  Jeff Law  <law@redhat.com>
26538
26539         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
26540         frame sizes that do not satisfy aarch64_uimm12_shift.
26541
26542 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
26543
26544         * profile-count.h (apply_probability,
26545         apply_scale, probability_in): Fix checks for zero.
26546
26547 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26548
26549         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
26550         * doc/cppdiropts.texi (-I @var{dir}): Document it.
26551
26552 2016-06-22  Richard Biener  <rguenther@suse.de>
26553
26554         * tree-vect-loop.c (vect_model_reduction_cost): Handle
26555         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
26556         REDUC_MAX_EXPR support.
26557         (vectorizable_reduction): Likewise.
26558         (vect_create_epilog_for_reduction): Likewise.
26559
26560 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
26561
26562         * match.pd (A / (1 << B) -> A >> B): New.
26563         * generic-match-head.c: Include optabs-tree.h.
26564         * gimple-match-head.c: Likewise.
26565         * optabs-tree.h (target_supports_op_p): New.
26566         * optabs-tree.c (target_supports_op_p): New.
26567
26568 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26569
26570         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
26571         $gcc_cv_ld --help output.
26572         (gcc_cv_ld_demangle): Likewise.
26573         (gcc_cv_ld_eh_frame_hdr): Likewise.
26574         (gcc_cv_ld_pie): Likewise.
26575         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
26576         (gcc_cv_ld_buildid): Likewise.
26577         (gcc_cv_ld_sysroot): Likewise.
26578         (ld_bndplt_support): Likewise.
26579         (ld_pushpopstate_support): Likewise.
26580         * configure: Regenerate.
26581         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
26582
26583 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26584
26585         PR target/81151
26586         * config/i386/sse.md (round<mode>2): Renumber match_dup and
26587         operands indexes to avoid gap between operands and match_dups.
26588
26589 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26590
26591         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26592         Increment Arith_shift and Arith_shift_reg by 1.
26593         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
26594         New tuning flag.
26595         * config/aarch64/aarch64.c (thunderx_tunings): Enable
26596         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
26597         (aarch64_strip_extend): Add new argument and test for it.
26598         (aarch64_cheap_mult_shift_p): New function.
26599         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
26600         add a cost if it is true.
26601         Update calls to aarch64_strip_extend.
26602         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
26603
26604 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26605
26606         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
26607         tunings.
26608         (thunderxt88): Likewise.
26609         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
26610         (thunderx_prefetch_tune): New variable.
26611         (thunderx2t99_prefetch_tune): Update for the correct values.
26612         (thunderxt88_tunings): New variable.
26613         (thunderx_tunings): Use thunderx_prefetch_tune instead of
26614         generic_prefetch_tune.
26615         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
26616
26617 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26618
26619         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
26620         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
26621         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
26622         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
26623         (aarch64_atomic_cas<mode>, GPI): Likewise.
26624
26625 2017-06-21  Martin Liska  <mliska@suse.cz>
26626
26627         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
26628         statements on cold and hot labels.
26629         * predict.c (tree_estimate_probability_bb): Remove the
26630         prediction from this place.
26631
26632 2017-06-21  Martin Liska  <mliska@suse.cz>
26633
26634         PR tree-optimization/79489
26635         * gimplify.c (maybe_add_early_return_predict_stmt): New
26636         function.
26637         (gimplify_return_expr): Call the function.
26638         * predict.c (tree_estimate_probability_bb): Remove handling
26639         of early return.
26640         * predict.def: Update comment about early return predictor.
26641         * gimple-predict.h (is_gimple_predict): New function.
26642         * predict.def: Change default value of early return to 66.
26643         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
26644         statements.
26645         * passes.def: Put pass_strip_predict_hints to the beginning of
26646         IPA passes.
26647
26648 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
26649
26650         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
26651         FUNCTION_DECL declarations.
26652         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
26653         declarations.
26654         (dwaf2out_decl): Likewise.
26655         * godump.c (go_early_global_decl): Skip call to the real debug hook
26656         for FUNCTION_DECL declarations.
26657         * passes.c (rest_of_decl_compilation): Skip call to the
26658         early_global_decl debug hook for FUNCTION_DECL declarations, unless
26659         -fdump-go-spec is passed.
26660
26661 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26662
26663         * config/i386/i386.c (struct builtin_isa): New field pure_p.
26664         Reorder for compactness.
26665         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
26666         (def_builtin_pure, def_builtin_pure2): New functions.
26667         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
26668
26669 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26670
26671         * match.pd (nop_convert): New predicate.
26672         ((A +- CST1) +- CST2): Allow some NOP conversions.
26673
26674 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26675
26676         PR c++/81130
26677         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
26678         with ctors/dtors if GOVD_SHARED is set.
26679
26680 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26681
26682         * config/aarch64/aarch64.md (movti_aarch64):
26683         Emit mov rather than orr.
26684         (movtf_aarch64): Likewise.
26685         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
26686         Emit mov rather than orr.
26687
26688 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26689
26690         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
26691         Swap alternatives, make integer dup more expensive.
26692
26693 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26694
26695         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
26696         Return true for non-tls symbols.
26697
26698 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
26699
26700         * config/aarch64/aarch64-cores.def (cortex-a55): New.
26701         (cortex-a75): Likewise.
26702         (cortex-a75.cortex-a55): Likewise.
26703         * config/aarch64/aarch64-tune.md: Regenerate.
26704         * doc/invoke.texi (-mtune): Document new values for -mtune.
26705
26706 2017-06-21  Tom de Vries  <tom@codesourcery.com>
26707
26708         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
26709         stack_size feature.
26710         (Effective-Target Keywords, Other attributes): Suggest using
26711         dg-add-options stack_size feature to get stack limit in stack_size
26712         effective target documentation.
26713
26714 2017-06-21  Julian Brown  <julian@codesourcery.com>
26715             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26716
26717         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
26718         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
26719         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
26720         reservation.
26721         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
26722         attribute type list for neon_multiply.
26723         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
26724         attribute type list for neon_multiply.
26725         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
26726         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
26727         attribute type list for neon_multiply.
26728         * config/arm/types.md (crypto_pmull): Add.
26729         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
26730         attribute type list.
26731
26732 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
26733
26734         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
26735         arm1176jzf-s.
26736
26737 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26738
26739         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
26740         to make sure not to dereference a NULL cost_classes_ptr pointer.
26741
26742 2017-06-20  Carl Love  <cel@us.ibm.com>
26743
26744         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26745         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
26746         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26747         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
26748         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
26749         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
26750         VMULOSW): New enum "unspec" values.
26751         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
26752         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
26753         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
26754         altivec_vmulosw): New patterns.
26755         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
26756         VMULOSW): Add definitions.
26757
26758 2017-06-20  Julia Koval  <julia.koval@intel.com>
26759
26760         * config/i386/i386.c: Fix rounding expand for new pattern.
26761         * config/i386/subst.md: Fix pattern (parallel -> unspec).
26762
26763 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26764
26765         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
26766         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
26767
26768 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26769
26770         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
26771         feature string.
26772
26773 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26774
26775         * config/aarch64/aarch64-cores.def: Rearrange to sort by
26776         architecture, then by implementer ID.
26777         * config/aarch64/aarch64-tune.md: Regenerate.
26778
26779 2017-06-20  Richard Biener  <rguenther@suse.de>
26780
26781         PR middle-end/81097
26782         * fold-const.c (split_tree): Fold to type before negating.
26783
26784 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
26785
26786         * diagnostic-show-locus.c
26787         (selftest::test_fixit_deletion_affecting_newline): New function.
26788         (selftest::diagnostic_show_locus_c_tests): Call it.
26789
26790 2017-06-20  Andreas Schwab  <schwab@suse.de>
26791
26792         PR target/80970
26793         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
26794         instead of "+d".
26795
26796 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
26797
26798         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
26799         __ARM_FEATURE_COPROC according to support.
26800
26801 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26802
26803         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26804         Rewritten to avoid overflow for > 32-bit pointers.
26805
26806         PR sanitizer/81125
26807         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
26808         by removing enum keyword.
26809         (ubsan_type_descriptor): Likewise.  Formatting fix.
26810
26811         PR target/81121
26812         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
26813         splitter): Require TARGET_SSE2 in the condition.
26814
26815 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
26816
26817         PR target/79799
26818         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
26819         for doing vector set of SFmode on ISA 3.0.
26820         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
26821         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
26822         element.
26823         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
26824         SFmode value into a V4SF variable that was extracted from another
26825         V4SF variable without converting the element to double precision
26826         and back to single precision vector format.
26827         (vsx_insert_extract_v4sf_p9_2): Likewise.
26828
26829 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
26830
26831         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
26832         in UWHI to avoid undefined overflow.
26833
26834         PR sanitizer/81125
26835         * ubsan.h (enum ubsan_encode_value_phase): New.
26836         (ubsan_encode_value): Change second argument to
26837         enum ubsan_encode_value_phase with default value of
26838         UBSAN_ENCODE_VALUE_GENERIC.
26839         * ubsan.c (ubsan_encode_value): Change second argument to
26840         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
26841         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
26842         create_tmp_var_raw instead of create_tmp_var and use a
26843         TARGET_EXPR.
26844         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
26845         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
26846         ubsan_encode_value callers.
26847
26848         PR sanitizer/81111
26849         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
26850         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
26851         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
26852
26853 2017-06-19  Richard Biener  <rguenther@suse.de>
26854
26855         PR middle-end/81118
26856         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
26857         estimates if we changed anything.
26858
26859 2017-06-19  Richard Biener  <rguenther@suse.de>
26860
26861         PR tree-optimization/80887
26862         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
26863         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
26864         simplified lookups, then reset mprts_hook.
26865         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
26866         simplifying.
26867         (try_to_simplify): Likewise.
26868
26869 2017-06-19  Martin Liska  <mliska@suse.cz>
26870
26871         PR sanitizer/80879
26872         * gimplify.c (gimplify_switch_expr):
26873         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
26874
26875 2017-06-19  Martin Liska  <mliska@suse.cz>
26876
26877         * doc/install.texi: Document that PGO runs in 4 stages.
26878
26879 2017-06-19  Martin Liska  <mliska@suse.cz>
26880
26881         PR ipa/80732
26882         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
26883         to dispatcher function name.
26884         * multiple_target.c (replace_function_decl): New function.
26885         (create_dispatcher_calls): Redirect both edges and references.
26886
26887 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
26888
26889         * profile-count.c (profile_count::dump): Dump quality.
26890         (profile_count::differs_from_p): Update for unsigned val.
26891         * profile-count.h (profile_count_quality): New enum.
26892         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
26893
26894 2017-06-19  Richard Biener  <rguenther@suse.de>
26895
26896         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
26897         struct function as arg.
26898         (estimate_numbers_of_iterations): Export overload with loop arg.
26899         (free_numbers_of_iterations_estimates_loop): Use an overload of
26900         free_numbers_of_iterations_estimates instead.
26901         * tree-cfg.c (remove_bb): Adjust.
26902         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
26903         * tree-parloops.c (gen_parallel_loop): Likewise.
26904         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
26905         Likewise.
26906         (tree_unroll_loops_completely): Likewise.
26907         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
26908         Use an overload instead and export.
26909         (estimated_loop_iterations): Adjust.
26910         (max_loop_iterations): Likewise.
26911         (likely_max_loop_iterations): Likewise.
26912         (estimate_numbers_of_iterations): Take struct function as arg
26913         and adjust.
26914         (loop_exits_before_overflow): Adjust.
26915         (free_numbers_of_iterations_estimates_loop): Use an overload.
26916         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
26917         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
26918
26919 2017-06-19  Richard Biener  <rguenther@suse.de>
26920
26921         PR ipa/81112
26922         * ipa-prop.c (find_constructor_constant_at_offset): Handle
26923         RANGE_EXPR conservatively.
26924
26925 2017-06-16  Carl Love  <cel@us.ibm.com>
26926
26927         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26928         definitions for vec_float, vec_float2, vec_floato,
26929         vec_floate built-ins.
26930         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
26931         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
26932         floate.
26933         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
26934         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
26935         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
26936         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
26937         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
26938         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
26939         vec_floato): Add builtin defines.
26940         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
26941         Update the built-in documentation file for the new built-in
26942         functions.
26943
26944 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26945
26946         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
26947         (mthumb): Mark as the negative of -marm.
26948
26949 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26950
26951         * doc/invoke.texi (ARM Options, -mcpu): Document supported
26952         extension options.
26953         (ARM Options, -mtune): Document that this accepts the same
26954         extension options as -mcpu.
26955         (ARM Options, -mfpu): Document addition of -mfpu=auto.
26956
26957 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26958
26959         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
26960         permitted extensions.
26961
26962 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26963
26964         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
26965         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
26966         (armv8-m.main): Add option +nodsp.
26967         * config/arm/arm-cpu-cdata.h: Regenerated.
26968
26969 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26970
26971         * config/arm/t-fuchsia: New file.
26972         * config.gcc (arm*-*-fuchsia*): Use it.
26973
26974 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26975
26976         * config/arm/t-symbian: Rewrite for new option infrastructure.
26977
26978 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26979
26980         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
26981         (MULTILIB_REQUIRED): Likewise.
26982
26983 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26984
26985         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
26986         (MULTILIB_RESUE): Likewise.
26987         (MULTILIB_MATCHES): Likewise.
26988         (MULTLIB_REQUIRED): Likewise.
26989
26990 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26991
26992         * config/arm/t-rtems: Rewrite for new option framework.
26993
26994 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26995
26996         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
26997         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
26998         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
26999         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
27000         * config/arm/t-multilib: ... here.
27001         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
27002         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
27003         armv7-a and armv8*-a when A-profile libraries have not been built.
27004         * config/arm/t-rmprofile: Rewrite.
27005
27006 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27007
27008         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
27009         with a backslash.  Remove the backslash after substituting unescaped
27010         periods.
27011         * doc/fragments.texi (MULTILIB_REUSE): Document it.
27012
27013 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27014
27015         * config.gcc: (arm*-*-*): When building a-profile libraries, force
27016         the driver to pass through the default setting of -mfloat-abi.
27017         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
27018         rather than NULL.
27019         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
27020         (all_feat_combs): New rule.
27021         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
27022         default libraries.
27023         * config/arm/t-aprofile: Rewrite.
27024
27025 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27026
27027         * config/arm/arm.h (FPUTYPE_AUTO): Define.
27028         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
27029         fpu is not specified by the user/command-line.
27030         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
27031         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
27032         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
27033         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
27034         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
27035         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
27036
27037 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27038
27039         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
27040         * config/arm/t-arm-elf: Rewritten.
27041
27042 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27043
27044         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
27045         have some floating-point instructions.
27046         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
27047         (TARGET_MAYBE_HARD_FLOAT): New macro.
27048         * config/arm/arm-builtins.c (arm_init_builtins): Use
27049         TARGET_MAYBE_HARD_FLOAT.
27050         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
27051
27052 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27053
27054         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
27055         (configargs.h): Include it.
27056         (arm_print_hint_for_fpu_option): New function.
27057         (arm_parse_fpu_option): New function.
27058         (candidate_extension): New class.
27059         (arm_canon_for_multilib): New function.
27060         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
27061         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
27062         (ARCH_CANONICAL_SPECS): New macro.
27063         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
27064
27065 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27066
27067         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
27068         are set after handling multilib fragments.  Set target_cpu_default2
27069         from with_cpu.
27070
27071 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27072
27073         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
27074         cpu name.
27075         (arm*-*-*): Set target_cpu_default2 to a quoted string.
27076         * config/arm/parsecpu.awk (check_cpu): Validate any extension
27077         options.
27078         (check_arch): Likewise.
27079         * config/arm/arm.c (arm_configure_build_target): Handle
27080         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
27081         options in the default.
27082
27083 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27084
27085         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
27086         when an option is an alias of another.
27087         * config/arm/parsecpu.awk (optalias): New parser token.
27088         (gen_comm_data): Mark non-alias options as such.  Emit entries
27089         for extension aliases.
27090         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
27091         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
27092         (armv6kz, armv6zk, armv6t2): Likewise.
27093         (armv7): Make vfpv3-d16 an alias.
27094         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
27095         canonical order.
27096         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
27097         Sort in canonical order.
27098         (armv8-a): Sort in canonical order.
27099         (armv8.1-a, armv8.2-a):  Likewise.
27100         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
27101         canonical order.
27102         (cortex-a9): Sort in canonical order.
27103         * config/arm/arm.c (selftests.h): Include it.
27104         (arm_test_cpu_arch_data): New function.
27105         (arm_run_self_tests): New function.
27106         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
27107         (targetm): Move declaration to the end of the file.
27108         * arm-cpu-cdata.h: Regenerated.
27109
27110 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27111
27112         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
27113         call to target_mode_check describing the type of option passed.
27114         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
27115         (arm_target_thumb_only): Use arm_parse_arch_option_name or
27116         arm_parse_cpu_option_name to match parameters against list of
27117         available targets.
27118         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
27119         arm_arch_core_flags data structure.
27120         * config/arm/arm-cpu_cdata.h: Regenerated.
27121
27122 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27123
27124         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
27125         config/arm/arm.c.
27126         (arm_print_hint_for_cpu_option): Likewise.
27127         (arm_print_hint_for_arch_option): Likewise.
27128         (arm_parse_cpu_option_name): Likewise.
27129         (arm_parse_arch_option_name): Likewise.
27130         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
27131         of entries in the all_fpus list.
27132         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
27133         (arm_parse_cpu_option_name): Declare.
27134         (arm_parse_arch_option_name): Declare.
27135         (arm_parse_option_features): Declare.
27136         (arm_intialize_isa): Declare.
27137         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
27138         data tables to ...
27139         (gen_comm_data): ... here.  Make definitions non-static.
27140         * config/arm/arm-cpu-data.h: Regenerated.
27141         * config/arm/arm-cpu-cdata.h: Regenerated.
27142
27143 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27144
27145         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
27146         (cpu_arch_extension): New structure.
27147         (cpu_arch_option, arch_option, cpu_option): New structures.
27148         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
27149         architecture types.
27150         (gen_data): Generate new format data tables.
27151         * config/arm/arm.c (cpu_tune): New structure.
27152         (cpu_option, processors): Delete.
27153         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
27154         (arm_print_hint_for_cpu_option): ... this and ...
27155         (arm_print_hint_for_arch_option): ... this.
27156         (arm_parse_arch_cpu_name): Delete.  Replace with ...
27157         (arm_parse_cpu_option_name): ... this and ...
27158         (arm_parse_arch_option_name): ... this.
27159         (arm_unrecognized_feature): Change type of target parameter to
27160         cpu_arch_option.
27161         (arm_parse_arch_cpu_features): Delete.  Replace with ...
27162         (arm_parse_option_features): ... this.
27163         (arm_configure_build_target): Rework to use new configuration data
27164         tables.
27165         (arm_print_tune_info): Rework for new configuration data tables.
27166         * config/arm/arm-cpu-data.h: Regenerated.
27167         * config/arm/arm-cpu.h: Regenerated.
27168
27169 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27170
27171         * Makefile.in (OBJS): Move sbitmap.o from here ...
27172         (OBJS-libcommon): ... to here.
27173
27174 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27175
27176         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
27177         (ISA_ALL_CRYPTO): New macro.
27178         (ISA_ALL_SIMD): New macro
27179         (ISA_ALL_FP): New macro.
27180         * config/arm/arm.c (fpu_bitlist): Update initializer.
27181         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
27182         simd or fp.
27183         (arm9e): Add fpu.  Add option for nofp
27184         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
27185         (arm926ej-s, arm1026ej-s): Likewise.
27186         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
27187         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
27188         neon-fp16, neon-vfpv4, nofp and nosimd.
27189         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
27190         (cortex-a8): Add fpu.  Add option for nofp.
27191         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
27192         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
27193         (cortex-r4f): Add fpu.
27194         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
27195         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
27196         for nofp.
27197         (cortex-r8): Likewise.
27198         (cortex-m4): Add fpu.  Add option for nofp.
27199         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
27200         (cortex-a17.cortex-a7): Likewise.
27201         (cortex-a32): Add fpu.  Add options for crypto and nofp.
27202         (cortex-a35, cortex-a53): Likewise.
27203         (cortex-a57): Add fpu.  Add option for crypto.
27204         (cortex-a72, cortex-a73): Likewise.
27205         (exynos-m1): Likewise.
27206         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
27207         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
27208         (cortex-m33): Add fpu.  Add option for nofp.
27209         * config/arm/arm-cpu-cdata.h: Regenerated
27210         * config/arm/arm-cpu-data.h: Regenerated.
27211
27212 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27213
27214         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
27215         (armv5te, armv5tej): Likewise.
27216         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
27217         (armv7): Add options fp and vfpv3-d16.
27218         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
27219         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
27220         nofp and nosimd.
27221         (armv7ve): Likewise.
27222         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
27223         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
27224         (armv8-a): Add nocrypto option.
27225         (armv8.1-a, armv8.2-a): Likewise.
27226         (armv8-m.main): add options fp, fp.dp and nofp.
27227
27228 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27229
27230         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
27231         nofp.
27232         (armv8-a+crc): Delete.
27233         (armv8.1-a): Add options simd, crypto and nofp.
27234         (armv8.2-a): Add options fp16, simd, crypto and nofp.
27235         (armv8.2-a+fp16): Delete.
27236         (armv8-m.main): Add option dsp.
27237         (armv8-m.main+dsp): Delete.
27238         (cortex-a8): Add fpu.  Add nofp option.
27239         (cortex-a9): Add fpu.  Add nofp and nosimd options.
27240         * config/arm/parsecpu.awk (gen_data): Generate option tables and
27241         link to main cpu and architecture data structures.
27242         (gen_comm_data): Only put isa attributes from the main architecture
27243         in common tables.
27244         (option): New statement for architecture and CPU entries.
27245         * arm.c (struct cpu_option): New structure.
27246         (struct processors): Add entry for options.
27247         (arm_unrecognized_feature): New function.
27248         (arm_parse_arch_cpu_name): Ignore any characters after the first
27249         '+' character.
27250         (arm_parse_arch_cpu_feature): New function.
27251         (arm_configure_build_target): Separate out any CPU and architecture
27252         features and parse separately.  Don't error out if -mfpu=auto is
27253         used with only an architecture string.
27254         (arm_print_asm_arch_directives): New function.
27255         (arm_file_start): Call it.
27256         * config/arm/arm-cpu-cdata.h: Regenerated.
27257         * config/arm/arm-cpu-data.h: Likewise.
27258         * config/arm/arm-tables.opt: Likewise.
27259
27260 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27261
27262         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
27263         assembler when it is not -mfpu=auto.
27264
27265 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27266
27267         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
27268         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
27269         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
27270         (ASM_CPU_SPEC): Rewrite.
27271         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
27272         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
27273         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
27274         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
27275         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
27276         copied string is NUL-terminated.  Also strip any characters prefixed
27277         by '+'.
27278         (arm_rewrite_selected_arch): New function.
27279         (arm_rewrite_march): New function.
27280
27281 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27282
27283         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
27284         (x_arm_cpu_string, x_arm_tune_string): Likewise.
27285         (march, mcpu, mtune): Convert to string-based options.
27286         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
27287         (arm_parse_arch_cpu_name): New function.
27288         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
27289         identify selected architecture or CPU.
27290         (arm_option_save): New function.
27291         (TARGET_OPTION_SAVE): Redefine.
27292         (arm_option_restore): Restore string options.
27293         (arm_option_print): Print string options.
27294
27295 2017-06-16  Martin Sebor  <msebor@redhat.com>
27296
27297         PR tree-optimization/80933
27298         PR tree-optimization/80934
27299         * builtins.c (fold_builtin_3): Do not handle bcmp here.
27300         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
27301         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
27302         (gimple_fold_builtin): Call them.
27303
27304 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27305
27306         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
27307         as unlikely; update profile.
27308
27309 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27310
27311         * predict.c (force_edge_cold): Handle declaring edges impossible
27312         more aggresively.
27313
27314 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27315
27316         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
27317         profile.
27318         (try_unroll_loop_completely): Fix reporting.
27319
27320 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27321
27322         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
27323
27324 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
27325
27326         PR target/71778
27327         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
27328         if given a non-constant argument for an intrinsic which requires a
27329         constant.
27330
27331 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27332
27333         * profile.c (compare_freqs): New function.
27334         (branch_prob): Sort edge list.
27335         (find_spanning_tree): Assume that the list is priority sorted.
27336
27337 2017-06-16  Richard Biener  <rguenther@suse.de>
27338
27339         PR tree-optimization/81090
27340         * passes.def (pass_record_bounds): Remove.
27341         * tree-pass.h (make_pass_record_bounds): Likewise.
27342         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
27343         make_pass_record_bounds): Likewise.
27344         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
27345         not free niter estimates at the beginning but at the end.
27346         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
27347
27348 2017-06-16  Richard Biener  <rguenther@suse.de>
27349
27350         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
27351         initializer to workaround ICE in host GCC 4.8.
27352
27353 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27354
27355         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
27356         counts.
27357         (clone_inlined_nodes): Update.
27358
27359 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27360
27361         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
27362         prefetch settings, and enable prefetching by default at -O3.
27363
27364 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27365
27366         * config/aarch64/aarch64.c (aarch64_override_options_internal):
27367         Set flag_prefetch_loop_arrays according to tuning data.
27368
27369 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27370
27371         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
27372         New tune structure.
27373         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
27374         [Unrelated to main purpose of the patch] Place the pointer field last
27375         to enable type checking errors when tune structure are wrongly merged.
27376         * config/aarch64/aarch64.c (generic_prefetch_tune,)
27377         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
27378         (thunderx2t99_prefetch_tune): New tune constants.
27379         (tune_params *_tunings): Update all tunings (no functional change).
27380         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
27381         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
27382         from tunings structures.
27383
27384 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
27385
27386         PR sanitizer/81094
27387         * ubsan.c (instrument_null): Add T argument, use it instead
27388         of computing it based on IS_LHS.
27389         (instrument_object_size): Likewise.
27390         (pass_ubsan::execute): Adjust instrument_null and
27391         instrument_object_size callers to pass gimple_get_lhs or
27392         gimple_assign_rhs1 result to it.  Use instrument_null instead of
27393         calling get_base_address and instrument_mem_ref.  Handle
27394         aggregate call arguments for object-size sanitization.
27395
27396 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
27397
27398         PR tree-optimization/81089
27399         * tree-vrp.c (is_masked_range_test): Validate operands of
27400         subexpression.
27401
27402 2017-06-15  Martin Sebor  <msebor@redhat.com>
27403
27404         PR c++/80560
27405         * dumpfile.c (dump_register): Avoid calling memset to initialize
27406         a class with a default ctor.
27407         * gcc.c (struct compiler): Remove const qualification.
27408         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
27409         * hash-table.h: Ditto.
27410         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
27411           assignment.
27412         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
27413         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
27414         default ctor.
27415         * params.h (struct param_info): Make struct members non-const.
27416         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
27417         with default initialization.
27418         * vec.h (vec_copy_construct, vec_default_construct): New helper
27419         functions.
27420         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
27421         with vec_copy_construct.
27422         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
27423         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
27424         * doc/invoke.texi (-Wclass-memaccess): Document.
27425
27426 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27427
27428         * emit-rtl.h (is_leaf): Update comment about local
27429         register allocator.
27430
27431 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
27432
27433         PR target/78818
27434         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
27435         for a variable to have a section before checking if the section has a
27436         name.
27437         Set section to.persistent if persistent attribute is set.
27438         Warn if .persistent attribute is used on an automatic variable.
27439
27440 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
27441
27442         PR rtl-optimization/80474
27443         * reorg.c (update_block): Do not ignore instructions in a delay slot.
27444
27445 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
27446
27447         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
27448         of REGNO.
27449
27450 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
27451
27452         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
27453         (casesi): Emit bounds checking as RTL.
27454         (casesi_internal_mips16_<mode>): Remove bounds checking.
27455
27456 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
27457
27458         * config/xtensa/xtensa.c (xtensa_option_override): Append
27459         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
27460         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
27461          xtensa_doloop_hooks): Define unconditionally.
27462         (xtensa_reorg_loops): Only call reorg_loops in the presence of
27463         TARGET_LOOPS.
27464         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
27465         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
27466         for it in xtensa_option_override.
27467         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
27468          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
27469
27470 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
27471
27472         * doc/cppopts.texi: Document '-' special value to -MF.
27473
27474 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
27475
27476         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
27477         (cortex_a53_fconst): Likewise.
27478         (cortex_a53_fpmul): Likewise.
27479         (cortex_a53_f_load_64): Likewise.
27480         (cortex_a53_f_load_many): Likewise.
27481         (cortex_a53_advsimd_alu): Likewise.
27482         (cortex_a53_advsimd_alu_q): Likewise.
27483         (cortex_a53_advsimd_mul): Likewise.
27484         (cortex_a53_advsimd_mul_q): Likewise.
27485         (fpmac bypass): Add new bypass for fpmac-fpmac case.
27486         Add missing fmul, r2f_cvt and fconst cases.
27487
27488 2017-06-14  Richard Biener  <rguenther@suse.de>
27489
27490         PR middle-end/81088
27491         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
27492         literal constants.
27493         (fold_binary_loc): When associating do not treat pre-existing
27494         TREE_OVERFLOW on literal constants as a reason to allow
27495         TREE_OVERFLOW on associated literal constants.
27496
27497 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27498
27499         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
27500         (MASK_FEATURES): New macro.
27501         * config/sparc/sparc.c (sparc_option_override): Remove the special
27502         handling of -mfpu and generalize it to all MASK_FEATURES switches.
27503
27504 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27505
27506         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
27507         a division of 0 if non-call exceptions are enabled.
27508
27509 2017-06-14  Andrew Pinski  <apinski@cavium.com>
27510             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27511
27512         PR target/71663
27513         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
27514         Improve vector initialization code gen for only variable case.
27515
27516 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27517
27518         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
27519
27520 2017-06-14  Richard Biener  <rguenther@suse.de>
27521
27522         PR tree-optimization/81083
27523         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
27524         as values.
27525
27526 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27527
27528         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
27529         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
27530         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
27531         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
27532         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
27533         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
27534
27535 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27536
27537         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
27538         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
27539
27540 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27541
27542         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
27543
27544 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27545
27546         * config/rs6000/t-rtems: Don't handle SPE.
27547
27548 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27549
27550         * config/rs6000/t-linux: Don't handle SPE.
27551
27552 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27553
27554         * config/rs6000/eabispe.h: Delete file.
27555
27556 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27557
27558         * config/rs6000/t-spe: Delete file.
27559
27560 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27561
27562         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
27563         (rs6000_legitimate_offset_address_p): Return false for anything in
27564         V2SImode or V2SFmode.
27565
27566 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27567
27568         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
27569         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
27570         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
27571         and V4HImode.
27572         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
27573         (rs6000_legitimate_offset_address_p): Ditto.
27574         (rs6000_emit_move): Ditto.
27575         (rs6000_init_builtins): Remove V4HI_type_node.
27576
27577 2017-06-13  Martin Liska  <mliska@suse.cz>
27578
27579         PR sanitize/78204
27580         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
27581         (gate_asan): Likewise.
27582         * asan.h (asan_no_sanitize_address_p): Remove the function.
27583         (sanitize_flags_p): New function.
27584         * builtins.def: Fix coding style.
27585         * common.opt: Use renamed enum value.
27586         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
27587         * doc/extend.texi: Document no_sanitize attribute.
27588         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
27589         to SANITIZE_UNDEFINED_NONDEFAULT.
27590         * gcc.c (sanitize_spec_function): Use the renamed enum value.
27591         * gimple-fold.c (optimize_atomic_compare_exchange_p):
27592         Use sanitize_flags_p.
27593         * gimplify.c (gimplify_function_tree): Likewise.
27594         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
27595         * opts.c (parse_no_sanitize_attribute): New function.
27596         (common_handle_option): Use renamed enum value.
27597         * opts.h (parse_no_sanitize_attribute): Declare.
27598         * tree.c (sanitize_flags_p): New function.
27599         * tree.h: Declared here.
27600         * tsan.c: Use sanitize_flags_p.
27601         * ubsan.c (ubsan_expand_null_ifn): Likewise.
27602         (instrument_mem_ref): Likewise.
27603         (instrument_bool_enum_load): Likewise.
27604         (do_ubsan_in_current_function): Remove the function.
27605         (pass_ubsan::execute): Use sanitize_flags_p.
27606         * ubsan.h: Remove do_ubsan_in_current_function
27607         * tree-cfg.c (print_no_sanitize_attr_value): New function.
27608         (dump_function_to_file): Use it here.
27609
27610 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27611
27612         PR tree-optimization/80803
27613         PR tree-optimization/81063
27614         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
27615         (propagate_subaccesses_across_link): Enqueue subtree whenever
27616         necessary instead of relying on the caller.
27617
27618 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27619
27620         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
27621         that have a first_link.
27622         (sort_and_splice_var_accesses): Do not check first_link before
27623         enquing.
27624         (subtree_mark_written_and_enqueue): Likewise.
27625         (propagate_all_subaccesses): Likewise and do not stop at first
27626         parent with a first_link.
27627
27628 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27629
27630         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
27631         instead of f.
27632
27633 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27634
27635         * match.pd: New pattern.
27636
27637 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27638
27639         * tree-vrp.c (is_masked_range_test): New function.
27640         (register_edge_assert_for): Determine ranges for
27641         some bit tests.
27642
27643 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27644
27645         PR tree-optimization/67328
27646         * fold-const.c (maskable_range_p): New function.
27647         (build_range_check): Generate bittests if possible.
27648
27649 2017-06-13  Martin Liska  <mliska@suse.cz>
27650
27651         * gimple-pretty-print.c (dump_probability): Add new argument.
27652         (dump_edge_probability): Dump both probability and count.
27653         (dump_gimple_label): Likewise.
27654         (dump_gimple_bb_header): Likewise.
27655
27656 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
27657
27658         PR target/81072
27659         * config/avr/avr-devices.c: Fix indentation.
27660         * config/avr/gen-avr-mmcu-specs.c: Dito.
27661
27662 2017-06-13  Richard Biener  <rguenther@suse.de>
27663
27664         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
27665         instead get vector type from stmt_info.
27666         (vectorizable_reduction): Adjust.  Remove dead code.
27667
27668 2017-06-13  Richard Biener  <rguenther@suse.de>
27669
27670         PR middle-end/81065
27671         * fold-const.c (extract_muldiv_1): Remove bogus distribution
27672         case of C * (x * C2 + C3).
27673         (fold_addr_of_array_ref_difference): Properly fold index difference.
27674
27675 2017-06-12  David S. Miller  <davem@davemloft.net>
27676
27677         PR target/80968
27678         * config/sparc/sparc.md (return expander): Emit frame blockage if
27679         function uses alloca.
27680
27681 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
27682
27683         * combine.c (make_field_assignment): Check len rather than the mode
27684         precision when calling force_to_mode.
27685
27686 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
27687
27688         Support multilibs and devices that see flash in RAM address range.
27689
27690         PR target/81072
27691         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
27692         (avr_mcu_t) <flash_pm_offset>: New field.
27693         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
27694         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
27695         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
27696         (AVR_TINY_PM_OFFSET): Remove macro.
27697         * config/avr/avr.opt (-mshort-calls): New option.
27698         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
27699         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
27700         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
27701         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
27702         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
27703         instead of avr_arch->have_jmp_call.
27704         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
27705         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
27706         avr_arch->flash_pm_offset to define.
27707         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
27708         new field flash_pm_offset.  Add entry for avrxmega3.
27709         (avr_texinfo): Add entry for avrxmega3.
27710         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
27711         attiny212, attiny214,
27712         attiny412, attiny414, attiny416, attiny417,
27713         attiny814, attiny816, attiny817,
27714         attiny1614, attiny1616, attiny1617,
27715         attiny3214, attiny3216, attiny3217.
27716         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
27717         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
27718         (avr_print_operand_address) [AVR_TINY]: Same.
27719         (avr_asm_init_sections) <readonly_data_section>: Only patch
27720         callback if avr_arch->flash_pm_offset = 0.
27721         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
27722         for rodata if avr_arch->flash_pm_offset != 0.
27723         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
27724         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
27725         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
27726         (m_options): Append opt_rcall.
27727         (m_dirnames): Append dir_rcall.
27728         * config/avr/t-multilib: Regenerate.
27729
27730         * configure.ac [target=avr]: Check whether avrxmega3 default
27731         linker description file works as needed.
27732         * configure: Regenerate.
27733         * doc/avr-mmcu.texi: Regenerate.
27734         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
27735         <__AVR_ARCH__>: Document avrxmega3 and 103.
27736         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
27737         <__AVR_SHORT_CALLS__>: Document it.
27738         <__AVR_PM_BASE_ADDRESS__>: Document it.
27739         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
27740         (AVR Variable Attributes) <progmem>: Document this is
27741         not needed for avrxmega3.
27742         (AVR Named Address Spaces) <__flash>: Dito.
27743
27744 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
27745
27746         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
27747
27748 2017-06-12  Doug Rupp  <rupp@adacore.com>
27749
27750         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
27751         Append vxworks-stdint.h to the tm_file list.
27752         * config/vxworks-stdint.h: New file.
27753
27754 2017-06-12  Martin Liska  <mliska@suse.cz>
27755
27756         PR tree-optimization/81041
27757         * tree-profile.c (gimple_gen_ic_func_profiler):
27758         Create an extra BB in profile-generate
27759         (gimple_gen_time_profiler): Likewise.
27760
27761 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
27762
27763         PR tree-optimization/81003
27764         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
27765         (update_range_test): Use it instead of force_gimple_operand_gsi.
27766
27767 2017-06-12  Richard Biener  <rguenther@suse.de>
27768
27769         PR tree-optimization/81053
27770         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
27771         with backedge value not defined in loop.  Simplify def stmt
27772         compute.
27773
27774 2017-06-11  Tom de Vries  <tom@codesourcery.com>
27775
27776         PR target/79939
27777         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
27778         Return true.
27779         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
27780         nvptx_cannot_force_const_mem.
27781
27782 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27783
27784         * opts.c (finish_options): Move test for flag_split_stack after
27785         it has been initialized.
27786
27787 2017-06-11  Jason Merrill  <jason@redhat.com>
27788
27789         * tree.h (id_equal): New.
27790         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
27791         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
27792         instead of strcmp of IDENTIFIER_POINTER.
27793
27794 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27795
27796         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
27797         (mark_all_inlined_calls_cdtor): Fix formating.
27798         (inline_transform): Rescale profile before inlining.
27799
27800 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27801
27802         * cgraph.h (cgraph_edge::clone): Update prototype.
27803         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
27804         (cgraph_node::create_clone): Update.
27805         (cgraph_node::create_version_clone): Update.
27806         * tree-inline.c (copy_bb): Update.
27807         (expand_call_inline): Update.
27808
27809 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27810
27811         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
27812         factored out from ...
27813         (rs6000_emit_prologue): ... here.
27814
27815 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27816
27817         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
27818         factored out from ...
27819         (rs6000_emit_prologue): ... here.
27820
27821 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27822
27823         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
27824         edge counts.
27825         (handle_missing_profiles): Fix computation of tp_first_run.
27826         (counts_to_freqs): Do not touch freqs when count is 0.
27827
27828 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27829
27830         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
27831         profile.
27832
27833 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27834
27835         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
27836         attributes): Document signal effective target.
27837
27838 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27839
27840         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
27841         Document effective target stack_size.
27842
27843 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
27844
27845         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
27846         to the edit_context if they can be auto-applied.
27847
27848 2017-06-9  Ian Lance Taylor  <iant@golang.org>
27849
27850         * opts.c (finish_options): If -fsplit-stack, disable implicit
27851         -forder-blocks-and-partition.
27852         * doc/invoke.texi (Optimize Options): Document that when using
27853         -fsplit-stack -forder-blocks-and-partition is not implicitly
27854         enabled.
27855
27856 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27857
27858         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
27859         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
27860         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
27861         * builtins.def (abort, trap, unreachable): Declare cold.
27862         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
27863         * tree-core.h (ECF_COLD): New.
27864         * tree.c (set_call_expr_flags): Handle ECF_COLD.
27865         (build_common_builtin_nodes): Mark unreachable and abort as cold.
27866
27867 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27868
27869         * predict.c (unlikely_executed_stmt_p): Cleanup.
27870
27871 2017-06-09  Richard Biener  <rguenther@suse.de>
27872
27873         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
27874         model if the ref is always written to.
27875
27876 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27877
27878         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
27879
27880 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27881
27882         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
27883         than udiv.
27884
27885 2017-06-09  Tom de Vries  <tom@codesourcery.com>
27886
27887         PR target/80855
27888         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
27889         "target cannot support label values" when encountering LABEL_REF.
27890
27891 2017-06-09  Martin Liska  <mliska@suse.cz>
27892
27893         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
27894         (gimple_gen_ic_func_profiler): Emit direct comparison
27895         of __gcov_indirect_call_callee with NULL.
27896         (gimple_gen_time_profiler): Change probability from
27897         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
27898
27899 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27900
27901         * profile.c (edge_gcov_counts): Turn to pointer.
27902         (compute_branch_probabilities, compute_branch_probabilities): Update.
27903         (branch_prob): Do not clear edge_gcov_count.
27904         * profile.h (edge_gcov_counts): Turn to pointer.
27905         (edge_gcov_count): Update.
27906
27907 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27908
27909         * gimple.h (gimple_check_failed): Mark cold.
27910
27911 2017-06-09  Richard Biener  <rguenther@suse.de>
27912
27913         PR tree-optimization/66623
27914         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
27915         refactor check_reduction into two parts, properly computing
27916         whether we have to check reduction validity for outer loop
27917         vectorization.
27918
27919 2017-06-09  Richard Biener  <rguenther@suse.de>
27920
27921         PR tree-optimization/79483
27922         * graphite-scop-detection.c (order): New global.
27923         (get_order): Compute bb to order mapping that satisfies code
27924         generation constraints.
27925         (cmp_pbbs): New helper.
27926         (build_scops): Start domwalk at entry block, sort generated
27927         pbbs.
27928
27929 2017-06-09  Richard Biener  <rguenther@suse.de>
27930
27931         PR middle-end/81007
27932         * ipa-polymorphic-call.c
27933         (ipa_polymorphic_call_context::restrict_to_inner_class):
27934         Skip FIELD_DECLs with error_mark_node type.
27935         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
27936         last again.
27937
27938 2017-06-09  Martin Liska  <mliska@suse.cz>
27939
27940         * predict.c (struct branch_predictor): New struct.
27941         (test_prediction_value_range): New test.
27942         (predict_c_tests): New function.
27943         * selftest-run-tests.c (selftest::run_tests): Run the function.
27944         * selftest.h: Declare new tests.
27945
27946 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
27947
27948         PR target/80966
27949         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
27950         gen_add3_insn did not fail.
27951         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
27952         r0, construct that number in a temporary reg and add that reg to r0.
27953         If asked to put the result in r0 as well, fail.
27954
27955 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
27956
27957         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
27958         for early expansion of vec_eqv.
27959
27960 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
27961
27962         PR middle-end/81005
27963         * ubsan.c (instrument_null): Avoid pointless code temporary.
27964         (pass_ubsan::execute): Instrument aggregate arguments of calls.
27965
27966 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
27967
27968         PR target/81015
27969         Revert:
27970         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
27971
27972         PR target/59874
27973         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
27974         (*clzhi2): Ditto.
27975
27976 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27977
27978         * predict.c (unlikely_executed_edge_p): Move ahead.
27979         (probably_never_executed_edge_p): Use it.
27980
27981 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27982
27983         PR middle-end/79988
27984         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
27985         gimple_call_builtin_p call.
27986
27987 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
27988
27989         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
27990         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
27991         rtl_check_failed_type2, rtl_check_failed_code1,
27992         rtl_check_failed_code2, rtl_check_failed_code_mode,
27993         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
27994         rtvec_check_failed_bounds, rtl_check_failed_flag,
27995         _fatal_insn_not_found, _fatal_insn): Likewise.
27996         * tree.h (tree_contains_struct_check_failed,
27997         tree_check_failed, tree_not_check_failed,
27998         tree_class_check_failed, tree_range_check_failed,
27999         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
28000         tree_vec_elt_check_failed, phi_node_elt_check_failed,
28001         tree_operand_check_failed, omp_clause_check_failed,
28002         omp_clause_operand_check_failed, omp_clause_range_check_failed):
28003         Likewise.
28004
28005 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28006
28007         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
28008         flag_branch_probabilities.
28009         * ipa-inline.c (edge_badness): Likewise.
28010         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
28011         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
28012         * predict.c (maybe_hot_frequency_p): Likewise.
28013         (probably_never_executed): Likewise.
28014         * sched-ebb.c (schedule_ebbs): Likewise.
28015         * sched-rgn.c (find_single_block_region): Likewise.
28016         * tracer.c (tail_duplicate): Likewise.
28017
28018 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28019
28020         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
28021         longer requires x_flag_profile_use.
28022
28023 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28024
28025         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
28026         instead of flag_reorder_blocks_and_partition.
28027         * dbxout.c (dbxout_function_end): Likewise.
28028         * dwarf2out.c (gen_subprogram_die): Likewise.
28029         * haifa-sched.c (sched_create_recovery_edges): Likewise.
28030         * hw-doloop.c (reorg_loops): Likewise.
28031         * varasm.c (assemble_start_function,
28032         assemble_end_function): Likewise.
28033         (decide_function_section): Do not check for
28034         flag_reorder_blocks_and_partition.
28035
28036 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28037
28038         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
28039         New function.
28040         (chkp_get_hard_register_fake_addr_expr): Ditto.
28041         (chkp_build_addr_expr): Add check for hard reg case.
28042         (chkp_parse_array_and_component_ref): Ditto.
28043         (chkp_find_bounds_1): Ditto.
28044         (chkp_process_stmt): Don't generate bounds store for
28045         hard reg case.
28046
28047 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28048
28049         * predict.c (maybe_hot_bb_p): Do not check profile status.
28050         (maybe_hot_edge_p): Likewise.
28051         (probably_never_executed): Check for zero counts even if profile
28052         is not read.
28053         (unlikely_executed_edge_p): New function.
28054         (unlikely_executed_stmt_p): New function.
28055         (unlikely_executed_bb_p): New function.
28056         (set_even_probabilities): Use unlikely predicates.
28057         (combine_predictions_for_bb): Likewise.
28058         (predict_paths_for_bb): Likewise.
28059         (predict_paths_leading_to_edge): Likewise.
28060         (determine_unlikely_bbs): New function.
28061         (estimate_bb_frequencies): Use it.
28062         (compute_function_frequency): Use zero counts even if profile is
28063         not read.
28064         * profile-count.h: Fix typo.
28065
28066 2017-08-08  Julia Koval  <julia.koval@intel.com>
28067
28068         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
28069         _mm512_mask_cvtsepi16_storeu_epi8,
28070         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
28071         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
28072         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
28073         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
28074         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
28075         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
28076         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
28077         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
28078         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
28079         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
28080         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
28081         __builtin_ia32_pmovuswb256mem_mask,
28082         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
28083         __builtin_ia32_pmovwb512mem_mask): New builtins.
28084
28085 2017-08-08  Julia Koval  <julia.koval@intel.com>
28086
28087         PR target/73350,80862
28088         * config/i386/subst.md (round): Fix round pattern.
28089         * config/i386/i386.c (ix86_erase_embedded_rounding):
28090         Fix erasing rounding for the fixed pattern.
28091
28092 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28093
28094         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
28095
28096 2017-06-08  Martin Liska  <mliska@suse.cz>
28097
28098         PR gcov-profile/80911
28099         * gcov.c (block_info::block_info): New constructor.
28100
28101 2017-06-07  Carl Love  <cel@us.ibm.com>
28102
28103         * config/rs6000/rs6000-c: The return type of the following
28104         built-in functions was implemented as int not long long.  Fix sign
28105         of return value for the unsigned version of vec_mulo and vec_mule.
28106         vector unsigned long long vec_bperm (vector unsigned long long,
28107                                              vector unsigned char)
28108         vector signed long long vec_mule (vector signed int,
28109                                           vector signed int)
28110         vector unsigned long long vec_mule (vector unsigned int,
28111                                             vector unsigned int)
28112         vector signed long long vec_mulo (vector signed int,
28113                                           vector signed int)
28114         vector unsigned long long vec_mulo (vector unsigned int,
28115                                             vector unsigned int)
28116         * doc/extend.texi: Fix the documentation for the built-in
28117         functions.
28118
28119 2017-06-07  Carl Love  <cel@us.ibm.com>
28120
28121         PR target/80982
28122         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
28123         for BE.
28124
28125 2017-06-07  Carl Love  <cel@us.ibm.com>
28126
28127         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
28128         support, Generate       doublehv for signed int/float for BE case only.
28129
28130 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
28131
28132         * doc/invoke.texi (mcx16): Rewrite.
28133
28134 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28135
28136         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
28137         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
28138         *mov<mode>_softfloat, and an anonymous splitter): Use
28139         nonimmediate_operand instead of rs6000_nonimmediate_operand.
28140
28141 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28142
28143         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
28144         SPEFSCR registers.
28145         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28146         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
28147         (rs6000_debug_reg_global): Adjust.
28148         (rs6000_init_hard_regno_mode_ok): Adjust.
28149         (rs6000_dbx_register_number): Adjust.
28150         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
28151         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28152         Remove SPE_ACC and SPEFSCR.
28153         (REG_ALLOC_ORDER): Ditto.
28154         (FRAME_POINTER_REGNUM): Change to 111.
28155         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
28156         (REG_CLASS_NAMES): Ditto.
28157         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
28158         (REGISTER_NAMES): Ditto.
28159         (ADDITIONAL_REG_NAMES): Ditto.
28160         (rs6000_reg_names): Ditto.
28161         * config/rs6000/rs6000.md: Renumber some register number
28162         define_constants.
28163
28164 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28165
28166         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
28167         registers.
28168         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28169         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
28170         to 117.
28171         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
28172         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28173         Delete the SPE high registers.
28174         (REG_ALLOC_ORDER): Ditto.
28175         (enum reg_class): Remove SPE_HIGH_REGS.
28176         (REG_CLASS_NAMES): Ditto.
28177         (REG_CLASS_CONTENTS): Delete the SPE high registers.
28178         (REGISTER_NAMES): Ditto.
28179         (rs6000_reg_names): Ditto.
28180         * doc/tm.texi.in: Remove SPE as example.
28181         * doc/tm.texi: Regenerate.
28182
28183 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28184
28185         * config/rs6000/8540.md (ppc8540_brinc): Delete.
28186         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
28187         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
28188         * config/rs6000/rs6000.md (type): Remove "brinc".
28189
28190 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28191
28192         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
28193         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
28194         * config/rs6000/linuxspe.h: Delete file.
28195         * config/rs6000/rs6000.md: Don't include spe.md.
28196         * config/rs6000/spe.h: Delete file.
28197         * config/rs6000/spe.md: Delete file.
28198         * config/rs6000/t-rs6000: Remove spe.md.
28199
28200 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28201
28202         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
28203         (reg_or_none500mem_operand): Delete.
28204         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
28205         instead of reg_or_none500mem_operand.
28206
28207 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28208
28209         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28210         handling of SPE flags.
28211         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
28212
28213 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28214
28215         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
28216         SPE ABI handling.
28217         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
28218         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
28219         paired_divv2sf3): Similar.
28220         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
28221         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
28222         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
28223         RS6000_BUILTIN_S.
28224         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
28225         Rename the paired_* instruction patterns.
28226         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
28227         define __SPE__.
28228         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
28229         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
28230         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
28231         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
28232         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
28233         PAIRED_VECTOR_MODE.
28234         (struct machine_function): Delete field spe_insn_chain_scanned_p.
28235         (spe_func_has_64bit_regs_p): Delete.
28236         (spe_expand_predicate_builtin): Delete.
28237         (spe_expand_evsel_builtin): Delete.
28238         (TARGET_DWARF_REGISTER_SPAN): Do not define.
28239         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
28240         (invalid_e500_subreg): Delete.
28241         (rs6000_legitimize_address): Always force_reg op2 as well, for
28242         paired single memory accesses.
28243         (rs6000_member_type_forces_blk): Delete.
28244         (rs6000_spe_function_arg): Delete.
28245         (rs6000_expand_unop_builtin): Delete SPE handling.
28246         (rs6000_expand_binop_builtin): Ditto.
28247         (spe_expand_stv_builtin): Delete.
28248         (bdesc_2arg_spe): Delete.
28249         (spe_expand_builtin): Delete.
28250         (spe_expand_predicate_builtin): Delete.
28251         (spe_expand_evsel_builtin): Delete.
28252         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
28253         (spe_init_builtins): Delete.
28254         (spe_func_has_64bit_regs_p): Delete.
28255         (savres_routine_name): Delete "info" parameter.  Adjust callers.
28256         (rs6000_emit_stack_reset): Ditto.
28257         (rs6000_dwarf_register_span): Delete.
28258         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
28259         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
28260         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
28261         Delete.
28262         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
28263         Delete.
28264         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
28265         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
28266         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
28267         mulv2sf3, divv2sf3): Delete expanders.
28268
28269 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28270
28271         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
28272
28273 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28274
28275         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
28276         * config/rs6000/rs6000.c: Ditto.
28277
28278 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28279
28280         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
28281         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
28282         comparison_operator.
28283
28284 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28285
28286         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
28287         * config/rs6000/rs6000.opt: Ditto.
28288         * config/rs6000/t-rtems: Ditto.
28289
28290 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28291
28292         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
28293         TARGET_E500_SINGLE by 0, simplify.
28294         * config/rs6000/rs6000.c: Ditto.
28295         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
28296         (spe_build_register_parallel): Delete.
28297         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
28298         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
28299         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
28300         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
28301         (E500_CONVERT): Delete.
28302         * config/rs6000/spe.md: Remove many patterns and all define_constants.
28303
28304 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28305
28306         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
28307         * config/rs6000/dfp.md: Ditto.
28308         (negdd2, *negdd2_fpr): Merge.
28309         (absdd2, *absdd2_fpr): Merge.
28310         (negtd2, *negtd2_fpr): Merge.
28311         (abstd2, *abstd2_fpr): Merge.
28312         * config/rs6000/e500.h: Delete file.
28313         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
28314         TARGET_FPRS by 1 and simplify.
28315         * config/rs6000/rs6000-c.c: Ditto.
28316         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
28317         TARGET_DF_SPE by 0.
28318         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
28319         TARGET_DF_SPE.
28320         * config/rs6000/rs6000.md: Ditto.
28321         (floatdidf2, *floatdidf2_fpr): Merge.
28322         (move_from_CR_gt_bit): Delete.
28323         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
28324         (E500_CR_IOR_COMPARE): Delete.
28325         (All patterns that require !TARGET_FPRS): Delete.
28326         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
28327
28328 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28329
28330         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
28331
28332 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28333
28334         * graphds.c (add_edge): Intitialize edge's attached data.
28335         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
28336         pointer parameter.  Call pointed function on each edge during
28337         graph traversing.  Skip traversing the edge when the function
28338         returns true.
28339         (graphds_dfs, graphds_scc): Ditto.
28340         (for_each_edge): New parameter.  Pass the new parameter to callback
28341         function.
28342         * graphds.h (skip_edge_callback): New function pointer type.
28343         (graphds_dfs, graphds_scc): New function pointer parameter.
28344         (graphds_edge_callback, for_each_edge): New parameter.
28345
28346 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28347
28348         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
28349         out code checking if runtime alias check is possible to below ...
28350         Call the new function.
28351         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
28352         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
28353
28354 2017-06-07  Marek Polacek  <polacek@redhat.com>
28355
28356         PR sanitizer/80932
28357         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
28358         TYPE_OVERFLOW_WRAPS check.
28359
28360 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28361
28362         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
28363         if versioning is required.
28364         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
28365         peeling with the check for versioning.
28366
28367 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28368
28369         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
28370         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
28371         Set true to new parameter if new ssa variable is defined.
28372         (vect_gen_vector_loop_niters): Refactor.  Set range information
28373         for the new vector loop bound variable.
28374         (vect_do_peeling): Ditto.
28375
28376 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28377
28378         * tree-affine.c (ssa.h): Include header file.
28379         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
28380         has wrapping overflow behavior.
28381
28382 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28383
28384         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
28385
28386 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28387
28388         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
28389         (tree_to_aff_combination): ... here.
28390
28391 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28392
28393         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
28394         reg_pressure model function.
28395         (ivopts_global_cost_for_size): Delete.
28396         (determine_set_costs, iv_ca_recount_cost): Call new model function
28397         ivopts_estimate_reg_pressure.
28398
28399 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28400
28401         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
28402         expensive than udiv.  Remove floating point cases from mod.
28403
28404 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28405
28406         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
28407         Increase idiv cost.
28408
28409 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28410
28411         * config/aarch64/aarch64.md
28412         (copysignsf3): Fix mask generation.
28413
28414 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
28415
28416         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
28417         TDI_gimple.
28418         (class dump_manager): Add register_dumps method.
28419         * dumpfile.c: Include langhooks.h.
28420         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
28421         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
28422         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
28423         (dump_manager::dump_register): Start with 512 entries instead of 32.
28424         (dump_manager::register_dumps): New method.
28425         * toplev.c (general_init): Instead of invoking register_dumps
28426         langhook, invoke register_dumps method on the dump manager.
28427         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
28428         TDI_generic.
28429
28430 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
28431
28432         * doc/md.texi: Clarify the restrictions on a define_insn condition.
28433         Say that # requires an associated define_split to exist, and that
28434         the define_split must be suitable for use after register allocation.
28435
28436 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28437
28438         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
28439         (compute_outgoing_frequencies): Also initialize zero counts.
28440         (find_many_sub_basic_blocks): Do not produce uninitialized profile
28441         around loops; preserve more of profile when nothing changes.
28442
28443 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
28444
28445         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
28446         here.
28447         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
28448         * config/arm/arm-cpu-cdata.h: Regenerate.
28449         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
28450         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
28451         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
28452         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
28453         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
28454         support.
28455         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
28456         support.
28457         * config/arm/t-rmprofile: Likewise.
28458         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
28459
28460 2017-06-06  David S. Miller  <davem@davemloft.net>
28461
28462         PR target/80968
28463         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
28464         blockage if function uses alloca.
28465
28466 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28467
28468         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
28469         New "uid" fields to hold pretty-print IDs of group and ref.
28470         Memory references are now identified as <group_id>:<ref_id>
28471         instead of using [random] addresses.
28472         (dump_mem_details): Simplify, no functional change.
28473         (dump_mem_ref): Simplify and make output more concise.
28474         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
28475         (find_or_create_group): Initialize group uid.
28476         (record_ref): Initialize ref uid.  Improve debug output.
28477         (prune_group_by_reuse, should_issue_prefetch_p,)
28478         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
28479         (mark_nontemporal_store, determine_loop_nest_reuse):
28480         Improve debug output.
28481
28482 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28483
28484         * dbgcnt.def (prefetch): New debug counter.
28485         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
28486         (schedule_prefetches): Stop issueing prefetches if debug counter
28487         tripped.
28488
28489 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28490
28491         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
28492         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
28493
28494 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28495
28496         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
28497         Use aarch64_reg_or_zero predicate for operand 4.
28498         (aarch64_compare_and_swap<mode> define_insn_and_split):
28499         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
28500         (aarch64_store_exclusive<mode>): Likewise for operand 2.
28501
28502 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28503
28504         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
28505         (arm_compute_save_core_reg_mask): This.
28506         (thumb1_compute_save_reg_mask): Rename into ...
28507         (thumb1_compute_save_core_reg_mask): This.
28508         (arm_compute_save_reg0_reg12_mask): Adapt comment.
28509         (arm_compute_frame_layout): Likewise.
28510
28511 2017-06-06  Richard Biener  <rguenther@suse.de>
28512
28513         PR tree-optimization/80974
28514         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
28515         keep or clear leaders SSA info.
28516
28517 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28518
28519         * config/nvptx/nvptx.c (split_mode_p): New function.
28520         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
28521
28522 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28523
28524         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
28525
28526 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28527
28528         PR bootstrap/80978
28529         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
28530         profile.
28531
28532 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28533
28534         * shrink-wrap.c (handle_simple_exit): Update profile.
28535         (try_shrink_wrapping): Upate profile.
28536
28537 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28538
28539         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
28540         (tree_guess_outgoing_edge_probabilities): New.
28541         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
28542         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
28543
28544 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28545
28546         * ipa-split.c (split_function): Initialize return bb profile.
28547
28548 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28549
28550         * profile.c (compute_branch_probabilities): Also initialize
28551         EXIT_BLOCK profile.
28552
28553 2017-06-06  Richard Biener  <rguenther@suse.de>
28554
28555         PR tree-optimization/80928
28556         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
28557         (vect_analyze_loop_operations): Properly guard analysis for
28558         pure SLP case.
28559         (vect_transform_loop): Likewise.
28560         (vect_analyze_loop_2): Also reset SLP type on PHIs.
28561         (vect_model_induction_cost): Do not cost for pure SLP.
28562         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
28563         of induction in inner loop vectorization.
28564         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
28565         (vect_get_and_check_slp_defs): Handle vect_induction_def.
28566         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
28567         recursion.
28568         (vect_analyze_slp_cost_1): Cost induction.
28569         (vect_detect_hybrid_slp_stmts): Handle PHIs.
28570         (vect_get_slp_vect_defs): Likewise.
28571         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
28572         (vect_transform_stmt): Handle SLP reductions.
28573         * tree-vectorizer.h (vectorizable_induction): Adjust.
28574
28575 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28576
28577         * config/rs6000/rs6000.c (make_resolver_func): Update
28578         init_lowered_empty_function call.
28579
28580 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28581
28582         * doc/invoke.texi: Document the -fprofile-abs-path option.
28583         * common.opt (fprofile-abs-path): New option.
28584         * gcov-io.h (gcov_write_filename): Declare.
28585         * gcov-io.c (gcov_write_filename): New function.
28586         * coverage.c (coverage_begin_function): Use gcov_write_filename.
28587         * profile.c (output_location): Likewise.
28588
28589 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28590
28591         * shring-wrap.c: Revert accidental commit.
28592
28593 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
28594
28595         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
28596
28597 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28598
28599         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
28600         new edge.
28601         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
28602         profile in callgraph edge.
28603         * profile-count.h (apply_probability): If THIS is 0, then result is 0
28604         (apply_scale): Likewise.
28605         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
28606         Also scale profile when inlining function with zero profile.
28607         (initialize_cfun): Update exit block profile even when it is zero.
28608         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
28609         when profile is read.
28610
28611 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28612
28613         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
28614         (CLONE_*): New constants to define the processors we can generate
28615         code for with the target_clone attribute.
28616         (rs6000_clone_map): New array to identify which clone processors
28617         the current program is running on.
28618         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
28619         target_clone attribute.
28620         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
28621         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
28622         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
28623         (cpu_expand_builtin): Add support for target_clone attribute.
28624         (rs6000_valid_attribute_p): Allow "default" attribute.
28625         (get_decl_name): New debug function to simplify printing the
28626         current function name in debugging statements.
28627         (rs6000_clone_priority): New functions to support the target_clone
28628         attribute, and be able to generate code to switch between ISA 2.05
28629         through ISA 3.0 (power6 through power9).
28630         (rs6000_compare_version_priority): Likewise.
28631         (rs6000_get_function_versions_dispatcher): Likewise.
28632         (make_resolver_func): Likewise.
28633         (add_condition_to_bb): Likewise.
28634         (dispatch_function_versions): Likewise.
28635         (rs6000_generate_version_dispatcher_body): Likewise.
28636         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
28637         (fusion_gpr_load_p): Fix a spacing issue.
28638         * doc/extend.texi (Common Function Attributes): Document that the
28639         PowerPC supports the target_clone attribute.
28640
28641 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28642
28643         * config/arm/arm.h: explain F symbol found in description of ARM
28644         register allocation in its legend.
28645
28646 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28647
28648         * config/mips/frame-header-opt.c: Include profile-count.h.
28649         * config/riscv/riscv.c: Include profile-count.h
28650
28651 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28652
28653         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
28654         update profile.
28655         (sm_set_flag_if_changed): Add bbs field.
28656         (execute_sm_if_changed_flag_set): Pass BBS.
28657         (execute_sm): Update.
28658
28659 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28660
28661         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
28662         New pattern.
28663
28664 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28665
28666         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
28667         (peephole2): New peephole2 to emit the above.
28668         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
28669
28670 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28671
28672         * config/aarch64/aarch64.c (define_peephole2 above
28673         *sub_<shift>_<mode>): New peephole.
28674
28675 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28676
28677         * config/i386/i386.c (make_resolver_func): Update.
28678         * Makefile.in: Add profile-count.h and profile-count.o
28679         * auto-profile.c (afdo_indirect_call): Update to new API.
28680         (afdo_set_bb_count): Update.
28681         (afdo_propagate_edge): Update.
28682         (afdo_propagate_circuit): Update.
28683         (afdo_calculate_branch_prob): Update.
28684         (afdo_annotate_cfg): Update.
28685         * basic-block.h: Include profile-count.h
28686         (struct edge_def): Turn count to profile_count.
28687         (struct basic_block_def): Likewie.
28688         (REG_BR_PROB_BASE): Move to profile-count.h
28689         (RDIV): Move to profile-count.h
28690         * bb-reorder.c (max_entry_count): Turn to profile_count.
28691         (find_traces): Update.
28692         (rotate_loop):Update.
28693         (connect_traces):Update.
28694         (sanitize_hot_paths):Update.
28695         * bt-load.c (migrate_btr_defs): Update.
28696         * cfg.c (RDIV): Remove.
28697         (init_flow): Use alloc_block.
28698         (alloc_block): Uninitialize count.
28699         (unchecked_make_edge): Uninitialize count.
28700         (check_bb_profile): Update.
28701         (dump_edge_info): Update.
28702         (dump_bb_info): Update.
28703         (update_bb_profile_for_threading): Update.
28704         (scale_bbs_frequencies_int): Update.
28705         (scale_bbs_frequencies_gcov_type): Update.
28706         (scale_bbs_frequencies_profile_count): New.
28707         * cfg.h (update_bb_profile_for_threading): Update.
28708         (scale_bbs_frequencies_profile_count): Declare.
28709         * cfgbuild.c (compute_outgoing_frequencies): Update.
28710         (find_many_sub_basic_blocks): Update.
28711         * cfgcleanup.c (try_forward_edges): Update.
28712         (try_crossjump_to_edge): Update.
28713         * cfgexpand.c (expand_gimple_tailcall): Update.
28714         (construct_exit_block): Update.
28715         * cfghooks.c (verify_flow_info): Update.
28716         (dump_bb_for_graph): Update.
28717         (split_edge): Update.
28718         (make_forwarder_block): Update.
28719         (duplicate_block): Update.
28720         (account_profile_record): Update.
28721         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
28722         (get_estimated_loop_iterations): Update.
28723         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
28724         (single_likely_exit): Update.
28725         * cfgloopmanip.c (scale_loop_profile): Update.
28726         (loopify): Update.
28727         (set_zero_probability): Update.
28728         (lv_adjust_loop_entry_edge): Update.
28729         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
28730         (purge_dead_edges): Update.
28731         (rtl_account_profile_record): Update.
28732         * cgraph.c (cgraph_node::create): Uninitialize count.
28733         (symbol_table::create_edge): Uninitialize count.
28734         (cgraph_update_edges_for_call_stmt_node): Update.
28735         (cgraph_edge::dump_edge_flags): Update.
28736         (cgraph_node::dump): Update.
28737         (cgraph_edge::maybe_hot_p): Update.
28738         * cgraph.h: Include profile-count.h
28739         (create_clone), create_edge, create_indirect_edge): Update.
28740         (cgraph_node): Turn count to profile_count.
28741         (cgraph_edge0: Likewise.
28742         (make_speculative, clone): Update.
28743         (create_edge): Update.
28744         (init_lowered_empty_function): Update.
28745         * cgraphclones.c (cgraph_edge::clone): Update.
28746         (duplicate_thunk_for_node): Update.
28747         (cgraph_node::create_clone): Update.
28748         * cgraphunit.c (cgraph_node::analyze): Update.
28749         (cgraph_node::expand_thunk): Update.
28750         * final.c (dump_basic_block_info): Update.
28751         * gimple-streamer-in.c (input_bb): Update.
28752         * gimple-streamer-out.c (output_bb): Update.
28753         * graphite.c (print_global_statistics): Update.
28754         (print_graphite_scop_statistics): Update.
28755         * hsa-brig.c: Include basic-block.h.
28756         * hsa-dump.c: Include basic-block.h.
28757         * hsa-gen.c (T sum_slice): Update.
28758         (convert_switch_statements):Update.
28759         * hsa-regalloc.c: Include basic-block.h.
28760         * ipa-chkp.c (chkp_produce_thunks): Update.
28761         * ipa-cp.c (struct caller_statistics): Update.
28762         (init_caller_stats): Update.
28763         (gather_caller_stats): Update.
28764         (ipcp_cloning_candidate_p): Update.
28765         (good_cloning_opportunity_p): Update.
28766         (get_info_about_necessary_edges): Update.
28767         (dump_profile_updates): Update.
28768         (update_profiling_info): Update.
28769         (update_specialized_profile): Update.
28770         (perhaps_add_new_callers): Update.
28771         (decide_about_value): Update.
28772         (ipa_cp_c_finalize): Update.
28773         * ipa-devirt.c (struct odr_type_warn_count): Update.
28774         (struct decl_warn_count): Update.
28775         (struct final_warning_record): Update.
28776         (possible_polymorphic_call_targets): Update.
28777         (ipa_devirt): Update.
28778         * ipa-fnsummary.c (redirect_to_unreachable): Update.
28779         * ipa-icf.c (sem_function::merge): Update.
28780         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
28781         * ipa-inline.c (compute_uninlined_call_time): Update.
28782         (compute_inlined_call_time): Update.
28783         (want_inline_small_function_p): Update.
28784         (want_inline_self_recursive_call_p): Update.
28785         (edge_badness): Update.
28786         (lookup_recursive_calls): Update.
28787         (recursive_inlining): Update.
28788         (inline_small_functions): Update.
28789         (dump_overall_stats): Update.
28790         (dump_inline_stats): Update.
28791         * ipa-profile.c (ipa_profile_generate_summary): Update.
28792         (ipa_propagate_frequency): Update.
28793         (ipa_profile): Update.
28794         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28795         * ipa-utils.c (ipa_merge_profiles): Update.
28796         * loop-doloop.c (doloop_modify): Update.
28797         * loop-unroll.c (report_unroll): Update.
28798         (unroll_loop_runtime_iterations): Update.
28799         * lto-cgraph.c (lto_output_edge): Update.
28800         (lto_output_node): Update.
28801         (input_node): Update.
28802         (input_edge): Update.
28803         (merge_profile_summaries): Update.
28804         * lto-streamer-in.c (input_cfg): Update.
28805         * lto-streamer-out.c (output_cfg): Update.
28806         * mcf.c (create_fixup_graph): Update.
28807         (adjust_cfg_counts): Update.
28808         (sum_edge_counts): Update.
28809         * modulo-sched.c (sms_schedule): Update.
28810         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
28811         * predict.c (maybe_hot_count_p): Update.
28812         (probably_never_executed): Update.
28813         (dump_prediction): Update.
28814         (combine_predictions_for_bb): Update.
28815         (propagate_freq): Update.
28816         (handle_missing_profiles): Update.
28817         (counts_to_freqs): Update.
28818         (rebuild_frequencies): Update.
28819         (force_edge_cold): Update.
28820         * predict.h: Include profile-count.h
28821         (maybe_hot_count_p, counts_to_freqs): UPdate.
28822         * print-rtl-function.c: Do not include cfg.h
28823         * print-rtl.c: Include basic-block.h
28824         * profile-count.c: New file.
28825         * profile-count.h: New file.
28826         * profile.c (is_edge_inconsistent): Update.
28827         (correct_negative_edge_counts): Update.
28828         (is_inconsistent): Update.
28829         (set_bb_counts): Update.
28830         (read_profile_edge_counts): Update.
28831         (compute_frequency_overlap): Update.
28832         (compute_branch_probabilities): Update; Initialize and deinitialize
28833         gcov_count tables.
28834         (branch_prob): Update.
28835         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
28836         (edge_gcov_count): New.
28837         (bb_gcov_count): New.
28838         * shrink-wrap.c (try_shrink_wrapping): Update.
28839         * tracer.c (better_p): Update.
28840         * trans-mem.c (expand_transaction): Update.
28841         (ipa_tm_insert_irr_call): Update.
28842         (ipa_tm_insert_gettmclone_call): Update.
28843         * tree-call-cdce.c: Update.
28844         * tree-cfg.c (gimple_duplicate_sese_region): Update.
28845         (gimple_duplicate_sese_tail): Update.
28846         (gimple_account_profile_record): Update.
28847         (execute_fixup_cfg): Update.
28848         * tree-inline.c (copy_bb): Update.
28849         (copy_edges_for_bb): Update.
28850         (initialize_cfun): Update.
28851         (freqs_to_counts): Update.
28852         (copy_cfg_body): Update.
28853         (expand_call_inline): Update.
28854         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
28855         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
28856         (try_unroll_loop_completely): Update.
28857         (try_peel_loop): Update.
28858         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
28859         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
28860         * tree-ssa-loop-split.c (connect_loops): Update.
28861         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
28862         * tree-ssa-reassoc.c (branch_fixup): Update.
28863         * tree-ssa-tail-merge.c (replace_block_by): Update.
28864         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
28865         (compute_path_counts): Update.
28866         (update_profile): Update.
28867         (recompute_probabilities): Update.
28868         (update_joiner_offpath_counts): Update.
28869         (estimated_freqs_path): Update.
28870         (freqs_to_counts_path): Update.
28871         (clear_counts_path): Update.
28872         (ssa_fix_duplicate_block_edges): Update.
28873         (duplicate_thread_path): Update.
28874         * tree-switch-conversion.c (case_bit_test_cmp): Update.
28875         (struct switch_conv_info): Update.
28876         * tree-tailcall.c (decrease_profile): Update.
28877         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
28878         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
28879         * value-prof.c (check_counter): Update.
28880         (gimple_divmod_fixed_value): Update.
28881         (gimple_mod_pow2): Update.
28882         (gimple_mod_subtract): Update.
28883         (gimple_ic_transform): Update.
28884         (gimple_stringop_fixed_value): Update.
28885         * value-prof.h (gimple_ic): Update.
28886
28887 2017-06-02  Carl Love  <cel@us.ibm.com>
28888
28889         * config/rs6000/rs6000-c: Add support for built-in functions
28890         vector double vec_doublee (vector signed int);
28891         vector double vec_doublee (vector unsigned int);
28892         vector double vec_doublee (vector float);
28893         vector double vec_doubleh (vector signed int);
28894         vector double vec_doubleh (vector unsigned int);
28895         vector double vec_doubleh (vector float);
28896         vector double vec_doublel (vector signed int);
28897         vector double vec_doublel (vector unsigned int);
28898         vector double vec_doublel (vector float);
28899         vector double vec_doubleo (vector signed int);
28900         vector double vec_doubleo (vector unsigned int);
28901         vector double vec_doubleo (vector float);.
28902         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
28903         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
28904         UNS_DOUBLEL.
28905         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
28906         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
28907         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
28908         VS_sxwsp.
28909         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
28910         vec_doublel, vec_doubleh.
28911         * doc/extend.texi: Update the built-in documentation file for the
28912         new built-in functions.
28913
28914 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
28915
28916         PR jit/80954
28917         * ipa-inline-analysis.c (free_growth_caches): Set
28918         edge_removal_hook_holder to NULL after removing it.
28919
28920 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
28921
28922         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
28923         comparision with zero.
28924
28925 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28926         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28927         for early expansion of vec_min and vec_max builtins.
28928         (builtin_function_type): Add min/max unsigned variants to those
28929         identified as having unsigned arguments.
28930
28931 2017-06-02  Olivier Hainque  <hainque@adacore.com>
28932
28933         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
28934
28935 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28936
28937         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
28938         Use VALL_F16 iterator rather than VALL.
28939
28940 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28941
28942         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
28943         Emit CBNZ inside loop when doing a strong exchange and comparing
28944         against zero.  Generate the CC flags after the loop.
28945
28946 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
28947
28948         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
28949         (dl_section_ref): New.
28950         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
28951         On AIX, append an expression to subtract the size of the
28952         section length to dl_section_ref.
28953
28954 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28955
28956         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28957         for early expansion of vector absolute builtins.
28958
28959 2017-06-02  Richard Biener  <rguenther@suse.de>
28960
28961         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
28962         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
28963
28964 2017-06-02  Richard Biener  <rguenther@suse.de>
28965
28966         PR tree-optimization/80948
28967         * tree-tailcall.c (find_tail_calls): Track stmts to move in
28968         stmt order as well.
28969
28970 2017-06-02  Richard Biener  <rguenther@suse.de>
28971
28972         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
28973         PHIs are ok.
28974         * tree-vect-stmts.c (process_use): Do not mark backedge defs
28975         for inductions as relevant.
28976
28977 2017-06-02  Richard Biener  <rguenther@suse.de>
28978
28979         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
28980         (vectorizable_induction): ... this.  Remove dead code.
28981
28982 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
28983
28984         * builtins. (expand_builtin_alloca): Remove second parameter and
28985         infer its value from the first parameter instead.
28986         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
28987
28988 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
28989
28990         PR rtl-optimization/80903
28991         * loop-doloop.c (add_test): Unshare sequence.
28992
28993 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28994
28995         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
28996
28997 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28998
28999         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
29000         static.
29001         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
29002         xlogue_layout::get_instance, logue_layout::xlogue_layout,
29003         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
29004         (xlogue_layout::get_stub_rtx): Make static.
29005         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
29006         (xlogue_layout::compute_stub_managed_regs): Rename to...
29007         (xlogue_layout::count_stub_managed_regs): ...this.
29008         (xlogue_layout::is_stub_managed_reg): New function.
29009         (xlogue_layout::m_stub_names): Rename to...
29010         (xlogue_layout::s_stub_names): ...this, make static.
29011         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
29012         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
29013         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
29014         xlogue_layout::s_stub_names): Instantiate statics.
29015         (stub_managed_regs): Remove.
29016         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
29017         (disable_call_ms2sysv_xlogues): Rename to...
29018         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
29019         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
29020         warning logic.
29021         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
29022         change after reload_completed.
29023         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
29024         directly.
29025         (ix86_expand_prologue): Likewise.
29026         (ix86_expand_epilogue): Likewise.
29027         (ix86_expand_split_stack_prologue): Likewise.
29028         (ix86_compute_frame_layout): Remove frame parameter ...
29029         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
29030         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
29031         only if necessary.
29032         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
29033         (ix86_frame): Move from here ...
29034         * config/i386/i386.h (ix86_frame): ... to here.
29035         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
29036         complete ix86_frame data structure instead.  Remove some_ld_name.
29037
29038 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29039
29040         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
29041         symbols that hold a DECL_VALUE_EXPR.
29042
29043 2017-06-01  Martin Jambor  <mjambor@suse.cz>
29044
29045         PR tree-optimization/80898
29046         * tree-sra.c (process_subtree_disqualification): Removed.
29047         (disqualify_candidate): Do not acll
29048         process_subtree_disqualification.
29049         (subtree_mark_written_and_enqueue): New function.
29050         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
29051         RHS has been disqualified and re-queue LHS if necessary.  Apart
29052         from that, ignore disqualified RHS.
29053
29054 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29055
29056         * config/s390/s390.c (s390_emit_epilogue): Disable early return
29057         address fetch for z10 or later.
29058
29059 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29060
29061         * config/arc/arc.md (tst_movb): Add guard when splitting.
29062
29063 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29064
29065         * config/arc/arc.c (arc_can_eliminate): Test against
29066         arc_frame_pointer_needed.
29067
29068 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29069
29070         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
29071         to prevent store reordering.
29072         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
29073         (type): Add block type.
29074         (stack_tie): Define special instruction to be used in
29075         expand_prologue.
29076
29077 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29078
29079         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
29080         constraint. It is not valid for the pattern.
29081         (noncommutative_binary_comparison): Likewise.
29082
29083 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29084
29085         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
29086         scaled addresses.
29087
29088 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29089
29090         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
29091         be used by the reg-alloc.
29092
29093 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29094
29095         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
29096         reg-alloc when having mul64 or mul32x16 instructions.
29097         (mulsidi3): Likewise.
29098         (umulsidi3): Likewise.
29099         (mulsi32x16): New pattern.
29100         (mulsi64): Likewise.
29101         (mulsidi64): Likewise.
29102         (umulsidi64): Likewise.
29103         (MUL32x16_REG): Define.
29104         (mul64_600): Use MUL32x16_REG.
29105         (mac64_600): Likewise.
29106         (umul64_600): Likewise.
29107         (umac64_600): Likewise.
29108
29109 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29110
29111         * config/arc/arc.md (mulsi3_700): Make it commutative.
29112
29113 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
29114
29115         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
29116         type for movstouw.
29117         (*sign_extendsidi2_insn): Likewise for movstosw.
29118
29119 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29120
29121         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
29122         the type of the input discriminant value.  Convert the
29123         discriminant value of signedness vary.
29124
29125 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
29126
29127         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
29128         Add to -Wall section.
29129
29130 2017-06-01  Richard Biener  <rguenther@suse.de>
29131
29132         PR middle-end/66313
29133         * fold-const.c (fold_plusminus_mult_expr): If the factored
29134         factor may be zero use a wrapping type for the inner operation.
29135         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
29136         and handle moved defs.
29137         (process_assignment): Properly guard the unary op case.  Return a
29138         tri-state indicating that moving the stmt before the call may allow
29139         to continue.  Pass through to_move.
29140         (find_tail_calls): Handle moving unrelated defs before
29141         the call.
29142
29143 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
29144
29145         PR target/80618
29146         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
29147         splitter result in the canonical way.
29148
29149 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
29150
29151         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
29152         also for 32bit target.  Update insn attributes.
29153         (zero-extendsidi2 splitter): Allow all registers for operand 1.
29154
29155 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
29156
29157         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
29158         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
29159         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
29160         (_mm_maskz_min_ss): New intrinsics.
29161
29162 2017-05-31  Martin Liska  <mliska@suse.cz>
29163
29164         * tree-vect-loop.c (vect_create_epilog_for_reduction):
29165         Change comment style to one we normally use.
29166         (vectorizable_reduction): Likewise.
29167         (vectorizable_induction): Likewise.
29168         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
29169         (vectorizable_call): Likewise.
29170         (vectorizable_simd_clone_call): Likewise.
29171         (vectorizable_conversion): Likewise.
29172         (vectorizable_assignment): Likewise.
29173         (vectorizable_shift): Likewise.
29174         (vectorizable_operation): Likewise.
29175         (vectorizable_store): Likewise.
29176         (vectorizable_load): Likewise.
29177         * tree-vectorizer.h: Likewise.
29178
29179 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
29180
29181         * passes.c (emergency_dump_function): New.
29182         * tree-pass.h (emergency_dump_function): Declare.
29183         * plugin.c (plugins_internal_error_function): Remove.
29184         * plugin.h (plugins_internal_error_function): Remove declaration.
29185         * toplev.c (internal_error_function): New static function.  Use it...
29186         (general_init): ...here.
29187
29188 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
29189
29190         * config/arc/arc.c (arc_print_operand): Handle constant operands.
29191         (arc_rtx_costs): Add costs for new patterns.
29192         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
29193         * config/arc/predicates.md: Add _1_2_3_operand predicate.
29194
29195 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29196
29197         * tree-ssa-strlen.c (get_next_strinfo): New function.
29198         (get_stridx_plus_constant): Use it.
29199         (zero_length_string): Likewise.
29200         (adjust_related_strinfos): Likewise.
29201         (adjust_last_stmt): Likewise.
29202
29203 2017-05-31  Richard Biener  <rguenther@suse.de>
29204
29205         PR target/80880
29206         * config/i386/i386.c (ix86_expand_builtin): Remove assert
29207         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
29208
29209 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29210
29211         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
29212         loop_vinfo argument and use of dependence distance vectors.
29213         Check instead whether the two references differ only in their
29214         initial value and assume that they have the same alignment if the
29215         difference is a multiple of the vector alignment.
29216         (vect_analyze_data_refs_alignment): Update call accordingly.
29217
29218 2017-05-31  Martin Liska  <mliska@suse.cz>
29219
29220         PR target/79155
29221         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
29222
29223 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29224
29225         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
29226         (create_intersect_range_checks): Move from ...
29227         * tree-data-ref.c (create_intersect_range_checks_index)
29228         (create_intersect_range_checks): ... to here.
29229         (create_runtime_alias_checks): New function factored from ...
29230         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
29231         here.  Call above function.
29232         * tree-data-ref.h (create_runtime_alias_checks): New function.
29233
29234 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29235
29236         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
29237         segment length for dr_b and compute it in wide_int.
29238
29239 2017-05-31  Richard Biener  <rguenther@suse.de>
29240
29241         PR tree-optimization/80906
29242         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
29243         and pass through iv_map.
29244         (copy_bb_and_scalar_dependences): Adjust.
29245         (translate_pending_phi_nodes): Likewise.
29246         (copy_loop_close_phi_args): Handle code-generating IVs instead
29247         of ICEing.
29248
29249 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
29250
29251         * diagnostic-color.c (color_dict): Add "type-diff".
29252         (parse_gcc_colors): Update comment.
29253         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
29254         -fdiagnostics-show-template-tree and -fno-elide-type.
29255         (GCC_COLORS): Add type-diff to example.
29256         (type-diff=): New.
29257         (-fdiagnostics-show-template-tree): New.
29258         (-fno-elide-type): New.
29259         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
29260         the pp_format_decoder callback.  Call any m_format_postprocessor's
29261         "handle" method.
29262         (pretty_printer::pretty_printer): Initialize
29263         m_format_postprocessor.
29264         (pretty_printer::~pretty_printer): Delete any
29265         m_format_postprocessor.
29266         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
29267         (class format_postprocessor): New class.
29268         (struct pretty_printer::format_decoder): Document the new parameters.
29269         (struct pretty_printer::m_format_postprocessor): New field.
29270         * tree-diagnostic.c (default_tree_printer): Update for new
29271         bool and const char ** params.
29272         * tree-diagnostic.h (default_tree_printer): Likewise.
29273
29274 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
29275
29276         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
29277         (lwa_operand): Delete rs6000_gen_cell_microcode test.
29278         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
29279         rs6000_gen_cell_microcode code.
29280         (rs6000_final_prescan_insn): Delete.
29281         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
29282         "warn-cell-microcode" entries.
29283         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
29284         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
29285         throughout.  Change cc_reg_not_micro_cr0_operand to
29286         cc_reg_not_cr0_operand throughout.
29287         (*extendhi<mode>2_noload): Delete.
29288         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
29289         (mwarn-cell-microcode): Delete.
29290         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
29291         -mgen-cell-microcode and -mwarn-cell-microcode.
29292
29293 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
29294
29295         PR target/80833
29296         * config/i386/constraints.md (Yd): New constraint.
29297         (Ye): Ditto.
29298         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
29299         and (?Yd, r) alternatives.  Update insn attributes.
29300         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
29301         and (?*Yd, r) alternatives.  Update insn attributes.
29302         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
29303
29304 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
29305
29306         * gimplify.c (gimplify_modify_expr): Don't create a
29307         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
29308         function.
29309
29310 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
29311
29312         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
29313
29314 2017-05-30  Richard Biener  <rguenther@suse.de>
29315
29316         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
29317         and reduc_def fields.
29318         (STMT_VINFO_REDUC_TYPE): New define.
29319         (STMT_VINFO_REDUC_DEF): Likewise.
29320         (vect_force_simple_reduction): Adjust prototype.
29321         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
29322         (vect_is_simple_reduction): Remove check_reduction argument.
29323         (vect_force_simple_reduction): Adjust and set
29324         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29325         (vectorizable_reduction): Do not re-do reduction analysis
29326         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29327         * tree-parloops.c (gather_scalar_reductions): Adjust.
29328
29329 2017-05-30  Richard Biener  <rguenther@suse.de>
29330
29331         PR middle-end/80901
29332         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
29333         split_edge code.
29334
29335 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29336
29337         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
29338         Introduce unknown_misalignment parameter and remove vf.
29339         (vect_peeling_hash_get_lowest_cost):
29340         Pass unknown_misalignment parameter.
29341         (vect_enhance_data_refs_alignment):
29342         Fix unsupportable data ref treatment.
29343
29344 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29345
29346         * tree-vect-data-refs.c (vect_get_data_access_cost):
29347         Workaround for SLP handling.
29348         (vect_enhance_data_refs_alignment):
29349         Compute costs for doing no peeling at all, compare to the best
29350         peeling costs so far and avoid peeling if cheaper.
29351
29352 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29353
29354         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
29355         Return peeling info and set costs to zero for unlimited cost
29356         model.
29357         (vect_enhance_data_refs_alignment): Also inspect all datarefs
29358         with unknown misalignment. Compute and costs for unknown
29359         misalignment, compare them to the costs for known misalignment
29360         and choose the cheapest for peeling.
29361
29362 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29363
29364         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
29365         (vect_get_peeling_costs_all_drs): Create function.
29366         (vect_peeling_hash_get_lowest_cost):
29367         Use vect_get_peeling_costs_all_drs.
29368         (vect_peeling_supportable): Create function.
29369         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
29370
29371 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29372
29373         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
29374         DR_HAS_NEGATIVE_STEP.
29375         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
29376         (vect_enhance_data_refs_alignment): Use.
29377         (vect_duplicate_ssa_name_ptr_info): Use.
29378         * tree-vectorizer.h (dr_misalignment): Use.
29379         (known_alignment_for_access_p): Use.
29380
29381 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
29382
29383         PR target/78838
29384         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
29385         .lowtext.
29386         (has_section_name): New function.
29387
29388 2017-05-30  Martin Liska  <mliska@suse.cz>
29389
29390         PR other/80909
29391         * auto-profile.c (get_function_decl_from_block): Fix
29392         parenthesis.
29393
29394 2017-05-30  Richard Biener  <rguenther@suse.de>
29395
29396         PR middle-end/80876
29397         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
29398
29399 2017-05-30  Martin Liska  <mliska@suse.cz>
29400
29401         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
29402         * dumpfile.h (struct dump_file_info): Remove ctors.
29403
29404 2017-05-30  Martin Liska  <mliska@suse.cz>
29405
29406         * predict.def: Fix GNU coding style.
29407
29408 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29409
29410         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
29411         Mark 'to' argument with ATTRIBUTE_UNUSED.
29412
29413 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29414
29415         * config/xtensa/xtensa.c (xtensa_emit_call): Use
29416         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
29417         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
29418         format string.
29419
29420 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
29421
29422         * doc/install.texi (Options specification): Restore entry of
29423         --enable-sjlj-exceptions.
29424
29425 2017-05-27  Michael Eager  <eager@eagercon.com>
29426
29427         Revert:
29428         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
29429
29430         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
29431
29432         * config/microblaze/microblaze.h
29433         (FIXED_REGISTERS): Update in macro.
29434         (CALL_USED_REGISTERS): Update in macro.
29435
29436 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
29437
29438         * doc/install.texi: Add links to macOS binary distributions.
29439
29440 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
29441
29442         PR bootstrap/80887
29443         Revert:
29444         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29445
29446         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29447
29448 2017-05-26  Martin Liska  <mliska@suse.cz>
29449
29450         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
29451
29452 2017-05-26  Martin Liska  <mliska@suse.cz>
29453
29454         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
29455         always leading ';; '.
29456         (dump_bb_info): Likewise.
29457         (brief_dump_cfg): Likewise.
29458         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
29459         * dumpfile.c: Remove usage of TDF_VERBOSE.
29460         * dumpfile.h (enum dump_kind): Likewise.
29461         (dump_gimple_bb_header): Do not use TDF_COMMENT.
29462         * print-tree.c (debug_verbose): Remove.
29463         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
29464         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
29465         * tree-diagnostic.c (default_tree_printer): Replace
29466         TDF_DIAGNOSTIC with TDF_SLIM.
29467
29468 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29469
29470         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
29471         in parameter loop, rather than loop_vinfo.
29472         (create_intersect_range_checks): Ditto.
29473         (vect_create_cond_for_alias_checks): Update call to above functions.
29474
29475 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29476
29477         PR tree-optimization/80815
29478         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
29479         for merging runtime alias checks.  Handle negative DR_STEPs.
29480
29481 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29482
29483         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
29484         Move from ...
29485         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
29486         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
29487         out code pruning runtime alias checks.
29488         * tree-data-ref.c (prune_runtime_alias_test_list): New function
29489         factored out from above.
29490         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29491         Move from ...
29492         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29493         ... to here.
29494         (prune_runtime_alias_test_list): New decalaration.
29495
29496 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29497
29498         * tree-vect-data-refs.c (compare_tree): Rename and move ...
29499         * tree-data-ref.c (data_ref_compare_tree): ... to here.
29500         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
29501         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
29502         (operator==, comp_dr_with_seg_len_pair): Ditto.
29503         (vect_prune_runtime_alias_test_list): Ditto.
29504
29505 2017-05-26  Martin Liska  <mliska@suse.cz>
29506
29507         PR ipa/80663
29508         * params.def: Bound partial-inlining-entry-probability param.
29509
29510 2017-05-26  Marek Polacek  <polacek@redhat.com>
29511
29512         PR sanitizer/80875
29513         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
29514         can be negated.
29515
29516 2017-05-26  Richard Biener  <rguenther@suse.de>
29517
29518         PR tree-optimization/80842
29519         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
29520         value.
29521
29522 2017-05-26  Richard Biener  <rguenther@suse.de>
29523
29524         PR tree-optimization/80844
29525         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
29526
29527 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
29528
29529         * doc/md.texi (Machine Constraints): Update x86 family
29530         machine constraints section to match 'config/i386/constraints.md'.
29531
29532 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
29533
29534         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
29535
29536 2017-05-25  Nathan Sidwell  <nathan@acm.org>
29537
29538         * doc/invoke.texi (--enable-languages): Update documentation.
29539
29540 2017-05-25  Martin Liska  <mliska@suse.cz>
29541
29542         * dumpfile.c: Add TDF_FOLDING.
29543         * dumpfile.h (enum dump_kind): Likewise.
29544         * genmatch.c (dt_simplify::gen_1): Use it.
29545
29546 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29547
29548         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
29549
29550 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29551
29552         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29553         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
29554
29555 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29556
29557         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
29558         * match.pd (X == C): Rewrite it here.
29559         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
29560         with_certain_nonzero_bits2): New predicates.
29561         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
29562
29563 2017-05-24  Nathan Sidwell  <nathan@acm.org>
29564
29565         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
29566         avoid warning.
29567
29568         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
29569         warning.
29570
29571 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29572
29573         * config/powerpcspe: New port.  Files are copied from the rs6000
29574         port, with "rs6000" in filenames replaced by "powerpcspe".
29575
29576 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
29577
29578         PR rtl-optimization/80754
29579         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
29580
29581 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
29582
29583         * config/sparc/sparc.md (length): Return the correct value for -mflat
29584         sibcalls to match output_sibcall.
29585
29586 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29587
29588         PR bootstrap/80860
29589         PR bootstrap/80843
29590         * config/rs6000/rs6000.c (struct machine_function): Add new field
29591         n_components.
29592         (rs6000_get_separate_components): Init that field, use it.
29593         (rs6000_components_for_bb): Use the field.
29594
29595 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29596
29597         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
29598
29599 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
29600
29601         PR middle-end/80823
29602         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
29603
29604 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29605
29606         PR target/80725
29607         * config/s390/s390.c (s390_check_qrst_address): Check incoming
29608         address against address_operand predicate.
29609         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
29610
29611 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
29612
29613         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
29614         parameters passed indirectly.
29615
29616 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
29617
29618         * config/i386/i386.md (*movdi_internal): Remove SSE4
29619         alternative 18 (?r, *v).  Update insn attributes.
29620         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
29621         Update insn attributes.
29622         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
29623         Update insn attributes.
29624         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
29625         alternative 1 (r, v). Remove isa attribute.
29626         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29627         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
29628         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
29629
29630 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29631
29632         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
29633         dg-line directive.
29634
29635 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29636
29637         * cgraphunit.c (symbol_table::process_new_functions): Update.
29638         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
29639         (inline_generate_summary): Rename to ...
29640         (ipa_fn_summary_generate): ... this one.
29641         (inline_read_summary): Rename to ...
29642         (ipa_fn_summary_read): ... this one.
29643         (inline_write_summary): Rename to ...
29644         (ipa_fn_summary_write): ... this one.
29645         (inline_free_summary): Rename to ...
29646         (ipa_free_fn_summary): ... this one.
29647         (pass_data_local_fn_summary, pass_local_fn_summary,
29648         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
29649         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
29650         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
29651         make_pass_ipa_fn_summary): New.
29652         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
29653         inline_write_summary, inline_free_summary): Remove.
29654         (ipa_free_fn_summary) : New.
29655         * ipa-inline.c (ipa_inline): Update.
29656         (pass_ipa_inline): Do not generate summaries.
29657         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
29658         Remove.
29659         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
29660         and add pass_ipa_fn_summary.
29661         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
29662         New.
29663         (make_pass_inline_parameters): Remove.
29664
29665 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
29666
29667         * omp-low.c (struct omp_context): Remove "default_kind" member.
29668         Adjust all users.
29669
29670         * omp-offload.c (execute_oacc_device_lower): Remove the
29671         parallelism dimensions function attributes for unparallelized
29672         OpenACC kernels constructs.
29673
29674 2017-05-23  Martin Liska  <mliska@suse.cz>
29675
29676         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
29677         functions.
29678         (cgraph_edge::make_speculative): Likewise.
29679         (cgraph_edge::resolve_speculation): Likewise.
29680         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
29681         (cgraph_node::dump): Likewise.
29682         * cgraph.h: Likewise.
29683         * cgraphunit.c (analyze_functions): Likewise.
29684         (symbol_table::compile): Likewise.
29685         * ipa-cp.c (print_all_lattices): Likewise.
29686         (determine_versionability): Likewise.
29687         (initialize_node_lattices): Likewise.
29688         (ipcp_verify_propagated_values): Likewise.
29689         (estimate_local_effects): Likewise.
29690         (update_profiling_info): Likewise.
29691         (create_specialized_node): Likewise.
29692         (perhaps_add_new_callers): Likewise.
29693         (decide_about_value): Likewise.
29694         (decide_whether_version_node): Likewise.
29695         (identify_dead_nodes): Likewise.
29696         (ipcp_store_bits_results): Likewise.
29697         * ipa-devirt.c (dump_targets): Likewise.
29698         (ipa_devirt): Likewise.
29699         * ipa-icf.c (sem_item::dump): Likewise.
29700         (sem_function::equals): Likewise.
29701         (sem_variable::equals): Likewise.
29702         (sem_item_optimizer::read_section): Likewise.
29703         (sem_item_optimizer::execute): Likewise.
29704         (congruence_class::dump): Likewise.
29705         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
29706         (dump_inline_summary): Likewise.
29707         (estimate_node_size_and_time): Likewise.
29708         (inline_analyze_function): Likewise.
29709         * ipa-inline-transform.c (inline_call): Likewise.
29710         * ipa-inline.c (report_inline_failed_reason): Likewise.
29711         (want_early_inline_function_p): Likewise.
29712         (edge_badness): Likewise.
29713         (update_edge_key): Likewise.
29714         (inline_small_functions): Likewise.
29715         * ipa-profile.c (ipa_profile): Likewise.
29716         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29717         (ipa_make_edge_direct_to_target): Likewise.
29718         (remove_described_reference): Likewise.
29719         (ipa_impossible_devirt_target): Likewise.
29720         (propagate_controlled_uses): Likewise.
29721         (ipa_print_node_params): Likewise.
29722         (ipcp_transform_function): Likewise.
29723         * ipa-pure-const.c (pure_const_read_summary): Likewise.
29724         (propagate_pure_const): Likewise.
29725         * ipa-reference.c (generate_summary): Likewise.
29726         (read_write_all_from_decl): Likewise.
29727         (propagate): Likewise.
29728         (ipa_reference_read_optimization_summary): Likewise.
29729         * ipa-utils.c (ipa_merge_profiles): Likewise.
29730         * ipa.c (walk_polymorphic_call_targets): Likewise.
29731         (symbol_table::remove_unreachable_nodes): Likewise.
29732         (ipa_single_use): Likewise.
29733         * passes.c (execute_todo): Likewise.
29734         * predict.c (drop_profile): Likewise.
29735         * symtab.c (symtab_node::get_dump_name): New function.
29736         (symtab_node::dump_name): Likewise.
29737         (symtab_node::dump_asm_name): Likewise.
29738         (symtab_node::dump_references): Likewise.
29739         (symtab_node::dump_referring): Likewise.
29740         (symtab_node::dump_base): Likewise.
29741         (symtab_node::debug_symtab): Likewise.
29742         * tree-sra.c (convert_callers_for_node): Likewise.
29743         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29744         * value-prof.c (init_node_map): Likewise.
29745
29746 2017-05-23  Martin Liska  <mliska@suse.cz>
29747
29748         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
29749         and symtab_node::debug_symtab to symbol_table::debug.
29750         * cgraphunit.c (analyze_functions): Use the renamed function.
29751         (symbol_table::compile): Likewise.
29752         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
29753         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
29754         * passes.c (execute_todo): Likewise.
29755         * symtab.c (symbol_table::dump): New function.
29756         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
29757
29758 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29759
29760         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
29761         that nonconst implies exec.
29762
29763 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29764
29765         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29766         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29767         (inline_edge_summary_vec): Turn into ...
29768         (ipa_call_summaries): ... this one.
29769         (redirect_to_unreachable, edge_set_predicate,
29770         evaluate_properties_for_edge, inline_summary_alloc,
29771         reset_ipa_call_summary, reset_inline_summary,
29772         inline_summary_t::duplicate): Update.
29773         (inline_edge_duplication_hook): Turn to ...
29774         (ipa_call_summary_t::duplicate): ... this one.
29775         (inline_edge_removal_hook): Turn to ...
29776         (ipa_call_summary_t::remove): ... this one.
29777         (dump_inline_edge_summary): Turn to ...
29778         (dump_ipa_call_summary): ... this one.
29779         (estimate_function_body_sizes): Update.
29780         (inline_update_callee_summaries): Update.
29781         (remap_edge_change_prob): Update.
29782         (remap_edge_summaries): Update.
29783         (inline_merge_summary): Update.
29784         (do_estimate_edge_time): Update.
29785         (inline_generate_summary): Update.
29786         (inline_read_section): Update.
29787         (inline_read_summary): Update.
29788         (inline_free_summary): Update.
29789         * ipa-inline.c (can_inline_edge_p): Update.
29790         (compute_inlined_call_time): Update.
29791         (want_inline_small_function_p): Update.
29792         (edge_badness): Update.
29793         (early_inliner): Update.
29794         * ipa-inline.h (inline_edge_summary): Turn to ...
29795         (ipa_call_summary): ... this one.
29796         (ipa_call_summary_t): New class.
29797         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29798         (ipa_call_summaries): New.
29799         (inline_edge_summary): Remove.
29800         (estimate_edge_growth): Update.
29801         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29802         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29803         * ipa-split.c (execute_split_functions): Update.
29804         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29805
29806 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29807
29808         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29809         attributes): Document rdrand effective target.
29810
29811 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29812
29813         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29814         attributes): Sort alphabetically.
29815
29816 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
29817
29818         * config/avr/genmultilib.awk: Use gsub instead of gensub.
29819
29820 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
29821
29822         PR target/80718
29823         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
29824         V2DF/V2DI splat into two separate patterns, one that handles
29825         registers, and the other that only handles memory.  Drop support
29826         for splatting from a GPR on ISA 2.07 and then splitting the
29827         splat into direct move and splat.
29828         (vsx_splat_<mode>_reg): Likewise.
29829         (vsx_splat_<mode>_mem): Likewise.
29830
29831 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
29832
29833         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
29834
29835 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
29836
29837         PR middle-end/80809
29838         * omp-low.c (finish_taskreg_remap): New function.
29839         (finish_taskreg_scan): If unit size of ctx->record_type
29840         is non-constant, unshare the size expression and replace
29841         decls in it with possible outer var refs.
29842
29843         PR middle-end/80809
29844         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
29845         GOVD_SHARED rather than GOVD_PRIVATE with it.
29846         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
29847         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
29848
29849         PR middle-end/80853
29850         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
29851         as last argument to build_outer_var_ref for pointer bases of array
29852         section reductions.
29853
29854 2017-05-19  Martin Sebor  <msebor@redhat.com>
29855
29856         * print-tree.c (print_node): Print DECL_READ_P flag.
29857
29858 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29859
29860         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
29861         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
29862         * cgraph.c: Likewise.
29863         * cgraphunit.c: Likewise.
29864         * gengtype.c: Likewise.
29865         * ipa-cp.c: Likewise.
29866         * ipa-devirt.c: Likewise.
29867         * ipa-icf.c: Likewise.
29868         * ipa-predicate.c: Likewise.
29869         * ipa-profile.c: Likewise.
29870         * ipa-prop.c: Likewise.
29871         * ipa-split.c: Likewise.
29872         * ipa.c: Likewise.
29873         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
29874         edge_predicate_pool, dump_inline_hints,
29875         inline_summary::account_size_time, redirect_to_unreachable,
29876         edge_set_predicate, set_hint_predicate,
29877         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
29878         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
29879         inline_summary_t::remove, remap_hint_predicate_after_duplication,
29880         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
29881         ipa_call_summary_t::remove, initialize_growth_caches,
29882         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
29883         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
29884         mark_modified, unmodified_parm_1, unmodified_parm,
29885         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
29886         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
29887         compute_bb_predicates, will_be_nonconstant_expr_predicate,
29888         will_be_nonconstant_predicate, record_modified_bb_info,
29889         get_minimal_bb, record_modified, param_change_prob,
29890         phi_result_unknown_predicate, predicate_for_phi_result,
29891         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
29892         estimate_function_body_sizes, compute_inline_parameters,
29893         compute_inline_parameters_for_curren, pass_data_inline_parameters,
29894         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
29895         inline_update_callee_summaries, remap_edge_change_prob,
29896         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
29897         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
29898         inline_analyze_function, inline_summary_t::insert,
29899         inline_generate_summary, read_ipa_call_summary, inline_read_section,
29900         inline_read_summary, write_ipa_call_summary, inline_write_summary,
29901         inline_free_summary): Move to ipa-fnsummary.h
29902         (predicate_t): Remove.
29903         * ipa-fnsummary.c: New file.
29904         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
29905         (enum inline_hints_vals, inline_hints, agg_position_info,
29906         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
29907         inline_summaries, ipa_call_summary, ipa_call_summary_t,
29908         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
29909         dump_inline_summary, dump_inline_hints, inline_generate_summary,
29910         inline_read_summary, inline_write_summary, inline_free_summary,
29911         inline_analyze_function, initialize_inline_failed,
29912         inline_merge_summary, inline_update_overall_summary,
29913         compute_inline_parameters): Move to ipa-fnsummary.h
29914         * ipa-fnsummary.h: New file.
29915         * ipa-inline-transform.h: Include ipa-inline.h.
29916         * ipa-inline.c: LIkewise.
29917
29918 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29919
29920         * ipa-inline.c (edge_badness): Use inlined_time instead of
29921         inline_summaries->get.
29922
29923 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29924
29925         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
29926
29927 2017-05-22  Nathan Sidwell  <nathan@acm.org>
29928
29929         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
29930         (fdump-lang): Document 'raw' option.
29931         * dumpfile.h (TDI_tu): Delete.
29932         * dumpfile.c (dump_files): Remove translation-unit.
29933         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
29934
29935 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
29936
29937         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
29938         command option from $(AWK) call.
29939         * config/avr/genmultilib.awk: Simplify and rewrite so that it
29940         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
29941         [FORMAT]: Remove handling of variable.
29942         * config/avr/t-multilib: Regenerate.
29943
29944 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29945
29946         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
29947         self_time.
29948         (dump_inline_summary): Do not print self_time.
29949         (estimate_function_body_sizes): Do not set self_time.
29950         (compute_inline_parameters): Likewise.
29951         (inline_read_section, inline_write_summary): Do not stream self_time.
29952         * ipa-inline.h (inline_summary): Drop self_time.
29953
29954 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29955
29956         * ipa-inline-analysis.c (account_size_time): Rename to ...
29957         (inline_summary::account_size_time): ... this one.
29958         (reset_ipa_call_summary): Turn to ...
29959         (ipa_call_summary::reset): ... this one.
29960         (reset_inline_summary): Turn to ...
29961         (inline_summary::reset): ... this one.
29962         (inline_summary_t::remove): Update.
29963         (inline_summary_t::duplicate): Update.
29964         (ipa_call_summary_t::remove): Update.
29965         (dump_inline_summary): Update.
29966         (estimate_function_body_sizes): Update.
29967         (compute_inline_parameters): Update.
29968         (estimate_node_size_and_time): Update.
29969         (inline_merge_summary): Update.
29970         (inline_update_overall_summary): Update.
29971         (inline_read_section): Update.
29972         (inline_write_summary): Update.
29973         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
29974         add account_size_time and reset member functions.
29975         (ipa_call_summary): Add reset function.
29976         * ipa-predicate.h (predicate::operator &): Constify.
29977
29978 2017-05-22  Richard Biener  <rguenther@suse.de>
29979
29980         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
29981
29982 2017-05-19  Jason Merrill  <jason@redhat.com>
29983
29984         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
29985
29986 2017-05-19  Marek Polacek  <polacek@redhat.com>
29987
29988         PR sanitizer/80800
29989         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
29990         TYPE_OVERFLOW_WRAPS checks.
29991
29992 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
29993
29994         * tree-core.h (enum omp_clause_default_kind): Add
29995         "OMP_CLAUSE_DEFAULT_PRESENT".
29996         * tree-pretty-print.c (dump_omp_clause): Handle it.
29997         * gimplify.c (enum gimplify_omp_var_data): Add
29998         "GOVD_MAP_FORCE_PRESENT".
29999         (gimplify_adjust_omp_clauses_1): Map it to
30000         "GOMP_MAP_FORCE_PRESENT".
30001         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
30002
30003         * gimplify.c (oacc_default_clause): Clarify.
30004
30005 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30006
30007         LANG_HOOK_REGISTER_DUMPS
30008         * toplev.c (general_init): Call register dump lang hook.
30009         * doc/invoke.texi: Document -fdump-lang option family.
30010         * dumpfile.c (dump_files): Remove class dump here.
30011         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
30012         * dumpfile.h (tree_dump_index): Remove TDI_class.
30013         * langhooks-def.h (lhd_register_dumps): Declare.
30014         (LANG_HOOKS_REGISTER_DUMPS): Define.
30015         (LANG_HOOKS_INITIALIZER): Add it.
30016         * langhooks.c (lhd_register_dumps): Define.
30017         * langhooks.h (struct lang_hooks): Add register_dumps.
30018
30019 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30020
30021         * context.h (context::set_passes): New.
30022         * context.c (context::context): Do not create pass manager.
30023         * toplev.c (general_init): Create pass manager here.
30024
30025 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
30026
30027         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
30028         use this splitter if two add or or instructions would also work for
30029         the constant we want to generate.
30030
30031 2017-05-19  Richard Biener  <rguenther@suse.de>
30032
30033         PR build/80821
30034         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
30035         predicate evaluation.
30036
30037 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30038
30039         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
30040         add ctor.
30041         * ipa-inline.c (want_inline_small_function_p): Do not cast to
30042         unsigned.
30043
30044 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30045
30046         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
30047         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
30048         (inline_edge_summary_vec): Turn into ...
30049         (ipa_call_summaries): ... this one.
30050         (redirect_to_unreachable, edge_set_predicate,
30051         evaluate_properties_for_edge, inline_summary_alloc,
30052         reset_ipa_call_summary, reset_inline_summary,
30053         inline_summary_t::duplicate): Update.
30054         (inline_edge_duplication_hook): Turn to ...
30055         (ipa_call_summary_t::duplicate): ... this one.
30056         (inline_edge_removal_hook): Turn to ...
30057         (ipa_call_summary_t::remove): ... this one.
30058         (dump_inline_edge_summary): Turn to ...
30059         (dump_ipa_call_summary): ... this one.
30060         (estimate_function_body_sizes): Update.
30061         (inline_update_callee_summaries): Update.
30062         (remap_edge_change_prob): Update.
30063         (remap_edge_summaries): Update.
30064         (inline_merge_summary): Update.
30065         (do_estimate_edge_time): Update.
30066         (inline_generate_summary): Update.
30067         (inline_read_section): Update.
30068         (inline_read_summary): Update.
30069         (inline_free_summary): Update.
30070         * ipa-inline.c (can_inline_edge_p): Update.
30071         (compute_inlined_call_time): Update.
30072         (want_inline_small_function_p): Update.
30073         (edge_badness): Update.
30074         (early_inliner): Update.
30075         * ipa-inline.h (inline_edge_summary): Turn to ...
30076         (ipa_call_summary): ... this one.
30077         (ipa_call_summary_t): New class.
30078         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
30079         (ipa_call_summaries): New.
30080         (inline_edge_summary): Remove.
30081         (estimate_edge_growth): Update.
30082         * ipa-profile.c (ipa_propagate_frequency_1): Update.
30083         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
30084         * ipa-split.c (execute_split_functions): Update.
30085         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
30086
30087 2017-05-19  Richard Biener  <rguenther@suse.de>
30088
30089         PR middle-end/80764
30090         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
30091
30092 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
30093
30094         * config/rs6000/rs6000.c (struct machine_function): Add field
30095         fpr_is_wrapped_separately.
30096         (rs6000_get_separate_components): Use 64 components.  Handle the
30097         new FPR components.
30098         (rs6000_components_for_bb): Handle the FPR components.
30099         (rs6000_emit_prologue_components): Handle the FPR components.
30100         (rs6000_emit_epilogue_components): Handle the FPR components.
30101         (rs6000_set_handled_components): Handle the FPR components.
30102         (rs6000_emit_prologue): Don't output prologue code for those FPRs
30103         that are already separately shrink-wrapped.
30104         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
30105         that are already separately shrink-wrapped.
30106
30107 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
30108
30109         PR target/80510
30110         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
30111         New predicate.
30112
30113         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
30114         (define_peephole2 for Altivec d-form load): Add peepholes to catch
30115         cases where the register allocator uses a move and an offsettable
30116         memory operation to/from a FPR register on ISA 2.06/2.07.
30117         (define_peephole2 for Altivec d-form store): Likewise.
30118
30119 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
30120
30121         PR target/80799
30122         * config/i386/mmx.md (*mov<mode>_internal): Enable
30123         alternatives 11, 12, 13 and 14 also for 32bit targets.
30124         Remove alternatives 15, 16, 17 and 18.
30125         * config/i386/sse.md (vec_concatv2di): Change
30126         alternative (!x, *y) to (x, ?!*Yn).
30127
30128 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
30129
30130         * dumpfile.h (enum dump_kind): Remove stray comma.
30131
30132 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30133
30134         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
30135         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
30136         predicate::num_conditions
30137         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
30138         (CHANGED): turn into predicate::changed.
30139         (agg_position_info): Move to ipa-predicate.h
30140         (add_condition, predicate::add_clause, predicate::operator &=,
30141         predicate::or_with, predicate::evaluate, predicate::probability,
30142         dump_condition, dump_clause, predicate::dump,
30143         predicate::remap_after_duplication, predicate::remap_after_inlining,
30144         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
30145         (evaluate_conditions_for_known_args): Update.
30146         (set_cond_stmt_execution_predicate): Update.
30147         * ipa-inline.h: Include ipa-predicate.h
30148         (condition, inline_param_summary, conditions, agg_position_info,
30149         predicate): Move to ipa-predicate.h
30150         * ipa-predicate.c: New file.
30151         * ipa-predicate.h: New file.
30152
30153 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
30154
30155         * final.c (leaf_function_p): Check we are not in a sequence.
30156
30157 2017-05-18  Martin Liska  <mliska@suse.cz>
30158
30159         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
30160         * dumpfile.c (dump_register): Use new enum dump_kind.
30161         (get_dump_file_name): Likewise.
30162         (dump_enable_all): Likewise.
30163         (dump_switch_p_1): Likewise.
30164         (enable_rtl_dump_file): Remove usage of TDF_RTL.
30165         * dumpfile.h (enum dump_kind): New enum type.
30166         (struct dump_file_info): Create constructor and
30167         format fields and comments.
30168         * passes.c (pass_manager::register_one_dump_file):
30169         Use num dump_kind.
30170         * statistics.c (statistics_early_init): Likewise.
30171         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
30172         TDF_TREE with TDF_SLIM.
30173         (gather_memory_references_ref): Likewise.
30174
30175 2017-05-18  Martin Liska  <mliska@suse.cz>
30176
30177         * vec.h (struct vnull): Use it.
30178
30179 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30180
30181         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
30182         (true_predicate, false_predicate, true_predicate_p,
30183         false_predicate_p): Remove.
30184         (single_cond_predicate, not_inlined_predicate): Turn to member function
30185         in ipa-inline.h
30186         (add_condition): Update.
30187         (add_clause): Turn to...
30188         (predicate::add_clause): ... this one; update; allow passing NULL
30189         as parameter.
30190         (and_predicates): Turn to ...
30191         (predicate::operator &=): ... this one.
30192         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
30193         (or_predicates): Turn to ...
30194         (predicate::or_with): ... this one.
30195         (evaluate_predicate): Turn to ...
30196         (predicate::evaluate): ... this one.
30197         (predicate_probability): Turn to ...
30198         (predicate::probability): ... this one.
30199         (dump_condition): Update.
30200         (dump_predicate): Turn to ...
30201         (predicate::dump): ... this one.
30202         (account_size_time): Update.
30203         (edge_set_predicate): Update.
30204         (set_hint_predicate): UPdate.
30205         (evaluate_conditions_for_known_args): Update.
30206         (evaluate_properties_for_edge): Update.
30207         (remap_predicate_after_duplication): Turn to...
30208         (predicate::remap_after_duplication): ... this one.
30209         (remap_hint_predicate_after_duplication): Update.
30210         (inline_summary_t::duplicate): UPdate.
30211         (dump_inline_edge_summary): Update.
30212         (dump_inline_summary): Update.
30213         (set_cond_stmt_execution_predicate): Update.
30214         (set_switch_stmt_execution_predicate): Update.
30215         (compute_bb_predicates): Update.
30216         (will_be_nonconstant_expr_predicate): Update.
30217         (will_be_nonconstant_predicate): Update.
30218         (phi_result_unknown_predicate): Update.
30219         (predicate_for_phi_result): Update.
30220         (array_index_predicate): Update.
30221         (estimate_function_body_sizes): Update.
30222         (estimate_node_size_and_time): Update.
30223         (estimate_ipcp_clone_size_and_time): Update.
30224         (remap_predicate): Rename to ...
30225         (predicate::remap_after_inlining): ... this one.
30226         (remap_hint_predicate): Update.
30227         (inline_merge_summary): Update.
30228         (inline_update_overall_summary): Update.
30229         (estimate_size_after_inlining): Update.
30230         (read_predicate): Rename to ...
30231         (predicate::stream_in): ... this one.
30232         (read_inline_edge_summary): Update.
30233         (write_predicate): Rename to ...
30234         (predicate::stream_out): ... this one.
30235         (write_inline_edge_summary): Update.
30236         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
30237         (clause_t): Turn to uint32_t
30238         (predicate): Turn to class; implement constructor and operators
30239         ==, !=, &
30240         (size_time_entry): Update.
30241         (inline_summary): Update.
30242         (inline_edge_summary): Update.
30243
30244 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
30245
30246         * fold-const.c (fold_binary_loc): Move transformation...
30247         * match.pd (C - X CMP X): ... here.
30248
30249 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
30250
30251         * config/sparc/sparc.c (sparc_option_override): Set function
30252         alignment for -mcpu=niagara7 to 64 to match the I$ line.
30253         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
30254         latency to 1.
30255         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
30256         latency to 2.
30257         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
30258
30259 2017-05-18  Marek Polacek  <polacek@redhat.com>
30260
30261         PR sanitizer/80797
30262         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
30263         (pass_ubsan::execute): Call gimple_assign_single_p instead of
30264         gimple_assign_load_p.
30265
30266 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
30267
30268         PR middle-end/80692
30269         * real.c (do_compare): Give decimal_do_compare preference over
30270         comparing just the signs.
30271
30272 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
30273
30274         * doc/md.texi (Canonicalization of Instructions): Describe the
30275         canonical form of instructions that inherently set a condition
30276         code register.
30277
30278 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
30279
30280         PR middle-end/80775
30281         * tree-cfg.c: Move deletion of unreachable case statements to after
30282         the merging of consecutive case labels.
30283
30284 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30285
30286         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
30287         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
30288         restoring of callee-saved registers.
30289
30290 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
30291
30292         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
30293         * config/visium/visium.c (single_set_and_flags): Likewise.
30294         * config/visium/visium.md (Substitutions): Likewise.
30295
30296 2017-05-17  Martin Liska  <mliska@suse.cz>
30297
30298         * cfg.c: Introduce dump_flags_t type and
30299         use it instead of int type.
30300         * cfg.h: Likewise.
30301         * cfghooks.c: Likewise.
30302         * cfghooks.h (struct cfg_hooks): Likewise.
30303         * cfgrtl.c: Likewise.
30304         * cfgrtl.h: Likewise.
30305         * cgraph.c (cgraph_node::get_body): Likewise.
30306         * coretypes.h: Likewise.
30307         * domwalk.c: Likewise.
30308         * domwalk.h: Likewise.
30309         * dumpfile.c (struct dump_option_value_info): Likewise.
30310         (dump_enable_all): Likewise.
30311         (dump_switch_p_1): Likewise.
30312         (opt_info_switch_p): Likewise.
30313         * dumpfile.h (enum tree_dump_index): Likewise.
30314         (struct dump_file_info): Likewise.
30315         * genemit.c: Likewise.
30316         * generic-match-head.c: Likewise.
30317         * gengtype.c (open_base_files): Likewise.
30318         * gimple-pretty-print.c: Likewise.
30319         * gimple-pretty-print.h: Likewise.
30320         * graph.c (print_graph_cfg): Likewise.
30321         * graphite-scop-detection.c (dot_all_sese): Likewise.
30322         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
30323         * loop-unroll.c (report_unroll): Likewise.
30324         * passes.c (pass_manager::register_one_dump_file): Likewise.
30325         * print-tree.c: Likewise.
30326         * statistics.c: Likewise.
30327         * tree-cfg.c: Likewise.
30328         * tree-cfg.h: Likewise.
30329         * tree-dfa.c: Likewise.
30330         * tree-dfa.h: Likewise.
30331         * tree-dump.c (dump_function): Likewise.
30332         * tree-dump.h (struct dump_info): Likewise.
30333         * tree-pretty-print.c: Likewise.
30334         * tree-pretty-print.h: Likewise.
30335         * tree-ssa-live.c: Likewise.
30336         * tree-ssa-live.h: Likewise.
30337         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
30338         * tree-vect-loop.c: Likewise.
30339         * tree-vect-slp.c: Likewise.
30340
30341 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
30342             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30343
30344         PR tree-optimization/80457
30345         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
30346         of all arguments to a statement as scalar_to_vec operations.
30347         (vectorizable_call): Adjust call to vect_model_simple_cost for
30348         new parameter.
30349         (vectorizable_conversion): Likewise.
30350         (vectorizable_assignment): Likewise.
30351         (vectorizable_shift): Likewise.
30352         (vectorizable_operation): Likewise.
30353         (vectorizable_comparison): Likewise.
30354         (vect_is_simple_cond): Record the def types for operands.
30355         (vectorizable_condition): Likewise, call vect_model_simple_cost.
30356         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
30357         for statement argument count.
30358
30359 2017-05-16  Carl Love  <cel@us.ibm.com>
30360
30361         * config/rs6000/rs6000-c: Add support for built-in functions
30362         vector unsigned long long vec_bperm (vector unsigned long long,
30363                                              vector unsigned char)
30364         vector signed long long vec_mule (vector signed int,
30365                                           vector signed int)
30366         vector unsigned long long vec_mule (vector unsigned int,
30367                                             vector unsigned int)
30368         vector signed long long vec_mulo (vector signed int,
30369                                           vector signed int)
30370         vector unsigned long long vec_mulo (vector unsigned int,
30371                                             vector unsigned int)
30372         vector signed char vec_sldw (vector signed char,
30373                                      vector signed char,
30374                                      const int)
30375         vector unsigned char vec_sldw (vector unsigned char,
30376                                        vector unsigned char,
30377                                        const int)
30378         vector signed short vec_sldw (vector signed short,
30379                                       vector signed short,
30380                                       const int)
30381         vector unsigned short vec_sldw (vector unsigned short,
30382                                         vector unsigned short,
30383                                         const int)
30384         vector signed int vec_sldw (vector signed int,
30385                                     vector signed int,
30386                                     const int)
30387         vector unsigned int vec_sldw (vector unsigned int,
30388                                       vector unsigned int,
30389                                       const int)
30390         vector signed long long vec_sldw (vector signed long long,
30391                                           vector signed long long,
30392                                           const int)
30393         vector unsigned long long vec_sldw (vector unsigned long long,
30394                                             vector unsigned long long,
30395                                             const int)
30396         * config/rs6000/rs6000-c: Add support for built-in functions
30397         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
30398         * config/rs6000/altivec.h: Add defintion for vec_sldw.
30399         * doc/extend.texi: Update the built-in documentation for the
30400         new built-in functions.
30401
30402 2017-05-16  Marek Polacek  <polacek@redhat.com>
30403
30404         PR sanitizer/80536
30405         PR sanitizer/80386
30406         * tree.c (save_expr): Don't fold the expression.
30407
30408 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
30409
30410         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
30411         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
30412         and (?*y,m).  Update insn attributes.
30413
30414 2017-05-16  Martin Liska  <mliska@suse.cz>
30415
30416         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
30417         flags argument of print_gimple_stmt, print_gimple_expr,
30418         print_generic_stmt and print_generic_expr.
30419         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
30420         * coretypes.h: Likewise.
30421         * except.c (dump_eh_tree): Likewise.
30422         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
30423         * gimple-pretty-print.h: Likewise.
30424         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
30425         (backprop::push_to_worklist): Likewise.
30426         (backprop::pop_from_worklist): Likewise.
30427         (backprop::process_use): Likewise.
30428         (backprop::intersect_uses): Likewise.
30429         (note_replacement): Likewise.
30430         * gimple-ssa-store-merging.c
30431         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
30432         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
30433         (pass_store_merging::execute): Likewise.
30434         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
30435         (ssa_base_cand_dump_callback): Likewise.
30436         (dump_incr_vec): Likewise.
30437         (replace_refs): Likewise.
30438         (replace_mult_candidate): Likewise.
30439         (create_add_on_incoming_edge): Likewise.
30440         (create_phi_basis): Likewise.
30441         (insert_initializers): Likewise.
30442         (all_phi_incrs_profitable): Likewise.
30443         (introduce_cast_before_cand): Likewise.
30444         (replace_one_candidate): Likewise.
30445         * gimplify.c (gimplify_expr): Likewise.
30446         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
30447         (set_rename): Likewise.
30448         (rename_uses): Likewise.
30449         (copy_loop_phi_nodes): Likewise.
30450         (add_close_phis_to_merge_points): Likewise.
30451         (copy_loop_close_phi_args): Likewise.
30452         (copy_cond_phi_args): Likewise.
30453         (graphite_copy_stmts_from_block): Likewise.
30454         (translate_pending_phi_nodes): Likewise.
30455         * graphite-poly.c (print_pdr): Likewise.
30456         (dump_gbb_cases): Likewise.
30457         (dump_gbb_conditions): Likewise.
30458         (print_scop_params): Likewise.
30459         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
30460         (build_cross_bb_scalars_use): Likewise.
30461         (gather_bbs::before_dom_children): Likewise.
30462         * hsa-dump.c (dump_hsa_immed): Likewise.
30463         * ipa-cp.c (print_ipcp_constant_value): Likewise.
30464         (get_replacement_map): Likewise.
30465         * ipa-inline-analysis.c (dump_condition): Likewise.
30466         (estimate_function_body_sizes): Likewise.
30467         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
30468         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
30469         * ipa-prop.c (ipa_dump_param): Likewise.
30470         (ipa_print_node_jump_functions_for_edge): Likewise.
30471         (ipa_modify_call_arguments): Likewise.
30472         (ipa_modify_expr): Likewise.
30473         (ipa_dump_param_adjustments): Likewise.
30474         (ipa_dump_agg_replacement_values): Likewise.
30475         (ipcp_modif_dom_walker::before_dom_children): Likewise.
30476         * ipa-pure-const.c (check_stmt): Likewise.
30477         (pass_nothrow::execute): Likewise.
30478         * ipa-split.c (execute_split_functions): Likewise.
30479         * omp-offload.c (dump_oacc_loop_part): Likewise.
30480         (dump_oacc_loop): Likewise.
30481         * trans-mem.c (tm_log_emit): Likewise.
30482         (tm_memopt_accumulate_memops): Likewise.
30483         (dump_tm_memopt_set): Likewise.
30484         (dump_tm_memopt_transform): Likewise.
30485         * tree-cfg.c (gimple_verify_flow_info): Likewise.
30486         (print_loop): Likewise.
30487         * tree-chkp-opt.c (chkp_print_addr): Likewise.
30488         (chkp_gather_checks_info): Likewise.
30489         (chkp_get_check_result): Likewise.
30490         (chkp_remove_check_if_pass): Likewise.
30491         (chkp_use_outer_bounds_if_possible): Likewise.
30492         (chkp_reduce_bounds_lifetime): Likewise.
30493         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
30494         (chkp_mark_completed_bounds): Likewise.
30495         (chkp_register_incomplete_bounds): Likewise.
30496         (chkp_mark_invalid_bounds): Likewise.
30497         (chkp_maybe_copy_and_register_bounds): Likewise.
30498         (chkp_build_returned_bound): Likewise.
30499         (chkp_get_bound_for_parm): Likewise.
30500         (chkp_build_bndldx): Likewise.
30501         (chkp_get_bounds_by_definition): Likewise.
30502         (chkp_generate_extern_var_bounds): Likewise.
30503         (chkp_get_bounds_for_decl_addr): Likewise.
30504         * tree-chrec.c (chrec_apply): Likewise.
30505         * tree-data-ref.c (dump_data_reference): Likewise.
30506         (dump_subscript): Likewise.
30507         (dump_data_dependence_relation): Likewise.
30508         (analyze_overlapping_iterations): Likewise.
30509         * tree-inline.c (expand_call_inline): Likewise.
30510         (tree_function_versioning): Likewise.
30511         * tree-into-ssa.c (dump_defs_stack): Likewise.
30512         (dump_currdefs): Likewise.
30513         (dump_names_replaced_by): Likewise.
30514         (dump_update_ssa): Likewise.
30515         (update_ssa): Likewise.
30516         * tree-object-size.c (pass_object_sizes::execute): Likewise.
30517         * tree-parloops.c (build_new_reduction): Likewise.
30518         (try_create_reduction_list): Likewise.
30519         (ref_conflicts_with_region): Likewise.
30520         (oacc_entry_exit_ok_1): Likewise.
30521         (oacc_entry_exit_single_gang): Likewise.
30522         * tree-pretty-print.h: Likewise.
30523         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
30524         (get_scalar_evolution): Likewise.
30525         (add_to_evolution): Likewise.
30526         (get_loop_exit_condition): Likewise.
30527         (analyze_evolution_in_loop): Likewise.
30528         (analyze_initial_condition): Likewise.
30529         (analyze_scalar_evolution): Likewise.
30530         (instantiate_scev): Likewise.
30531         (number_of_latch_executions): Likewise.
30532         (gather_chrec_stats): Likewise.
30533         (final_value_replacement_loop): Likewise.
30534         (scev_const_prop): Likewise.
30535         * tree-sra.c (dump_access): Likewise.
30536         (disqualify_candidate): Likewise.
30537         (create_access): Likewise.
30538         (reject): Likewise.
30539         (maybe_add_sra_candidate): Likewise.
30540         (create_access_replacement): Likewise.
30541         (analyze_access_subtree): Likewise.
30542         (analyze_all_variable_accesses): Likewise.
30543         (sra_modify_assign): Likewise.
30544         (initialize_constant_pool_replacements): Likewise.
30545         (find_param_candidates): Likewise.
30546         (decide_one_param_reduction): Likewise.
30547         (replace_removed_params_ssa_names): Likewise.
30548         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
30549         * tree-ssa-copy.c (dump_copy_of): Likewise.
30550         (copy_prop_visit_cond_stmt): Likewise.
30551         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
30552         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
30553         (record_equivalences_from_stmt): Likewise.
30554         * tree-ssa-dse.c (compute_trims): Likewise.
30555         (delete_dead_call): Likewise.
30556         (delete_dead_assignment): Likewise.
30557         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
30558         (forward_propagate_into_cond): Likewise.
30559         (pass_forwprop::execute): Likewise.
30560         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
30561         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
30562         Likewise.
30563         (move_computations_worker): Likewise.
30564         (execute_sm): Likewise.
30565         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
30566         (remove_exits_and_undefined_stmts): Likewise.
30567         (remove_redundant_iv_tests): Likewise.
30568         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
30569         (adjust_iv_update_pos): Likewise.
30570         * tree-ssa-math-opts.c (bswap_replace): Likewise.
30571         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
30572         (value_replacement): Likewise.
30573         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30574         * tree-ssa-pre.c (print_pre_expr): Likewise.
30575         (get_representative_for): Likewise.
30576         (create_expression_by_pieces): Likewise.
30577         (insert_into_preds_of_block): Likewise.
30578         (eliminate_insert): Likewise.
30579         (eliminate_dom_walker::before_dom_children): Likewise.
30580         (eliminate): Likewise.
30581         (remove_dead_inserted_code): Likewise.
30582         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
30583         * tree-ssa-reassoc.c (get_rank): Likewise.
30584         (eliminate_duplicate_pair): Likewise.
30585         (eliminate_plus_minus_pair): Likewise.
30586         (eliminate_not_pairs): Likewise.
30587         (undistribute_ops_list): Likewise.
30588         (eliminate_redundant_comparison): Likewise.
30589         (update_range_test): Likewise.
30590         (optimize_range_tests_var_bound): Likewise.
30591         (optimize_vec_cond_expr): Likewise.
30592         (rewrite_expr_tree): Likewise.
30593         (rewrite_expr_tree_parallel): Likewise.
30594         (linearize_expr): Likewise.
30595         (break_up_subtract): Likewise.
30596         (linearize_expr_tree): Likewise.
30597         (attempt_builtin_powi): Likewise.
30598         (attempt_builtin_copysign): Likewise.
30599         (transform_stmt_to_copy): Likewise.
30600         (transform_stmt_to_multiply): Likewise.
30601         (dump_ops_vector): Likewise.
30602         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
30603         (print_scc): Likewise.
30604         (set_ssa_val_to): Likewise.
30605         (visit_reference_op_store): Likewise.
30606         (visit_use): Likewise.
30607         (sccvn_dom_walker::before_dom_children): Likewise.
30608         (run_scc_vn): Likewise.
30609         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
30610         Likewise.
30611         (expr_hash_elt::print): Likewise.
30612         (const_and_copies::pop_to_marker): Likewise.
30613         (const_and_copies::record_const_or_copy_raw): Likewise.
30614         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
30615         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
30616         (dump_predicates): Likewise.
30617         (find_uninit_use): Likewise.
30618         (warn_uninitialized_phi): Likewise.
30619         (pass_late_warn_uninitialized::execute): Likewise.
30620         * tree-ssa.c (verify_vssa): Likewise.
30621         (verify_ssa): Likewise.
30622         (maybe_optimize_var): Likewise.
30623         * tree-vrp.c (dump_value_range): Likewise.
30624         (dump_all_value_ranges): Likewise.
30625         (dump_asserts_for): Likewise.
30626         (register_edge_assert_for_2): Likewise.
30627         (vrp_visit_cond_stmt): Likewise.
30628         (vrp_visit_switch_stmt): Likewise.
30629         (vrp_visit_stmt): Likewise.
30630         (vrp_visit_phi_node): Likewise.
30631         (simplify_cond_using_ranges_1): Likewise.
30632         (fold_predicate_in): Likewise.
30633         (evrp_dom_walker::before_dom_children): Likewise.
30634         (evrp_dom_walker::push_value_range): Likewise.
30635         (evrp_dom_walker::pop_value_range): Likewise.
30636         (execute_early_vrp): Likewise.
30637
30638 2017-05-16  Richard Biener  <rguenther@suse.de>
30639
30640         * dwarf2out.c (loc_list_from_tree_1): Do not create
30641         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
30642
30643 2017-05-16  Richard Biener  <rguenther@suse.de>
30644
30645         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
30646         just generated.
30647         (note_variable_value_in_expr): If we resolved the decl ref
30648         do not push to the stack.
30649
30650 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
30651
30652         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
30653         operations in fast-math mode.
30654         (vaddq_f16): Likewise.
30655         (vmul_f16): Likewise.
30656         (vmulq_f16): Likewise.
30657         (vsub_f16): Likewise.
30658         (vsubq_f16): Likewise.
30659         * config/arm/neon.md (add<mode>3): New.
30660         (sub<mode>3): New.
30661         (fma:<VH:mode>3): New.  Also remove outdated comment.
30662         (mul<mode>3): New.
30663
30664 2017-05-16  Martin Liska  <mliska@suse.cz>
30665
30666         PR ipa/79849.
30667         PR ipa/79850.
30668         * ipa-devirt.c (warn_types_mismatch): Fix typo.
30669         (odr_types_equivalent_p): Likewise.
30670
30671 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
30672
30673         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
30674
30675 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
30676
30677         PR target/80425
30678         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
30679         non-interunit SSE move alternatives with '?'.
30680         (zero-extendsidi peephole2): New peephole to skip intermediate
30681         general register in SSE zero-extend sequence.
30682
30683 2017-05-15  Jeff Law  <law@redhat.com>
30684
30685         * reorg.c (relax_delay_slots): Create a new variable to hold
30686         the temporary target rather than clobbering TARGET_LABEL.
30687
30688         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
30689         missing argument to extract_bit_field call.
30690         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
30691
30692 2017-05-15  Martin Liska  <mliska@suse.cz>
30693
30694         PR driver/31468
30695         * gcc.c (process_command): Do not allow empty argument of -o option.
30696
30697 2017-05-15  Renlin Li  <renlin.li@arm.com>
30698
30699         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
30700         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
30701         * config/aarch64/constraints.md (Usf): Add long call check.
30702         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
30703         (call_value): Likewise.
30704         (sibcall): Likewise.
30705         (sibcall_value): Likewise.
30706         (call_insn): New.
30707         (call_value_insn): New.
30708         (sibcall_insn): Update rtx pattern.
30709         (sibcall_value_insn): Likewise.
30710         (call_internal): Remove.
30711         (call_value_internal): Likewise.
30712         (sibcall_internal): Likewise.
30713         (sibcall_value_internal): Likewise.
30714         (call_reg): Likewise.
30715         (call_symbol): Likewise.
30716         (call_value_reg): Likewise.
30717         (call_value_symbol): Likewise.
30718
30719 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
30720
30721         PR target/80600
30722         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
30723
30724 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
30725
30726         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
30727         compatible with CCGOCmode and with CCZmode.
30728
30729 2017-05-14  Martin Sebor  <msebor@redhat.com>
30730
30731         PR middle-end/77671
30732         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
30733         (gimple_fold_builtin_snprintf): Same.
30734         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
30735         (gimple_fold_builtin_snprintf): Same.
30736         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
30737         of character types.
30738         (is_call_safe): New function.
30739         (try_substitute_return_value): Call it.
30740         (try_simplify_call): New function.
30741         (pass_sprintf_length::handle_gimple_call): Call it.
30742
30743 2017-05-14  Martin Sebor  <msebor@redhat.com>
30744
30745         PR middle-end/80669
30746         * builtins.c (expand_builtin_stpncpy): Simplify.
30747
30748 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
30749
30750         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
30751         * config/i386/i386.h
30752         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
30753         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
30754         (struct machine_function): Add new members call_ms2sysv,
30755         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
30756         (struct machine_frame_state): New fields sp_realigned and
30757         sp_realigned_offset.
30758         * config/i386/i386.c
30759         (enum xlogue_stub): New enum.
30760         (enum xlogue_stub_sets): New enum.
30761         (class xlogue_layout): New class.
30762         (struct ix86_frame): New fields stack_realign_allocate_offset,
30763         stack_realign_offset and outlined_save_offset.  Modify comments to
30764         detail stack layout when using out-of-line stubs.
30765         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
30766         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
30767         -mcall-ms2sysv-xlogues.
30768         (stub_managed_regs): New static variable.
30769         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
30770         registers managed by out-of-line stub.
30771         (disable_call_ms2sysv_xlogues): New function.
30772         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
30773         m->call_ms2sysv when appropriate and compute frame layout for
30774         out-of-line stubs.
30775         (sp_valid_at, fp_valid_at): New inline functions.
30776         (choose_basereg): New function.
30777         (choose_baseaddr): Add align parameter, use choose_basereg and modify
30778         all callers.
30779         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
30780         Use align parameter of choose_baseaddr to generated aligned SSE movs
30781         when possible.
30782         (pro_epilogue_adjust_stack): Modify to track
30783         machine_frame_state::sp_realigned.
30784         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
30785         (ix86_nsaved_sseregs): Likewise.
30786         (ix86_emit_save_regs): Likewise.
30787         (ix86_emit_save_regs_using_mov): Likewise.
30788         (ix86_emit_save_sse_regs_using_mov): Likewise.
30789         (get_scratch_register_on_entry): Likewise.
30790         (gen_frame_set): New function.
30791         (gen_frame_load): Likewise.
30792         (gen_frame_store): Likewise.
30793         (emit_outlined_ms2sysv_save): Likewise.
30794         (emit_outlined_ms2sysv_restore): Likewise.
30795         (ix86_expand_prologue): Modify stack re-alignment code and call
30796         emit_outlined_ms2sysv_save when appropriate.
30797         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
30798         parameter rtx_insn *insn, which allows the function to be used to only
30799         generate the notes.
30800         (ix86_expand_epilogue): Modify validity checks of frame and stack
30801         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
30802         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
30803         * config/i386/predicates.md
30804         (save_multiple): New predicate.
30805         (restore_multiple): Likewise.
30806         * config/i386/sse.md
30807         (save_multiple<mode>): New pattern.
30808         (save_multiple_realign<mode>): Likewise.
30809         (restore_multiple<mode>): Likewise.
30810         (restore_multiple_and_return<mode>): Likewise.
30811         (restore_multiple_leave_return<mode>): Likewise.
30812         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
30813
30814 2017-05-14  Julia Koval  <julia.koval@intel.com>
30815
30816         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
30817         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
30818         (__builtin_ia32_xsetbv): New builtins.
30819         * config/i386/i386.c (ix86_expand_special_args_builtin):
30820         Process new types.
30821         (ix86_expand_builtin): Special expand for new intrinsics.
30822         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
30823         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
30824         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
30825
30826 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30827
30828         * cfganal.c (inverted_post_order_compute): Change argument type
30829         to vec *.
30830         * cfganal.h (inverted_post_order_compute): Adjust prototype.
30831         * df-core.c (rest_of_handle_df_initialize): Adjust.
30832         (rest_of_handle_df_finish): Likewise.
30833         (df_analyze_1): Likewise.
30834         (df_analyze): Likewise.
30835         (loop_inverted_post_order_compute): Change argument to be a vec *.
30836         (df_analyze_loop): Adjust.
30837         (df_get_n_blocks): Likewise.
30838         (df_get_postorder): Likewise.
30839         * df.h (struct df_d): Change field to be a vec.
30840         * lcm.c (compute_laterin): Adjust.
30841         (compute_available): Likewise.
30842         * lra-lives.c (lra_create_live_ranges_1): Likewise.
30843         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
30844         * tree-ssa-pre.c (compute_antic): Likewise.
30845
30846 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30847
30848         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
30849         (depth_first_search::depth_first_search): Change structure init
30850         function to this constructor.
30851         (depth_first_search::add_bb): Rename function to this member.
30852         (depth_first_search::execute): Likewise.
30853         (flow_dfs_compute_reverse_finish): Adjust.
30854
30855 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30856
30857         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
30858         (longest_simple_path): Likewise.
30859         * shrink-wrap.c (spread_components): Likewise.
30860         (disqualify_problematic_components): Likewise.
30861         (emit_common_heads_for_components): Likewise.
30862         (emit_common_tails_for_components): Likewise.
30863         (insert_prologue_epilogue_for_components): Likewise.
30864
30865 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30866
30867         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
30868         auto_sbitmap.
30869
30870 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30871
30872         * df-core.c (df_set_blocks): Start using auto_bitmap.
30873         (df_compact_blocks): Likewise.
30874         * df-problems.c (df_rd_confluence_n): Likewise.
30875         * df-scan.c (df_insn_rescan_all): Likewise.
30876         (df_process_deferred_rescans): Likewise.
30877         (df_update_entry_block_defs): Likewise.
30878         (df_update_exit_block_uses): Likewise.
30879         (df_entry_block_bitmap_verify): Likewise.
30880         (df_exit_block_bitmap_verify): Likewise.
30881         (df_scan_verify): Likewise.
30882         * lra-constraints.c (lra_constraints): Likewise.
30883         (undo_optional_reloads): Likewise.
30884         (lra_undo_inheritance): Likewise.
30885         * lra-remat.c (calculate_gen_cands): Likewise.
30886         (do_remat): Likewise.
30887         * lra-spills.c (assign_spill_hard_regs): Likewise.
30888         (spill_pseudos): Likewise.
30889         * tree-ssa-pre.c (bitmap_set_and): Likewise.
30890         (bitmap_set_subtract_values): Likewise.
30891
30892 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30893
30894         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
30895         management with auto_bitmap.
30896         (fix_inter_tick): Likewise.
30897         (fix_recovery_deps): Likewise.
30898         * ira.c (add_store_equivs): Likewise.
30899         (find_moveable_pseudos): Likewise.
30900         (split_live_ranges_for_shrink_wrap): Likewise.
30901         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
30902         (rtx_reuse_manager::seen_def_p): Likewise.
30903         (rtx_reuse_manager::set_seen_def): Likewise.
30904         * print-rtl.h (class rtx_reuse_manager): Likewise.
30905
30906 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30907
30908         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
30909         lifetime.
30910         (migrate_btr_def): Likewise.
30911         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
30912         * df-core.c (loop_post_order_compute): Likewise.
30913         (loop_inverted_post_order_compute): Likewise.
30914         * hsa-common.h: Likewise.
30915         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
30916         * init-regs.c (initialize_uninitialized_regs): Likewise.
30917         * ipa-inline.c (resolve_noninline_speculation): Likewise.
30918         (inline_small_functions): Likewise.
30919         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
30920         * ira.c (combine_and_move_insns): Likewise.
30921         (build_insn_chain): Likewise.
30922         * loop-invariant.c (find_invariants): Likewise.
30923         * lower-subreg.c (propagate_pseudo_copies): Likewise.
30924         * predict.c (tree_predict_by_opcode): Likewise.
30925         (predict_paths_leading_to): Likewise.
30926         (predict_paths_leading_to_edge): Likewise.
30927         (estimate_loops_at_level): Likewise.
30928         (estimate_loops): Likewise.
30929         * shrink-wrap.c (try_shrink_wrapping): Likewise.
30930         (spread_components): Likewise.
30931         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
30932         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
30933         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
30934         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
30935         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
30936         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
30937         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
30938         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
30939         (mark_threaded_blocks): Likewise.
30940         (thread_through_all_blocks): Likewise.
30941         * tree-ssa.c (verify_ssa): Likewise.
30942         (execute_update_addresses_taken): Likewise.
30943         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
30944
30945 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30946
30947         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
30948         auto_vec.
30949         (post_order_compute): Likewise.
30950         (inverted_post_order_compute): Likewise.
30951         (pre_and_rev_post_order_compute_fn): Likewise.
30952
30953 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30954
30955         * genrecog.c (int_set::int_set): Explicitly construct our
30956         auto_vec base class.
30957         * vec.h (auto_vec::auto_vec): New constructor.
30958
30959 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30960
30961         * bitmap.h (class auto_bitmap): New constructor taking
30962         bitmap_obstack * argument.
30963
30964 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30965
30966         * bitmap.h (class auto_bitmap): Change type of m_bits to
30967         bitmap_head, and adjust ctor / dtor and member operators.
30968
30969 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
30970
30971         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
30972         when returned register mode doesn't match original mode.
30973
30974 2017-05-12  Jeff Law  <law@redhat.com>
30975             Jakub Jelinek  <jakub@redhat.com>
30976
30977         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
30978         we look for cc setter after the compare-elim changes.
30979         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
30980         within the vector to match what compare-elim now expects.
30981         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
30982         (xorsi3_flags, one_cmplsi2_flags): Likewise.
30983
30984         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
30985         after the compare-elim changes.
30986         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
30987         the vector to match what compare-elim now expects.
30988         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
30989         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
30990         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
30991         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
30992         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
30993
30994         * config/visium/visium.c (single_set_and_flags): Fix where
30995         we look for cc setter after the compare-elim changes.
30996         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
30997         with the vector to match what compare-elim now expects.
30998         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
30999         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
31000         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
31001         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
31002         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
31003         (neg<mode>2_insn_set_overflow): Likewise.
31004
31005 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
31006
31007         PR middle-end/79794
31008         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
31009         maybe_expand_insn call, set ops[0].target.  If still set after call,
31010         set alt_rtl.  Add extra arg to recursive calls.
31011         (extract_bit_field): Add alt_rtl argument.  Pass to
31012         extract_bit_field.
31013         * expmed.h (extract_bit_field): Fix prototype.
31014         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
31015         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
31016         to extract_bit_field_calls.
31017         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
31018         Pass alt_rtl to extract_bit_field calls.
31019         * calls.c (store_unaligned_arguments_into_psuedos)
31020         load_register_parameters): Pass extra NULL to extract_bit_field calls.
31021         * optabs.c (maybe_legitimize_operand): Clear op->target when call
31022         gen_reg_rtx.
31023         * optabs.h (struct expand_operand): Add target bitfield.
31024
31025 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31026
31027         * compare-elim.c (try_eliminate_compare): Canonicalize
31028         operation with embedded compare to
31029         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
31030          (set (reg) (operation)].
31031
31032         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
31033
31034 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31035
31036         PR target/80723
31037         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
31038         cost of adding a carry flag for ADC instruction.
31039         [case MINUS]: Ignore the cost of subtracting a carry flag
31040         for SBB instruction.
31041
31042 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
31043
31044         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
31045         and x86intrin.h
31046         * config/rs6000/bmiintrin.h: New file.
31047         * config/rs6000/bmi2intrin.h: New file.
31048         * config/rs6000/x86intrin.h: New file.
31049
31050 2017-05-12  Jeff Law  <law@redhat.com>
31051
31052         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
31053         markers.
31054
31055 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
31056
31057         PR middle-end/80707
31058         * tree-cfg.c: Remove cfg edges of unreachable case statements.
31059
31060 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31061
31062         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31063         early expansion of vector divide builtins.
31064         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
31065         builtins identified as having unsigned arguments.
31066
31067 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31068
31069         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
31070         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
31071         expansion of vector logical operations (and, andc, or, xor,
31072         nor, orc, nand).
31073
31074 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31075
31076         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
31077         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
31078
31079 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31080
31081         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31082         early GIMPLE expansion of vector multiplies.
31083
31084 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31085
31086         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
31087         TARGET_HAVE_MOVT conditional.
31088         (movt splitter): Likewise.
31089
31090 2017-05-12  Richard Biener  <rguenther@suse.de>
31091
31092         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
31093         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31094         Fold all stmts not inplace.
31095
31096 2017-05-12  Richard Biener  <rguenther@suse.de>
31097
31098         PR tree-optimization/80713
31099         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
31100         inserted_exprs bit for not removed stmts.
31101
31102 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
31103
31104         PR middle-end/69921
31105         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
31106         parallelized" attribute for parallelized OpenACC kernels.
31107         * omp-offload.c (execute_oacc_device_lower): Use it.
31108
31109         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
31110         Set "oacc kernels" attribute.
31111         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
31112         parameter.  Adjust all users.
31113         (oacc_fn_attrib_kernels_p): Remove function.
31114         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
31115         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
31116         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
31117         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
31118         assert "oacc kernels" attribute is set.
31119
31120 2017-05-11  Carl Love  <cel@us.ibm.com>
31121
31122         * config/rs6000/rs6000-c: Add support for built-in functions
31123         vector unsigned char vec_popcnt (vector signed char)
31124         vector unsigned char vec_popcnt (vector unsigned char)
31125         vector unsigned short vec_popcnt (vector signed short)
31126         vector unsigned short vec_popcnt (vector unsigned short)
31127         vector unsigned int vec_popcnt (vector signed int)
31128         vector unsigned int vec_popcnt (vector unsigned int)
31129         vector unsigned long long vec_popcnt (vector signed long long)
31130         vector unsigned long long vec_popcnt (vector unsigned long long)
31131         vector signed long long vec_slo (vector signed long long,
31132                                          vector signed char)
31133         vector signed long long vec_slo (vector signed long long,
31134                                          vector unsigned char)
31135         vector unsigned long long vec_slo (vector unsigned long long,
31136                                            vector signed char)
31137         vector unsigned long long vec_slo (vector unsigned long long,
31138                                            vector unsigned char)
31139         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
31140         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
31141         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
31142         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
31143         * doc/extend.texi: Update the built-in documentation file for the
31144         new built-in functions.
31145
31146 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
31147
31148         * attribs.h (sorted_attr_string): Move machine independent
31149         functions for target clone support from the i386 port to common
31150         code.  Rename ix86_function_versions to common_function_versions.
31151         Rename make_name to make_unique_name.
31152         (common_function_versions): Likewise.
31153         (make_unique_name): Likewise.
31154         (make_dispatcher_decl): Likewise.
31155         (is_function_default_version): Likewise.
31156         * attribs.c (attr_strcmp): Likewise.
31157         (sorted_attr_string): Likewise.
31158         (common_function_versions): Likewise.
31159         (make_unique_name): Likewise.
31160         (make_dispatcher_decl): Likewise.
31161         (is_function_default_version): Likewise.
31162         * config/i386/i386.c (attr_strcmp): Likewise.
31163         (sorted_attr_string): Likewise.
31164         (ix86_function_versions): Likewise.
31165         (make_name): Likewise.
31166         (make_dispatcher_decl): Likewise.
31167         (is_function_default_version): Likewise.
31168         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
31169
31170 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31171
31172         PR target/80695
31173         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
31174         Account for direct move costs for vec_construct of integer
31175         vectors.
31176
31177 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
31178
31179         PR target/80706
31180         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
31181         (UNSPEC_STX_ATOMIC): Ditto.
31182         (loaddi_via_sse): New insn.
31183         (storedi_via_sse): Ditto.
31184         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
31185         Update corresponding peephole2 patterns.
31186         (atomic_storedi_fpu): Ditto.
31187
31188 2017-05-11  Julia Koval  <julia.koval@intel.com>
31189
31190         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
31191         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
31192         New intrinsics.
31193         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
31194         (__builtin_ia32_rsqrt14ss_mask): New builtins.
31195         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
31196
31197 2017-05-11  Nathan Sidwell  <nathan@acm.org>
31198
31199         * graphite-poly.c: Include dumpfile.h.
31200
31201         * dumpfle.h (dump_function): Declare here ...
31202         * tree-dump.h (dump_function): ... not here.
31203         * dumpfile.c: #include tree-cfg.h.
31204         (dump_function): Move here from ...
31205         * tree-dump.c (dump_function): ... here.
31206         * gimplify.c: #include splay-tree.h, not tree-dump.h.
31207         * graphite-poly.c: Don't include tree-dump.h.
31208         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
31209         * print-tree.c: Likewise.
31210         * stor-layout.c: Likewise.
31211         * tree-nested.c: Likewise.
31212
31213         * dumpfile.c (dump_start): Use TDF_FLAGS.
31214         (dump_enable_all): Fix TDF_KIND check thinko.
31215
31216 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31217
31218         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31219         array entries to represent two legal parameterizations of the
31220         overloaded __builtin_cmpb function, as represented by the
31221         P6_OV_BUILTIN_CMPB constant.
31222         (altivec_resolve_overloaded_builtin): Add special case handling
31223         for the __builtin_cmpb function, as represented by the
31224         P6_OV_BUILTIN_CMPB constant.
31225         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
31226         (BU_P6_64BIT_2): New macro.
31227         (BU_P6_OVERLOAD_2): New macro
31228         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
31229         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
31230         (CMPB): Add overload support to represent both 32-bit and 64-bit
31231         compare-bytes function.
31232         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
31233         support for TARGET_CMPB.
31234         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
31235         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
31236         documentation of the __builtin_cmpb overloaded built-in function.
31237
31238 2017-05-11  Richard Biener  <rguenther@suse.de>
31239
31240         PR tree-optimization/80705
31241         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
31242         bases are not vectorizable.
31243
31244 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31245
31246         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
31247         when counting register pressure.
31248
31249 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31250
31251         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
31252         (iv_ca_more_deps): Renamed to ...
31253         (iv_ca_compare_deps): ... this.
31254         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
31255
31256 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31257
31258         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
31259         to ...
31260         (determine_group_iv_costs): ... here.
31261         (find_inv_vars_cb): Record inv var if it's not recorded before.
31262
31263 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31264
31265         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
31266         (get_shiftadd_cost): Ditto.
31267
31268 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31269
31270         * tree-ssa-address.c: Include header file.
31271         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
31272         address.
31273         (add_to_parts): Refactor.
31274         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
31275         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
31276         in new order.
31277
31278 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31279
31280         PR tree-optimization/53090
31281         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
31282         COMP_IV_EXPR_2.
31283         (extract_cond_operands): Detect condition with IV on both sides
31284         and return COMP_IV_EXPR_2.
31285         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
31286         (rewrite_use_compare): Simplify by removing call to function
31287         extract_cond_operands.
31288
31289 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31290
31291         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
31292         (extract_cond_operands): Detect condition comparing against non-
31293         invariant bound and return appropriate enum value.
31294         (find_interesting_uses_cond): Update use of extract_cond_operands.
31295         Handle its return value accordingly.
31296         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
31297
31298 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31299
31300         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
31301         nonlinear iv_use computation in loop invariant sensitive way.
31302
31303 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31304
31305         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
31306         (find_iv_candidates): Call relate_compare_use_with_all_cands.
31307
31308 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31309
31310         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
31311         (dump_cand): Support iv_cand.inv_exprs.
31312         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
31313         for candidates.
31314         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
31315         iv_cand.inv_exprs.
31316
31317 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31318
31319         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
31320         from ...
31321         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
31322         as local function.  Include necessary header files.
31323         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
31324
31325 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31326
31327         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
31328
31329 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31330
31331         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
31332         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
31333         RSHIFT_EXPR and BIT_NOT_EXPR.
31334
31335 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31336
31337         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
31338         (adjust_setup_cost): New parameter supporting round up adjustment.
31339         (struct address_cost_data): Delete.
31340         (force_expr_to_var_cost): Don't bound cost with spill_cost.
31341         (split_address_cost, ptr_difference_cost): Delete.
31342         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
31343         (struct ainc_cost_data): New struct.
31344         (get_address_cost_ainc): New function.
31345         (get_address_cost, get_computation_cost): Reimplement.
31346         (determine_group_iv_cost_address): Record inv_expr for all uses of
31347         a group.
31348         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
31349         (iv_ca_has_deps): Reimplemented to ...
31350         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
31351         than OLD_CP.
31352         (iv_ca_extend): Call iv_ca_more_deps.
31353
31354 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31355
31356         * tree-ssa-address.c (struct mem_address): Move to header file.
31357         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
31358         * tree-ssa-address.h (struct mem_address): Move from C file.
31359         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
31360
31361 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31362
31363         * tree-affine.h (aff_combination_type): New interface.
31364         (aff_combination_zero_p): Remove static.
31365         (aff_combination_const_p): New interface.
31366         (aff_combination_singleton_var_p): New interfaces.
31367
31368 2017-05-11  Richard Biener  <rguenther@suse.de>
31369
31370         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31371         Skip unreachable blocks and destinations.
31372         (eliminate): Move stmt removal and fixup ...
31373         (fini_eliminate): ... here.  Skip inserted exprs.
31374         (pass_pre::execute): Move fini_pre after fini_eliminate.
31375         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
31376         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
31377         PRE to get rid of dead code that has invalid SSA form and
31378         split critical edges again.
31379
31380 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31381
31382         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31383
31384 2017-05-11  Richard Biener  <rguenther@suse.de>
31385
31386         * passes.c (execute_function_todo): Verify loops if they are
31387         said to be up-to-date.
31388         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
31389         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
31390
31391 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
31392
31393         PR target/80090
31394         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
31395         handle calling assemble_external ourself.
31396
31397         PR target/79027
31398         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
31399         modes with zero size.  Enhance comment.
31400
31401 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31402
31403         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
31404         built-ins for vec_xl and vec_xst with short and char pointer
31405         arguments.
31406
31407 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31408
31409         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
31410         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
31411         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
31412         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
31413         (_mm_maskz_min_round_ss): New intrinsics.
31414         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
31415         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
31416         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
31417         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
31418         (__builtin_ia32_minss_mask_round): New builtins.
31419         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31420         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31421         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
31422         Rename to ...
31423         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
31424         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
31425         Change to ...
31426         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
31427         ... this.
31428
31429 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31430
31431         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
31432         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
31433         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
31434         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
31435         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
31436         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
31437         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
31438         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31439         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31440         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
31441         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
31442         (__builtin_ia32_mulss_mask_round): New builtins.
31443         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31444         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31445         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
31446         Rename to ...
31447         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
31448         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31449         Change to ...
31450         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31451         ... this.
31452
31453 2017-05-10  Julia Koval  <julia.koval@intel.com>
31454
31455         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
31456         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
31457         (_mm256_setr_m128i): New intrinsics.
31458
31459 2017-05-10  Julia Koval  <julia.koval@intel.com>
31460
31461         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
31462         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
31463         (_mm_maskz_rcp14_ss): New intrinsics.
31464         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
31465         (__builtin_ia32_rcp14ss_mask): New builtins.
31466         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
31467
31468 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
31469
31470         PR tree-optimization/51513
31471         * tree-cfg.c (gimple_seq_unreachable_p): New function.
31472         (assert_unreachable_fallthru_edge_p): Use it.
31473         (group_case_labels_stmt): Likewise.
31474         * tree-cfg.h: Prototype it.
31475         * stmt.c: Include cfghooks.h and tree-cfg.h.
31476         (emit_case_dispatch_table) <gap_label>: New local variable.
31477         Use it to fill dispatch table gaps.
31478         Test for default_label before updating probabilities.
31479         (expand_case) <default_label>: Remove unneeded initialization.
31480         Test for unreachable default case statement and remove its edge.
31481         Set default_label accordingly.
31482         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
31483
31484 2017-05-10  Carl Love  <cel@us.ibm.com>
31485
31486         * config/rs6000/rs6000-c: Add support for built-in functions
31487         vector signed char      vec_neg (vector signed char)
31488         vector signed short int vec_neg (vector short int)
31489         vector signed int       vec_neg (vector signed int)
31490         vector signed long long vec_neg (vector signed long long)
31491         vector float            vec_neg (vector float)
31492         vector double           vec_neg (vector double)
31493         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
31494         overload.
31495         * config/rs6000/altivec.h: Add define for vec_neg
31496         * doc/extend.texi: Update the built-in documentation for the
31497         new built-in functions.
31498
31499 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31500
31501         PR tree-optimization/77644
31502         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
31503
31504 2017-05-10  Nathan Sidwell  <nathan@acm.org>
31505
31506         * dumpfile.h (TDI_lang_all): New.
31507         (TDF_KIND): New. Renumber others
31508         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
31509         than bits.
31510         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
31511         lang-all.
31512         (get_dump_file_name): Adjust suffix generation.
31513         (dump_enable_all): Use TDF_KIND.
31514         * doc/invoke.texi (-fdump-lang-all): Document.
31515
31516         * dumpfile.h: Tabify.
31517
31518 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
31519
31520         PR target/80671
31521         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
31522         Move member access before delete.
31523
31524 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
31525
31526         * tree-inline.c (expand_call_inline): Split block at stmt
31527         before the call.
31528
31529 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
31530
31531         PR target/68163
31532         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
31533         are now unused after splitting mov{sf,sd}_hardfloat.
31534         (f32_lr2): Likewise.
31535         (f32_lm): Likewise.
31536         (f32_lm2): Likewise.
31537         (f32_li): Likewise.
31538         (f32_li2): Likewise.
31539         (f32_lv): Likewise.
31540         (f32_sr): Likewise.
31541         (f32_sr2): Likewise.
31542         (f32_sm): Likewise.
31543         (f32_sm2): Likewise.
31544         (f32_si): Likewise.
31545         (f32_si2): Likewise.
31546         (f32_sv): Likewise.
31547         (f32_dm): Likewise.
31548         (f32_vsx): Likewise.
31549         (f32_av): Likewise.
31550         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
31551         For movsf, order stores so the VSX stores occur before the GPR
31552         store which encourages the register allocator to use a traditional
31553         FPR instead of a GPR.  For movsd, order the stores so that the GPR
31554         store comes before the VSX stores to allow the power6 to work.
31555         This is due to the power6 not having a 32-bit integer store
31556         instruction from a FPR.
31557         (movsf_hardfloat): Likewise.
31558         (movsd_hardfloat): Likewise.
31559
31560 2017-05-09  Martin Sebor  <msebor@redhat.com>
31561
31562         PR translation/80280
31563         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
31564         added in r247778.
31565
31566         PR translation/80280
31567         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
31568         data member added in r247778.
31569         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
31570
31571 2017-05-09  Nathan Sidwell  <nathan@acm.org>
31572
31573         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
31574
31575         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
31576         typedefs.
31577
31578 2017-05-09  Marek Polacek  <polacek@redhat.com>
31579
31580         * doc/invoke.texi: Fix typo.
31581
31582 2017-05-09  Richard Biener  <rguenther@suse.de>
31583
31584         * tree-vrp.c (vrp_val_is_max): Adjust comment.
31585         (vrp_val_is_min): Likewise.
31586         (set_value_range_to_value): Likewise.
31587         (set_value_range_to_nonnegative): Likewise.
31588         (gimple_assign_nonzero_p): Likewise.
31589         (gimple_stmt_nonzero_p): Likewise.
31590         (vrp_int_const_binop): Likewise.  Remove unreachable case.
31591         (adjust_range_with_scev): Adjust comments.
31592         (compare_range_with_value): Likewise.
31593         (extract_range_from_phi_node): Likewise.
31594         (test_for_singularity): Likewise.
31595
31596 2017-05-09  Richard Biener  <rguenther@suse.de>
31597
31598         * tree-vrp.c (get_single_symbol): Add assert that we don't
31599         get overflowed constants as invariant part.
31600         (compare_values_warnv): Add comment before the TREE_NO_WARNING
31601         checks.  Use wi::cmp instead of recursing for integer constants.
31602         (compare_values): Just ignore whether we assumed undefined
31603         overflow instead of failing the compare.
31604         (extract_range_for_var_from_comparison_expr): Add comment before the
31605         TREE_NO_WARNING sets.
31606         (test_for_singularity): Likewise.
31607         (extract_range_from_comparison): Do not disable optimization
31608         when we assumed undefined overflow.
31609         (extract_range_basic): Remove init of unused var.
31610
31611 2017-05-09  Richard Biener  <rguenther@suse.de>
31612
31613         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
31614         (extract_range_from_multiplicative_op_1): Adjust.
31615         (extract_range_from_binary_expr_1): Use int_const_binop.
31616
31617 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31618
31619         PR target/80101
31620         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
31621         rs6000_store_data_bypass_p in seven define_bypass directives and
31622         in several comments.
31623         * config/rs6000/rs6000-protos.h: Add prototype for
31624         rs6000_store_data_bypass_p function.
31625         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
31626         function implements slightly different (rs6000-specific) semantics
31627         than store_data_bypass_p, returning false rather than aborting
31628         with assertion error when arguments do not satisfy the
31629         requirements of store data bypass.
31630         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
31631         rs6000_store_data_bypass_p.
31632
31633 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
31634
31635         * config/xtensa/xtensa-protos.h
31636         (xtensa_initial_elimination_offset): New declaration.
31637         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
31638         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
31639         macro definition, add case for FRAME_POINTER_REGNUM when
31640         FRAME_GROWS_DOWNWARD.
31641         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
31642         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
31643         xtensa_initial_elimination_offset.
31644
31645 2017-05-08  Nathan Sidwell  <nathan@acm.org>
31646
31647         * doc/invoke.texi: Alphabetize -fdump options.
31648
31649 2017-05-08  Martin Sebor  <msebor@redhat.com>
31650
31651         PR translation/80280
31652         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
31653
31654 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31655
31656         * target.def (compute_frame_layout): New optional target hook.
31657         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
31658         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
31659         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
31660         target hook.
31661         * reload1.c (verify_initial_elim_offsets): Likewise.
31662         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
31663         (use_simple_return_p): Call arm_compute_frame_layout if needed.
31664         (arm_get_frame_offsets): Split up into this ...
31665         (arm_compute_frame_layout): ... and this function.
31666
31667 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31668
31669         * config/aarch64/constraints.md (Usa): New constraint.
31670         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
31671
31672 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31673
31674         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
31675         with_multilib_list after it has been checked.
31676
31677 2017-05-08  Richard Biener  <rguenther@suse.de>
31678
31679         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
31680         (bitmap_set_subtract_values): Likewise.
31681
31682 2017-05-08  Richard Biener  <rguenther@suse.de>
31683
31684         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
31685         (gimple_assign_nonzero): ... this and remove strict_overflow_p
31686         argument.
31687         (gimple_stmt_nonzero_warnv_p): Rename to ...
31688         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
31689         argument.
31690         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
31691         (extract_range_basic): Adjust, do not disable propagation on
31692         strict overflow sensitive simplification.
31693         (vrp_visit_cond_stmt): Likewise.
31694
31695 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
31696
31697         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
31698         body size unconditionally.
31699
31700 2017-05-07  Jeff Law  <law@redhat.com>
31701
31702         Revert:
31703         2017-05-06  Jeff Law  <law@redhat.com>
31704         PR tree-optimization/78496
31705         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31706         code.
31707
31708         PR tree-optimization/78496
31709         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31710         (simplify_stmt_using_ranges): Call it.
31711         (vrp_dom_walker::before_dom_children): Extract equivalences
31712         from an ASSERT_EXPR with an equality comparison against a
31713         constant.
31714
31715 2017-05-06  Jeff Law  <law@redhat.com>
31716
31717         PR tree-optimization/78496
31718         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31719         code.
31720
31721         PR tree-optimization/78496
31722         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31723         (simplify_stmt_using_ranges): Call it.
31724         (vrp_dom_walker::before_dom_children): Extract equivalences
31725         from an ASSERT_EXPR with an equality comparison against a
31726         constant.
31727
31728 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31729
31730         * lra-constraints.c (lra_copy_reg_equiv): New function.
31731         (split_reg): Use it to copy equivalence information from the
31732         original register to the spill register.
31733
31734 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31735
31736         PR rtl-optimization/75964
31737         * simplify-rtx.c (simplify_const_relational_operation): Remove
31738         invalid handling of comparisons of integer ABS.
31739
31740 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
31741
31742         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
31743         initialize to zero.
31744         (init_regs): Remove declaration.
31745         (function_arg_advance_32): Initialize error_p as boolean variable.
31746
31747 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31748
31749         * store-motion.c (remove_reachable_equiv_notes): Reformat long
31750         lines.  Use for (;;).
31751
31752 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31753
31754         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
31755         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
31756         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
31757         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
31758         VF=2 that require versioning.
31759
31760 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31761
31762         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
31763         int.
31764
31765 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31766
31767         * diagnostic.h (diagnostic_override_option_index): Convert from
31768         macro to inline function.
31769
31770 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31771
31772         * diagnostic.c (last_module_changed_p): New function.
31773         (set_last_module): New function.
31774         (diagnostic_report_current_module): Convert macro usage to
31775         the above functions.
31776         * diagnostic.h (diagnostic_context::last_module): Strengthen
31777         from const line_map * to const line_map_ordinary *.
31778         (diagnostic_last_module_changed): Delete macro.
31779         (diagnostic_set_last_module): Delete macro.
31780
31781 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31782
31783         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
31784         with diagnostic_report_diagnostic.
31785         (diagnostic_n_impl_richloc): Likewise.
31786         * diagnostic.h (report_diagnostic): Delete macro.
31787         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
31788         with diagnostic_report_diagnostic.
31789         * substring-locations.c (format_warning_va): Likewise.
31790
31791 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31792
31793         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
31794         save/restor of format_spec.  Move option-printing code to...
31795         (print_option_information): ...this new function, and
31796         reimplement by simply printing to the pretty_printer,
31797         rather than appending to the format string.
31798
31799 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31800
31801         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
31802         handling logic into...
31803         (update_effective_level_from_pragmas): ...this new function.
31804
31805 2017-05-04  Andrew Waterman  <andrew@sifive.com>
31806
31807         * config/riscv/riscv.opt (mstrict-align): New option.
31808         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
31809         (SLOW_UNALIGNED_ACCESS): Define.
31810         (riscv_slow_unaligned_access): Declare.
31811         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
31812         field.
31813         (riscv_slow_unaligned_access): New variable.
31814         (rocket_tune_info): Set slow_unaligned_access to true.
31815         (optimize_size_tune_info): Set slow_unaligned_access to false.
31816         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
31817         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
31818         (riscv_option_override): Set riscv_slow_unaligned_access.
31819         * doc/invoke.texi: Add -mstrict-align to RISC-V.
31820
31821 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
31822
31823         * config/riscv/riscv.md: Unify indentation.
31824
31825 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
31826
31827         PR target/79038
31828         PR target/79202
31829         PR target/79203
31830         * config/rs6000/rs6000.md (u code attribute): Add FIX and
31831         UNSIGNED_FIX.
31832         (extendsi<mode>2): Add support for doing sign extension via
31833         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
31834         don't have ISA 3.0 instructions.
31835         (extendsi<mode>2 splitter): Likewise.
31836         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
31837         generate the normal insns since SImode can now go in vector
31838         registers.  Disallow the special UNSPECs needed for previous
31839         machines to hide SImode being used.  Add new insns
31840         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
31841         (fix_trunc<mode>si2_stfiwx): Likewise.
31842         (fix_trunc<mode>si2_internal): Likewise.
31843         (fixuns_trunc<mode>si2): Likewise.
31844         (fixuns_trunc<mode>si2_stfiwx): Likewise.
31845         (fctiw<u>z_<mode>_smallint): Likewise.
31846         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
31847         of floating point to 32-bit integer from doing a direct move to
31848         the GPR registers to do a store.
31849         (fctiwz_<mode>): Break long line.
31850
31851 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
31852
31853         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
31854         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
31855         (addr_list, addr_offset_valid_p): New.
31856         (split_address_groups): Check offset validity with above function.
31857         (gt-tree-ssa-loop-ivopts.h): Include header file.
31858
31859 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31860
31861         * config.gcc (arm*-*-*): Add missing 'fi'.
31862
31863 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
31864
31865         * doc/invoke.texi (-fopt-info): Explicitly say order of options
31866         included in -fopt-info does not matter.
31867         * doc/optinfo.texi (-fopt-info): Fix description of default
31868         behavour. Explicitly say order of options included in -fopt-info
31869         does not matter.
31870
31871 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31872
31873         * config.gcc: Allow combinations of aprofile and rmprofile values for
31874         --with-multilib-list.
31875         * config/arm/t-multilib: New file.
31876         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
31877         variables.  Remove setting of ISA and floating-point ABI in
31878         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
31879         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
31880         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
31881         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
31882         CPU options.
31883         * config/arm/t-rmprofile: Likewise except for the matches changes.
31884         * doc/install.texi (--with-multilib-list): Document the combination of
31885         aprofile and rmprofile values and warn about pitfalls in doing that.
31886
31887 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31888
31889         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
31890         (movdi_aarch64): Likewise.
31891
31892 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31893
31894         PR tree-optimization/80632
31895         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
31896         field.
31897         (build_arrays): Initialize it for virtual phis.
31898         (fix_phi_nodes): Use it for virtual phis.
31899
31900         PR tree-optimization/80558
31901         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
31902         [x, y] op z into [x op, y op z] for op & or | if conditions
31903         are met.
31904
31905 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
31906             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31907
31908         PR target/71607
31909         * config/arm/arm.md (use_literal_pool): Remove.
31910         (64-bit immediate split): No longer takes cost into consideration
31911         if arm_disable_literal_pool is enabled.
31912         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
31913         used when arm_disable_literal_pool is enabled.
31914         (arm_max_const_double_inline_cost): Remove use of
31915         arm_disable_literal_pool.
31916         (push_minipool_fix): Add assert.
31917         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
31918         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
31919         (no_literal_pool_sf_immediate): New.
31920
31921 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31922
31923         PR tree-optimization/80613
31924         * tree-ssa-dce.c (propagate_necessity): Remove cases for
31925         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
31926
31927 2017-05-05  Richard Biener  <rguenther@suse.de>
31928
31929         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
31930
31931 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
31932
31933         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
31934         of this flag from insn conditions due to removal from r247495.
31935
31936 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31937
31938         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
31939         New function.
31940         (arm_early_store_addr_dep_ptr): Likewise.
31941         * config/arm/aarch-common-protos.h
31942         (arm_early_load_addr_dep_ptr): Add prototype.
31943         (arm_early_store_addr_dep_ptr): Likewise.
31944         * config/arm/cortex-a53.md: Add new bypasses.
31945
31946 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31947
31948         * tree.c (next_type_uid): Change type to unsigned.
31949         (type_hash_canon): Decrement back next_type_uid if
31950         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
31951         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
31952         if possible.
31953
31954 2017-05-04  Martin Sebor  <msebor@redhat.com>
31955
31956         * builtins.c: Fix a trivial typo in a comment.
31957
31958         PR middle-end/79234
31959         * builtins.c (check_sizes): Adjust to handle reading past the end.
31960         Avoid printing excessive upper bound of ranges.  Use %E to print
31961         tree nodes instead of converting them to %wu.
31962         (expand_builtin_memchr): New function.
31963         (compute_dest_size): Rename...
31964         (compute_objsize): ...to this.
31965         (expand_builtin_memcpy): Adjust.
31966         (expand_builtin_mempcpy): Adjust.
31967         (expand_builtin_strcat): Adjust.
31968         (expand_builtin_strcpy): Adjust.
31969         (check_strncat_sizes): Adjust.
31970         (expand_builtin_strncat): Adjust.
31971         (expand_builtin_strncpy): Adjust and simplify.
31972         (expand_builtin_memset): Adjust.
31973         (expand_builtin_bzero): Adjust.
31974         (expand_builtin_memcmp): Adjust.
31975         (expand_builtin): Handle memcmp.
31976         (maybe_emit_chk_warning): Check strncat just once.
31977
31978 2017-05-04  Martin Sebor  <msebor@redhat.com>
31979
31980         PR preprocessor/79214
31981         PR middle-end/79222
31982         PR middle-end/79223
31983         * builtins.c (check_sizes): Add inlining context and issue
31984         warnings even when -Wno-system-headers is set.
31985         (check_strncat_sizes): Same.
31986         (expand_builtin_strncat): Same.
31987         (expand_builtin_memmove): New function.
31988         (expand_builtin_stpncpy): Same.
31989         (expand_builtin): Handle memmove and stpncpy.
31990
31991 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
31992
31993         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
31994         which is not used any more.
31995
31996 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
31997
31998         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
31999
32000 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32001
32002         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
32003         (cortexa53_tunings): Likewise.
32004         (cortexa57_tunings): Likewise.
32005         (cortexa72_tunings): Likewise.
32006         (cortexa73_tunings): Likewise.
32007
32008 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32009
32010         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
32011         Set loop alignment to 8.
32012
32013 2017-05-04  Martin Sebor  <msebor@redhat.com>
32014
32015         PR translation/80280
32016         * builtins.c (expand_builtin_object_size): Add missing quoting to
32017         %D and like directives.
32018         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
32019         (hsa_type_for_tree_type): Same.
32020         (verify_function_arguments): Same.
32021         * symtab.c (symbol_table::change_decl_assembler_name): Same.
32022         * varasm.c (get_section): Same.
32023         (mark_weak): Same.
32024
32025 2017-05-04  Martin Sebor  <msebor@redhat.com>
32026
32027         PR translation/80280
32028         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
32029
32030 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32031
32032         * config/aarch64/aarch64.c (generic_addrcost_table):
32033         Change HI/TI mode setting.
32034
32035 2017-05-04  Martin Jambor  <mjambor@suse.cz>
32036
32037         PR tree-optimization/80622
32038         * tree-sra.c (comes_initialized_p): New function.
32039         (build_accesses_from_assign): Only set write lazily when
32040         comes_initialized_p is false.
32041         (analyze_access_subtree): Use comes_initialized_p.
32042         (propagate_subaccesses_across_link): Assert !comes_initialized_p
32043         instead of testing for PARM_DECL.
32044
32045 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32046
32047         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
32048         constraint on operand 0 to allow more general addressing modes.
32049         Adjust output template.
32050         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
32051         New function.
32052         * config/aarch64/aarch64-protos.h
32053         (aarch64_address_valid_for_prefetch_p): Declare prototype.
32054         * config/aarch64/constraints.md (Dp): New address constraint.
32055         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
32056         predicate.
32057
32058 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
32059
32060         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
32061         update use of estimate_ipcp_clone_size_and_time.
32062         (estimate_local_effects): Update use of
32063         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
32064         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
32065         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
32066         Return nonspecialized time.
32067
32068 2017-05-04  Richard Biener  <rguenther@suse.de>
32069
32070         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
32071         for the last VUSE which def dominates the PHI.  Directly call
32072         maybe_skip_until.
32073         (get_continuation_for_phi_1): Remove.
32074
32075 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
32076
32077         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
32078         to explain the use of truncating division.  Cap the number of
32079         iterations to the maximum given by nb_iterations_upper_bound,
32080         if defined.
32081
32082 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32083
32084         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
32085         * configure: Regenerate.
32086         * config.in: Regenerate.
32087         * config/i386/driver-mingw32.c: new file.
32088         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
32089         * config.host: Link driver-mingw32.o on MinGW host.
32090         * doc/install.texi: Document new --enable-mingw-wildcard configure
32091         option.
32092
32093 2017-05-04  Marek Polacek  <polacek@redhat.com>
32094
32095         PR tree-optimization/80612
32096         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
32097
32098 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32099             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
32100
32101         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
32102         (movt splitter): Likewise.
32103         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
32104         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
32105         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
32106         block for Thumb-1 with MOVT.
32107         (thumb2_legitimate_address_p): Move code block ...
32108         (can_avoid_literal_pool_for_label_p): ... into this new function.
32109         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
32110         literal pool.
32111         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
32112         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
32113         "M-profile targets with the MOVT instruction".
32114
32115 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32116
32117         * config/arm/arm-builtins.c (arm_init_builtins): Rename
32118         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
32119         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
32120
32121 2017-05-04  Martin Liska  <mliska@suse.cz>
32122
32123         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
32124         variable cond_code.
32125
32126 2017-05-04  Richard Biener  <rguenther@suse.de>
32127
32128         * tree.c (array_at_struct_end_p): Handle arrays at struct
32129         end with flexarrays more conservatively.  Refactor and treat
32130         arrays of arrays or aggregates more strict.  Fix
32131         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
32132         * tree.c (array_at_struct_end_p): Adjust prototype.
32133         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
32134         * gimple-fold.c (get_range_strlen): Likewise.
32135         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
32136
32137 2017-05-04  Richard Biener  <rguenther@suse.de>
32138
32139         PR tree-optimization/31130
32140         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
32141         false.
32142         (supports_overflow_infinity): Likewise.
32143         (is_negative_overflow_infinity): Likewise.
32144         (is_positive_overflow_infinity): Likewise.
32145         (is_overflow_infinity): Likewise.
32146         (stmt_overflow_infinity): Likewise.
32147         (overflow_infinity_range_p): Likewise.
32148         (usable_range_p): Remove as always returning true.
32149         (make_overflow_infinity): Remove.
32150         (negative_overflow_infinity): Likewise.
32151         (positive_overflow_infinity): Likewise.
32152         (avoid_overflow_infinity): Likewise.
32153         (set_value_range): Adjust accordingly.
32154         (set_value_range_to_nonnegative): Likewise, remove now unused
32155         overflow_infinity arg.
32156         (vrp_operand_equal_p): Adjust.
32157         (update_value_range): Likewise.
32158         (range_int_cst_singleton_p): Likewise.
32159         (operand_less_p): Likewise.
32160         (compare_values_warnv): Likewise.
32161         (extract_range_for_var_from_comparison_expr): Likewise.
32162         (vrp_int_const_binop): Likewise.
32163         (zero_nonzero_bits_from_vr): Likewise.
32164         (extract_range_from_multiplicative_op_1): Likewise.
32165         (extract_range_from_binary_expr_1): Likewise.
32166         (extract_range_from_unary_expr): Likewise.
32167         (extract_range_from_comparison): Likewise.
32168         (extract_range_basic): Likewise.
32169         (adjust_range_with_scev): Likewise.
32170         (compare_ranges): Likewise.
32171         (compare_range_with_value): Likewise.
32172         (dump_value_range): Likewise.
32173         (test_for_singularity): Likewise, remove strict_overflow_p parameter
32174         never used.
32175         (simplify_cond_using_ranges): Adjust.
32176
32177 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
32178
32179         * brig-builtins.def: Added a builtin for class_f64.
32180         * builtin-types.def: Added a builtin type needed by class_f64.
32181
32182 2017-05-03  Jason Merrill  <jason@redhat.com>
32183
32184         * timevar.def: Add TV_CONSTEXPR.
32185
32186 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32187
32188         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
32189
32190 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32191
32192         * ipa-prop.c (ipa_update_after_lto_read): Removed.
32193         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
32194         * ipa-cp.c (ipcp_propagate_stage): Do not call
32195         ipa_update_after_lto_read.
32196         * ipa-inline.c (ipa_inline): Likewise.
32197
32198 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32199
32200         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
32201         tag.  Added a default constructor and a destructor.
32202         (ipa_edge_args_sum_t): New class;
32203         (ipa_edge_args_sum): Declare.
32204         (ipa_edge_args_vector): Remove declaration.
32205         (IPA_EDGE_REF): Use ipa_edge_args_sum.
32206         (ipa_free_edge_args_substructures): Remove declaration.
32207         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
32208         (ipa_edge_args_info_available_for_edge_p): Likewise.
32209         * ipa-prop.c (ipa_edge_args_vector): Removed.
32210         (edge_removal_hook_holder): Likewise.
32211         (edge_duplication_hook_holder): Likewise.
32212         (ipa_edge_args_sum): New variable.
32213         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
32214         ipa_edge_args_vector.
32215         (ipa_free_edge_args_substructures): Likewise.
32216         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
32217         ipa_edge_args_vector.
32218         (ipa_edge_removal_hook): Turned into method
32219         ipa_edge_args_sum_t::remove.
32220         (ipa_edge_duplication_hook): Turned into method
32221         ipa_edge_args_sum_t::duplicate.
32222         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
32223         registering edge hooks.
32224         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
32225         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
32226         ipa_edge_args_sum instead of ipa_edge_args_vector.
32227         * ipa-profile.c (ipa_profile): Likewise.
32228
32229 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32230
32231         * symbol-summary.h (function_summary): New method exists.
32232         (function_summary::symtab_removal): Deallocate through release.
32233         (call_summary): New class.
32234         (gt_ggc_mx): New overload.
32235         (gt_pch_nx): Likewise.
32236         (gt_pch_nx): Likewise.
32237
32238 2017-05-03  Jeff Law  <law@redhat.com>
32239
32240         PR tree-optimization/78496
32241         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
32242         from simplify_cond_using_ranges.  Split off code to walk
32243         backwards through casts into ...
32244         (simplify_cond_using_ranges_2): New function.
32245         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
32246         (execute_vrp): After identifying jump threads, call
32247         simplify_cond_using_ranges_2.
32248
32249 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
32250
32251         PR bootstrap/80609
32252         * ipa-inline.h (inline_summary): Add ctor.
32253         (create_ggc): Do not use ggc_cleared_alloc.
32254
32255 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
32256             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32257
32258         * gcc.c (handle_braces): Support escaping in switch matching
32259         text.
32260         * doc/invoke.texi (Spec Files): Document it.
32261         Remove superfluous @code markup in items.
32262
32263 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32264
32265         * diagnostic-show-locus.c (struct column_range): New struct.
32266         (get_affected_columns): New function.
32267         (get_printed_columns): New function.
32268         (struct correction): New struct.
32269         (correction::ensure_capacity): New function.
32270         (correction::ensure_terminated): New function.
32271         (struct line_corrections): New struct.
32272         (line_corrections::~line_corrections): New dtor.
32273         (line_corrections::add_hint): New function.
32274         (layout::print_trailing_fixits): Reimplement in terms of the new
32275         classes.
32276         (selftest::test_overlapped_fixit_printing): New function.
32277         (selftest::diagnostic_show_locus_c_tests): Call it.
32278
32279 2017-05-03  Nathan Sidwell  <nathan@acm.org>
32280
32281         Canonicalize canonical type hashing
32282         * tree.h (type_hash_canon_hash): Declare.
32283         * tree.c (type_hash_list, attribute_hash_list): Move into
32284         type_hash_canon_hash.
32285         (build_type_attribute_qual_variant): Break out hash code calc into
32286         type_hash_canon_hash.
32287         (type_hash_canon_hash): New.  Generic type hash computation.
32288         (build_range_type_1, build_array_type_1, build_function_type,
32289         build_method_type_directly, build_offset_type, build_complex_type,
32290         make_vector_type): Call it.
32291
32292 2017-05-03  Richard Biener  <rguenther@suse.de>
32293
32294         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32295         When all DRs have unknown misaligned do not always peel
32296         when there is a store but apply the same costing model as if
32297         there were only loads.
32298
32299 2017-05-03  Richard Biener  <rguenther@suse.de>
32300
32301         Revert
32302         PR tree-optimization/80492
32303         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32304         compare_base_decls returning dont-know properly.
32305
32306 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32307
32308         * config/arm/iterators.md (CCSI): New mode iterator.
32309         (arch): New mode attribute.
32310         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
32311         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
32312         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
32313         code iterator for success result mode.
32314         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
32315         the corresponding new insn generators.
32316
32317 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
32318
32319         Revert r247509
32320         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32321         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32322
32323 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
32324
32325         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
32326         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
32327         (DDR_A): Wrap DDR argument in brackets.
32328         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
32329         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
32330         (DDR_REVERSED_P): Likewise.
32331
32332 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
32333
32334         PR tree-optimization/79472
32335         * tree-switch-conversion.c (struct switch_conv_info): Add
32336         contiguous_range and default_case_nonstandard fields.
32337         (collect_switch_conv_info): Compute contiguous_range and
32338         default_case_nonstandard fields, don't clear final_bb if
32339         contiguous_range and only the default case doesn't have the required
32340         structure.
32341         (check_all_empty_except_final): Set default_case_nonstandard instead
32342         of failing if contiguous_range and the default case doesn't have empty
32343         block.
32344         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
32345         and only the default case doesn't have the required constants.  Skip
32346         virtual phis.
32347         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
32348         if default_case_nonstandard.
32349         (build_constructors): Build constant 1 just once.  Assert that default
32350         values aren't inserted in between cases if contiguous_range.  Skip
32351         virtual phis.
32352         (build_arrays): Skip virtual phis.
32353         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
32354         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
32355         Handle virtual phis.
32356         (gen_inbound_check): Handle default_case_nonstandard case.
32357         (process_switch): Adjust check_final_bb caller.  Call
32358         gather_default_values with the first non-default case instead of
32359         default case if default_case_nonstandard.
32360
32361 2017-05-02  Nathan Sidwell  <nathan@acm.org>
32362
32363         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
32364         check.  Fix formatting.
32365
32366 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
32367
32368         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
32369         errors when comparing specialized and unspecialized times.
32370
32371 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
32372
32373         * diagnostic-show-locus.c
32374         (layout::should_print_annotation_line_p): Make private.
32375         (layout::print_annotation_line): Make private.
32376         (layout::annotation_line_showed_range_p): Make private.
32377         (layout::show_ruler): Make private.
32378         (layout::print_source_line): Make private.  Pass in line and
32379         line_width, rather than calling location_get_source_line.  Drop
32380         returned value.
32381         (layout::print_leading_fixits): New method.
32382         (layout::print_any_fixits): Rename to...
32383         (layout::print_trailing_fixits): ...this, and make private.
32384         Don't print newline fixits.
32385         (diagnostic_show_locus): Move logic for printing one row into...
32386         (layout::print_line): ...this new function.  Move the
32387         location_get_source_line call and error-handling from
32388         print_source_line to here.  Call print_leading_fixits, and rename
32389         print_any_fixits to print_trailing_fixits.
32390         (selftest::test_fixit_insert_containing_newline): Update now that
32391         newlines are partially supported.
32392         (selftest::test_fixit_insert_containing_newline_2): New test.
32393         (selftest::test_fixit_replace_containing_newline): Update comments.
32394         (selftest::diagnostic_show_locus_c_tests): Call the new test.
32395         * edit-context.c (class added_line): New class.
32396         (class edited_line): Describe newline handling in comment.
32397         (edited_line::actually_edited_p): New method.
32398         (edited_line::print_content): Delete redundant decl.
32399         (edited_line::m_predecessors): New field.
32400         (edited_file::print_content): Call edited_line::print_content.
32401         (edited_file::print_diff): Update to support newlines.
32402         (edited_file::print_diff_hunk): Likewise.
32403         (edited_file::print_run_of_changed_lines): New function.
32404         (edited_file::print_diff_line): Convert to...
32405         (print_diff_line): ...this.
32406         (edited_file::get_effective_line_count): New function.
32407         (edited_line::edited_line): Initialize new field m_predecessors.
32408         (edited_line::~edited_line): Clean up m_predecessors.
32409         (edited_line::apply_fixit): Handle newlines.
32410         (edited_line::get_effective_line_count): New function.
32411         (edited_line::print_content): New function.
32412         (edited_line::print_diff_lines): New function.
32413         (selftest::test_applying_fixits_insert_containing_newline): New
32414         test.
32415         (selftest::test_applying_fixits_replace_containing_newline): New
32416         test.
32417         (selftest::insert_line): New function.
32418         (selftest::test_applying_fixits_multiple_lines): Add example of
32419         inserting a line.
32420         (selftest::edit_context_c_tests): Call the new tests.
32421
32422 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32423
32424         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
32425         parameter cand.  Update dump information.
32426         (get_computation_cost): Update uses.
32427
32428 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32429
32430         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
32431         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
32432         (get_computation_at, rewrite_use_address): Update use of
32433         get_computation_aff.
32434
32435 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32436
32437         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
32438         (get_computation): Delete.
32439         (get_computation_cost): Implement like get_computation_cost_at.
32440         Use get_computation_at.
32441         (get_computation_cost_at): Delete.
32442         (rewrite_use_nonlinear_expr): Use get_computation_at.
32443         (rewrite_use_compare, remove_unused_ivs): Ditto.
32444
32445 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32446
32447         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
32448
32449 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32450
32451         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
32452         (ivopts_global_cost_for_size): Rename parameter and update uses.
32453         (iv_ca_recount_cost): Update uses.
32454         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
32455         candidates seperately in n_invs and n_cands.
32456         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
32457
32458 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32459
32460         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
32461         (find_inv_vars_cb): New.
32462         (find_depends): Renamed to ...
32463         (find_inv_vars): ... this.
32464         (add_candidate_1, force_var_cost): Call find_inv_vars.
32465         (split_address_cost, determine_group_iv_cost_cond): Ditto.
32466
32467 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32468
32469         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
32470         inv_vars.  Add inv_exprs.
32471         (struct iv_cand): Rename depends_on to inv_vars.
32472         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
32473         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
32474         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
32475         (dump_cand): Dump inv_vars.
32476         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
32477         (record_invariant, find_depends, add_candidate_1): Ditto.
32478         (set_group_iv_cost, force_var_cost): Ditto.
32479         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
32480         (get_computation_cost_at, get_computation_cost): Ditto.
32481         (determine_group_iv_cost_generic): Ditto.
32482         (determine_group_iv_cost_address): Ditto.
32483         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
32484         (determine_group_iv_costs): Ditto.
32485         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
32486         (iv_ca_set_remove_invariants): Renamed to ...
32487         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
32488         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
32489         (iv_ca_set_add_invariants):  Renamed to ...
32490         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
32491         (iv_ca_set_cp): Use iv_ca_set_add_invs.
32492         (iv_ca_has_deps): Support inv_vars and inv_exprs.
32493         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
32494         (create_new_ivs): Remove useless dump.
32495
32496 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32497
32498         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
32499         iv_cand code.
32500         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
32501         (iv_ca_set_no_cp, create_new_iv): Ditto.
32502
32503 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32504
32505         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32506
32507 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32508
32509         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
32510         function tree_check2.
32511
32512 2017-05-02  Martin Liska  <mliska@suse.cz>
32513
32514         * doc/gcov.texi: Add missing preposition.
32515         * gcov.c (function_info::function_info): Properly fill up
32516         all member variables.
32517
32518 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32519
32520         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
32521
32522 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32523
32524         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
32525
32526 2017-05-02  Martin Liska  <mliska@suse.cz>
32527
32528         PR lto/77954.
32529         * lto-streamer-in.c (lto_read_tree_1): Remove
32530         LTO_STREAMER_DEBUG.
32531         * lto-streamer.c (struct tree_hash_entry): Likewise.
32532         (struct tree_entry_hasher): Likewise.
32533         (tree_entry_hasher::hash): Likewise.
32534         (tree_entry_hasher::equal): Likewise.
32535         (lto_streamer_init): Likewise.
32536         (lto_orig_address_map): Likewise.
32537         (lto_orig_address_get): Likewise.
32538         (lto_orig_address_remove): Likewise.
32539         * lto-streamer.h: Likewise.
32540         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
32541         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
32542
32543 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
32544
32545         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
32546         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
32547         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
32548         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
32549         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
32550         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
32551         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
32552         (mm_maskz_sub_ss): New intrinsics.
32553         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32554         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
32555         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
32556         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
32557         (__builtin_ia32_subss_mask_round): New builtins.
32558         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32559         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
32560         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
32561         Renamed to ...
32562         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
32563         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
32564         Changed to ...
32565         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
32566         ... this.
32567
32568 2017-05-02  Martin Jambor  <mjambor@suse.cz>
32569
32570         PR tree-optimization/78687
32571         * tree-sra.c (access): New field parent.
32572         (process_subtree_disqualification): New function.
32573         (disqualify_candidate): Call it.
32574         (build_accesses_from_assign): Reset write flag if creating an
32575         assighnment link.
32576         (build_access_subtree): Fill in parent field and also prpagate
32577         down grp_write flag.
32578         (create_artificial_child_access): New parameter set_grp_write, set
32579         grp_write to its value.
32580         (propagate_subaccesses_across_link): Also propagate grp_write flag
32581         values.
32582         (propagate_all_subaccesses): Push the closest parent back to work
32583         queue if add_access_to_work_queue returned true.
32584
32585 2017-05-02  Richard Biener  <rguenther@suse.de>
32586
32587         * common.opt (fstrict-overflow): Alias negative to fwrapv.
32588         * doc/invoke.texi (fstrict-overflow): Remove all traces of
32589         -fstrict-overflow documentation.
32590         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
32591         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
32592         flag_strict_overflow.
32593         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
32594         * lto-opts.c (lto_write_options): Do not stream it.
32595         * lto-wrapper.c (merge_and_complain): Do not handle it.
32596         * opts.c (default_options_table): Do not set -fstrict-overflow.
32597         (finish_options): Likewise do not clear it when sanitizing.
32598         * simplify-rtx.c (simplify_const_relational_operation): Do not
32599         test flag_strict_overflow.
32600
32601 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32602
32603         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
32604         using enabled attribute.
32605         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
32606         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
32607         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
32608         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
32609         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
32610         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
32611         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
32612         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
32613         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
32614         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
32615
32616 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32617
32618         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
32619
32620 2017-05-02  Richard Biener  <rguenther@suse.de>
32621
32622         PR tree-optimization/80591
32623         Revert
32624         2017-04-10  Richard Biener  <rguenther@suse.de>
32625
32626         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32627         asm inputs.
32628
32629 2017-05-02  Richard Biener  <rguenther@suse.de>
32630
32631         PR tree-optimization/80549
32632         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
32633         (cleanup_tree_cfg_noloop): Create forwarders to known loop
32634         headers if they do not have a preheader.
32635
32636 2017-05-02  Martin Liska  <mliska@suse.cz>
32637
32638         PR other/80589
32639         * common.opt: Fix typo.
32640         * doc/invoke.texi: Likewise.
32641
32642 2017-05-01  Jan Beulich  <jbeulich@suse.com>
32643
32644         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
32645         swapping, add (x,x,m,x,n) alternative.
32646
32647 2017-05-01  Nathan Sidwell  <nathan@acm.org>
32648
32649         * calls.c (combine_pending_stack_adjustment_and_call): Remove
32650         unnecessary unadjusted_alignment check.
32651
32652 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32653
32654         PR c++/80038
32655         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
32656         operations here.
32657         * gimplify.c (gimplify_cilk_detach): New function.
32658         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
32659         * tree-core.h: Document EXPR_CILK_SPAWN.
32660         * tree.h (EXPR_CILK_SPAWN): Define.
32661
32662 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
32663
32664         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
32665         to use new fixit_hint representation, using the "replace" logic.
32666         (get_line_span_for_fixit_hint): Likewise.
32667         (layout::print_any_fixits): Likewise.
32668         (selftest::test_one_liner_many_fixits): Rename to...
32669         (selftest::test_one_liner_many_fixits_1): ...this, and update
32670         comment and expected output to reflect that the multiple fix-it
32671         hints are now consolidated into one insertion.
32672         (selftest::test_one_liner_many_fixits_2): New test.
32673         (selftest::test_diagnostic_show_locus_one_liner): Update for
32674         above.
32675         (selftest::test_fixit_consolidation): Update for fix-it API
32676         change.
32677         * diagnostic.c (print_parseable_fixits): Likewise.
32678         * edit-context.c (edited_line::m_line_events): Convert from
32679         auto_vec <line_event *> to auto_vec <line_event>.
32680         (class line_event): Convert from abstract base class to a concrete
32681         class, taking over the role of replace_event.
32682         (class insert_event): Delete.
32683         (class replace_event): Rename to class line_event.  Convert to
32684         half-open range.
32685         (edit_context::add_fixits): Reimplement.
32686         (edit_context::apply_insert): Delete.
32687         (edit_context::apply_replace): Rename to...
32688         (edit_context::apply_fixit): ...this.  Convert to half-open range.
32689         (edited_file::apply_insert): Delete.
32690         (edited_file::apply_replace): Rename to...
32691         (edited_file::apply_fixit): ...this.
32692         (edited_line::~edited_line): Drop deletion of events.
32693         (edited_line::apply_insert): Delete.
32694         (edited_line::apply_replace): Rename to...
32695         (edited_line::apply_fixit): ...this.  Convert to half-open range.
32696         Update for change to type of m_line_events.
32697         * edit-context.h (edit_context::apply_insert): Delete.
32698         (edit_context::apply_replace): Rename to...
32699         (edit_context::apply_fixit): ...this.
32700
32701 2017-05-01  Martin Sebor  <msebor@redhat.com>
32702
32703         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
32704         known.
32705
32706 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
32707
32708         PR target/68491
32709         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
32710         __get_cpuid_max returns 0.
32711         (__get_cpuid_count): Ditto.
32712
32713 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
32714
32715         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
32716         replacement expression is another instance of one of its arguments.
32717
32718 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
32719
32720         PR target/79430
32721         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
32722         check for stack push/pop autoinc.
32723         * config/i386/i386.c (ix86_agi_dependent): Return false
32724         if the only reason why modified_in_p returned true is that
32725         addr is SP based and set_insn is a push or pop.
32726
32727 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32728
32729         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
32730         overflow check.
32731
32732 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32733
32734         PR ipa/79224
32735         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
32736         (account_size_time): Use two predicates - exec_pred and
32737         nonconst_pred_ptr.
32738         (evaluate_conditions_for_known_args): Compute both clause and
32739         nonspec_clause.
32740         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
32741         (inline_summary_t::duplicate): Update.
32742         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
32743         separately.
32744         (compute_inline_parameters): Likewise.
32745         (estimate_edge_size_and_time): Update caluclation of time.
32746         (estimate_node_size_and_time): Compute both time and nonspecialized
32747         time.
32748         (estimate_ipcp_clone_size_and_time): Update.
32749         (inline_merge_summary): Update.
32750         (do_estimate_edge_time): Update.
32751         (do_estimate_edge_size): Update.
32752         (do_estimate_edge_hints): Update.
32753         (inline_read_section, inline_write_summary): Stream both new predicates.
32754         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
32755         as argument.
32756         (compute_inlined_call_time): Cleanup.
32757         (big_speedup_p): Update.
32758         (edge_badness): Update.
32759         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
32760         (size_time_entry): Replace predicate by exec_predicate and
32761         nonconst_predicate.
32762         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
32763         (estimate_edge_time): Return also nonspec_time.
32764         (reset_edge_growth_cache): Update.
32765
32766 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
32767
32768         PR rtl-optimization/80491
32769         * ifcvt.c (noce_process_if_block): When looking for x setter
32770         with missing else_bb, don't check only the insn right before
32771         cond_earliest, but look for the last insn that x is modified in
32772         within the same bb.
32773
32774         PR rtl-optimization/80491
32775         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
32776
32777 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
32778
32779         PR tree-optimization/80487
32780         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
32781
32782 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32783
32784         PR tree-optimization/79697
32785         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
32786         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
32787         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
32788         BUILT_IN_STRNDUP.
32789         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
32790         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
32791
32792 2017-04-28  Martin Sebor  <msebor@redhat.com>
32793
32794         PR tree-optimization/80523
32795         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
32796         (init_target_to_host_charmap, target_to_host, target_strtol10): New
32797         functions.
32798         (maybe_warn, format_directive, parse_directive): Use new functions.
32799         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
32800
32801 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
32802
32803         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
32804
32805 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32806
32807         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
32808         target_header_dir): Set correctly.
32809         * configure: Regenerated.
32810         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32811         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32812         instead of SYSTEM_HEADER_DIR.
32813
32814 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
32815
32816         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
32817         (estimate_local_effects): Likewise.
32818         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
32819         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
32820         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
32821         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
32822         do_estimate_edge_time, estimate_edge_time): Likewise.
32823         * ipa-inline-analysis.c (estimate_node_size_and_time,
32824         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
32825         (estimate_time_after_inlining): Remove.
32826
32827 2017-04-28  Martin Liska  <mliska@suse.cz>
32828
32829         * doc/gcov.texi: Enhance documentation of gcov.
32830
32831 2017-04-28  Martin Liska  <mliska@suse.cz>
32832
32833         * doc/gcov.texi: Sort options in alphabetic order.
32834         * doc/gcov-dump.texi: Likewise.
32835         * doc/gcov-tool.texi: Likewise.
32836         * gcov.c (print_usage): Likewise.
32837         * gcov-dump.c (print_usage): Likewise.
32838         * gcov-tool.c (print_merge_usage_message): Likewise.
32839         (print_rewrite_usage_message): Likewise.
32840         (print_overlap_usage_message): Likewise.
32841
32842 2017-04-28  Martin Liska  <mliska@suse.cz>
32843
32844         PR gcov-profile/53915
32845         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
32846
32847 2017-04-28  Martin Liska  <mliska@suse.cz>
32848
32849         PR gcov-profile/79891
32850         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
32851         is marked by compiler as living on a line.
32852         (get_cycles_count): Remove usage of the union.
32853         (output_intermediate_file): Likewise.
32854         (find_source): Fix GNU coding style.
32855         (accumulate_line_counts): Remove old non-all block mode.
32856         (output_lines): Remove usage of the union.
32857         * profile.c (output_location): Include all BBs, even if
32858         belonging to a same line (and file) as a previous BB.
32859
32860 2017-04-28  Martin Liska  <mliska@suse.cz>
32861
32862         * gcov.c (process_args): Handle new argument 'w'.
32863         (read_graph_file): Assign ID to BBs.
32864         (output_branch_count): Display BB # if verbose flag is set.
32865         (output_lines): Likewise for arcs.
32866         (print_usage): Add '--verbose' option help.
32867         * doc/gcov.texi: Document --verbose (-w) option.
32868
32869 2017-04-28  Martin Liska  <mliska@suse.cz>
32870
32871         * gcov.c (struct block_location_info): New struct.
32872         (process_file): Fill up the new structure.
32873         (read_graph_file): Replace usage of encoding by the newly added
32874         struct.
32875         (add_line_counts): Likewise.
32876         (accumulate_line_counts): Remove usage of the union.
32877         (function_info::function_info): New function.
32878         (function_info::~function_info): Likewise.
32879         (process_file): Call delete instead of release_function.
32880         (release_function): Release the function.
32881         (release_structures): Call delete instead of release_function.
32882         (solve_flow_graph): Replace usage of num_blocks.
32883         (find_exception_blocks): Likewise.
32884         (output_lines): Fix GNU coding style.
32885
32886 2017-04-28  Martin Liska  <mliska@suse.cz>
32887
32888         PR driver/56469
32889         * coverage.c (coverage_remove_note_file): New function.
32890         * coverage.h: Declare the function.
32891         * toplev.c (finalize): Clean if an error has been seen.
32892
32893 2017-04-28  Martin Liska  <mliska@suse.cz>
32894
32895         PR gcov-profile/80031
32896         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
32897         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
32898         * gcov.c (read_graph_file): Read just number of blocks.
32899         * profile.c (branch_prob): Do not stream 0 flags per a basic
32900         block.
32901
32902 2017-04-28  Martin Liska  <mliska@suse.cz>
32903
32904         * gcov-dump.c (tag_*): Add new argument to declarations.
32905         (dump_gcov_file): Likewise.
32906         (tag_blocks): Add and use new argument depth.
32907         (tag_arcs): Likewise.
32908         (tag_lines): Likewise.
32909         (tag_counters): Likewise.
32910         (tag_summary): Likewise.
32911         (dump_working_sets): Use depth to do a proper indentation.
32912
32913 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
32914
32915         PR bootstrap/80531
32916         * cgraph.h (symtab_node::debug_symtab): No longer inline.
32917         * symtab.c (symtab_node::debug_symtab): Move definition here.
32918
32919 2017-04-28  Richard Biener  <rguenther@suse.de>
32920
32921         * lto-streamer.h (LTO_major_version): Bump to 7.
32922
32923 2017-04-28  Richard Biener  <rguenther@suse.de>
32924
32925         * tree-vrp.c (assert_info): New struct.
32926         (add_assert_info): New helper.
32927         (register_edge_assert_for_2): Refactor to add asserts to a vector
32928         of assert_info.
32929         (register_edge_assert_for_1): Likewise.
32930         (register_edge_assert_for): Likewise.
32931         (finish_register_edge_assert_for): New helper actually registering
32932         asserts where live on edge.
32933         (find_conditional_asserts): Adjust.
32934         (find_switch_asserts): Likewise.
32935         (evrp_dom_walker::try_find_new_range): Generalize.
32936         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
32937
32938 2017-04-27  Marek Polacek  <polacek@redhat.com>
32939
32940         PR sanitizer/80349
32941         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
32942         arg10 and arg11 to itype.
32943
32944 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
32945
32946         * doc/extend.texi (Object Size Checking): Improve grammar.
32947
32948 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
32949
32950         PR target/80530
32951         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
32952         that the logic for permitting reciprocal estimates matches that
32953         in use_rsqrt_p.
32954
32955 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32956
32957         PR c++/80534
32958         * tree.c (type_cache_hasher::equal): Only compare
32959         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
32960         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
32961         non-aggregate element types.
32962         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
32963         about the flag on ARRAY_TYPEs in the comment, formatting fix.
32964
32965 2017-04-27  Richard Biener  <rguenther@suse.de>
32966
32967         PR middle-end/80533
32968         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
32969         stripping ARRAY_REFs from MEM_EXPR make sure we're not
32970         keeping a reference to a trailing array.
32971
32972 2017-04-27  Richard Biener  <rguenther@suse.de>
32973
32974         PR middle-end/80539
32975         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
32976         being in loop-closed SSA form conservatively.
32977         (chrec_fold_multiply_poly_poly): Likewise.
32978
32979 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
32980
32981         PR middle-end/79665
32982         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
32983         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
32984
32985 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
32986
32987         PR target/77728
32988         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
32989         (aarch64_function_arg_alignment): Return unsigned int again, but still
32990         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
32991         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
32992         Don't emit -Wpsabi note.
32993         (aarch64_function_arg_boundary): Likewise.
32994         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
32995         caller.
32996
32997 2017-04-26  Nathan Sidwell  <nathan@acm.org>
32998
32999         * tree.h (crc32_unsigned_n): Declare.
33000         (crc32_unsigned, crc32_unsigned): Make inline.
33001         * tree.c (crc32_unsigned_bits): Replace with ...
33002         (crc32_unsigned_n): ... this.
33003         (crc32_unsigned, crc32_byte): Remove.
33004         (crc32_string): Remove unnecessary braces.
33005
33006 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33007
33008         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
33009         * ipa-inline-analysis.c (MAX_TIME): Remove.
33010         (account_size_time): Use sreal for time.
33011         (dump_inline_summary): Update.
33012         (estimate_function_body_sizes): Update.
33013         (estimate_edge_size_and_time): Update.
33014         (estimate_calls_size_and_time): Update.
33015         (estimate_node_size_and_time): Update.
33016         (inline_merge_summary): Update.
33017         (inline_update_overall_summary): Update.
33018         (estimate_time_after_inlining): Update.
33019         (inline_read_section): Update.
33020         (inline_write_summary): Update.
33021         * ipa-inline.c (compute_uninlined_call_time): Update.
33022         (compute_inlined_call_time): Update.
33023         (recursive_inlining): Update.
33024         (inline_small_functions): Update.
33025         (dump_overall_stats): Update.
33026         * ipa-inline.h: Include sreal.h.
33027         (size_time_entry): Turn time to sreal.
33028         (inline_summary): Turn self_time nad time to sreal.
33029
33030 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33031
33032         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
33033         data-streamer.h
33034         (sreal::stream_out, sreal::stream_in): New.
33035         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
33036
33037 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33038
33039         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
33040         environment.
33041
33042 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
33043
33044         PR target/70799
33045         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
33046         Handle ASHIFTRT.
33047         (dimode_scalar_chain::compute_convert_gain): Ditto.
33048         (dimode_scalar_chain::make_vector_copies): Ditto.
33049         (dimode_scalar_chain::convert_reg): Ditto.
33050         (dimode_scalar_chain::convert_insn): Ditto.
33051         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
33052         (VI248_AVX512BW_1): New mode iterator.
33053         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
33054         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
33055         mode iterator.
33056
33057 2017-04-25  Martin Sebor  <msebor@redhat.com>
33058
33059         PR tree-optimization/80497
33060         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
33061         constants are representable in HOST_WIDE_INT.
33062         (parse_directive): Ditto.
33063
33064 2017-04-25  Martin Sebor  <msebor@redhat.com>
33065
33066         PR bootstrap/80486
33067         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
33068         (new_zero_array): Adjust signature.
33069         (dom_info::dom_init): Used unsigned rather that size_t.
33070         (dom_info::dom_info): Same.
33071
33072 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33073             Jakub Jelinek  <jakub@redhat.com>
33074
33075         PR target/77728
33076         * config/arm/arm.c: Include gimple.h.
33077         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33078         returns negative, increment ncrn only if it returned positive.
33079         (arm_needs_doubleword_align): Return int instead of bool,
33080         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
33081         members, but if there is any such non-FIELD_DECL
33082         > PARM_BOUNDARY aligned decl, return -1 instead of false.
33083         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33084         returns negative, increment nregs only if it returned positive.
33085         (arm_setup_incoming_varargs): Likewise.
33086         (arm_function_arg_boundary): Emit -Wpsabi note if
33087         arm_needs_doubleword_align returns negative, return
33088         DOUBLEWORD_ALIGNMENT only if it returned positive.
33089
33090 2017-04-25  Marek Polacek  <polacek@redhat.com>
33091
33092         PR sanitizer/80349
33093         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33094         first argument to type.
33095
33096 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
33097
33098         PR target/80482
33099         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
33100         type checks to test for compatibility instead of equality.
33101
33102 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33103             Jakub Jelinek  <jakub@redhat.com>
33104
33105         PR target/77728
33106         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
33107         type.
33108         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
33109         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
33110         the alignment computation, but return their maximum in warn_alignment.
33111         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
33112         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
33113         is smaller.
33114         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
33115         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
33116         caller.
33117
33118 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33119
33120         * config/arc/simdext.md (dmpyh): Fix typo.
33121
33122 2017-04-25  Richard Biener  <rguenther@suse.de>
33123
33124         PR tree-optimization/80492
33125         * alias.c (compare_base_decls): Handle registers with asm
33126         specification conservatively.
33127         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
33128         compare_base_decls returning dont-know properly.
33129
33130 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33131
33132         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
33133         (legitimate_offset_address_p): New function.
33134         (arc_legitimate_address_p): Use above function.
33135
33136 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33137
33138         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
33139
33140 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33141
33142         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
33143         ACCH registers whenever they are available.
33144
33145 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33146
33147         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
33148         double regs fix when not used.
33149
33150 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33151
33152         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
33153         core registers.
33154         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
33155         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
33156
33157 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33158
33159         * config/arc/arc.c (arc_output_addsi): Check for h-register class
33160         when emitting short ADD instructions.
33161
33162 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33163
33164         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
33165         constraint.
33166         (cmpsi_cc_c_insn): Likewise.
33167         (cbranchsi4_scratch): Compute proper instruction length using
33168         compact_hreg_operand.
33169         * config/arc/predicates.md (compact_hreg_operand): New predicate.
33170
33171 2017-04-25  Richard Biener  <rguenther@suse.de>
33172
33173         PR middle-end/80509
33174         * passes.c (pass_manager::pass_manager): Initialize
33175         m_name_to_pass_map.
33176
33177 2017-04-25  Richard Biener  <rguenther@suse.de>
33178
33179         PR tree-optimization/79201
33180         * tree-ssa-sink.c (statement_sink_location): Handle calls.
33181
33182 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33183
33184         PR target/80464
33185         * config/s390/vector.md: Split MEM->GPR vector moves for
33186         non-s_operand addresses.
33187
33188 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33189
33190         PR target/79895
33191         * config/s390/predicates.md (reload_const_wide_int_operand): New
33192         predicate.
33193         * config/s390/s390.md ("movti"): Remove d/P alternative.
33194         ("movti_bigconst"): New pattern definition.
33195
33196 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33197
33198         PR target/80080
33199         * s390-protos.h (s390_expand_cs_hqi): Removed.
33200         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
33201         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
33202         modes as well as CCZ1mode and CCZmode.
33203         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
33204         signature of s390_emit_compare_and_swap.
33205         (s390_expand_cs_hqi): Likewise, make static.
33206         (s390_expand_cs_tdsi): Generate an explicit compare before trying
33207         compare-and-swap, in some cases.
33208         (s390_expand_cs): Wrapper function.
33209         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
33210         atomic_exchange.
33211         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
33212         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
33213         patterns for small and large integers.  Forbid symref memory operands.
33214         Move expander to s390.c.  Require cc register.
33215         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
33216         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
33217         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
33218         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
33219         symref memory operands.  Remove CC mode and call s390_match_ccmode
33220         instead.
33221         ("atomic_exchange<mode>"): Allow and implement all integer modes.
33222
33223 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33224
33225         * config/s390/s390.md (define_peephole2): New peephole to help
33226         combining the load-and-test pattern with volatile memory.
33227
33228 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33229
33230         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
33231         with CCZmode for TARGET_Z196.
33232
33233 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33234
33235         PR rtl-optimization/80501
33236         * combine.c (make_compound_operation_int): Set subreg_code to SET
33237         even for AND with mask of the sign bit of mode.
33238
33239         PR rtl-optimization/80500
33240         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
33241         sum's initial value.
33242
33243 2017-04-25  Julian Brown  <julian@codesourcery.com>
33244             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33245
33246         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
33247
33248 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
33249
33250         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
33251
33252 2017-04-25  Julian Brown  <julian@codesourcery.com>
33253             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33254
33255         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
33256         (thunderx2t99_sha): New Reservation.
33257
33258 2017-04-25  Julian Brown  <julian@codesourcery.com>
33259             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33260
33261         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
33262         type for 1-element load.
33263
33264 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
33265
33266         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
33267
33268 2017-04-24  Martin Jambor  <mjambor@suse.cz>
33269
33270         PR tree-optimization/80293
33271         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
33272         char arrays not totally scalarizable if it is false.
33273         (analyze_all_variable_accesses): Pass correct value in the new
33274         parameter.  Add a statistics counter.
33275
33276 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
33277
33278         PR middle-end/79931
33279         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
33280
33281 2017-04-24  Richard Biener  <rguenther@suse.de>
33282
33283         PR tree-optimization/80494
33284         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
33285         out for complex types.
33286
33287 2017-04-24  Richard Biener  <rguenther@suse.de>
33288
33289         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
33290         * tree-ssa-sccvn.c (print_scc): Print SCC size.
33291         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
33292         (DFS): Adjust and never fail.
33293         (sccvn_dom_walker::fail): Remove.
33294         (sccvn_dom_walker::before_dom_children): Adjust.
33295         (run_scc_vn): Likewise and never fail.
33296         * tree-ssa-pre.c (pass_pre::execute): Adjust.
33297         (pass_fre::execute): Likewise.
33298
33299 2017-04-24  Richard Biener  <rguenther@suse.de>
33300
33301         PR tree-optimization/79725
33302         * tree-ssa-sink.c (statement_sink_location): Return whether
33303         failure reason was zero uses.  Move that check later.
33304         (sink_code_in_bb): Deal with zero uses by removing the stmt
33305         if possible.
33306
33307 2017-04-24  Richard Biener  <rguenther@suse.de>
33308
33309         PR c++/2972
33310         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
33311         pointer-based references.
33312
33313 2017-04-24  Richard Biener  <rguenther@suse.de>
33314
33315         PR bootstrap/79814
33316         * pass_manager.h (pass_manager::operator new): Remove.
33317         (pass_manager::operator delete): Likewise.
33318         * passes.c (pass_manager::operator new): Remove.
33319         (pass_manager::operator delete): Likewise.
33320         (pass_manager::pass_manager): Zero individual pass members.
33321
33322 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
33323
33324         PR target/70799
33325         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
33326         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
33327         Check "XEXP (src, 1)" operand here.
33328         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
33329         Check "XEXP (src, 1)" operand here.
33330         (dimode_scalar_chain::make_vector_copies): Detect count register
33331         of a shift instruction.  Zero extend count register from QImode
33332         to DImode to satisfy vector shift pattern count operand predicate.
33333         Substitute vector shift count operand with a DImode copy.
33334         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
33335         vector register.
33336
33337 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
33338
33339         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
33340         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33341         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
33342         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33343         (UNSPEC_NOREX_MEM): Remove definition.
33344
33345 2017-04-21  Richard Biener  <rguenther@suse.de>
33346
33347         PR tree-optimization/79547
33348         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33349         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
33350         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
33351         without any constraints.
33352
33353 2017-04-21  Richard Biener  <rguenther@suse.de>
33354
33355         PR tree-optimization/78847
33356         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
33357
33358 2017-04-21  Richard Biener  <rguenther@suse.de>
33359
33360         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
33361         (build_distinct_type_copy): Likewise.
33362         (build_variant_type_copy): Likewise.
33363         * tree.c (build_qualified_type): Pass down mem-stat info.
33364         (build_distinct_type_copy): Likewise.
33365         (build_variant_type_copy): Likewise.
33366
33367 2017-04-21  Richard Biener  <rguenther@suse.de>
33368
33369         PR tree-optimization/80237
33370         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
33371         defaulted to NULL.
33372         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
33373         for a simplified result.
33374
33375 2016-04-21  Richard Biener  <rguenther@suse.de>
33376
33377         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
33378         sth as strict as a simple_iv but a chrec without symbols and an
33379         operand defined in the loop we are peeling (and not some subloop).
33380         (propagate_constants_for_unrolling): Propagate all constants.
33381
33382 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33383
33384         PR target/79804
33385         * config/i386/i386.c (print_reg): Remove assert for disalowed
33386         regno values, call output_operand_lossage instead.
33387
33388 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33389
33390         PR target/78090
33391         * config/i386/constraints.md (Yc): New register constraint.
33392         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
33393         Use Yc constraint for alternative 2 of operand 0.  Remove
33394         preferred_for_speed attribute.
33395
33396 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33397
33398         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
33399         lastprivate clauses in SIMT case.
33400
33401 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
33402
33403         * doc/invoke.texi (-Wextra-semi): Document new warning option.
33404
33405 2017-04-20  Richard Biener  <rguenther@suse.de>
33406
33407         PR tree-optimization/57796
33408         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
33409         as N scalar stores.
33410         (vect_model_load_cost): Cost gathers as N scalar loads.
33411
33412 2017-04-20  Richard Biener  <rguenther@suse.de>
33413
33414         * ggc-page.c (ggc_allocated_p): Rename to ...
33415         (safe_lookup_page_table_entry): ... this and return the lookup
33416         result.
33417         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
33418
33419 2017-04-20  Richard Biener  <rguenther@suse.de>
33420
33421         PR tree-optimization/80453
33422         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
33423         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
33424         from the conditions.
33425         (vn_phi_eq): Pass them down.
33426         (vn_phi_lookup): Record them.
33427         (vn_phi_insert): Likewise.
33428
33429 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
33430
33431         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
33432         uninitialized variable warning to avoid buffer overrun.
33433
33434 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33435
33436         PR other/71250
33437         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
33438         is suppressed for '{ 0 }' in C.
33439
33440 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33441
33442         * BASE-VER: Set to 8.0.0.
33443
33444 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33445
33446         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
33447         priority .init_array and .fini_array section with SECTION_NOTYPE
33448         flag.
33449
33450 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33451
33452         PR middle-end/80423
33453         * tree.h (build_array_type): Add typeless_storage default argument.
33454         * tree.c (type_cache_hasher::equal): Also compare
33455         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
33456         (build_array_type): Add typeless_storage argument, set
33457         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
33458         recursive call.
33459         (build_nonshared_array_type): Adjust build_array_type_1 caller.
33460         (build_array_type): Likewise.  Add typeless_storage argument.
33461
33462 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33463             Jakub Jelinek  <jakub@redhat.com>
33464
33465         PR tree-optimization/80426
33466         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
33467         operation on symbolic operands, also compute the overflow for the
33468         invariant part when the operation degenerates into a negation.
33469
33470 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
33471
33472         PR debug/80461
33473         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
33474         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
33475
33476         PR debug/80436
33477         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
33478
33479 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
33480
33481         PR target/80462
33482         * config/avr/avr.c (tree.h): Include it.
33483         (cgraph.h): Include it.
33484         (avr_encode_section_info): Don't warn for uninitialized progmem
33485         variable if it's just an alias.
33486
33487 2017-04-19  Richard Biener  <rguenther@suse.de>
33488
33489         PR ipa/65972
33490         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
33491         when needed by AutoPGO.
33492
33493 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
33494
33495         PR lto/50345
33496         * doc/lto.texi: Remove an extra 'that'.
33497
33498 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
33499
33500         PR rtl-optimization/80429
33501         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
33502         are only used in debug insns.
33503
33504 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33505             Vladimir Makarov  <vmakarov@redhat.com>
33506
33507         * config/sparc/predicates.md (input_operand): Add comment.  Return
33508         true for any memory operand when LRA is in progress.
33509         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
33510
33511 2017-04-18  Jeff Law  <law@redhat.com>
33512
33513         PR target/74563
33514         * mips.md ({return,simple_return}_internal): Do not overwrite
33515         operands[0].
33516
33517 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33518
33519         PR tree-optimization/80443
33520         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
33521         instead of adding 1, subtract -1 and similarly instead of subtracting
33522         1 add -1.
33523
33524 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
33525
33526         PR rtl-optimization/80357
33527         * haifa-sched.c (tmp_bitmap): New variable.
33528         (model_recompute): Handle duplicate use records.
33529         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
33530         (free_global_sched_pressure_data): Free it.
33531
33532 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33533
33534         Revert:
33535         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33536         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
33537         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
33538         instead of SYSTEM_HEADER_DIR.
33539
33540 2017-04-18  Jeff Law  <law@redhat.com>
33541
33542         PR middle-end/80422
33543         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
33544         predecessors after walking up the insn chain.
33545
33546 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33547
33548         PR debug/80263
33549         * dwarf2out.c (modified_type_die): Try harder not to emit internal
33550         sizetype type into debug info.
33551
33552 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
33553
33554         PR target/80099
33555         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
33556         unneeded test for TARGET_UPPER_REGS_SF.
33557         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
33558
33559 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33560
33561         PR sanitizer/80444
33562         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
33563         instead of gsi_after_labels.
33564
33565 2017-04-18  Jeff Law  <law@redhat.com>
33566
33567         * regcprop.c (maybe_mode_change): Avoid creating copies of the
33568         stack pointer.
33569
33570         Revert:
33571         2017-04-13  Jeff Law  <law@redhat.com>
33572         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33573         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33574
33575 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
33576
33577         PR target/79453
33578         * config/avr/avr.c (intl.h): Include it.
33579         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
33580
33581 2017-04-18  Martin Liska  <mliska@suse.cz>
33582
33583         PR gcov-profile/78783
33584         * gcov-tool.c (gcov_output_files): Validate that destination
33585         file is either removed by the tool or by a user.
33586
33587 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33588             Guy Benyei  <guybe@mellanox.com>
33589
33590         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
33591         block, and do not negate it, the stored id is already negative.
33592
33593 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33594
33595         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
33596
33597 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33598
33599         PR target/80098
33600         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
33601         masks of options that should be turned off if the VSX vector
33602         options are turned off.
33603         (OTHER_P8_VECTOR_MASKS): Likewise.
33604         (OTHER_VSX_VECTOR_MASKS): Likewise.
33605         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
33606         rs6000_disable_incompatible_switches to validate no type switches
33607         like -mvsx.
33608         (rs6000_incompatible_switch): New function to disallow turning on
33609         other vector options if -mno-vsx, -mno-power8-vector, or
33610         -mno-power9-vector are specified.
33611
33612 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33613
33614         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
33615
33616 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33617
33618         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
33619         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
33620         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
33621         (ARG_POINTER_CFA_OFFSET): Likewise.
33622
33623 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33624
33625         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
33626         conditions to take advantage of various optimizations.
33627
33628 2017-04-13  Jeff Law  <law@redhat.com>
33629
33630         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33631         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33632         (zero_extendsidi2_dext): Likewise.
33633
33634 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33635
33636         PR sanitizer/80403
33637         * fold-const.c (fold_ternary_loc): Revert
33638         use op0 instead of fold_convert_loc (loc, type, arg0) part of
33639         2017-04-12 change.
33640
33641 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
33642
33643         PR rtl-optimization/80343
33644         * lra-remat.c (update_scratch_ops): Assign original hard reg to
33645         new scratch pseudo.
33646
33647 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
33648
33649         PR sanitizer/80414
33650         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
33651         to ubsan_encode_value.
33652
33653 2017-04-13  Jeff Law  <law@redhat.com>
33654
33655         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
33656         appearing in DEBUG_INSNs.
33657
33658 2017-04-13  Martin Liska  <mliska@suse.cz>
33659
33660         PR gcov-profile/80413
33661         * gcov-io.c (gcov_write_string): Copy to buffer just when
33662         allocated size is greater than zero.
33663
33664 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33665
33666         PR debug/80321
33667         * dwarf2out.c (decls_for_scope): Ignore declarations of
33668         current_function_decl in BLOCK_NONLOCALIZED_VARS.
33669
33670 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
33671
33672         PR lto/69953
33673         * ipa-visibility.c (non_local_p): Fix typos.
33674         (localize_node): When localizing symbol in same comdat group,
33675         dissolve the group only when we know external symbols are going
33676         to be privatized.
33677         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
33678
33679 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33680
33681         PR tree-optimization/79390
33682         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
33683         order does not result in usable sequence, retry with reversed operand
33684         order.
33685
33686         PR sanitizer/80403
33687         PR sanitizer/80404
33688         PR sanitizer/80405
33689         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
33690         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
33691         op0 instead of fold_convert_loc (loc, type, arg0).
33692
33693 2017-04-12  Jeff Law  <law@redhat.com>
33694
33695         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
33696         has a delay slot in the generated code.
33697
33698         * config/cris/cris.md (cris_preferred_reload_class): Return
33699         GENNONACR_REGS rather than GENERAL_REGS.
33700
33701 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33702
33703         PR c/80163
33704         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
33705         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
33706         signedness of the result type.
33707
33708 2017-04-12  Richard Biener  <rguenther@suse.de>
33709             Jeff Law  <law@redhat.com>
33710
33711         PR tree-optimization/80359
33712         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
33713         trim stores to TARGET_MEM_REFs.
33714
33715 2017-04-12  Richard Biener  <rguenther@suse.de>
33716
33717         PR tree-optimization/79390
33718         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
33719         threading case even more.
33720
33721 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
33722
33723         PR target/80382
33724         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
33725         for quad_address_p for TImode, instead of just not indexed_address.
33726
33727 2017-04-12  Richard Biener  <rguenther@suse.de>
33728             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33729
33730         PR middle-end/79671
33731         * alias.c (component_uses_parent_alias_set_from): Handle
33732         TYPE_TYPELESS_STORAGE.
33733         (get_alias_set): Likewise.
33734         * tree-core.h (tree_type_common): Add typeless_storage flag.
33735         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
33736         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
33737         for types containing members with TYPE_TYPELESS_STORAGE.
33738         (place_field): Likewise.
33739         (layout_type): Likewise for ARRAY_TYPE.
33740         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
33741         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
33742         TYPE_TYPELESS_STORAGE.
33743         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
33744
33745 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33746
33747         PR sanitizer/80349
33748         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33749         first argument to type.
33750
33751 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33752
33753         PR target/80376
33754         PR target/80315
33755         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
33756         CONST0_RTX (mode) rather than const0_rtx where appropriate.
33757         (rs6000_expand_binop_builtin): Likewise.
33758         (rs6000_expand_ternop_builtin): Likewise; also add missing
33759         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
33760         vshasigma built-ins.
33761         * doc/extend.texi: Document that vec_xxpermdi's third argument
33762         must be a constant.
33763
33764 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
33765
33766         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
33767         Use shift_const cost parameter when calculating gain of STV shifts.
33768
33769 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
33770
33771         PR rtl-optimization/70478
33772         * lra-constraints.c (process_alt_operands): Check memory for
33773         disfavoring memory insn operand.
33774
33775 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33776
33777         PR middle-end/80100
33778         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
33779         left shift in unsigned HOST_WIDE_INT type.
33780
33781         PR rtl-optimization/80385
33782         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
33783         (not (neg X)) into (plus X -1) for complex or non-integral modes.
33784
33785         PR libgomp/80394
33786         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
33787         if they have any depend clauses.
33788
33789 2017-04-11  Martin Liska  <mliska@suse.cz>
33790
33791         PR ipa/80212
33792         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
33793         * ipa-split.c (split_function): Create a local comdat symbol
33794         if caller is in a comdat group.
33795
33796 2017-04-11  Martin Liska  <mliska@suse.cz>
33797
33798         PR ipa/80212
33799         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
33800         flags.
33801
33802 2017-04-11  Martin Sebor  <msebor@redhat.com>
33803
33804         PR middle-end/80364
33805         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
33806         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
33807         for INTEGER_TYPE.
33808         (directive::set_width, directive::set_precision, format_character):
33809         Adjust.
33810         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
33811         INTEGER_TYPE.
33812
33813 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
33814
33815         PR target/80389
33816         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
33817         conflict, set target->arch_name instead of target->cpu_name.
33818
33819 2017-04-11  Richard Biener  <rguenther@suse.de>
33820
33821         PR tree-optimization/80374
33822         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
33823         build_zero_cst, remove fold_convertible_p check again.
33824
33825 2017-04-11  Martin Liska  <mliska@suse.cz>
33826
33827         PR sanitizer/70878
33828         * ubsan.c (instrument_object_size): Do not instrument register
33829         variables.
33830
33831 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33832
33833         PR target/80381
33834         * config/i386/i386-builtin-types.def
33835         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
33836         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
33837         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
33838         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
33839         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
33840         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
33841         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
33842         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
33843         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
33844         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
33845         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
33846         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
33847         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
33848         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
33849         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
33850         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
33851         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
33852         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
33853         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
33854         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
33855         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
33856         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
33857         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
33858         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
33859         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
33860         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
33861         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
33862         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
33863         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
33864         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
33865         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
33866         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
33867         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
33868         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
33869         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
33870         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
33871         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
33872         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
33873         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
33874         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
33875         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
33876         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
33877         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
33878         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
33879         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
33880         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
33881         aliases.
33882         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
33883         flag to second_arg_count, handle 4 argument function type _COUNT
33884         aliases, handle second_arg_count on second argument rather than last.
33885
33886 2017-04-10  Jeff Law  <law@redhat.com>
33887
33888         PR tree-optimization/80374
33889         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
33890         record anything if we can not convert integer_zero_node to the
33891         desired type.
33892
33893 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33894
33895         PR target/80108
33896         * config/rs6000/rs6000.c (rs6000_option_override_internal):
33897         Enhance special handling given to the TARGET_P9_MINMAX option in
33898         relation to certain other options.
33899
33900 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
33901
33902         PR tree-optimization/80153
33903         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
33904         remove POINTER_PLUS_EXPR's base part directly, rather than through
33905         aff_tree.
33906
33907 2017-04-10  Richard Biener  <rguenther@suse.de>
33908             Bin Cheng  <bin.cheng@arm.com>
33909
33910         PR tree-optimization/80153
33911         * tree-affine.c (aff_combination_to_tree): Get base pointer from
33912         the first element of pointer type aff_tree.  Build result expr in
33913         aff_tree's type.
33914         (add_elt_to_tree): Convert to type unconditionally.  Remove other
33915         fold_convert calls.
33916         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
33917         (rewrite_use_nonlinear_expr): Check invariant using iv information.
33918
33919 2017-04-10  Richard Biener  <rguenther@suse.de>
33920
33921         * tree-ssa-structalias.c (find_func_aliases): Properly handle
33922         asm inputs.
33923
33924 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33925
33926         PR rtl-optimization/70478
33927         * lra-constraints.c (curr_small_class_check): New.
33928         (update_and_check_small_class_inputs): New.
33929         (process_alt_operands): Update curr_small_class_check.  Disfavor
33930         alternative insn memory operands.  Check available regs for small
33931         class operands.
33932
33933 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33934
33935         PR target/80057
33936         * config/mips/mips.opt (-mvirt): Update description.
33937         * doc/invoke.texi (-mvirt): Likewise.
33938
33939 2017-04-10  Richard Biener  <rguenther@suse.de>
33940
33941         PR middle-end/80362
33942         * fold-const.c (fold_binary_loc): Look at unstripped ops when
33943         looking for NEGATE_EXPR in -A / -B to A / B folding.
33944
33945 2017-04-10  Martin Liska  <mliska@suse.cz>
33946
33947         PR gcov-profile/80224
33948         * gcov.c (print_usage): Fix usage string.
33949         (get_gcov_intermediate_filename): Remove.
33950         (output_gcov_file): Use both for normal and intermediate format.
33951         (generate_results): Do not initialize special file for
33952         intermediate format.
33953
33954 2017-04-10  Richard Biener  <rguenther@suse.de>
33955
33956         PR tree-optimization/80304
33957         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
33958         for safelen.
33959
33960 2017-04-10  Nathan Sidwell  <nathan@acm.org>
33961
33962         PR target/79905
33963         * config/rs6000/rs6000.c (rs6000_vector_type): New.
33964         (rs6000_init_builtins): Use it.
33965
33966 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33967
33968         * config/arm/arm.md (<mrc>): Add mode to SET source.
33969         (<mrrc>): Likewise.
33970
33971 2017-04-10  Richard Biener  <rguenther@suse.de>
33972
33973         PR middle-end/80344
33974         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
33975
33976 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
33977
33978         PR target/80324
33979         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
33980         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
33981         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
33982         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
33983         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
33984         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
33985         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
33986         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
33987         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
33988         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
33989         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
33990         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
33991         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
33992         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
33993         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
33994         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
33995         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
33996         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
33997         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
33998         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
33999         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
34000         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
34001         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
34002
34003 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
34004
34005         PR rtl-optimization/70478
34006         * lra-constraints.c: Reverse the last patch.
34007
34008 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
34009
34010         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
34011         Add comment for WCHAR_T.
34012
34013 2017-04-08  Martin Liska  <mliska@suse.cz>
34014
34015         Revert:
34016         2017-04-07  Martin Liska  <mliska@suse.cz>
34017
34018         PR ipa/80212
34019         * ipa-split.c (split_function): Add function part to a same comdat
34020         group.
34021
34022 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34023
34024         PR target/80358
34025         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
34026
34027 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
34028
34029         * rs6000/rs6000.c (vec_load_pendulum): Rename...
34030         (vec_pairing): ...to this.
34031         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
34032         (rs6000_sched_init): Adjust for name change.
34033         (struct rs6000_sched_context): Likewise.
34034         (rs6000_init_sched_context): Likewise.
34035         (rs6000_set_sched_context): Likewise.
34036
34037 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
34038
34039         PR target/80322
34040         PR target/80323
34041         PR target/80325
34042         PR target/80326
34043         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
34044         intrinsics.
34045         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
34046         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
34047         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
34048
34049 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
34050
34051         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
34052
34053 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34054
34055         PR rtl-optimization/70703
34056         * ira-color.c (update_conflict_hard_regno_costs): Use
34057         int64_t instead of HOST_WIDE_INT.
34058
34059 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34060
34061         PR rtl-optimization/70478
34062         * lra-constraints.c (process_alt_operands): Disfavor alternative
34063         insn memory operands.
34064
34065 2017-04-07  Jeff Law  <law@redhat.com>
34066
34067         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
34068         CALL and NOTE_INSN_CALL_ARG_LOCATION.
34069
34070 2017-04-07  Martin Liska  <mliska@suse.cz>
34071
34072         PR target/79889
34073         * config/aarch64/aarch64.c (aarch64_process_target_attr):
34074         Show error message instead of an ICE.
34075
34076 2017-04-07  Martin Liska  <mliska@suse.cz>
34077
34078         PR ipa/80212
34079         * ipa-split.c (split_function): Add function part to a same comdat
34080         group.
34081
34082 2017-04-07  Richard Biener  <rguenther@suse.de>
34083
34084         PR middle-end/80341
34085         * tree.c (get_unwidened): Also handle ! for_type case for
34086         INTEGER_CSTs.
34087         * convert.c (do_narrow): Split out from ...
34088         (convert_to_integer_1): ... here.  Do not pass final truncation
34089         type to get_unwidened for TRUNC_DIV_EXPR.
34090
34091 2017-04-07  Richard Biener  <rguenther@suse.de>
34092
34093         * tree-affine.c (wide_int_ext_for_comb): Take type rather
34094         than aff_tree.
34095         (aff_combination_const): Adjust.
34096         (aff_combination_scale): Likewise.
34097         (aff_combination_add_elt): Likewise.
34098         (aff_combination_add_cst): Likewise.
34099         (aff_combination_convert): Likewise.
34100         (add_elt_to_tree): Likewise.  Remove unused argument.
34101         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
34102
34103 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34104
34105         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
34106         definition.
34107         * config/arm/arm.c (arm_default_short_enums): Use
34108         ARM_DEFAULT_SHORT_ENUMS.
34109         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
34110
34111 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
34112
34113         PR debug/80234
34114         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
34115         members with redundant out-of-class redeclaration.
34116
34117 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34118
34119         PR target/80286
34120         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
34121         * config/i386/i386.md (*zero_extendsidi2):
34122         Add (?*x,*x) and (?*v,*v) alternatives.
34123
34124 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34125
34126         PR target/79733
34127         * config/i386/i386.c (ix86_expand_builtin)
34128         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
34129         mode from insn data. Convert operands to insn operand mode.
34130         Copy operands that don't satisfy insn predicate to a register.
34131
34132 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
34133
34134         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
34135         Update comments.
34136
34137 2017-04-06  Richard Biener  <rguenther@suse.de>
34138
34139         PR tree-optimization/80334
34140         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
34141         preserve alignment of accesses.
34142
34143 2017-04-06  Richard Biener  <rguenther@suse.de>
34144
34145         PR tree-optimization/80262
34146         * tree-sra.c (build_ref_for_offset): Preserve address-space
34147         information.
34148         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
34149         Drop useless address-space information on MEM_REF offsets.
34150
34151 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
34152
34153         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
34154
34155 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34156
34157         PR rtl-optimization/70703
34158         * ira-color.c (update_conflict_hard_regno_costs): Use
34159         HOST_WIDE_INT instead of long.
34160
34161 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
34162
34163         PR target/80298
34164         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
34165         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
34166         is not defined.
34167         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
34168         for x86_64 target.  Handle -m3dnowa option.
34169
34170 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34171
34172         PR rtl-optimization/70703
34173         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
34174         (update_conflict_hard_regno_costs): Use long instead of unsigned
34175         arithmetic for cost calculation.
34176
34177 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34178             Bernd Edlinger  <bernd.edlinger@hotmail.de>
34179
34180         PR sanitizer/80308
34181         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
34182         for big endian.
34183
34184 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
34185
34186         PR target/78002
34187         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
34188         ptr_mode with Pmode throughout.
34189         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
34190         into probe_stack_range and use DImode.
34191
34192 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34193
34194         PR target/79890
34195         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
34196         call_eh_return is true.
34197
34198 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34199
34200         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
34201         Initialize last_match_fntype_index.
34202
34203 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34204
34205         PR target/80310
34206         * tree-nvr.c: Include internal-fn.h.
34207         (pass_return_slot::execute): Ignore internal calls without
34208         direct optab.
34209
34210 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34211             Richard Biener  <rguenther@suse.de>
34212
34213         PR c++/80297
34214         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
34215         captures used multiple times, except for the last use.
34216         * generic-match-head.c: Include gimplify.h.
34217
34218 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34219
34220         PR tree-optimization/79390
34221         * target.h (struct noce_if_info): Declare.
34222         * targhooks.h (default_noce_conversion_profitable_p): Declare.
34223         * target.def (noce_conversion_profitable_p): New target hook.
34224         * ifcvt.h (struct noce_if_info): New type, moved from ...
34225         * ifcvt.c (struct noce_if_info): ... here.
34226         (noce_conversion_profitable_p): Renamed to ...
34227         (default_noce_conversion_profitable_p): ... this.  No longer
34228         static nor inline.
34229         (noce_try_store_flag_constants, noce_try_addcc,
34230         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
34231         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
34232         instead of noce_conversion_profitable_p.
34233         * config/i386/i386.c: Include ifcvt.h.
34234         (ix86_option_override_internal): Don't override
34235         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
34236         (ix86_noce_conversion_profitable_p): New function.
34237         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
34238         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
34239         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
34240         * doc/tm.texi: Regenerated.
34241
34242 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34243
34244         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
34245         correction.
34246
34247 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34248
34249         PR target/80307
34250         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
34251         instructions for small multiply cores.
34252
34253 2017-04-04  Jeff Law  <law@redhat.com>
34254
34255         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
34256         added member.
34257         (mips_expand_vec_perm_const): Initialize elements in orig_perm
34258         that are not set by the loop over the elements.
34259
34260 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34261
34262         PR target/80286
34263         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
34264         int mode, convert_modes it to mode as unsigned, otherwise use
34265         lowpart_subreg to mode rather than SImode.
34266         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
34267         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
34268         Use DImode instead of SImode for the shift count operand.
34269         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
34270         Likewise.
34271
34272 2017-04-04  Richard Biener  <rguenther@suse.de>
34273
34274         PR middle-end/80281
34275         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
34276         arithmetic done for the negate or the plus.  Simplify.
34277         (A - (-B) -> A + B): Likewise.
34278         * fold-const.c (split_tree): Make sure to not negate pointers.
34279
34280 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
34281
34282         PR rtl-optimization/60818
34283         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
34284         a compare of comparisons with the thing compared if this results
34285         in a different machine mode.
34286
34287 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
34288
34289         * alias.c (base_alias_check): Fix typo in comment.
34290         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
34291         * cgraphunit.c (symbol_table::compile): Likewise.
34292         * collect2.c (maybe_run_lto_and_relink): Likewise.
34293         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
34294         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
34295         * config/avr/avr.c (avr_map_op_t): Likewise.
34296         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
34297         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
34298         * config/epiphany/epiphany.md (movcc): Likewise.
34299         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
34300         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
34301         Likewise.
34302         * config/mips/mips.c (mips_save_restore_reg): Likewise.
34303         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
34304         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
34305         * config/sh/sh.c (sh_rtx_costs): Likewise.
34306         * fold-const.c (fold_truth_andor): Likewise.
34307         * genautomata.c (collapse_flag): Likewise.
34308         * gengtype.h (struct type::u::s): Likewise.
34309         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
34310         * input.c (FORMAT_AMOUNT): Likewise.
34311         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
34312         (known_aggs_to_agg_replacement_list): Likewise.
34313         * ipa-inline-analysis.c: Likewise.
34314         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
34315         * ipa-polymorphic-call.c
34316         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
34317         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
34318         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
34319         Likewise.
34320         * modulo-sched.c (apply_reg_moves): Likewise.
34321         * omp-expand.c (build_omp_regions_1): Likewise.
34322         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
34323         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
34324         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
34325         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
34326         * value-prof.c: Likewise.
34327         * var-tracking.c (val_reset): Likewise.
34328
34329 2017-04-03  Richard Biener  <rguenther@suse.de>
34330
34331         PR tree-optimization/80275
34332         * fold-const.c (split_address_to_core_and_offset): Handle
34333         POINTER_PLUS_EXPR.
34334
34335 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
34336
34337         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
34338         descriptors is at least equal to that of functions.
34339
34340 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34341
34342         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
34343
34344 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34345
34346         PR target/80250
34347         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
34348         (mov<IMOD4:mode>): New expander.
34349         (*mov<IMOD4:mode>_internal): New insn and split pattern.
34350
34351 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
34352
34353         PR rtl-optimization/79405
34354         * fwprop.c (propagations_left): New variable.
34355         (forward_propagate_into): Decrement it.
34356         (fwprop_init): Initialize it.
34357         (fw_prop): If the variable has reached zero, stop propagating.
34358         (fwprop_addr): Ditto.
34359
34360 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34361
34362         PR debug/79255
34363         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
34364         a FUNCTION_DECL, pass it as decl instead of origin to
34365         process_scope_var.
34366
34367 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
34368
34369         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
34370         string.
34371
34372 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
34373
34374         PR target/80107
34375         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
34376         TARGET_VSX_SMALL_INTEGER.
34377
34378 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34379
34380         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
34381         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
34382
34383 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
34384
34385         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
34386         extraction from odd-numbered MSA register.
34387
34388 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34389
34390         PR middle-end/80173
34391         * expmed.c (store_bit_field_1): Don't attempt to create
34392         a word subreg out of hard registers wider than word if they
34393         have HARD_REGNO_NREGS of 1 for their mode.
34394
34395         PR middle-end/80163
34396         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
34397         conversions to integer types wider than word and pointer.
34398
34399         PR debug/80025
34400         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
34401         (rtx_equal_for_cselib_p): Pass 0 to it.
34402         * cselib.c (cselib_hasher::equal): Likewise.
34403         (rtx_equal_for_cselib_1): Add depth argument.  If depth
34404         is 128, don't look up VALUE locs and punt.  Increment
34405         depth in recursive calls when walking VALUE locs.
34406
34407 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34408
34409         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
34410         (make_gcov_file_name): Use the canonical path name for generating
34411         the MD5 value.
34412         (read_line): Fix handling of files with ascii null bytes.
34413
34414 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
34415
34416         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
34417         to initialise a vector register instead
34418         of using a const_int.
34419
34420 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34421
34422         PR translation/80189
34423         * gimplify.c (omp_default_clause): Use %qs instead of %s in
34424         diagnostic messages.
34425
34426 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
34427
34428         PR target/80246
34429         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
34430         (dfp_diex_<mode>): Update mode of operand 1.
34431         * doc/extend.texi (dxex, dxexq): Document change to return type.
34432         (diex, diexq): Document change to argument type.
34433
34434 2017-03-30  Martin Jambor  <mjambor@suse.cz>
34435
34436         PR ipa/77333
34437         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
34438         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
34439         it reflects the signature changes performed at the callee side.
34440         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
34441         to cgraph_build_function_type_skip_args.
34442         (build_function_decl_skip_args): Adjust call to the above function.
34443
34444 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34445
34446         PR target/80206
34447         * config/i386/sse.md
34448         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
34449         register as dest whenever it is a MEM not rtx_equal_p to the
34450         corresponding dup operand, and when forcing into reg move the
34451         reg into the memory afterwards.
34452         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
34453         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
34454         for the force_reg mode.
34455         (avx512vl_vextractf128<mode>): Use register as dest either
34456         always when a MEM, or when it is a MEM not rtx_equal_p to the
34457         corresponding dup operand, or even not when it is a CONST_VECTOR
34458         depending on the mode and lo vs. hi.
34459         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
34460         parens.
34461         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
34462         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
34463         Likewise.  Require that operands[2] is even.
34464         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
34465         Remove extraneous parens.  Require that operands[2] is a multiple
34466         of 4.
34467         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
34468         operands[0] is a MEM if <mask_applied>, the predicates/constraints
34469         disallow memory then.
34470
34471 2017-03-30  Richard Biener  <rguenther@suse.de>
34472
34473         PR tree-optimization/77498
34474         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
34475         to non-constants over backedges.
34476
34477 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
34478
34479         PR rtl-optimization/80233
34480         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
34481         as last_combined_insn.  Do not test for BARRIER_P separately.
34482
34483 2017-03-29  Andreas Schwab  <schwab@suse.de>
34484
34485         PR ada/80146
34486         * calls.c (prepare_call_address): Convert funexp to Pmode before
34487         copying to temp reg.
34488
34489 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34490
34491         PR tree-optimization/80158
34492         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
34493         Handle possible future case of more than one alternate
34494         interpretation.
34495         (replace_rhs_if_not_dup): Likewise.
34496         (replace_one_candidate): Likewise.
34497
34498 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
34499
34500         PR rtl-optimization/80193
34501         * ira.c (ira): Do not check allocation for LRA.
34502
34503 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
34504
34505         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
34506         (nvptx_output_simt_exit): Declare.
34507         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
34508         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
34509         (init_softstack_frame): Move initialization of crtl->is_leaf to...
34510         (nvptx_declare_function_name): ...here.  Emit declaration of local
34511         memory space buffer for omp_simt_enter insn.
34512         (nvptx_output_unisimt_switch): New.
34513         (nvptx_output_softstack_switch): New.
34514         (nvptx_output_simt_enter): New.
34515         (nvptx_output_simt_exit): New.
34516         * config/nvptx/nvptx.h (struct machine_function): New fields
34517         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
34518         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
34519         (UNSPECV_SIMT_EXIT): Ditto.
34520         (omp_simt_enter_insn): New insn.
34521         (omp_simt_enter): New expansion.
34522         (omp_simt_exit): New insn.
34523         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
34524
34525         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
34526         (expand_GOMP_SIMT_ENTER_ALLOC): New.
34527         (expand_GOMP_SIMT_EXIT): New.
34528         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
34529         (GOMP_SIMT_ENTER_ALLOC): Ditto.
34530         (GOMP_SIMT_EXIT): Ditto.
34531         * target-insns.def (omp_simt_enter): New insn.
34532         (omp_simt_exit): Ditto.
34533         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
34534         simt_dlist.
34535         (lower_rec_simd_input_clauses): Implement SIMT privatization.
34536         (lower_rec_input_clauses): Likewise.
34537         (lower_lastprivate_clauses): Handle SIMT privatization.
34538
34539         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
34540         (ompdevlow_adjust_simt_enter): New.
34541         (find_simtpriv_var_op): New.
34542         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
34543         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
34544
34545         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
34546         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
34547         (copy_decl_for_dup_finish): Ditto.
34548
34549         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
34550
34551 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
34552
34553         PR target/53383
34554         * config/i386/i386.c (ix86_option_override_internal): Always
34555         allow -mpreferred-stack-boundary=3 for 64-bit targets.
34556
34557 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34558
34559         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
34560
34561 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34562
34563         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
34564         mark new edge's irreducible flag accordign to it.
34565         (vect_do_peeling): Check loop preheader edge's irreducible flag
34566         and pass it to function slpeel_add_loop_guard.
34567
34568 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
34569
34570         PR tree-optimization/80218
34571         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
34572         Update block frequencies and counts.
34573
34574 2017-03-28  Richard Biener  <rguenther@suse.de>
34575
34576         PR tree-optimization/78644
34577         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
34578         of a simplification result we may not use it at all.
34579
34580 2017-03-28  Richard Biener  <rguenther@suse.de>
34581
34582         PR ipa/80205
34583         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
34584         without arguments, generate default definition of a SSA name.
34585
34586 2017-03-28  Richard Biener  <rguenther@suse.de>
34587
34588         PR middle-end/80222
34589         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
34590         TYPE_REF_CAN_ALIAS_ALL references.
34591         * fold-const.c (fold_indirect_ref_1): Likewise.
34592
34593 2017-03-28  Martin Liska  <mliska@suse.cz>
34594
34595         PR ipa/80104
34596         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
34597         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
34598
34599 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34600             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
34601
34602         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
34603         (EXTRA_SPECS): Define.
34604         (SUBTARGET_EXTRA_SPECS): Likewise.
34605         (SUBTARGET_CPP_SPEC): Likewise.
34606         * config/arc/elf.h (EXTRA_SPECS): Renamed to
34607         SUBTARGET_EXTRA_SPECS.
34608         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
34609
34610 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34611
34612         * config/arc/simdext.md (vst64_insn): Update pattern.
34613         (vld32wh_insn): Likewise.
34614         (vld32wl_insn): Likewise.
34615         (vld64_insn): Likewise.
34616         (vld32_insn): Likewise.
34617
34618 2017-03-28  Marek Polacek  <polacek@redhat.com>
34619
34620         PR sanitizer/80067
34621         * fold-const.c (fold_comparison): Use protected_set_expr_location
34622         instead of SET_EXPR_LOCATION.
34623
34624 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
34625
34626         * tree.c (add_expr): Avoid name lookup warning.
34627
34628 2017-03-27  Jeff Law  <law@redhat.com>
34629
34630         PR tree-optimization/80216
34631         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
34632         function name.  Limit recursion depth.
34633         (record_temporary_equivalences): Corresponding changes.
34634
34635 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
34636
34637         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
34638         covered first.
34639
34640 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34641
34642         PR target/80102
34643         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
34644         notes.
34645         * cfgcleanup.c (reg_note_cfa_p): New array.
34646         (insns_have_identical_cfa_notes): New function.
34647         (old_insns_match_p): Don't cross-jump in between /f
34648         and non-/f instructions.  If both i1 and i2 are frame related,
34649         verify all CFA notes, their order and content.
34650
34651 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
34652
34653         PR target/78543
34654         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
34655         HImode and SImode with zero extend to DImode to one insn.
34656         (bswap<mode>2_extenddi): Likewise.
34657         (bswapsi2_extenddi): Likewise.
34658         (bswaphi2_extendsi): Likewise.
34659         (bswaphi2): Combine bswap HImode and SImode into one insn.
34660         Separate memory insns from swapping register.
34661         (bswapsi2): Likewise.
34662         (bswap<mode>2): Likewise.
34663         (bswaphi2_internal): Delete, no longer used.
34664         (bswapsi2_internal): Likewise.
34665         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
34666         store, and gpr<-gpr swap insns.
34667         (bswap<mode>2_store): Likewise.
34668         (bswaphi2_reg): Register only splitter, combine with the splitter.
34669         (bswaphi2 splitter): Likewise.
34670         (bswapsi2_reg): Likewise.
34671         (bswapsi2 splitter): Likewise.
34672         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
34673         the insns into load, store, and register/register insns.
34674         (bswapdi2_ldbrx): Likewise.
34675         (bswapdi2_load): Likewise.
34676         (bswapdi2_store): Likewise.
34677         (bswapdi2_reg): Likewise.
34678
34679 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
34680
34681         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
34682         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
34683
34684 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34685
34686         PR target/80103
34687         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
34688         add comments.
34689         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34690         special handling for target option conflicts between dform
34691         options (-mpower9-dform, -mpower9-dform-vector,
34692         -mpower9-dform-scalar) and -mno-direct-move.
34693
34694 2017-03-27  Richard Biener  <rguenther@suse.de>
34695
34696         PR tree-optimization/80181
34697         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
34698
34699 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34700
34701         * config/arc/predicates.md (move_double_src_operand): Replace the
34702         call to move_double_src_operand with a call to address_operand.
34703
34704 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34705
34706         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
34707         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
34708         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
34709
34710 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34711
34712         * config/arc/predicates.md (long_immediate_loadstore_operand):
34713         Consider scaled addresses cases.
34714
34715 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34716
34717         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
34718         restored when in interrupt.
34719         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
34720         doesn't have delay slot.
34721
34722 2017-03-27  Richard Biener  <rguenther@suse.de>
34723
34724         PR ipa/79776
34725         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
34726         inlined thunk clones.
34727
34728 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34729
34730         PR sanitizer/80168
34731         * asan.c (instrument_derefs): Copy over last operand from
34732         original COMPONENT_REF to the new COMPONENT_REF with
34733         DECL_BIT_FIELD_REPRESENTATIVE.
34734         * ubsan.c (instrument_object_size): Likewise.
34735
34736 2017-03-27  Richard Biener  <rguenther@suse.de>
34737
34738         PR tree-optimization/80170
34739         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
34740         sure DR/SCEV didnt fold in constants we do not see when looking
34741         at the reference base alignment.
34742
34743 2017-03-27  Richard Biener  <rguenther@suse.de>
34744
34745         PR middle-end/80171
34746         * gimple-fold.c (fold_ctor_reference): Properly guard against
34747         NULL return value from canonicalize_constructor_val.
34748
34749 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
34750
34751         PR target/80180
34752         * config/i386/i386.c (ix86_expand_builtin)
34753         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
34754         flags reg setting and flags reg using instructions.
34755         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
34756         clobbering instructions to zero extend op2.
34757
34758 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
34759
34760         * doc/install.texi (Configuration) <--with-aix-soname>:
34761         Update link to AIX ld.
34762
34763 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
34764
34765         PR rtl-optimization/80160
34766         PR rtl-optimization/80159
34767         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
34768         reg_alternate_class into account.
34769
34770 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
34771
34772         PR target/80148
34773         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
34774         to consider in curr_insn_transform.
34775
34776 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34777
34778         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
34779         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
34780         and emit_mode_inner.
34781
34782 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34783
34784         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
34785         argument to the overloaded builtin variants.  Use the new flag to
34786         deprecate certain builtin variants.
34787         * config/s390/s390-builtin-types.def: Add new builtin types.
34788         * config/s390/s390-builtins.h: Support new flags field for
34789         overloaded builtins.
34790         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
34791         (s390_macro_to_expand): Enable vector float data type.
34792         (s390_cpu_cpp_builtins_internal): Indicate support of the new
34793         builtins by incrementing the __VEC__ version number.
34794         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
34795         vec_xst.
34796         (s390_resolve_overloaded_builtin): Emit error messages depending
34797         on the builtin flags.
34798         * config/s390/s390.c (s390_expand_builtin): Support additional
34799         flags argument.  Change error message to match the messages
34800         emitted in s390-c.c.
34801         * config/s390/s390.md: New UNSPEC_* constants.
34802         (op_type): Add new instruction types.
34803         * config/s390/vecintrin.h: Add new builtins and test data class
34804         constants.
34805         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
34806         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
34807         (VEC_INEXACT, VEC_NOINEXACT): New constants.
34808         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
34809         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
34810         ("vec_mergel<mode>"): V_HW -> VEC_HW.
34811
34812         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
34813         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
34814         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
34815         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
34816
34817         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
34818         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
34819         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
34820         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
34821
34822         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
34823         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
34824         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
34825         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
34826         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
34827         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
34828         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
34829
34830         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
34831         ("vec_scatter_element<V_HW_4:mode>_DI")
34832         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
34833         ("vec_fpint<mode>", "vflls")
34834         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
34835         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
34836         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
34837         ("*vec_cmphe<mode>_cc"): ... these.
34838
34839         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
34840         mode constant instead of magic value.
34841
34842 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34843
34844         * config/s390/s390.c (s390_expand_vec_compare): Support other
34845         vector floating point modes than just V2DF.
34846         (s390_expand_vcond): Likewise.
34847         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
34848         (s390_cannot_change_mode_class): Prevent mode changes between TF
34849         and V1TF in vector registers.
34850         * config/s390/s390.md (DF, SF): New mode attributes.
34851         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
34852         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
34853         SFmode support for VRs.
34854         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
34855         vector fp modes.
34856         (VFT, VF_HW): New mode iterators.
34857         (vw, sdx): New mode attributes.
34858         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
34859         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
34860         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
34861         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
34862         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
34863         also the new vector floating point modes.  Renaming to ...
34864
34865         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
34866         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
34867         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
34868         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
34869         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
34870         ("vec_unordered<mode>"): ... these.
34871
34872         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
34873         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
34874         ("*vec_extendv2df"): New insn definitions.
34875
34876 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34877
34878         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
34879         ("mulditi3_2", "*muldi3_sign"): New patterns.
34880         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
34881         rename the pattern definition.
34882
34883 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34884
34885         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
34886         expander.
34887         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
34888
34889 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34890
34891         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
34892         instruction if possible.
34893         * config/s390/vector.md (vec_halfnumelts): New mode
34894         attribute.
34895         ("*vec_vllezlf<mode>"): New pattern.
34896
34897 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34898
34899         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
34900         ("popcountv4si2", "popcountv2di2"): Rename to ...
34901         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
34902         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
34903         condition.
34904         ("popcount<mode>2_vxe"): New pattern.
34905
34906 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34907
34908         * common/config/s390/s390-common.c (processor_flags_table): Add
34909         arch12.
34910         * config.gcc: Add arch12.
34911         * config/s390/driver-native.c (s390_host_detect_local_cpu):
34912         Default to arch12 for unknown CPU model numbers.
34913         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
34914         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
34915         PROCESSOR_max sanity check.
34916         * config/s390/s390-opts.h (enum processor_type): Add
34917         PROCESSOR_ARCH12.
34918         * config/s390/s390.c (processor_table): Add arch12.
34919         (s390_expand_builtin): Add check for B_VXE flag.
34920         (s390_issue_rate): Add PROCESSOR_ARCH12.
34921         (s390_get_sched_attrmask): Likewise.
34922         (s390_get_unit_mask): Likewise.
34923         (s390_sched_score): Enable z13 scheduling for arch12.
34924         (s390_sched_reorder): Likewise.
34925         (s390_sched_variable_issue): Likewise.
34926         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
34927         PF_VXE.
34928         (s390_tune_attr): Use z13 scheduling also for arch12.
34929         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
34930         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
34931         (TARGET_VXE_P): New macros.
34932         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
34933         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
34934         * config/s390/s390.opt: Add arch12 as processor_type.
34935
34936 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34937
34938         * config/s390/s390.md
34939         ("fixuns_truncdddi2", "fixuns_trunctddi2")
34940         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
34941         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
34942
34943         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
34944         Rename expanders to ...
34945
34946         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
34947         ("fixuns_truncdddi2_emu"): ... these.
34948
34949         ("fixuns_trunc<mode>si2_emu"): New expander.
34950
34951         ("*fixuns_truncdfdi2_z13"): Rename to ...
34952         ("*fixuns_truncdfdi2_vx"): ... this.
34953
34954 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34955
34956         * config/s390/2964.md: Remove the single element vector compare
34957         instructions which are no longer used.
34958         * config/s390/s390.c (s390_select_ccmode): Remove handling of
34959         vector CCmodes.
34960         (s390_canonicalize_comparison): Remove handling of DFmode
34961         compares.
34962         (s390_expand_vec_compare_scalar): Remove function.
34963         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
34964         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
34965         pattern.
34966         ("*cmp<mode>_ccs"): Add wfcdb instruction.
34967
34968 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34969
34970         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
34971         FP zero.
34972         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
34973         will anyway by matched by mov<mode>_64dfp.
34974
34975 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34976
34977         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
34978         vlef/vstef.  Add missing operand to vleif.
34979
34980 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34981
34982         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
34983         pair for all vector types with 64 bit elements.
34984         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
34985         * config/s390/vector.md (V_HW_64): ... here.
34986         (V_128_NOSINGLE): New mode iterator.
34987         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
34988         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
34989         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
34990         ("*vec_load_pairv2di"): Change to ...
34991         ("*vec_load_pair<mode>"): ... this one.
34992
34993 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34994
34995         * config/s390/constraints.md: Add comments.
34996         (jKK): Reject element sizes > 8 bytes.
34997         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
34998         s_operands.
34999         * config/s390/s390.md: Add the s_operand checks formerly in
35000         s390_split_ok_p to various splitters where they are still
35001         required.
35002         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
35003         for 128 bit vectors.  Plus two splitters.
35004
35005 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35006
35007         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
35008         the file.
35009
35010 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35011
35012         PR target/79893
35013         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
35014         error if the boundary argument is not constant.
35015
35016 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
35017
35018         PR rtl-optimization/80112
35019         * loop-doloop.c (doloop_condition_get): Don't check condition
35020         if cmp isn't SET with IF_THEN_ELSE src.
35021
35022 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35023
35024         PR tree-optimization/80158
35025         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
35026         replacing a candidate statement, also replace it for the
35027         candidate's alternate interpretation.
35028         (replace_rhs_if_not_dup): Likewise.
35029         (replace_one_candidate): Likewise.
35030
35031 2017-03-24  Richard Biener  <rguenther@suse.de>
35032
35033         PR tree-optimization/80167
35034         * graphite-isl-ast-to-gimple.c
35035         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
35036         properly.
35037         (translate_isl_ast_to_gimple::get_rename): Likewise.
35038
35039 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35040
35041         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
35042         handling of certain combinations of target options, including the
35043         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
35044         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
35045
35046 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35047
35048         PR target/71436
35049         * config/arm/arm.md (*load_multiple): Add reload_completed to
35050         matching condition.
35051
35052 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35053             Richard Biener  <rguenth@suse.de>
35054
35055         PR tree-optimization/79908
35056         PR tree-optimization/80136
35057         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35058         been cast away, gimplify_and_add suffices.
35059
35060 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
35061
35062         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
35063
35064 2017-03-23  Richard Biener  <rguenther@suse.de>
35065
35066         PR tree-optimization/80032
35067         * gimplify.c (gimple_push_cleanup): Forced unconditional
35068         cleanups still have to go to the conditional_cleanups
35069         sequence.
35070
35071 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
35072
35073         PR tree-optimization/80072
35074         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
35075         to unsigned int.
35076         (next_operand_entry_id): Change type to unsigned int.
35077         (sort_by_operand_rank): Make sure to return the right return value
35078         even if unsigned fields are bigger than INT_MAX.
35079         (struct oecount): Change cnt and id type to unsigned int.
35080         (oecount_hasher::equal): Formatting fix.
35081         (oecount_cmp): Make sure to return the right return value
35082         even if unsigned fields are bigger than INT_MAX.
35083         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
35084
35085         PR c++/80129
35086         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
35087         TREE_READONLY on result if writing it more than once.
35088
35089         PR sanitizer/80110
35090         * doc/invoke.texi (-fsanitize=thread): Document that with
35091         -fnon-call-exceptions atomics are not able to throw
35092         exceptions.
35093
35094         PR sanitizer/80110
35095         * tsan.c: Include tree-eh.h.
35096         (instrument_builtin_call): Call maybe_clean_eh_stmt or
35097         maybe_clean_or_replace_eh_stmt where needed.
35098         (instrument_memory_accesses): Add cfg_changed argument.
35099         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
35100         if it returned true.
35101         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
35102
35103         PR rtl-optimization/63191
35104         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
35105         wrapper function, moved the whole old content into ...
35106         (ix86_delegitimize_address_1): ... this.  New inline function.
35107         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
35108         true as last argument instead of ix86_delegitimize_address.
35109
35110 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35111
35112         * config/aarch64/aarch64.c (generic_branch_cost): Copy
35113         cortexa57_branch_cost.
35114
35115 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35116
35117         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
35118
35119 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35120
35121         PR target/80123
35122         * doc/md.texi (Constraints): Document wA constraint.
35123         * config/rs6000/constraints.md (wA): New.
35124         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
35125         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
35126         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
35127         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
35128
35129 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
35130
35131         PR c++/80029
35132         * gimplify.c (is_oacc_declared): New function.
35133         (oacc_default_clause): Use it to set default flags for acc declared
35134         variables inside parallel regions.
35135         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
35136         declared variables.
35137         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
35138         declare attribute to any decl as necessary.
35139
35140 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35141
35142         PR target/80082
35143         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
35144         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
35145         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
35146         (arm_arch_lpae): This.
35147         * config/arm/arm.c (arm_arch7ve): Rename into ...
35148         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
35149         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
35150         arm_arch_lpae.
35151
35152 2017-03-22  Martin Liska  <mliska@suse.cz>
35153
35154         PR target/79906
35155         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
35156         error message instead of an ICE.
35157
35158 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35159
35160         * doc/extend.texi (6.11 Additional Floating Types): Revise.
35161
35162 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35163
35164         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35165         comments.
35166         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
35167         comments.
35168
35169 2017-03-21  Martin Sebor  <msebor@redhat.com>
35170
35171         * doc/extend.texi: Use "cannot" instead of "can't."
35172         * doc/hostconfig.texi: Same.
35173         * doc/install.texi: Same.
35174         * doc/invoke.texi: Same.
35175         * doc/loop.texi: Same.
35176         * doc/md.texi: Same.
35177         * doc/objc.texi: Same.
35178         * doc/rtl.texi: Same.
35179         * doc/tm.texi: Same.
35180         * doc/tm.texi.in: Same.
35181         * doc/trouble.texi: Same.
35182
35183 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
35184
35185         PR debug/63238
35186         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
35187         (collect_checksum_attributes): Set it.
35188         (die_checksum_ordered): Use it.
35189
35190 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35191
35192         PR tree-optimization/79908
35193         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
35194         change: For a VA_ARG whose LHS has been cast away, use
35195         force_gimple_operand to construct the side effects.
35196
35197 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
35198
35199         PR translation/80001
35200         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
35201         more amenable to translation.
35202         (oacc_loop_auto_partitions): Likewise.
35203
35204 2017-03-21  Marek Polacek  <polacek@redhat.com>
35205             Martin Sebor  <msebor@redhat.com>
35206
35207         PR tree-optimization/80109
35208         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
35209         on INTEGRAL_TYPE_P.
35210
35211 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35212             Segher Boessenkool  <segher@kernel.crashing.org>
35213
35214         PR target/80125
35215         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
35216         check reg_used_between_p between insn and one of succ or succ2
35217         depending on if succ is artificial insn not inserted into insn
35218         stream.
35219
35220 2017-03-21  Martin Liska  <mliska@suse.cz>
35221
35222         PR gcov-profile/80081
35223         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
35224         * doc/gcc.texi: Include gcov-dump stuff.
35225         * doc/gcov-dump.texi: New file.
35226
35227 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
35228
35229         PR rtl-optimization/79150
35230         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
35231         conditional jump, if the jump is the last insn of the loop.
35232
35233 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35234             Richard Biener  <rguenth@suse.de>
35235
35236         PR tree-optimization/79908
35237         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35238         been cast away, use force_gimple_operand to construct the side
35239         effects.
35240
35241 2017-03-21  Martin Liska  <mliska@suse.cz>
35242
35243         PR libfortran/79956
35244         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
35245         to NULL.
35246
35247 2017-03-21  Brad Spengler <spender@grsecurity.net>
35248
35249         PR plugins/80094
35250         * plugin.c (htab_hash_plugin): New function.
35251         (add_new_plugin): Use it and adjust.
35252         (parse_plugin_arg_opt): Adjust.
35253         (init_one_plugin): Likewise.
35254
35255 2017-03-21  Richard Biener  <rguenther@suse.de>
35256
35257         PR tree-optimization/80032
35258         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
35259         if set force the cleanup to happen unconditionally.
35260         (gimplify_target_expr): Push inserted clobbers with force_uncond
35261         to avoid them being removed by control-dependent DCE.
35262
35263 2017-03-21  Richard Biener  <rguenther@suse.de>
35264
35265         PR tree-optimization/80122
35266         * tree-inline.c (copy_bb): Do not expans va-arg packs or
35267         va_arg_pack_len when the inlined call stmt requires pack
35268         expansion itself.
35269         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
35270
35271 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35272
35273         PR sanitizer/78158
35274         * tsan.c (instrument_builtin_call): If the memory model argument
35275         is not a constant, assume it is valid.
35276
35277         PR c/67338
35278         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
35279         avoid UB.
35280
35281 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35282
35283         PR rtl-optimization/79910
35284         * combine.c (can_combine_p): Do not allow combining an I0 or I1
35285         if its dest is used by an insn before I2 (other than the combined
35286         insns themselves, which are properly handled already).
35287
35288 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35289
35290         Revert:
35291         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35292
35293         * combine.c (record_used_regs): New static function.
35294         (try_combine): Handle situations where there is an additional
35295         instruction between I2 and I3 which needs to have a LOG_LINK
35296         updated.
35297
35298         Revert:
35299         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35300
35301         * combine.c (try_combine): Delete redundant i1 test.  Call
35302         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35303
35304 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35305
35306         PR target/80083
35307         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
35308         alternatives 13/14.
35309
35310 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35311
35312         PR tree-optimization/80054
35313         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
35314         the optimization if a PHI or any of its arguments is not dominated
35315         by the candidate's basis.  Use gphi* rather than gimple* as
35316         appropriate.
35317         (replace_profitable_candidates): Clean up a gimple* variable that
35318         should be a gphi* variable.
35319
35320 2017-03-20  Martin Sebor  <msebor@redhat.com>
35321
35322         PR c++/52477
35323         * doc/extend.texi (attribute constructor): Document present limitation.
35324
35325 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35326
35327         PR target/79963
35328         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
35329         __POWER9_VECTOR__ #ifdef control, change template definition to
35330         use Power9-specific built-in function.
35331         (vec_any_eq): Likewise.
35332         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
35333         to control outcomes from this test.
35334         (vector_ae_<mode>p): For VEC_F modes, likewise.
35335
35336 2017-03-20  Ian Lance Taylor  <iant@google.com>
35337
35338         * config/i386/i386.c (ix86_function_regparm): Save an extra
35339         register for -fsplit-stack with DECL_STATIC_CHAIN.
35340
35341 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35342
35343         PR target/79912
35344         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
35345         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
35346
35347 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35348
35349         * config/riscv/riscv.c (riscv_print_operand): Use "fence
35350         iorw,ow".
35351         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
35352         iorw,iorw".
35353
35354 2017-03-20  Marek Polacek  <polacek@redhat.com>
35355
35356         PR sanitizer/80063
35357         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
35358
35359 2017-03-20  Richard Biener  <rguenther@suse.de>
35360
35361         PR tree-optimization/80113
35362         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
35363         allocate extra SSA name for PHI def.
35364         (add_close_phis_to_outer_loops): Likewise.
35365         (add_close_phis_to_merge_points): Likewise.
35366         (copy_loop_close_phi_args): Likewise.
35367         (copy_cond_phi_nodes): Likewise.
35368
35369 2017-03-20  Martin Liska  <mliska@suse.cz>
35370
35371         PR middle-end/79753
35372         * tree-chkp.c (chkp_build_returned_bound): Do not build
35373         returned bounds for a LHS that's not a BOUNDED_P type.
35374
35375 2017-03-20  Martin Liska  <mliska@suse.cz>
35376
35377         PR target/79769
35378         PR target/79770
35379         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
35380         COMPLEX_CST and VECTOR_CST.
35381
35382 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35383
35384         PR target/78857
35385         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
35386         target operand.  A new splitter adds the clobber statement in case
35387         the target operand is dead anyway.
35388
35389 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
35390
35391         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
35392         to age-old versions of binutils and glibc.
35393
35394 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
35395
35396         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
35397
35398 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35399
35400         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
35401
35402 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35403
35404         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
35405         requirement for binutils 2.13.
35406
35407 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35408
35409         * combine.c (try_combine): Delete redundant i1 test.  Call
35410         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35411
35412 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
35413
35414         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
35415         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
35416         contents.
35417         <riscv64-*-elf>: Re-arrange section
35418         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
35419         <riscv32-*-linux>: Likewise.
35420         <riscv64-*-elf>: Likewise
35421         <riscv64-*-linux>: Likewise.
35422
35423 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
35424
35425         PR target/80052
35426         * aarch64.opt(verbose-cost-dump): Fix typo.
35427
35428 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
35429
35430         PR target/79951
35431         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
35432         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
35433
35434 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35435
35436         * reload.c (find_reloads): When reloading a nonoffsettable address,
35437         use RELOAD_OTHER for it and its address reloads.
35438
35439         PR rtl-optimization/79910
35440         * combine.c (record_used_regs): New static function.
35441         (try_combine): Handle situations where there is an additional
35442         instruction between I2 and I3 which needs to have a LOG_LINK
35443         updated.
35444
35445 2017-03-17  Jeff Law  <law@redhat.com>
35446
35447         PR tree-optimization/71437
35448         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
35449         conditional in the hash table first.
35450         (vrp_dom_walker::before_dom_children): Extract condition from
35451         ASSERT_EXPR.  Record condition, its inverion and any implied
35452         conditions as well.
35453
35454 2017-03-17  Marek Polacek  <polacek@redhat.com>
35455             Markus Trippelsdorf  <markus@trippelsdorf.de>
35456
35457         PR tree-optimization/80079
35458         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
35459         m_stores_head.
35460
35461 2017-03-17  Richard Biener  <rguenther@suse.de>
35462
35463         PR middle-end/80075
35464         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
35465         Properly verify the LHS before the RHS possibly claims to be
35466         handled.
35467         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
35468         do not throw.
35469
35470 2017-03-17  Martin Jambor  <mjambor@suse.cz>
35471
35472         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
35473         (List of -O2 options): Likewise.
35474         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
35475         (-fipa-vrp) New.
35476
35477 2017-03-17  Tom de Vries  <tom@codesourcery.com>
35478
35479         * gcov-dump.c (print_usage): Print bug_report_url.
35480
35481 2017-03-17  Richard Biener  <rguenther@suse.de>
35482
35483         PR middle-end/80050
35484         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
35485         (parser::peek): Likewise.
35486
35487 2017-03-17  Richard Biener  <rguenther@suse.de>
35488
35489         PR tree-optimization/80048
35490         * sese.c (free_sese_info): Properly release rename_map and
35491         copied_bb_map elements.
35492
35493 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
35494
35495         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
35496         Add linked-list forward and backlinks.  Insert on
35497         construction, remove on destruction.
35498         (class pass_store_merging): Add m_stores_head field.
35499         (pass_store_merging::terminate_and_process_all_chains):
35500         Iterate over m_stores_head list.
35501         (pass_store_merging::terminate_all_aliasing_chains):
35502         Likewise.
35503         (pass_store_merging::execute): Check for debug stmts first.
35504         Push new chains onto the m_stores_head stack.
35505
35506 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35507
35508         PR target/71294
35509         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
35510         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
35511         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
35512
35513 2017-03-16  Jeff Law  <law@redhat.com>
35514
35515         PR tree-optimization/71437
35516         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
35517         member function.  Implementation moved into after_dom_children
35518         member function and into the threader's thread_outgoing_edges
35519         function.
35520         (dom_opt_dom_walker::after_dom_children): Simplify by moving
35521         some code into new thread_outgoing_edges.
35522         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
35523         definition.  Simplify marker handling (do it here).   Assume we always
35524         have the available expression and the const/copies tables.
35525         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
35526         and tree-vrp.c
35527         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
35528         * tree-vrp.c (equiv_stack): No longer file scoped.
35529         (vrp_dom_walker): New class.
35530         (vrp_dom_walker::before_dom_children): New member function.
35531         (vrp_dom_walker::after_dom_children): Likewise.
35532         (identify_jump_threads):  Setup domwalker.  Use it rather than
35533         walking edges in a random order by hand.  Simplify setup/finalization.
35534         (finalize_jump_threads): Remove.
35535         (vrp_finalize): Do not call identify_jump_threads here.
35536         (execute_vrp): Do it here instead and call thread_through_all_blocks
35537         here too.
35538
35539         PR tree-optimization/71437
35540         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
35541         callers changed.
35542         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
35543         callers changed.
35544         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
35545         (dom_opt_dom_walker::thread_across_edge): Remove
35546         handle_dominating_asserts argument.  All callers changed.
35547         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
35548         changes.  Remove calls to lhs_of_dominating_assert.  Other
35549         uses of handle_dominating_asserts turn into unconditional code
35550         (simplify_control_stmt_condition_1): Likewise.
35551         (simplify_control_stmt_condition): Likewise.
35552         (thread_through_normal_block, thread_across_edge): Likewise.
35553         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
35554         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
35555         object if it is not an SSA_NAME.
35556         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
35557         before calling into the VRP specific simplifiers.
35558         (identify_jump_threads): Remove handle_dominating_asserts
35559         argument.
35560
35561 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
35562
35563         PR fortran/79886
35564         * tree-diagnostic.c (default_tree_printer): No longer static.
35565         * tree-diagnostic.h (default_tree_printer): New prototype.
35566
35567 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
35568
35569         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
35570         Change ins into fmov.
35571
35572 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35573
35574         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
35575         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
35576         Use h_con constraint for operand 1.
35577         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
35578         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
35579
35580 2017-03-15  Jeff Law  <law@redhat.com>
35581
35582         PR tree-optimization/71437
35583         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
35584         (record_temporary_equivalences): Use it.
35585
35586         PR tree-optimization/71437
35587         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
35588         tree-ssa-scopedtables.
35589         (lookup_avail_expr, build_and_record_new_cond): Likewise.
35590         (record_conditions, record_cond, vuse_eq): Likewise.
35591         (record_edge_info): Adjust to API tweak of record_conditions.
35592         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
35593         (record_temporary_equivalences, optimize_stmt): Likewise.
35594         (eliminate_redundant_computations): Likewise.
35595         (record_equivalences_from_stmt): Likewise.
35596         * tree-ssa-scopedtables.c: Include options.h and params.h.
35597         (vuse_eq): New function, moved from tree-ssa-dom.c
35598         (build_and_record_new_cond): Likewise.
35599         (record_conditions): Likewise.  Accept vector of conditions rather
35600         than edge_equivalence structure for first argument.
35601         for the first argument.
35602         (avail_exprs_stack::lookup_avail_expr): New member function, moved
35603         from tree-ssa-dom.c.
35604         (avail_exprs_stack::record_cond): Likewise.
35605         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
35606         from tree-ssa-dom.c.
35607         (avail_exprs_stack): Add new member functions lookup_avail_expr
35608         and record_cond.
35609         (record_conditions): Declare.
35610
35611 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
35612
35613         PR target/80017
35614         * lra-constraints.c (process_alt_operands): Increase reject for
35615         reloading an input/output operand.
35616
35617 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35618
35619         PR target/79038
35620         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
35621         insns to convert from signed/unsigned char/short to IEEE 128-bit
35622         floating point.
35623         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
35624
35625 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
35626
35627         PR target/80019
35628         * config/i386/i386.c (ix86_vector_duplicate_value): Create
35629         subreg of inner mode for values already in registers.
35630
35631 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
35632
35633         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
35634         iteration reg is used after the loop.
35635
35636 2017-03-14  Martin Sebor  <msebor@redhat.com>
35637
35638         PR tree-optimization/79800
35639         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
35640         precision in negative-positive range.
35641         (format_floating): Call non-const overload with adjusted precision.
35642
35643 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35644
35645         PR target/79947
35646         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
35647         -mpowerpc-gfxopt.
35648
35649 2017-03-14  Martin Sebor  <msebor@redhat.com>
35650
35651         PR middle-end/80020
35652         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
35653         * builtins.def (aligned_alloc): Use it.
35654
35655         PR c/79936
35656         * Makefile.in (GTFILES): Add calls.c.
35657         * calls.c: Include "gt-calls.h".
35658
35659 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
35660
35661         PR rtl-optimization/79728
35662         * regs.h (struct target_regs): New field
35663         x_contains_allocatable_regs_of_mode.
35664         (contains_allocatable_regs_of_mode): New macro.
35665         * reginfo.c (init_reg_sets_1): Initialize it, and change
35666         contains_reg_of_mode so it includes global regs as well.
35667         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
35668         rather than contains_regs_of_mode.
35669
35670 2017-03-14  Martin Liska  <mliska@suse.cz>
35671
35672         * doc/invoke.texi: Document options that can't be combined with
35673         -fcheck-pointer-bounds.
35674
35675 2017-03-14  Martin Liska  <mliska@suse.cz>
35676
35677         PR middle-end/79831
35678         * doc/invoke.texi (-Wchkp): Document the option.
35679
35680 2017-03-14  Martin Liska  <mliska@suse.cz>
35681
35682         * Makefile.in: Install gcov-dump.
35683
35684 2017-03-14  Martin Liska  <mliska@suse.cz>
35685
35686         * multiple_target.c (expand_target_clones): Bail out for
35687         an invalid attribute.
35688
35689 2017-03-14  Richard Biener  <rguenther@suse.de>
35690
35691         * alias.c (struct alias_set_entry): Pack properly.
35692         * cfgloop.h (struct loop): Likewise.
35693         * cse.c (struct set): Likewise.
35694         * ipa-utils.c (struct searchc_env): Likewise.
35695         * loop-invariant.c (struct invariant): Likewise.
35696         * lra-remat.c (struct cand): Likewise.
35697         * recog.c (struct change_t): Likewise.
35698         * rtl.h (struct address_info): Likewise.
35699         * symbol-summary.h (function_summary): Likewise.
35700         * tree-loop-distribution.c (struct partition): Likewise.
35701         * tree-object-size.c (struct object_size_info): Likewise.
35702         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
35703         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
35704         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
35705         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
35706         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
35707         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
35708         (struct _stmt_vec_info): Likewise.
35709
35710 2017-03-14  Martin Liska  <mliska@suse.cz>
35711
35712         PR target/79892
35713         * multiple_target.c (create_dispatcher_calls): Check that
35714         a target can create a function dispatcher.
35715
35716 2017-03-14  Martin Liska  <mliska@suse.cz>
35717
35718         PR lto/66295
35719         * multiple_target.c (expand_target_clones): Drop local.local
35720         flag for default implementation.
35721
35722 2017-03-14  Richard Biener  <rguenther@suse.de>
35723
35724         PR tree-optimization/80030
35725         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
35726
35727 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
35728
35729         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
35730         gcc_fallthrough() instead of __attribute__((fallthrough));
35731
35732 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35733
35734         * doc/gcc.texi: Remove "up" link to (DIR).
35735         * doc/gccint.texi: Ditto.
35736
35737 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35738
35739         * doc/install.texi (Specific) <avr>: Remove reference to
35740         binutils 2.13.
35741
35742 2017-03-13  Jeff Law  <law@redhat.com>
35743
35744         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
35745         attribute rather than comments.
35746
35747         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
35748         match_scratch operand is highest.
35749
35750 2017-03-13  Martin Liska  <mliska@suse.cz>
35751
35752         PR middle-end/78339
35753         * ipa-pure-const.c (warn_function_noreturn): If the declarations
35754         is a CHKP clone, use original declaration.
35755
35756 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35757
35758         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
35759         (arc_conditional_register_usage): Use a different allocation order
35760         when optimizing for size.
35761         * common/config/arc/arc-common.c (arc_option_optimization_table):
35762         Section anchors default on when optimizing for size.
35763
35764 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35765
35766         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
35767
35768 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35769
35770         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
35771         * config/arc/arc.md (cpu_facility): Add cd variant.
35772         (*movqi_insn): Add code density variant.
35773         (*movhi_insn): Likewise.
35774         (*movqi_insn): Likewise.
35775         (*addsi3_mixed): Likewise.
35776         (subsi3_insn): Likewise.
35777
35778 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35779
35780         * config/arc/arc.md (movsi_cond_exec): Update constraint.
35781
35782 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35783
35784         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
35785         expressions with MINUS and UNARY ops.
35786
35787 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35788
35789         PR target/79911
35790         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
35791         Rename to...
35792         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
35793         between vec_select and vector argument.
35794         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
35795         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
35796         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
35797         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
35798         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
35799         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
35800
35801 2017-03-13  Richard Biener  <rguenther@suse.de>
35802
35803         PR other/79991
35804         * params.def (vect-max-peeling-for-alignment): Fix typo.
35805
35806 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35807
35808         * doc/install.texi (Specific) <mips-*-*>: Remove description of
35809         issue that only occurred with binutils below 2.18.
35810
35811 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35812
35813         * doc/install.texi (Specific) <cris-axis-elf>: No longer
35814         refer to binutils 2.11/2.12 minimum.
35815
35816 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35817
35818         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
35819         ftp.kernel.org and simplify binutils requirement.
35820
35821 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
35822
35823         * doc/invoke.texi (Warning Options): Fix spelling of link-time
35824         optimization.
35825         (Optimize Options): Ditto.  Also remove redundancy.
35826
35827 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35828
35829         PR translation/79848
35830         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
35831         "%qs".
35832         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
35833         to G_ to avoid double translation.
35834
35835 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35836
35837         PR translation/79923
35838         * auto-profile.c (get_combined_location): Convert leading
35839         character of diagnostics to lower case and remove trailing period.
35840         (read_profile): Likewise for various diagnostics.
35841         * config/arm/arm.c (arm_option_override): Remove trailing period
35842         from various diagnostics.
35843         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
35844         (msp430_expand_delay_cycles): Likewise.
35845
35846 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35847
35848         PR target/79925
35849         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
35850         full command-line argument, rather than just "str".
35851         (aarch64_validate_march): Likewise.
35852         (aarch64_validate_mtune): Likewise.
35853
35854 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
35855
35856         PR rtl-optimization/78911
35857         * lra-assigns.c (must_not_spill_p): New function.
35858         (spill_for): Use it.
35859
35860 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35861
35862         PR tree-optimization/79981
35863         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
35864         ATOMIC_COMPARE_EXCHANGE ifn result.
35865         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
35866         IFN_ATOMIC_COMPARE_EXCHANGE.
35867
35868 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35869
35870         PR driver/79875
35871         * opts.c (parse_sanitizer_options): Add missing question mark to
35872         "did you mean" message.
35873
35874 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35875
35876         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
35877         built-in.
35878         (VMULEUH_UNS): Likewise.
35879         (VMULOUB_UNS): Likewise.
35880         (VMULOUH_UNS): Likewise.
35881         * config/rs6000/rs6000.c (builtin_function_type): Remove
35882         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
35883
35884 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35885
35886         PR bootstrap/79952
35887         * read-rtl-function.c (function_reader::read_rtx_operand): Update
35888         x with result of extra_parsing_for_operand_code_0.
35889         (function_reader::extra_parsing_for_operand_code_0): Convert
35890         return type from void to rtx, returning x.  When reading
35891         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
35892         larger size containing struct block_symbol.
35893
35894 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
35895
35896         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
35897         -mfloat128-hardware without -m64.
35898
35899 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
35900
35901         PR target/79941
35902         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
35903         entries to the case statement that marks unsigned arguments to
35904         overloaded functions.
35905
35906 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35907
35908         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
35909         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
35910
35911 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
35912
35913         PR target/79907
35914         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
35915         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
35916
35917 2017-03-10  Martin Liska  <mliska@suse.cz>
35918
35919         PR target/65705
35920         PR target/69804
35921         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
35922         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
35923         FIELD != NULL.
35924
35925 2017-03-10  Olivier Hainque  <hainque@adacore.com>
35926
35927         * tree-switch-conversion (array_value_type): Start by resetting
35928         candidate type to it's main variant.
35929
35930 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35931
35932         PR rtl-optimization/79909
35933         * combine.c (try_combine): Use simplify_replace_rtx on individual
35934         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
35935         of the whole CALL_INSN_FUNCTION_USAGE.
35936
35937         PR tree-optimization/79972
35938         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
35939         get_range_info on SSA_NAMEs.  Formatting fixes.
35940
35941 2017-03-10  Richard Biener  <rguenther@suse.de>
35942             Jakub Jelinek  <jakub@redhat.com>
35943
35944         PR tree-optimization/77975
35945         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
35946         edge to be constant.
35947         (get_val_for): For constant x return it.  Formatting fix.
35948         (loop_niter_by_eval): Avoid pointless looping if the next iteration
35949         would use the same bases as the current one.
35950
35951 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35952
35953         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
35954         instead of vec_select for V1TImode.
35955         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
35956         longer needed.
35957         (VSX_LE_128): Add V1TI to this mode iterator.
35958         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
35959         (*vsx_le_perm_store_<mode>): Likewise.
35960         (pre-reload splitter for VSX stores): Likewise.
35961         (post-reload splitter for VSX stores): Likewise.
35962         (*vsx_xxpermdi2_le_<mode>): Likewise.
35963         (*vsx_lxvd2x2_le_<mode>): Likewise.
35964         (*vsx_stxvd2x2_le_<mode>): Likewise.
35965
35966 2017-03-09  Michael Eager  <eager@eagercon.com>
35967
35968         Correct failures with --enable-checking=yes,rtl.
35969
35970         * config/microblaze/microblaze.c (microblaze_expand_shift):
35971         Replace GET_CODE test with CONST_INT_P and INTVAL test with
35972         test for const0_rtx.
35973         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
35974         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
35975
35976 2017-03-09  Richard Biener  <rguenther@suse.de>
35977
35978         PR tree-optimization/79977
35979         * graphite-scop-detection.c (scop_detection::merge_sese):
35980         Handle the case of extra exits to blocks dominating the entry.
35981
35982 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
35983
35984         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
35985         Document rdynamic.
35986
35987 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
35988
35989         PR rtl-optimization/79949
35990         * lra-constraints.c (process_alt_operands): Check memory when
35991         trying to predict a cycle.  Print about the overall increase.
35992
35993 2017-03-09  Richard Biener  <rguenther@suse.de>
35994
35995         PR middle-end/79971
35996         * gimple-expr.c (useless_type_conversion_p): Preserve
35997         TYPE_SATURATING for fixed-point types.
35998
35999 2017-03-09  Richard Biener  <rguenther@suse.de>
36000
36001         PR ipa/79970
36002         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
36003         alignment of BLKmode params.
36004
36005 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36006
36007         PR target/79913
36008         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
36009         (VALL_NO_V2Q): Likewise.
36010         (VDQF_DF): Delete.
36011         * config/aarch64/aarch64-simd.md
36012         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
36013         iterator.
36014         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
36015         VALL_NO_V2Q mode iterator.
36016         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
36017
36018 2017-03-09  Martin Liska  <mliska@suse.cz>
36019
36020         PR tree-optimization/79631
36021         * tree-chkp-opt.c (chkp_is_constant_addr): Call
36022         tree_int_cst_sign_bit just for INTEGER constants.
36023
36024 2017-03-09  Martin Liska  <mliska@suse.cz>
36025
36026         PR target/65705
36027         PR target/69804
36028         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
36029         sanitizers.
36030
36031 2017-03-09  Marek Polacek  <polacek@redhat.com>
36032
36033         PR c++/79672
36034         * tree.c (inchash::add_expr): Handle TREE_VEC.
36035
36036 2017-03-09  Martin Liska  <mliska@suse.cz>
36037
36038         PR ipa/79764
36039         (chkp_narrow_size_and_offset): New function.
36040         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
36041         (void chkp_parse_bit_field_ref): New function.
36042         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
36043         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
36044
36045 2017-03-09  Martin Liska  <mliska@suse.cz>
36046
36047         PR ipa/79761
36048         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
36049         (chkp_find_bounds_1): Remove gcc_unreachable.
36050
36051 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
36052
36053         PR sanitizer/79944
36054         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
36055         BUILT_IN_SYNC*, determine the access type from the size suffix and
36056         always build a MEM_REF with that type.  Handle forgotten
36057         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
36058
36059         PR target/79932
36060         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
36061         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
36062         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
36063         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
36064         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
36065         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
36066         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
36067         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
36068         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
36069         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
36070         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
36071         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
36072         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
36073         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
36074         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
36075         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
36076         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
36077         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
36078         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
36079         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
36080         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
36081         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
36082         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
36083         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
36084         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
36085         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
36086         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
36087         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
36088         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
36089         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
36090         definitions outside of __OPTIMIZE__ guarded section.
36091
36092         PR target/79932
36093         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
36094         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
36095         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
36096         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
36097         guarded section.
36098
36099 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36100
36101         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
36102         ("vfenez<mode>"): Add missing constraints.
36103
36104 2017-03-08  Martin Sebor  <msebor@redhat.com>
36105
36106         PR target/79928
36107         * config/nds32/nds32.c (nds32_option_override):
36108         Fix misspelled diagnostic.
36109
36110 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36111
36112         PR c/79940
36113         * gimplify.c (gimplify_omp_for): Replace index var in outer
36114         taskloop statement with an artificial variable and add
36115         OMP_CLAUSE_PRIVATE clause for it.
36116
36117 2017-03-08  Richard Biener  <rguenther@suse.de>
36118
36119         PR tree-optimization/79955
36120         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
36121         for accesses that are completely outside of the variable.
36122
36123 2017-03-08  Andrew Haley  <aph@redhat.com>
36124
36125         PR tree-optimization/79943
36126         * tree-ssa-loop-split.c (compute_new_first_bound): When
36127         calculating the new upper bound, (END-BEG) should be added, not
36128         subtracted.
36129
36130 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36131
36132         * config/avr/avr.md (setmemhi): Make sure match_dup
36133         operand number comes before match_scratch.
36134
36135 2017-03-08  Richard Biener  <rguenther@suse.de>
36136
36137         PR tree-optimization/79920
36138         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
36139         with ncopies == 1 to ...
36140         (vect_transform_slp_perm_load): ... here.  Properly compute
36141         all element loads by iterating VF times over the group.  Do
36142         not handle ncopies (computed in a broken way) in
36143         vect_create_mask_and_perm.
36144
36145 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36146
36147         PR sanitizer/79904
36148         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
36149         is a uniform vector, use uniform_vector_p return value instead of
36150         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
36151
36152 2017-03-07  Marek Polacek  <polacek@redhat.com>
36153
36154         PR middle-end/79809
36155         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
36156         (alloca_call_type): Likewise.
36157
36158 2017-03-07  Martin Liska  <mliska@suse.cz>
36159
36160         * gcov.c (process_args): Put comment to correct location.
36161
36162 2017-03-07  Martin Liska  <mliska@suse.cz>
36163
36164         PR middle-end/68270
36165         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
36166         Use array_at_struct_end_p instead of DECL_CHAIN (field).
36167         (chkp_narrow_bounds_for_field): Likewise.
36168         (chkp_parse_array_and_component_ref): Pass one more argument to
36169         call.
36170
36171 2017-03-07  Richard Biener  <rguenther@suse.de>
36172
36173         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
36174         preheaders.
36175
36176 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
36177
36178         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
36179         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
36180
36181 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36182
36183         PR c/79855
36184         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
36185         to end of description.
36186         (PARAM_MAX_STORES_TO_MERGE): Likewise.
36187
36188 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
36189
36190         PR rtl-optimization/79901
36191         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
36192         ...
36193         (*avx512f_<code><mode>3<mask_name>): ... this.
36194         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
36195         iterator instead of VI8_AVX2_AVX512BW.
36196
36197         PR rtl-optimization/79901
36198         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
36199         min/max expander, expand it using expand_vec_cond_expr.
36200
36201         PR sanitizer/79897
36202         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
36203         temporary.
36204
36205 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36206
36207         PR c++/79821
36208         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
36209         to void * for PCH reasons.
36210         * dwarf2out.c (output_loc_operands, output_die): Cast
36211         v.val_vec.array to unsigned char *.
36212
36213 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
36214
36215         PR target/77850
36216         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
36217         vector types.
36218
36219 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
36220
36221         PR rtl-optimization/79571
36222         * lra-constraints.c (process_alt_operands): Calculate static
36223         reject and subtract it from overall when only addresses will be
36224         reloaded.
36225
36226 2017-03-06  Julia Koval  <julia.koval@intel.com>
36227
36228         PR target/79793
36229         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
36230         incoming stack boundary to 128 for 64-bit targets.
36231
36232 2017-03-06  Richard Biener  <rguenther@suse.de>
36233
36234         PR tree-optimization/79894
36235         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
36236         to NULL after folding it.
36237
36238 2017-03-06  Richard Biener  <rguenther@suse.de>
36239
36240         PR tree-optimization/79824
36241         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
36242         check disabling peeling for gaps.
36243
36244 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
36245
36246         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
36247         attributes): Document gettimeofday.
36248
36249 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36250
36251         * config/s390/s390.c (s390_option_override_internal): Set
36252         PARAM_MIN_VECT_LOOP_BOUND
36253
36254 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36255
36256         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
36257         * config/s390/s390.md: Likewise.
36258
36259 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36260
36261         PR target/79812
36262         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
36263         (<avx2_avx512>_perm<mode>): Rename to ...
36264         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
36265         of VI8F_256_512.
36266         (<avx512>_perm<mode>_mask): Rename to ...
36267         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
36268         of VI8F_256_512.
36269         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
36270         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
36271         instead of VI8F_256_512.
36272         (avx512f_perm<mode>): New define_expand.
36273         (avx512f_perm<mode>_mask): Likewise.
36274         (avx512f_perm<mode>_1<mask_name>): New define_insn.
36275         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
36276
36277 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36278
36279         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
36280         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
36281         if_then_else.
36282         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
36283
36284 2017-03-06  Martin Liska  <mliska@suse.cz>
36285
36286         PR sanitize/79783
36287         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
36288         when having a SSA NAME w/o VAR_DECL assigned to it.
36289
36290 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36291
36292         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
36293         msa_dpsub_<su>_d): Fix MODE for vec_select.
36294
36295 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36296
36297         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
36298         argument.
36299         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
36300
36301 2017-03-06  Richard Biener  <rguenther@suse.de>
36302
36303         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
36304         * plugin.c (register_plugin_info): Likewise.
36305         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
36306
36307 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
36308
36309         * config/i386/sse.md (sse_storehps, sse_storelps,
36310         avx_<castmode><avxsizesuffix>_<castmode>,
36311         avx512f_<castmode><avxsizesuffix>_<castmode>,
36312         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
36313         in condition that at least one operand is not a MEM.
36314
36315 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36316
36317         PR middle-end/79805
36318         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
36319         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
36320         ECF_NOTHROW.
36321         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
36322         gimple_call_nothrow_p flag based on whether original builtin can throw.
36323         If it can, emit following stmts on the fallthrough edge.
36324         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
36325         don't create new bb if inserting just debug stmts on the edge, try to
36326         insert them on the fallthru bb or just reset debug stmts.
36327
36328 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
36329
36330         PR target/43763
36331         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
36332         restore recog_data (including the operand rtxes inside it) around
36333         the call to get_insn_template.
36334
36335 2017-03-03  Martin Sebor  <msebor@redhat.com>
36336
36337         PR tree-optimization/79699
36338         * context.c (context::~context): Free MPFR caches to avoid
36339         a memory leak on program exit.
36340
36341 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36342
36343         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
36344         Use wide_int::ulow () instead of .elt (0).
36345
36346 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36347
36348         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
36349         (*pushxf): Limit oF constraint to 32bit targets and add oC
36350         constraint for 64bit targets.
36351         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
36352         (*pushdf): Change rmF constraint to rmC.
36353
36354 2017-03-03  Martin Liska  <mliska@suse.cz>
36355
36356         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
36357         Remove unused variable.
36358
36359 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36360
36361         PR target/79807
36362         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
36363         is a memory operand, increase num_memory.
36364         (ix86_expand_args_builtin): Likewise.
36365
36366 2017-03-03  Jan Hubicka  <jh@suse.cz>
36367
36368         PR lto/79760
36369         * ipa-devirt.c (maybe_record_node): Properly handle
36370         __cxa_pure_virtual visibility.
36371
36372 2017-03-03  Martin Liska  <mliska@suse.cz>
36373
36374         PR tree-optimization/79803
36375         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
36376         assert.
36377         (pass_loop_prefetch::execute): Disabled optimization if an
36378         assumption about L1 cache size is not met.
36379
36380 2017-03-03  Martin Liska  <mliska@suse.cz>
36381
36382         PR rtl-optimization/79574
36383         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
36384         (hash_scan_set): Likewise.
36385         (dump_hash_table): Likewise.
36386         (hoist_code): Likewise.
36387
36388 2017-03-03  Richard Biener  <rguenther@suse.de>
36389
36390         * fixed-value.c (fixed_from_string): Restore use of elt (1)
36391         in place of uhigh ().
36392         (fixed_convert_from_real): Likewise.
36393
36394 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36395
36396         PR target/79514
36397         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
36398
36399 2017-03-03  Richard Biener  <rguenther@suse.de>
36400
36401         PR middle-end/79818
36402         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
36403         TYPE_OVERFLOW_UNDEFINED check.
36404
36405 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36406
36407         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
36408         numbers.
36409         (vector_ae_<mode>_p): Likewise.
36410         (vector_nez_<mode>_p): Likewise.
36411         (vector_ne_v2di_p): Likewise.
36412         (vector_ae_v2di_p): Likewise.
36413         (vector_ne_<mode>_p): Likewise.
36414         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
36415         numbers.
36416         (vsx_tsqrt<mode>2_fe): Likewise.
36417
36418 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
36419
36420         PR target/79514
36421         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
36422
36423 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36424
36425         PR rtl-optimization/79780
36426         * cprop.c (one_cprop_pass): When second and further conditional trap
36427         in a single basic block is turned into an unconditional trap, turn it
36428         into a deleted note to avoid RTL verification failures.
36429
36430 2017-03-02  Richard Biener  <rguenther@suse.de>
36431
36432         * fold-const.c (const_binop): Use ulow () instead of elt (0).
36433
36434 2017-03-02  Richard Biener  <rguenther@suse.de>
36435
36436         PR tree-optimization/79345
36437         PR c++/42000
36438         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
36439         param and abort the walk, returning -1 if it is hit.
36440         (walk_aliased_vdefs): Take a limit param and pass it on.
36441         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
36442         defaulting to 0 and return a signed int.
36443         * tree-ssa-uninit.c (struct check_defs_data): New struct.
36444         (check_defs): New helper.
36445         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
36446         about uninitialized memory.
36447         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
36448         bogus uninitialized warning.
36449         (fixed_convert_from_real): Likewise.
36450
36451 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
36452
36453         PR tree-optimization/66768
36454         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
36455         iv_use if base object can't be determined.
36456
36457 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36458
36459         PR tree-optimization/79345
36460         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
36461         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
36462         (get_pattern_stats): Initialize it.
36463         * genemit.c (gen_expand): Verify match_scratch numbers come after
36464         match_operand/match_dup numbers.
36465         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
36466         match_scratch numbers.
36467         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
36468         Likewise.
36469         * config/s390/s390.md (trunctdsd2): Likewise.
36470
36471 2017-03-02  Richard Biener  <rguenther@suse.de>
36472
36473         * wide-int.h (wide_int_storage::operator=): Implement in terms
36474         of wi::copy.
36475
36476 2017-03-02  Richard Biener  <rguenther@suse.de>
36477
36478         PR tree-optimization/79777
36479         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
36480         the to insert expression to sth existing.
36481
36482 2017-03-01  Martin Sebor  <msebor@redhat.com>
36483
36484         PR middle-end/79692
36485         * gimple-ssa-sprintf.c
36486         (directive::known_width_and_precision): New function.
36487         (format_integer): Use it.
36488         (get_mpfr_format_length): Consider the full range of precision
36489         when computing %g output with the # flag.  Set the likely byte
36490         count to 3 rather than 1 when precision is indeterminate.
36491         (format_floating): Correct the lower bound of precision.
36492
36493 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36494
36495         * doc/invoke.texi: Document default code model for 64-bit Linux.
36496
36497 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36498
36499         PR target/79752
36500         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
36501         udiv rather than div since input pattern is unsigned.
36502
36503 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
36504
36505         * config/i386/i386.c (print_reg): Warn for values of
36506         unsupported size in integer register.
36507
36508 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
36509
36510         PR target/79439
36511         * config/rs6000/predicates.md (current_file_function_operand): Do
36512         not allow self calls to be local if the function is replaceable.
36513
36514 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
36515
36516         PR target/79395
36517         * config/rs6000/altivec.h (vec_ctz and others): Change the
36518         preprocessor macro that controls conditional compilation from
36519         _ARCH_PWR9 to __POWER9_VECTOR__.
36520         (vec_all_ne): Change parameterization of __altivec_scalar_pred
36521         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
36522         control (instead of _ARCH_PWR9 control) so that template
36523         definition uses power9-specific function.
36524         (vec_any_eq): Likewise.
36525         (vec_all_ne): Change macro definition to use a power9-specific
36526         expansion under #ifdef __POWER9_VECTOR__ control (instead of
36527         _ARCH_PWR9 control).
36528         (vec_any_eq) Likewise.
36529         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
36530         expansion for CMPNEF to remove support for xvcmpnesp instruction.
36531         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
36532         support for xvcmpnedp instruction.
36533         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
36534         macro expansion so that Power9 implementation of vec_all_ne does
36535         not use the AltiVec predicate framework.
36536         (VCMPNEH_P): Likewise.
36537         (VCMPNEW_P): Likewise.
36538         (VCMPNED_P): Likewise.
36539         (VCMPNEFP_P): Likewise.
36540         (VCMPNEDP_P): Likewise.
36541         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
36542         implementation of vec_any_eq to not use AltiVec predicate
36543         framework.
36544         (VCMPAEH_P): Likewise.
36545         (VCMPAEW_P): Likewise.
36546         (VCMPAED_P): Likewise.
36547         (VCMPAEFP_P): Likewise.
36548         (VCMPAEDP_P): Likewise.
36549         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
36550         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
36551         not use the AltiVec predicate framework.
36552         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
36553         of vec_any_eq to not use AltiVec predicate framework.
36554         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
36555         support for predefined __POWER9_VECTOR__ macro to indicate that
36556         Power9 instruction selection is enabled.
36557         (altivec_overloaded_builtins): Remove extraneous
36558         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
36559         function argument types RS6000_BTI_bool_V16QI and
36560         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
36561         entry for overloaded function argument types RS6000_BTI_bool_V4SI
36562         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
36563         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
36564         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
36565         Power9 for implementations of vec_cmpne.  Change the signature for
36566         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
36567         (representing vec_all_ne) to remove the previously described first
36568         argument of type RS6000_BTI_INTSI, as this was an artifact of
36569         reliance on the AltiVec predicate framework, which is no longer
36570         used in the implementation of these functions.  Add
36571         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
36572         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
36573         since, unlike the AltiVec predicate framework implementation, we
36574         do not share function descriptors between vec_alle and vec_anyeq.
36575         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
36576         set of modes that receive special treatment even when
36577         TARGET_P9_VECTOR is true.  The special treatment emits code that
36578         does not depend on Power9 instructions.
36579         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
36580         define_expand to not rely on AltiVec predicate framework.
36581         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36582         function.
36583         (vector_ne_v2di_p): Change this define_expand to not rely on
36584         AltiVec predicate framework.
36585         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
36586         function.
36587         (vector_ne_<mode>_p): Change this define_expand to not rely on
36588         AltiVec predicate framework.
36589         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36590         function.
36591         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
36592         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
36593         define_insn pattern.
36594         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
36595         define_insn pattern because the xvcmpne<VSs>. instruction is not
36596         supported.
36597         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
36598         instruction is not supported.
36599
36600 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36601
36602         * config/nvptx/nvptx.c: Include intl.h.
36603
36604 2017-03-01  Martin Jambor  <mjambor@suse.cz>
36605
36606         PR lto/78140
36607         * ipa-prop.h (ipa_bits): Removed field known.
36608         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
36609         to pointers.  Adjusted their comments to warn about their sharing.
36610         (ipcp_transformation_summary): Change bits to a vector of pointers.
36611         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
36612         (ipa_get_ipa_bits_for_value): Declare.
36613         * tree-vrp.h (value_range): Mark as GTY((for_user)).
36614         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
36615         (ipa_bits_hash_table): Likewise.
36616         (ipa_vr_ggc_hash_traits): Likewise.
36617         (ipa_vr_hash_table): Likewise.
36618         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
36619         being pointers and vr_known being removed.
36620         (ipa_set_jf_unknown): Likewise.
36621         (ipa_get_ipa_bits_for_value): New function.
36622         (ipa_set_jfunc_bits): Likewise.
36623         (ipa_get_value_range): New overloaded functions.
36624         (ipa_set_jfunc_vr): Likewise.
36625         (ipa_compute_jump_functions_for_edge): Use the above functions to
36626         construct bits and vr parts of jump functions.
36627         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
36628         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36629         exist.
36630         (ipcp_grow_transformations_if_necessary): Also allocate
36631         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36632         exist.
36633         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
36634         them.  Fix too long lines.
36635         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
36636         vr_known being removed.
36637         (ipa_read_jump_function): Use new setter functions to construct bits
36638         and vr parts of jump functions or set them to NULL.
36639         (write_ipcp_transformation_info): Adjust for bits being pointers.
36640         (read_ipcp_transformation_info): Likewise.
36641         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
36642         space.
36643         Include gt-ipa-prop.h.
36644         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
36645         being pointers.
36646         (ipcp_store_bits_results): Likewise.
36647         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
36648         Do not write to existing jump functions but use a temporary instead.
36649
36650 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36651
36652         PR c++/79681
36653         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
36654         attempt to use its first operand as BIT_FIELD_REF base.
36655
36656 2017-03-01  Richard Biener  <rguenther@suse.de>
36657
36658         PR middle-end/79721
36659         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
36660         interpolating formula in wrapping arithmetic.
36661         (chrec_apply): Convert chrec_evaluate return value to wanted type.
36662
36663 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36664
36665         PR tree-optimization/79734
36666         * tree-vect-generic.c (expand_vector_condition): Optimize
36667         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
36668         Handle VEC_COND_EXPR where comparison has different inner width from
36669         type's inner width.
36670
36671 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
36672
36673         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
36674         markup, and similar issues.  Remove @opindex entries for things
36675         that aren't options.  Add missing -mmpy-option entries.
36676
36677 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36678
36679         PR tree-optimization/79737
36680         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
36681         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
36682         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
36683         instead of byte_size.  Formatting fix.
36684         (shift_bytes_in_array_right): Formatting fix.
36685
36686 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
36687
36688         PR target/79749
36689         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
36690         condition on optimize for the leaf function test.
36691
36692 2017-02-28  Martin Liska  <mliska@suse.cz>
36693
36694         PR lto/79625
36695         * read-rtl-function.c (function_reader::handle_unknown_directive):
36696         Bail out when one uses -flto.
36697
36698 2017-02-28  Martin Liska  <mliska@suse.cz>
36699
36700         * common.opt: Replace space with tabular for options of <number>
36701         type.
36702         * config/i386/i386.opt: Show <number> value for
36703         -mlarge-data-threshold.
36704         * opts.c (print_filtered_help): Do not display number in hexadecimal
36705         format.
36706
36707 2017-02-28  Martin Liska  <mliska@suse.cz>
36708
36709         * common.opt: Fix --help=option -Q for options which are of
36710         an enum type.
36711
36712 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
36713
36714         * config/i386/i386.c (print_reg): Error out for values
36715         of 8-bit size in invalid integer register.
36716
36717 2017-02-28  Martin Sebor  <msebor@redhat.com>
36718
36719         PR tree-optimization/79691
36720         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
36721
36722 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36723
36724         PR target/79729
36725         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
36726         gcc_unreachable with output_operand_lossage.
36727
36728 2017-02-28  Richard Biener  <rguenther@suse.de>
36729
36730         PR tree-optimization/79740
36731         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
36732         inserts.
36733         (visit_nary_op): Insert the nary into the hashtable if we
36734         pattern-matched sth.
36735         * tree-ssa-pre.c (eliminate_insert): Robustify.
36736
36737 2017-02-28  Richard Biener  <rguenther@suse.de>
36738
36739         PR middle-end/79731
36740         * fold-const.c (decode_field_reference): Reject out-of-bound
36741         accesses.
36742
36743 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36744
36745         * config/i386/i386.c: Include intl.h.
36746         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
36747         instead of just cond ? "..." : "...".
36748         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
36749         * coverage.c (read_counts_file): Likewise.
36750         * omp-offload.c: Include intl.h.
36751         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
36752         of just cond ? "..." : "...".
36753         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
36754         of just cond ? "..." : "...".
36755
36756 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
36757
36758         PR target/79742
36759         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
36760         entry, if present.
36761         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
36762         'tune for' CPU name.
36763         * config/arm/arm-cpu-data.h: Regenerated.
36764
36765 2017-02-28  Richard Biener  <rguenther@suse.de>
36766
36767         PR tree-optimization/79732
36768         * tree-inline.c (expand_call_inline): Do not shadow var.
36769
36770 2017-02-28  Richard Biener  <rguenther@suse.de>
36771
36772         PR tree-optimization/79723
36773         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
36774         address-space properly.
36775
36776 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
36777
36778         * doc/optinfo.texi (Optimization groups): Fix option used for
36779         OPTGROUP_ALL.
36780         * doc/invoke.texi (-fopt-info): Document "omp".
36781         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
36782         (OPTGROUP_ALL): Add OPTGROUP_OMP.
36783         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
36784         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
36785         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
36786
36787         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
36788         all users.
36789         * dumpfile.c (optgroup_options): Instead of "openmp", associate
36790         OPTGROUP_OMP with "omp".
36791
36792 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
36793
36794         PR target/79544
36795         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
36796         for arithmetic shift of unsigned V2DI.
36797
36798 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
36799
36800         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
36801         arc/linux.h headers.
36802         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
36803         (LINK_SPEC): Likewise.
36804         (ARC_TLS_EXTRA_START_SPEC): Likewise.
36805         (EXTRA_SPECS): Likewise.
36806         (STARTFILE_SPEC): Likewise.
36807         (ENDFILE_SPEC): Likewise.
36808         (LIB_SPEC): Likewise.
36809         (TARGET_SDATA_DEFAULT): Likewise.
36810         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
36811         (MULTILIB_DEFAULTS): Likewise.
36812         (DWARF2_UNWIND_INFO): Likewise.
36813         * config/arc/big.h: New file.
36814         * config/arc/elf.h: Likewise.
36815         * config/arc/linux.h: Likewise.
36816         * config/arc/t-uClibc: Remove.
36817
36818 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
36819
36820         PR tree-optimization/77536
36821         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
36822         (tree_transform_and_unroll_loop): Use above function to compute the
36823         estimated niter of unrolled loop and use it when scaling profile.
36824         Also use count info rather than frequency if it's non-zero.
36825         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
36826         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
36827         (vect_transform_loop): Call above function.
36828
36829 2017-02-27  Richard Biener  <rguenther@suse.de>
36830
36831         PR tree-optimization/45397
36832         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
36833         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
36834         (visit_nary_op): Add pattern matching for CSEing sign-changed
36835         or truncated operations with wider ones.
36836
36837 2017-02-27  Richard Biener  <rguenther@suse.de>
36838
36839         PR tree-optimization/79690
36840         * tree-vect-stmts.c (vectorizable_store): Use vector type
36841         built from the DR with address-space.
36842
36843 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
36844
36845         * doc/invoke.texi (Optimize Options): Refine the description
36846         of asan-use-after-return.
36847
36848 2017-02-25  Alan Modra  <amodra@gmail.com>
36849
36850         PR rtl-optimization/79584
36851         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
36852         base, not ad->base_term, the reg within base.  Remove assertion
36853         that ad->base == ad->base_term.  Replace gen_int_mode using
36854         bogus mode with const0_rtx.
36855
36856 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
36857
36858         PR middle-end/79396
36859         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
36860         FMA_EXPR like tcc_binary or tcc_unary.
36861
36862         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
36863
36864         PR debug/77589
36865         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
36866         bitfield.
36867         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
36868         (output_loc_operands): Handle DW_OP_call_ref and
36869         DW_OP_GNU_variable_value.
36870         (struct variable_value_struct): New type.
36871         (struct variable_value_hasher): Likewise.
36872         (variable_value_hash): New variable.
36873         (string_types): Remove.
36874         (copy_loc_descr): New function.
36875         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
36876         (prepend_loc_descr_to_each): New function.
36877         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
36878         instead of add_loc_descr_to_each if the first argument is single
36879         location list and the second has multiple.
36880         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
36881         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
36882         when looking for variable value which doesn't have other location info.
36883         (loc_list_from_tree): Formatting fix.
36884         (gen_array_type_die): Simplify DW_AT_string_length handling.
36885         (adjust_string_types): Remove.
36886         (gen_subprogram_die): Don't call adjust_string_types nor test/set
36887         string_types.  Call resolve_variable_values.
36888         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
36889         (resolve_addr_in_expr): Likewise.  Add A argument.
36890         (copy_deref_exprloc): Remove deref argument.  Adjust for the
36891         original expression being DW_OP_GNU_variable_value with optionally
36892         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
36893         optionally after it.
36894         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
36895         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
36896         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
36897         (variable_value_hasher::hash, variable_value_hasher::equal): New
36898         methods.
36899         (resolve_variable_value_in_expr, resolve_variable_value,
36900         resolve_variable_values, note_variable_value_in_expr,
36901         note_variable_value): New functions.
36902         (dwarf2out_early_finish): Call note_variable_value on all toplevel
36903         DIEs.
36904
36905 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
36906
36907         PR c/79677
36908         * opts.h (handle_generated_option): Add GENERATED_P argument.
36909         * opts-common.c (handle_option): Adjust function comment.
36910         (handle_generated_option): Add GENERATED_P argument, pass it to
36911         handle_option.
36912         (control_warning_option): Pass false to handle_generated_option
36913         GENERATED_P.
36914         * opts.c (maybe_default_option): Pass true to handle_generated_option
36915         GENERATED_P.
36916         * optc-gen.awk: Likewise.
36917
36918 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36919
36920         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
36921         a REG, look at the REG it is a SUBREG of.
36922         (splitter for cmpeqsi_t): Ditto.
36923
36924 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36925
36926         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
36927         the special USEs with the pattern of the insn, not the insn itself.
36928
36929 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
36930
36931         PR target/79473
36932         * doc/invoke.texi: Document -mload-store-pairs.
36933
36934 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36935             Sandra Loosemore  <sandra@codesourcery.com>
36936
36937         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
36938         argument isn't a CONST_INT.
36939         (nios2_alternate_compare_const): Assert op is a CONST_INT.
36940         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
36941         (nios2_validate_compare): Bypass alternate compare logic if *op2
36942         is not a CONST_INT.
36943         (ldstwm_operation_p): Return false if first_base is not a REG or
36944         if first_offset is not a CONST_INT.
36945
36946 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36947
36948         * config/cris/cris.md: Use correct operand in a define_peephole2.
36949
36950 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36951
36952         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
36953
36954 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36955
36956         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
36957         this_insn if it is an INSN or JUMP_INSN.
36958         (force_offsettable): Look at base, not at addr.
36959         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
36960         on things that aren't necessarily CONST_INTs.
36961
36962 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
36963
36964         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
36965         -mfpmath=sse is the default also for x86-32 targets with SSE2
36966         instruction set when @option{-ffast-math} is enabled
36967
36968 2017-02-24  Jeff Law  <law@redhat.com>
36969
36970         PR rtl-optimizatoin/79286
36971         * ira.c (update_equiv_regs): Drop may_trap_p exception to
36972         dominance test.
36973
36974 2017-02-24  Richard Biener  <rguenther@suse.de>
36975
36976         PR tree-optimization/79389
36977         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
36978         debug insns.
36979
36980 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
36981
36982         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
36983         function comment to reflect reality.
36984         (loop_exits_before_overflow): Fix typo in function description.
36985
36986 2017-02-24  Richard Biener  <rguenther@suse.de>
36987
36988         PR tree-optimization/79389
36989         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
36990         properly that a threading opportunity exists.  Detect conditional
36991         copy/constant propagation opportunities.
36992
36993 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
36994
36995         * config/visium/visium.md (type): Add trap.
36996         (b): New mode attribute.
36997         (*btst): Rename into...
36998         (*btst<mode>): ...this and adjust.
36999         (*cbranchsi4_btst_insn): Rename into...
37000         (*cbranch<mode>4_btst_insn): ...this and adjust.
37001         (trap): New define_insn.
37002
37003 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37004
37005         PR tree-optimization/79389
37006         * ifcvt.c (struct noce_if_info): Add rev_cond field.
37007         (noce_reversed_cond_code): New function.
37008         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
37009         reversed_comparison_code.  Formatting fix.
37010         (noce_try_store_flag): Test rev_cond != NULL in addition to
37011         reversed_comparison_code.
37012         (noce_try_store_flag_constants): Likewise.
37013         (noce_try_store_flag_mask): Likewise.
37014         (noce_try_addcc): Use rev_cond if non-NULL instead of
37015         reversed_comparison_code.
37016         (noce_try_cmove_arith): Likewise.  Formatting fixes.
37017         (noce_try_minmax, noce_try_abs): Clear rev_cond.
37018         (noce_find_if_block): Initialize rev_cond.
37019         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
37020         instead of false as last argument never attempt to reverse it
37021         afterwards.
37022
37023 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
37024
37025         PR tree-optimization/79663
37026         * tree-predcom.c (combine_chains): Process refs in reverse order
37027         only for ZERO length chains, and add explaining comment.
37028
37029 2017-02-23  Jeff Law  <law@redhat.com>
37030
37031         PR tree-optimization/79578
37032         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
37033         in call to operand_equal_p.
37034
37035 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
37036
37037         PR target/71017
37038         * config/i386/cpuid.h: Fix another undefined behavior.
37039
37040 2017-02-23  Richard Biener  <rguenther@suse.de>
37041
37042         PR tree-optimization/79683
37043         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
37044         vector types for data-refs.
37045
37046 2017-02-23  Martin Liska  <mliska@suse.cz>
37047
37048         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
37049
37050 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37051
37052         PR middle-end/79665
37053         * internal-fn.c (get_range_pos_neg): Moved to ...
37054         * tree.c (get_range_pos_neg): ... here.  No longer static.
37055         * tree.h (get_range_pos_neg): New prototype.
37056         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
37057         are known to be in between 0 and signed maximum inclusive, try to
37058         expand both unsigned and signed divmod and use the cheaper one from
37059         those.
37060
37061 2017-02-22  Jeff Law  <law@redhat.com>
37062
37063         PR tree-optimization/79578
37064         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
37065         to compare base operands.
37066
37067 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
37068
37069         PR target/79211
37070         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
37071         gpc_reg_operand instead of fpr_reg_operand.
37072
37073 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
37074
37075         * config/mips/mips.c (mips_return_in_memory): Force FP
37076         vector types to be returned in memory for o32 ABI.
37077
37078 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37079
37080         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
37081         instead of DW_TAG_member for static data member declarations and don't
37082         set no_linkage_name for static inline data members.
37083         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
37084         to DW_TAG_member.
37085
37086 2017-02-22  Martin Liska  <mliska@suse.cz>
37087
37088         * doc/invoke.texi: Replace inequality signs with square brackets
37089         for -Wnormalized.
37090
37091 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
37092
37093         PR target/78660
37094         * lra-constraints.c (simplify_operand_subreg): Handle
37095         WORD_REGISTER_OPERATIONS targets.
37096
37097 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37098
37099         PR target/70465
37100         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
37101         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
37102         elimination by swapping fld*.
37103
37104 2017-02-22  Richard Biener  <rguenther@suse.de>
37105
37106         PR tree-optimization/79673
37107         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
37108         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
37109         irrelevant address-space qualifiers and avoiding a
37110         ADDR_SPACE_CONVERT_EXPR from fold_convert.
37111
37112 2017-02-22  Richard Biener  <rguenther@suse.de>
37113
37114         PR tree-optimization/79666
37115         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
37116         to not symbolically negate if that may introduce undefined
37117         overflow.
37118
37119 2017-02-22  Martin Liska  <mliska@suse.cz>
37120
37121         PR lto/79587
37122         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
37123         * data-streamer-out.c (streamer_write_gcov_count_stream):
37124         Likewise.
37125         * value-prof.c (stream_out_histogram_value): Make assert more
37126         precise based on type of counter.
37127
37128 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
37129
37130         PR target/79593
37131         * config/i386/i386.md (standard_x87sse_constant_load splitter):
37132         Use nonimmediate_operand instead of memory_operand for operand 1.
37133         (float-extend standard_x87sse_constant_load splitter): Ditto.
37134
37135 2017-02-21  Jeff Law  <law@redhat.com>
37136
37137         PR tree-optimization/79621
37138         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
37139         blocks with edges to themselves.
37140
37141 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37142
37143         PR target/79633
37144         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
37145         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
37146         Use gimple_call_builtin_p.
37147
37148         PR target/79570
37149         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
37150         on temporarily removed DEBUG_INSNs.
37151
37152         PR tree-optimization/79649
37153         * tree-loop-distribution.c (classify_partition): Give up on
37154         non-generic address space loads/stores.
37155
37156 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
37157
37158         * doc/loop.texi (Loop manipulation): Remove nonexistent
37159         tree_ssa_loop_version from the documentation.
37160         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
37161
37162 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37163
37164         PR target/79494
37165         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
37166         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
37167         * config/rs6000/rs6000.c: Include except.h.
37168         (rs6000_expand_split_stack_prologue): Call
37169         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
37170
37171 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37172
37173         PR lto/79579
37174         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
37175         have been analyzed.
37176
37177 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37178
37179         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
37180         for backward compatibility only.
37181         * doc/invoke.texi (Option Summary): Remove all references to
37182         -fipa-cp-alignment.
37183
37184 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
37185
37186         PR target/78660
37187         Revert:
37188         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37189
37190         * lra-constraints.c (curr_insn_transform): Handle
37191         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37192
37193 2017-02-21  Martin Liska  <mliska@suse.cz>
37194
37195         * config/i386/i386.opt: Replace -masm-dialect with -masm.
37196
37197 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
37198
37199         PR translation/79638
37200         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
37201
37202 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
37203
37204         PR ada/67205
37205         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
37206         (arm_function_ok_for_sibcall): Return false for an indirect call by
37207         descriptor if all the argument registers are used.
37208         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
37209         alignment of the function.
37210
37211 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37212
37213         PR tree-optimization/61441
37214         * simplify-rtx.c (simplify_const_unary_operation): For
37215         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
37216         the sNaN unmodified.
37217
37218 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37219
37220         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
37221         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
37222         instead of SYSTEM_HEADER_DIR.
37223
37224 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
37225             Martin LiÅ¡ka  <mliska@suse.cz>
37226
37227         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
37228         Fix typos and grammar, use active voice, and clarify.
37229
37230 2017-02-20  Marek Polacek  <polacek@redhat.com>
37231
37232         PR middle-end/79537
37233         * gimplify.c (gimplify_expr): Handle unused *&&L;.
37234
37235         PR sanitizer/79558
37236         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
37237
37238 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
37239
37240         PR target/79568
37241         * config/i386/i386.c (ix86_expand_builtin): Handle
37242         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
37243         ix86_builtins_isa[fcode].isa as a requirement of those
37244         flags and any other flag in the bitmask.
37245         (ix86_init_mmx_sse_builtins): Use 0 instead of
37246         ~OPTION_MASK_ISA_64BIT as mask.
37247         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
37248         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
37249         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
37250         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
37251
37252 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37253
37254         PR target/78012
37255         * lra-constraints.c (split_reg): Check requested split mode
37256         is supported by the register.
37257
37258 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37259
37260         * lra-constraints.c (simplify_operand_subreg): Remove early
37261         return false.
37262
37263 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37264
37265         PR target/78660
37266         * lra-constraints.c (curr_insn_transform): Tighten condition
37267         for converting SUBREG reloads from OP_OUT to OP_INOUT.
37268
37269 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37270
37271         PR target/78660
37272         * lra-constraints.c (curr_insn_transform): Handle
37273         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37274
37275 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
37276
37277         Revert:
37278         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
37279
37280         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
37281
37282 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
37283
37284         PR c++/69523
37285         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
37286         description.
37287
37288 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37289
37290         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
37291         for FMA_EXPR.
37292
37293 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
37294
37295         * final.c (last_columnnum, override_columnnum): New variables.
37296         (final_start_function): Set last_columnnum, pass it to begin_prologue
37297         hook and pass 0 to dwarf2out_begin_prologue.
37298         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
37299         to source_line debug hook.
37300         (notice_source_line): Compute last_columnnum and for debug_column_info
37301         return true on column changes.
37302         * debug.h (struct gcc_debug_hooks): Add column argument to
37303         source_line and begin_prologue hooks.
37304         (debug_nothing_int_charstar_int_bool): Remove prototype.
37305         (debug_nothing_int_int_charstar,
37306         debug_nothing_int_int_charstar_int_bool): New prototypes.
37307         (dwarf2out_begin_prologue): Add column argument.
37308         * debug.c (do_nothing_debug_hooks): Adjust source_line and
37309         begin_prologue hooks.
37310         (debug_nothing_int_charstar_int_bool): Remove.
37311         (debug_nothing_int_int_charstar,
37312         debug_nothing_int_int_charstar_int_bool): New functions.
37313         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
37314         through to dwarf2out_source_line.
37315         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
37316         (dwarf2out_source_line): Add column argument, emit it if requested.
37317         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
37318         arguments.
37319         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37320         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37321         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
37322         through to dwarf2out_begin_prologue.
37323         (vmsdbgout_source_line): Add column argument, pass it through to
37324         dwarf2out_source_line.
37325         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
37326         dbxout_source_line caller.
37327         (dbxout_source_line): Add column argument.
37328
37329         * common.opt (gno-column-info, gcolumn-info): New options.
37330         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
37331         (check_die): Also test for multiple DW_AT_decl_column attributes.
37332         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
37333         DW_AT_decl_column if requested.
37334         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
37335         if requested.
37336         (gen_variable_die): Likewise.
37337         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
37338         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
37339
37340         PR target/79569
37341         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
37342         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
37343         (ix86_handle_option): Handle OPT_m3dnowa.
37344         * doc/invoke.texi (-m3dnowa): Document.
37345         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
37346         -m3dnowa instead of -m3dnow -march=athlon.
37347
37348         PR target/79559
37349         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
37350         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
37351
37352 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37353
37354         PR target/79261
37355         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
37356         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
37357         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
37358         generator for vsx_xxpermdi_<mode>_be.
37359         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
37360         force big-endian semantics.
37361         (vsx_xxpermdi_<mode>_be): New define_expand with same
37362         implementation as previous version of vsx_xxpermdi_<mode>.
37363
37364 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
37365
37366         PR tree-optimization/79327
37367         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
37368         variable, its initialization and use.
37369
37370 2017-02-17  Julia Koval  <julia.koval@intel.com>
37371
37372         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
37373         (OPTION_MASK_ISA_PKU_UNSET): New.
37374         (ix86_handle_option): Handle -mrdpid.
37375         * config/i386/cpuid.h (bit_RDPID): New.
37376         * config/i386/driver-i386.c (host_detect_local_cpu):
37377         Detect RDPID feature.
37378         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
37379         * config/i386/i386-c.c (ix86_target_macros_internal):
37380         Handle RDPID flag.
37381         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
37382         (ix86_valid_target_attribute_inner_p): Add "rdpid".
37383         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
37384         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
37385         * config/i386/i386.md (define_insn "rdpid"): New.
37386         * config/i386/i386.opt Add -mrdpid.
37387         * config/i386/immintrin.h (_rdpid_u32): New.
37388
37389 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
37390
37391         PR rtl-optimization/79541
37392         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
37393         instead of transforming it into USE.
37394
37395 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
37396
37397         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
37398         If HONOR_SNANS (SFmode) force the input to a register.
37399         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
37400         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
37401         an frsp or similar insn.
37402
37403 2017-02-17  Martin Liska  <mliska@suse.cz>
37404
37405         PR rtl-optimization/79577
37406         * params.def (selsched-max-sched-times): Increase minimum to 1.
37407
37408 2017-02-17  Martin Liska  <mliska@suse.cz>
37409
37410         PR rtl-optimization/79574
37411         * gcse.c (want_to_gcse_p): Prevent integer overflow.
37412
37413 2017-02-17  Martin Liska  <mliska@suse.cz>
37414
37415         PR tree-optimization/79529
37416         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
37417         ssa_defined_default_def_p to handle cases which are implicitly
37418         defined.
37419         * tree-ssa.c (ssa_defined_default_def_p): New function.
37420         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
37421         which are implicitly defined.
37422         * tree-ssa.h (ssa_defined_default_def_p): Declare.
37423
37424 2017-02-17  Richard Biener  <rguenther@suse.de>
37425
37426         PR middle-end/79576
37427         * params.def (max-ssa-name-query-depth): Limit to 10.
37428
37429 2017-02-17  Richard Biener  <rguenther@suse.de>
37430
37431         PR tree-optimization/79552
37432         * tree-ssa-structalias.c (visit_loadstore): Properly verify
37433         default defs.
37434
37435 2017-02-17  Richard Biener  <rguenther@suse.de>
37436
37437         PR bootstrap/79567
37438         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
37439
37440 2017-02-17  Marek Polacek  <polacek@redhat.com>
37441
37442         PR middle-end/79536
37443         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
37444         (fold_negate_expr): New wrapper.
37445
37446 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
37447
37448         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
37449         Correct terminology and de-emphasize pre-standard behavior.
37450
37451 2017-02-16  Alan Modra  <amodra@gmail.com>
37452
37453         PR rtl-optimization/79286
37454         * ira.c (def_dominates_uses): New function.
37455         (update_equiv_regs): Don't create an equivalence for insns that
37456         may trap where the register def does not dominate the use.
37457
37458 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
37459
37460         PR rtl-optimization/78127
37461         * lra.c (lra): Call lra_eliminate before finish the loop after
37462         lra_constraint.
37463
37464 2017-02-16  Richard Biener  <rguenther@suse.de>
37465
37466         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
37467         isl/isl_val.h.
37468         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
37469         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
37470         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
37471         (isl_val_int_from_wi): New function.
37472         (extract_affine_gmp): Rename to ...
37473         (extract_affine_wi): ... this, take a widest_int.
37474         (extract_affine_int): Just wrap extract_affine_wi.
37475         (add_param_constraints): Use isl_val_int_from_wi.
37476         (add_loop_constraints): Likewise, and extract_affine_wi.
37477
37478 2017-02-15  Jeff Law  <law@redhat.com>
37479
37480         PR middle-end/79521
37481         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
37482         ira_init_register_move_cost_if_necessary.
37483
37484 2017-02-15  Martin Sebor  <msebor@redhat.com>
37485
37486         PR middle-end/32003
37487         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
37488         removed in a prior commit.
37489
37490 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
37491
37492         PR tree-optimization/79347
37493         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
37494         counters during peeling.
37495
37496 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
37497
37498         * Makefile.in (site.exp): Remove "set ISLVER".
37499
37500 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
37501
37502         PR target/79487
37503         * real.c (real_from_integer): Call real_convert even for decimal.
37504
37505 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37506
37507         PR target/79421
37508         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
37509
37510 2017-02-14  Andrew Pinski  <apinski@cavium.com>
37511
37512         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
37513         cores and change the partno/implementer to be correct.
37514         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
37515         the 'B" as the implementer.
37516         * config/aarch64/aarch64-tune.md: Regenerate.
37517
37518 2017-02-14  Carl Love  <cel@us.ibm.com>
37519
37520         * config/rs6000/rs6000.c: Add case statement entry to make the
37521         xvcvuxdsp built-in argument unsigned.
37522         * config/rs6000/vsx.md: Fix the source and return operand types so they
37523         match the instruction definitions from the ISA document.  Fix typo
37524         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
37525         statement.
37526
37527 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
37528
37529         PR target/79282
37530         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
37531         member early_clobber_alts.
37532         * lra-lives.c (reg_early_clobber_p): New.
37533         (process_bb_lives): Use it.
37534         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
37535         (debug_operand_data): Initialize early_clobber_alts.
37536         (setup_operand_alternative): Set up early_clobber_alts.
37537         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
37538         alternatives to new_insn_reg.
37539         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
37540         it.
37541         (lra_update_insn_regno_info): Pass the new arg.
37542
37543 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37544
37545         PR middle-end/79505
37546         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
37547         (new_oacc_loop_raw): Don't clear already cleared fields.
37548
37549         PR target/79481
37550         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
37551         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
37552         _mm512_prefetch_i64gather_ps): New inline functions and macros.
37553
37554 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
37555
37556         PR target/79495
37557         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
37558
37559 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
37560
37561         PR target/79498
37562         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
37563         the extra instruction to the right place to store 128-bit constant
37564         when needed.
37565
37566 2017-02-14  Martin Sebor  <msebor@redhat.com>
37567
37568         PR middle-end/79448
37569         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
37570           warning for strings of unknown length.
37571
37572 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
37573
37574         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
37575
37576 2017-02-14  Jeff Law  <law@redhat.com>
37577
37578         PR target/79404
37579         * ira-costs.c (scan_one_insn): Initialize register move costs
37580         for pseudos seen in USE/CLOBBER insns.
37581
37582         PR tree-optimization/79095
37583         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
37584         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
37585         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
37586         if the operands are known to be not equal, then the resulting range
37587         is ~[0,0].
37588         (intersect_ranges): If the new range is ~[0,0] and the old range is
37589         wide, then prefer ~[0,0].
37590         * tree-vrp.c (overflow_comparison_p_1): New function.
37591         (overflow_comparison_p): New function.
37592         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
37593         if NAME is used in an overflow test.
37594         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
37595         overflow check that can be expressed as an equality test, then adjust
37596         ops to be that equality test.
37597
37598 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37599
37600         * config/s390/s390-builtin-types.def: Remove flags argument.
37601         * config/s390/s390.c (s390_init_builtins): Likewise.
37602
37603 2017-02-14  Martin Liska  <mliska@suse.cz>
37604
37605         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
37606         vector.  Fix trailing white spaces.
37607
37608 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
37609
37610         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
37611         HFmode.
37612
37613 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37614
37615         PR rtl-optimization/68664
37616         * config/arm/arm.c (arm_sched_can_speculate_insn):
37617         New function.  Declare prototype.
37618         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37619
37620 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37621
37622         PR rtl-optimization/68664
37623         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
37624         New function.
37625         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37626
37627 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
37628
37629         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
37630         max skip bytes for function, loop and jump.
37631
37632 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37633
37634         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
37635         ABS_EXPR for gimple dump.
37636
37637 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37638
37639         PR target/79462
37640         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
37641
37642         PR tree-optimization/79408
37643         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
37644         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
37645         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
37646         also if rhs1 is INTEGER_CST.
37647
37648 2017-02-14  Richard Biener  <rguenther@suse.de>
37649
37650         PR middle-end/79432
37651         * tree-into-ssa.c (insert_phi_nodes): When the function can
37652         have abnormal edges rewrite SSA names with broken use-def
37653         dominance out of SSA and register them for PHI insertion.
37654
37655 2017-02-13  Martin Sebor  <msebor@redhat.com>
37656
37657         PR middle-end/79496
37658         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
37659         clearing info.nowrite flag when snprintf size argument is a range.
37660
37661 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37662
37663         * cprop.c (cprop_jump): Add missing space in string literal.
37664         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
37665         (get_constraint_for_component_ref): Likewise.
37666         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
37667         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
37668         * lra-constraints.c (process_alt_operands): Likewise.
37669         * ipa-inline.c (inline_small_functions): Likewise.
37670         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
37671         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37672         * trans-mem.c (diagnose_tm_1_op): Likewise.
37673         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
37674         (grid_parallel_clauses_gridifiable): Likewise.
37675
37676         * config/nvptx/mkoffload.c (process): Add space in between
37677         , and %d.
37678
37679         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
37680         "MOD4_SSE_REGS" and "ALL_REGS".
37681
37682         * spellcheck.c (test_data): Add , in between "foo" and "food".
37683
37684 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37685
37686         PR target/79449
37687         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
37688         boundary crossing check and subsequent code generation agree.
37689
37690 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37691
37692         * config/aarch64/aarch64.c (has_memory_op): Delete.
37693         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
37694         has_memory_op.
37695
37696 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37697
37698         PR rtl-optimization/79388
37699         PR rtl-optimization/79450
37700         * combine.c (distribute_notes): When removing TEM_INSN for which
37701         corresponding dest has last value recorded, invalidate that last
37702         value.
37703
37704 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37705
37706         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
37707         of explicit '@'.  Add missing assembly comment marker on branch costs
37708         printout.
37709
37710 2017-02-13  Nathan Sidwell  <nathan@acm.org>
37711
37712         * gengtype-lex.l (<in_struct>): Add '/'.
37713
37714 2017-02-13  Martin Liska  <mliska@suse.cz>
37715
37716         PR c/79471
37717         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
37718
37719 2017-02-13  Richard Biener  <rguenther@suse.de>
37720
37721         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
37722         Remove.
37723         * configure: Re-generate.
37724         * config.in: Likewise.
37725         * graphite-dependences.c: Simplify as if
37726         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
37727         * graphite-isl-ast-to-gimple.c: Likewise.
37728         * graphite-optimize-isl.c: Likewise.
37729         * graphite-poly.c: Likewise.
37730         * graphite-sese-to-poly.c: Likewise.
37731         * graphite.h: Likewise.
37732         * toplev.c: Include isl/version.h and use isl_version () for
37733         printing the ISL version.
37734         * doc/install.texi: Update ISL requirement.
37735
37736 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37737
37738         * doc/standards.texi (Standards): Update reference to
37739         Objective-C 2.0.
37740
37741 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37742
37743         * doc/extend.texi (Named Address Spaces): sourceware.org now
37744         defaults to https.
37745         * doc/install.texi (Binaries): Ditto.
37746         (Specific): Ditto.
37747
37748 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37749
37750         * doc/cpp.texi: Replace "stringify"/"stringification" with C
37751         standard terminology "stringize"/"stringizing" throughout.
37752         * doc/cppinternals.texi: Likewise.
37753
37754 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37755
37756         * doc/extend.texi: Fix some spelling mistakes and typos.
37757         * doc/invoke.texi: Likewise.
37758
37759 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37760
37761         PR ipa/79224
37762         * params.def (inline-min-speedup) Change from 10 to 8.
37763
37764 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37765
37766         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
37767         4.5.
37768
37769 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37770
37771         PR ipa/79224
37772         * ipa-inline-analysis.c (get_minimal_bb): New function.
37773         (record_modified): Use it.
37774         (remap_edge_change_prob): Handle also ancestor functions.
37775
37776 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
37777
37778         * doc/contrib.texi (Contributors): Remove broken link into
37779         the Mauve CVS repository.
37780
37781 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37782
37783         PR middle-end/79454
37784         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
37785         result computation whenever lhs doesn't have vector mode, not
37786         just when it has BLKmode.
37787
37788 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37789
37790         * doc/makefile.texi (profiledbootstrap): Refer to the
37791         installation instructions only in textual form.
37792
37793 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37794
37795         PR target/79295
37796         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
37797
37798 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37799
37800         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
37801         (Specific): Update mingw-w64 reference.
37802         (Binaries): Ditto.
37803         (Specific): Remove broken link to Renesas RX processor.
37804
37805 2017-02-10  Richard Biener  <rguenther@suse.de>
37806
37807         * toplev.c (process_options): Do not mention obsolete graphite
37808         options when printing sorry message about missing graphite support.
37809         Mention -floop-nest-optimize.
37810
37811 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
37812
37813         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
37814         (vtst_p16): Likewise.
37815         (vtstq_p8): Likewise.
37816         (vtstq_p16): Likewise.
37817         (vtst_p64): New.
37818         (vtstq_p64): Likewise.
37819         * config/arm/arm_neon.h (vgetq_lane_p64): New.
37820         (vset_lane_p64): New.
37821         (vsetq_lane_p64): New.
37822
37823 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
37824
37825         PR tree-optimization/79411
37826         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
37827         stmt operands are SSA_NAMEs used in abnormal phis.
37828         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
37829         phis.
37830
37831 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37832
37833         PR ipa/70795
37834         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
37835         flag if needed.
37836
37837 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37838
37839         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
37840
37841 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
37842
37843         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
37844         to avoid warning.
37845
37846         PR c/79413
37847         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
37848         not arbitrary TREE_CONSTANT.
37849
37850         PR c/79431
37851         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
37852         "omp declare target link" attribute unless is_global_var.
37853         * omp-offload.c (find_link_var_op): Likewise.
37854
37855 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
37856             Chung-Lin Tang  <cltang@codesourcery.com>
37857
37858         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
37859         OMP_CLAUSE_TILE.
37860         (gimplify_adjust_omp_clauses): Don't delete TILE.
37861         (gimplify_omp_for): Deal with TILE.
37862         * internal-fn.c (expand_GOACC_TILE): New function.
37863         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
37864         (GOACC_TILE): New.
37865         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
37866         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
37867         element fields.
37868         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
37869         avoid DIV for outermost collapse var.
37870         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
37871         Remove out of date comments, fix whitespace.
37872         * omp-general.c (omp_extract_for_data): Deal with tiling.
37873         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
37874         adjust OLF_DIM_BASE value.
37875         (struct omp_for_data): Add tiling field.
37876         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
37877         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
37878         for auto loops.  Remove default auto determining, moved to
37879         oacc_loop_fixed_partitions.
37880         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
37881         stmts, add e_mask field.
37882         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
37883         (oacc_thread_numbers): Use oacc_dim_call.
37884         (oacc_xform_tile): New.
37885         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
37886         (finish_oacc_loop): Adjust for ifns vector.
37887         (oacc_loop_discover_walk): Append loop abstraction sites to list,
37888         add case for GOACC_TILE fns.
37889         (oacc_loop_xform_loop): Delete.
37890         (oacc_loop_process): Iterate over call list directly, and add
37891         handling for GOACC_TILE fns.
37892         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
37893         dump partitioning.
37894         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
37895         vector partitioning to outer loops.  Assign 2 partitions to loops
37896         when available. Add TILE handling.
37897         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
37898         (execite_oacc_device_lower): Process GOACC_TILE fns,
37899         ignore unknown specs.
37900         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
37901         * tree.c (omp_clause_num_ops): Adjust TILE ops.
37902         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
37903
37904 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
37905
37906         * configure.ac (ACX_BUGURL): Update.
37907         * configure: Regenerate.
37908
37909 2017-02-09  Richard Biener  <rguenther@suse.de>
37910
37911         PR tree-optimization/69823
37912         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
37913         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
37914
37915 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37916
37917         * config/arc/arc-c.def: Add __NPS400__ definition.
37918         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
37919         (TARGET_NPS400): Define.
37920
37921 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37922
37923         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
37924         file.
37925         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
37926         pointer, arch_info.
37927         (arc_cpu_types): Fill the arch_info field with a pointer into the
37928         arc_arch_types table.
37929         (arc_selected_cpu): Declare.
37930         * config/arc/arc.c (arc_selected_cpu): Make global.
37931         (arc_selected_arch): Delete.
37932         (arc_base_cpu): Delete.
37933         (arc_override_options): Remove references to deleted variables,
37934         update access to arch information.
37935         (ARC_OPT): Update access to arch information.
37936         (ARC_OPTX): Likewise.
37937         * config/arc/arc.h (arc_base_cpu): Remove declaration.
37938         (TARGET_ARC600): Update access to arch information.
37939         (TARGET_ARC601): Likewise.
37940         (TARGET_ARC700): Likewise.
37941         (TARGET_EM): Likewise.
37942         (TARGET_HS): Likewise.
37943         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
37944         information.
37945
37946 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
37947
37948         PR target/78604
37949         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
37950         condition/operands for integer GE/LE/GEU/LEU operations.
37951
37952 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
37953
37954         PR translation/79397
37955         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
37956         of AltiVec.
37957
37958 2017-02-08  Martin Jambor  <mjambor@suse.cz>
37959
37960         PR ipa/79375
37961         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
37962         whether allocation happened.
37963         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
37964         nothing was allocated.
37965
37966 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
37967
37968         PR tree-optimization/79408
37969         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
37970         constant, but SSA_NAME with a known integer range, use the minimum
37971         of that range instead of op1 to determine if modulo can be replaced
37972         with its first operand.
37973
37974 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37975
37976         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
37977
37978 2017-02-08  Richard Biener  <rguenther@suse.de>
37979
37980         PR tree-optimization/71824
37981         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
37982         Check all loops contained in the merged region.
37983
37984 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37985
37986         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
37987
37988 2017-02-07  Andrew Pinski  <apinski@cavium.com>
37989
37990         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
37991         (thunderxt88): Likewise.
37992         (thunderxt81): Disable LSE and change v8.1 to v8.
37993         (thunderxt83): Likewise.
37994
37995 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
37996             Richard Biener  <rguenther@suse.de>
37997
37998         PR middle-end/79399
37999         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
38000         type from int to size_t.
38001         * ira-costs.c (struct_costs_size): Change type from int to size_t.
38002
38003 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
38004
38005         PR rtl-optimization/79386
38006         * cprop.c (bypass_conditional_jumps): Initialize
38007         bypass_last_basic_block already before splitting bbs after
38008         unconditional traps...
38009         (bypass_conditional_jumps): ... rather than here.
38010
38011         PR target/79299
38012         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
38013         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
38014         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
38015         fix -masm=intel patterns.
38016
38017 2017-02-07  Richard Biener  <rguenther@suse.de>
38018
38019         PR tree-optimization/79256
38020         PR middle-end/79278
38021         * builtins.c (get_object_alignment_2): Use min_align_of_type
38022         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
38023         and ADJUST_FIELD_ALIGN.
38024
38025         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
38026         type parameter.
38027         * doc/tm.texi: Regenerate.
38028         * stor-layout.c (layout_decl): Adjust.
38029         (update_alignment_for_field): Likewise.
38030         (place_field): Likewise.
38031         (min_align_of_type): Likewise.
38032         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
38033         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
38034         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
38035         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
38036         * config/frv/frv.c (frv_adjust_field_align): Likewise.
38037         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
38038         * config/i386/i386.c (x86_field_alignment): Likewise.
38039         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
38040         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
38041         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
38042         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
38043         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
38044         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
38045          Likewise.
38046
38047         Revert
38048         2017-01-30  Richard Biener  <rguenther@suse.de>
38049
38050         PR tree-optimization/79256
38051         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38052         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38053         alignment on TYPE.
38054
38055 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
38056
38057         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
38058         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
38059         builtins to SImode and emit a zero-extend, if necessary.
38060
38061 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38062
38063         * docs/invoke.texi (RISC-V Options): Alphabetize.
38064
38065 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38066
38067         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
38068         options.
38069
38070 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38071
38072         * config/riscv/riscv.c: New file.
38073         * common/config/riscv/riscv-common.c: Likewise.
38074         * config.gcc: Likewise.
38075         * config/riscv/constraints.md: Likewise.
38076         * config/riscv/elf.h: Likewise.
38077         * config/riscv/generic.md: Likewise.
38078         * config/riscv/linux.h: Likewise.
38079         * config/riscv/multilib-generator: Likewise.
38080         * config/riscv/peephole.md: Likewise.
38081         * config/riscv/pic.md: Likewise.
38082         * config/riscv/predicates.md: Likewise.
38083         * config/riscv/riscv-builtins.c: Likewise.
38084         * config/riscv/riscv-c.c: Likewise.
38085         * config/riscv/riscv-ftypes.def: Likewise.
38086         * config/riscv/riscv-modes.def: Likewise.
38087         * config/riscv/riscv-opts.h: Likewise.
38088         * config/riscv/riscv-protos.h: Likewise.
38089         * config/riscv/riscv.h: Likewise.
38090         * config/riscv/riscv.md: Likewise.
38091         * config/riscv/riscv.opt: Likewise.
38092         * config/riscv/sync.md: Likewise.
38093         * config/riscv/t-elf-multilib: Likewise.
38094         * config/riscv/t-linux: Likewise.
38095         * config/riscv/t-linux-multilib: Likewise.
38096         * config/riscv/t-riscv: Likewise.
38097         * configure.ac: Likewise.
38098         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
38099         Waterman as RISC-V maintainers.
38100         * doc/install.texi: Add RISC-V entries.
38101         * doc/invoke.texi: Add RISC-V options section.
38102         * doc/md.texi: Add RISC-V constraints section.
38103         * configure: Regenerated.
38104
38105 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
38106
38107         PR target/66144
38108         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
38109         false values to be constant vectors with all 0 or all 1 bits set.
38110         (vcondu<mode><mode>): Likewise.
38111         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
38112         predicate.
38113         (fpmask_comparison_operator): Update comment.
38114         (vecint_comparison_operator): New predicate.
38115         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
38116         vector conditionals when the true and false values are constant
38117         vectors with all 0 bits or all 1 bits set.
38118
38119 2017-02-06  Martin Sebor  <msebor@redhat.com>
38120
38121         PR  tree-optimization/79376
38122         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
38123
38124 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
38125
38126         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
38127         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
38128         to simplify split condition.
38129
38130 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38131
38132         * omp-expand.c (oxpand_omp_atomic_fetch_op,
38133         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
38134         false.
38135
38136 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
38137
38138         PR rtl-optimization/68664
38139         * target.def (can_speculate_insn): New hook.
38140         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
38141         * doc/tm.texi: Regenerate.
38142         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
38143         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
38144         (rs6000_sched_can_speculate_insn): New function.
38145
38146 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38147
38148         PR tree-optimization/79284
38149         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
38150         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
38151         vectorizable_mask_load_store, vectorizable_operation,
38152         vect_is_simple_cond, get_same_sized_vectype): Use it instead
38153         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
38154         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
38155         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
38156         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
38157         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
38158         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
38159         is_gimple_assign (stmt).  Replace another such test with
38160         is_gimple_assign (stmt).
38161
38162 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38163
38164         PR target/78883
38165         * config/avr/avr.c (rtl-iter.h): Include it.
38166         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
38167         (avr_legitimate_combined_insn): ...and implementation.
38168
38169 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38170
38171         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
38172         * config/s390/s390.c (s390_const_operand_ok)
38173         (s390_canonicalize_comparison, s390_extract_part)
38174         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
38175         (s390_contiguous_bitmask_p, s390_rtx_costs)
38176         (legitimize_pic_address): Likewise.
38177         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
38178         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
38179         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
38180         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
38181         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
38182
38183 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38184
38185         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
38186         REGNO($0) == REGNO($1).
38187
38188 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38189
38190         * config/s390/linux.h(SIZE_TYPE): Add comment.
38191
38192 2017-02-06  Julian Brown  <julian@codesourcery.com>
38193             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38194             Virendra Pathak  <virendra.pathak@broadcom.com>
38195
38196         * config/aarch64/aarch64-cores.def: Change the scheduler
38197         to Thunderx2t99.
38198         * config/aarch64/aarch64.md: Include thunderx2t99.md.
38199         * config/aarch64/thunderx2t99.md: New file.
38200
38201 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38202
38203         * doc/standards.texi (Go Language): Update link to language
38204         standard.
38205
38206 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38207
38208         * tree-eh.c (lower_resx): Sanitize profile.
38209         (cleanup_empty_eh_move_lp): Likewise.
38210
38211 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38212
38213         PR tree-ssa/79347
38214         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
38215         ELSE_PROB.
38216         * cfgloopmanip.h (loop_version): Update prototype.
38217         * modulo-sched.c (sms_schedule): Update call of loop_version.
38218         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
38219         * tree-parloops.c (gen_parallel_loop): Likewise.
38220         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
38221         * tree-ssa-loop-split.c (split_loop): Likewise.
38222         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
38223         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
38224
38225 2017-02-05  Martin Liska  <mliska@suse.cz>
38226
38227         PR bootstrap/78985
38228         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
38229         variable to NULL.
38230         (print_operand_address): Initialize a struct to zero.
38231
38232 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38233
38234         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
38235         garbage collector only in textual form.
38236
38237 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38238
38239         * doc/extend.texi (x86 specific memory model extensions for
38240         transactional memory): Simplify a phrase.
38241
38242 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
38243
38244         PR target/79353
38245         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
38246         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
38247         (atomic_storedi_1): Likewise.
38248
38249 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
38250
38251         PR tree-optimization/79338
38252         * tree-parloops.c (gather_scalar_reductions): Don't call
38253         vect_analyze_loop_form for loop->inner before destroying loop's
38254         loop_vinfo.
38255
38256 2017-02-03  Martin Sebor  <msebor@redhat.com>
38257
38258         PR tree-optimization/79327
38259         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
38260         when precision has resulted in leading zeros.
38261         (format_integer): Adjust the likely counter to assume an unknown
38262         argument that may be zero is non-zero.
38263
38264 2017-02-03  Jason Merrill  <jason@redhat.com>
38265
38266         PR c++/78689
38267         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
38268         avoid copying non-taken branch.
38269
38270 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38271
38272         PR tree-optimization/79340
38273         * tree-vect-loop.c (vectorizable_reduction): Release
38274         vec_defs elements after safe_splicing them into other vectors.
38275         Formatting fixes.
38276
38277         PR tree-optimization/79327
38278         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
38279         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
38280         dirtype.
38281         (format_integer): Use wide_int_to_tree instead of build_int_cst
38282         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
38283         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
38284         of shortest and longest sequence.
38285
38286 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
38287
38288         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
38289         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
38290
38291 2017-02-03  Walter Lee  <walt@tilera.com>
38292
38293         PR target/78862
38294         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
38295         after initial stackframe link reg save.
38296         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
38297
38298 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38299
38300         PR target/79354
38301         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
38302         wu for stxssp alternative.
38303
38304 2017-02-03  Martin Sebor  <msebor@redhat.com>
38305
38306         PR tree-optimization/79352
38307         * gimple-fold.c (get_range_strlen): Add argument.
38308         (get_range_strlen): Change return type to bool.
38309         (get_maxval_strlen): Pass in a dummy argument.
38310         * gimple-fold.h (get_range_strlen): Change return type to bool.
38311         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
38312         * tree.h (array_at_struct_end_p): Add argument.
38313         * tree.c (array_at_struct_end_p): Handle it.
38314
38315 2017-02-03  Martin Liska  <mliska@suse.cz>
38316
38317         PR lto/66295
38318         * multiple_target.c (create_dispatcher_calls): Redirect edge
38319         from a caller of a dispatcher.
38320         (expand_target_clones): Make the clones local.
38321         (ipa_target_clone): Do both target clones and resolvers.
38322         (ipa_dispatcher_calls): Remove the pass.
38323         (pass_dispatcher_calls::gate): Likewise.
38324         (make_pass_dispatcher_calls): Likewise.
38325         * passes.def (pass_target_clone): Put as very first IPA early
38326         pass.
38327
38328 2017-02-03  Martin Liska  <mliska@suse.cz>
38329
38330         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
38331         in case of a function with ifunc attribute.
38332
38333 2017-02-03  Martin Liska  <mliska@suse.cz>
38334
38335         * cgraph.c (cgraph_node::dump): Dump function version info.
38336         * symtab.c (symtab_node::dump_base): Add missing new line.
38337
38338 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38339
38340         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
38341         (ifcombine_ifandif): Use it.
38342
38343 2017-02-03  Martin Liska  <mliska@suse.cz>
38344
38345         * doc/invoke.texi: Document default value for
38346         use-after-scope-direct-emission-threshold.
38347
38348 2017-02-03  Martin Liska  <mliska@suse.cz>
38349
38350         PR tree-optimization/79339
38351         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
38352         (format_floating): Likewise.
38353
38354 2017-02-03  Martin Liska  <mliska@suse.cz>
38355
38356         PR ipa/79337
38357         * ipa-prop.c (ipa_node_params_t::insert): Remove current
38358         implementation.
38359         (ipa_node_params_t::remove): Likewise.
38360         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
38361         initialization from removed ipa_node_params_t::insert.
38362         (ipa_node_params::~ipa_node_params): Move from removed
38363         ipa_node_params_t::release.
38364         * symbol-summary.h (symbol_summary::m_released): New member.
38365         Do not release a summary twice.  Do not allow to call finalizer
38366         for types of a summary that live in GGC memory.
38367
38368 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38369
38370         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
38371         cmp_branch fusion.
38372
38373 2017-02-02  Martin Sebor  <msebor@redhat.com>
38374
38375         PR middle-end/79275
38376         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
38377         (format_string): Tighten up the range of output for non-constant
38378         strings and correct the expected range for wide non-constant strings.
38379
38380 2017-02-02  Martin Sebor  <msebor@redhat.com>
38381
38382         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
38383
38384         PR middle-end/32003
38385         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
38386         index.
38387         (-fdump-tree-@var): Add to index and document how to come up
38388         with pass-specific option and dump file names.
38389         (-fdump-passes): Clarify where to look for output.
38390
38391 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38392
38393         PR middle-end/77445
38394         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
38395         statistics of the analyzed path; allow threading for speed when
38396         any of BBs along the path are optimized for speed.
38397
38398 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
38399
38400         PR middle-end/78468
38401         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
38402         settings of the virtual registers.
38403
38404         Revert again
38405         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38406
38407         * explow.c (get_dynamic_stack_size): Take known alignment of stack
38408         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
38409         needed.
38410
38411 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38412
38413         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
38414         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
38415
38416 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38417
38418         * config/s390/s390.md: Add missing comments with the expanded
38419         mnemonics.
38420         * config/s390/vector.md: Likewise.
38421         * config/s390/vx-builtins.md: Likewise.
38422
38423 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
38424
38425         PR target/79197
38426         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
38427         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
38428         conditions on a single line.
38429
38430 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38431
38432         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38433         __S390_VX__ to __VX__.
38434
38435 2017-02-01  Andrew Pinski  <apinski@cavium.com>
38436
38437         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
38438         stmt_info to record_stmt_cost.
38439         (vect_get_known_peeling_cost): Pass stmt_info if known to
38440         record_stmt_cost.
38441         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
38442         cpu_vector_cost field into
38443         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
38444         field into vec_int_stmt_cost and vec_fp_stmt_cost.
38445         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
38446         splitting of scalar_stmt_cost and vec_stmt_cost.
38447         (thunderx_vector_cost): Likewise.
38448         (cortexa57_vector_cost): LIkewise.
38449         (exynosm1_vector_cost): Likewise.
38450         (xgene1_vector_cost): Likewise.
38451         (thunderx2t99_vector_cost): Improve after the splitting of the two
38452         fields.
38453         (aarch64_builtin_vectorization_cost): Update for the splitting of
38454         scalar_stmt_cost and vec_stmt_cost.
38455
38456 2017-02-01  Torvald Riegel  <triegel@redhat.com>
38457             Richard Henderson  <rth@redhat.com>
38458
38459         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
38460         conditional on existance of a fast atomic load.
38461         * optabs-query.c (can_atomic_load_p): New function.
38462         * optabs-query.h (can_atomic_load_p): Declare it.
38463         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
38464         no fast atomic load is available for the particular size of access.
38465         (expand_atomic_compare_and_swap): Likewise.
38466         (expand_atomic_load): Likewise.
38467         (expand_atomic_store): Likewise.
38468         (expand_atomic_fetch_op): Likewise.
38469         * testsuite/lib/target-supports.exp
38470         (check_effective_target_sync_int_128): Remove x86 because it provides
38471         no fast atomic load.
38472         (check_effective_target_sync_int_128_runtime): Likewise.
38473
38474 2017-02-01  Richard Biener  <rguenther@suse.de>
38475
38476         * graphite.c: Include tree-vectorizer.h for find_loop_location.
38477         (graphite_transform_loops): Provide opt-info for optimized nests.
38478         * tree-parloop.c (parallelize_loops): Provide opt-info for
38479         parallelized loops.
38480
38481 2017-02-01  Richard Biener  <rguenther@suse.de>
38482
38483         PR middle-end/79315
38484         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
38485         was not set before.
38486
38487 2017-02-01  Richard Biener  <rguenther@suse.de>
38488
38489         PR tree-optimization/71824
38490         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38491         Verify the loops are valid in the merged SESE region.
38492         (scop_detection::can_represent_loop_1): Check analyzing the
38493         evolution of the number of iterations in the region succeeds.
38494
38495 2017-01-31  Ian Lance Taylor  <iant@golang.org>
38496
38497         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
38498         REG_ARGS_SIZE note to 32-bit push insns and call insn.
38499
38500 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
38501
38502         PR preprocessor/79210
38503         * input.c (get_substring_ranges_for_loc): Replace line_width
38504         assertion with error-handling.
38505
38506 2017-01-31  Richard Biener  <rguenther@suse.de>
38507
38508         PR tree-optimization/77318
38509         * graphite-sese-to-poly.c (extract_affine): Fix assert.
38510         (create_pw_aff_from_tree): Take loop parameter.
38511         (add_condition_to_pbb): Pass loop of the condition to
38512         create_pw_aff_from_tree.
38513
38514 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38515
38516         * config/s390/s390.c (s390_asan_shadow_offset): New function.
38517         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
38518
38519 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
38520
38521         PR target/78597
38522         PR target/79038
38523         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
38524         no longer used.
38525         (convert_int_to_float128): Likewise.
38526         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
38527         (convert_int_to_float128): Likewise.
38528         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
38529         (UNSPEC_IEEE128_CONVERT): Likewise.
38530         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
38531         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
38532         Use local variables for IBM extended format.
38533         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
38534         (fix_trunc<mode>si2_fprs): Likewise.
38535         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
38536         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
38537         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
38538         to know that we can now have integers of all sizes in vector
38539         registers.
38540         (fix<uns>_<mode>di2_hw): Likewise.
38541         (float<uns>_<mode>si2_hw): Likewise.
38542         (fix_<mode>si2_hw): Likewise.
38543         (fixuns_<mode>si2_hw): Likewise.
38544         (float<uns>_<mode>di2_hw): Likewise.
38545         (float_<mode>di2_hw): Likewise.
38546         (float_<mode>si2_hw): Likewise.
38547         (floatuns_<mode>di2_hw): Likewise.
38548         (floatuns_<mode>si2_hw): Likewise.
38549         (xscvqp<su>wz_<mode>): Delete, no longer used.
38550         (xscvqp<su>dz_<mode>): Likewise.
38551         (xscv<su>dqp_<mode>): Likewise.
38552         (ieee128_mfvsrd_64bit): Likewise.
38553         (ieee128_mfvsrd_32bit): Likewise.
38554         (ieee128_mfvsrwz): Likewise.
38555         (ieee128_mtvsrw): Likewise.
38556         (ieee128_mtvsrd_64bit): Likewise.
38557         (ieee128_mtvsrd_32bit): Likewise.
38558
38559 2017-01-31  Martin Liska  <mliska@suse.cz>
38560
38561         PR ipa/79285
38562         * ipa-prop.c (ipa_free_all_node_params): Call release method
38563         instead of ~sumbol_summary to not to trigger double times
38564         dtor of hash_map.
38565
38566 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
38567
38568         PR tree-optimization/71691
38569         * bitmap.h (class auto_bitmap): New.
38570         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
38571         is_maybe_undefined instead of ssa_undefined_value_p.
38572
38573 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38574
38575         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38576         __S390_ARCH_LEVEL__ to __ARCH__.
38577
38578 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38579
38580         PR tree-optimization/79267
38581         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
38582         if should_remove_lhs_p is true.
38583
38584 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
38585
38586         PR debug/63238
38587         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
38588         (add_alignment_attribute): New.
38589         (base_type_die): Add alignment attribute.
38590         (subrange_type_die): Likewise.
38591         (modified_type_die): Likewise.
38592         (gen_array_type_die): Likewise.
38593         (gen_descr_array_type_die: Likewise.
38594         (gen_enumeration_type_die): Likewise.
38595         (gen_subprogram_die): Likewise.
38596         (gen_variable_die): Likewise.
38597         (gen_field_die): Likewise.
38598         (gen_ptr_to_mbr_type_die): Likewise.
38599         (gen_struct_or_union_type_die): Likewise.
38600         (gen_subroutine_type_die): Likewise.
38601         (gen_typedef_die): Likewise.
38602         (base_type_cmp): Compare alignment attribute.
38603
38604 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38605
38606         PR target/79170
38607         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
38608         (setb_unsigned) New pattern for setb with CCUNS.
38609         * config/rs6000/rs6000.c (expand_block_compare): Use a different
38610         subfc./subfe sequence to avoid overflow problems.  Generate a
38611         shorter sequence with cmpld/setb for power9.
38612         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
38613         for generating subfc. instruction.
38614         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
38615         now uses this instruction.
38616
38617 2017-01-30  Ian Lance Taylor  <iant@google.com>
38618
38619         PR debug/79289
38620         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
38621         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
38622
38623 2017-01-30  Martin Sebor  <msebor@redhat.com>
38624
38625         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
38626         Move constant to the right of a relational operator.
38627         (get_mpfr_format_length, format_character, format_string): Ditto.
38628         (should_warn_p, maybe_warn): Same.
38629
38630         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
38631
38632 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
38633
38634         PR lto/79061
38635         * asan.c (get_translation_unit_decl): Remove function.
38636         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
38637
38638 2017-01-30  Martin Liska  <mliska@suse.cz>
38639
38640         PR gcov-profile/79259
38641         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
38642         -fprofile-generate.
38643
38644 2017-01-30  Martin Liska  <mliska@suse.cz>
38645
38646         PR bootstrap/78985
38647         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
38648         Initialize variables with NULL value.
38649
38650 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
38651
38652         PR target/79260
38653         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
38654         tm_p_file.
38655         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
38656
38657 2017-01-30  Richard Biener  <rguenther@suse.de>
38658
38659         PR tree-optimization/79276
38660         * tree-vrp.c (process_assert_insertions): Properly adjust common
38661         when removing a duplicate.
38662
38663 2017-01-30  Richard Biener  <rguenther@suse.de>
38664
38665         PR tree-optimization/79256
38666         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38667         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38668         alignment on TYPE.
38669         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
38670
38671 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38672
38673         PR target/79240
38674         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
38675         ("*r<noxa>sbg_<mode>_sll_bitmask")
38676         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
38677         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
38678         Use contiguous_bitmask_nowrap_operand.
38679
38680 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38681
38682         PR target/79268
38683         * config/rs6000/altivec.h (vec_xl): Revise #define.
38684         (vec_xst): Likewise.
38685
38686 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
38687
38688         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
38689
38690 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
38691
38692         PR rtl-optimization/79194
38693         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
38694         traps before call to bypass_conditional_jumps.
38695
38696 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38697
38698         PR tree-optimization/71374
38699         * lra-constraints.c (check_conflict_input_operands): New.
38700         (match_reload): Use it.
38701
38702 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38703
38704         PR target/79131
38705         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
38706         account to calculate conflict_set.
38707
38708 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
38709
38710         PR rtl-optimization/78559
38711         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
38712         other_insn in combine.
38713
38714 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
38715
38716         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
38717         uint16_type_node for BT_UINT16.
38718
38719 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
38720
38721         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
38722         "RTL Tests" to menu.
38723         (GIMPLE Tests): New node.
38724         (RTL Tests): New node.
38725
38726 2017-01-27  Richard Biener  <rguenther@suse.de>
38727
38728         PR tree-optimization/79245
38729         * tree-loop-distribution.c (distribute_loop): Apply cost
38730         modeling also to detected patterns.
38731
38732 2017-01-27  Richard Biener  <rguenther@suse.de>
38733
38734         PR tree-optimization/71433
38735         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
38736         (compare_assert_loc): New function.
38737         (process_assert_insertions): Sort and optimize assert locations
38738         to remove duplicates and push down identical assertions on
38739         edges to their destination block.
38740
38741 2017-01-27  Richard Biener  <rguenther@suse.de>
38742
38743         PR tree-optimization/79244
38744         * tree-vrp.c (remove_range_assertions): Forcefully propagate
38745         out SSA names even if abnormal.
38746
38747 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
38748
38749         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
38750         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
38751         instead of MPFR_RNDN.
38752
38753 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
38754
38755         PR target/79239
38756         * arm.c (arm_option_override): Don't call build_target_option_node
38757         until after doing all option overrides.
38758         (arm_valid_target_attribute_tree): Likewise.
38759
38760 2017-01-27  Martin Liska  <mliska@suse.cz>
38761
38762         * doc/invoke.texi (-fprofile-arcs): Document profiling support
38763         for {cd}tors and C++ {cd}tors.
38764
38765 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38766
38767         * config/s390/s390.md ("*setmem_long_and")
38768         ("*setmem_long_and_31z"): Use zero_extend instead of and.
38769
38770 2017-01-26  Martin Sebor  <msebor@redhat.com>
38771
38772         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
38773         of precision.
38774
38775 2017-01-26  Martin Sebor  <msebor@redhat.com>
38776
38777         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
38778         HAVE_DFmode before using XFmode or DFmode.
38779         (parse_directive): Avoid using the z length modifier to avoid
38780         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
38781
38782         PR middle-end/78703
38783         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
38784         to accept adjustment as an array.
38785         (get_int_range): New function.
38786         (struct directive): Make width and prec arrays.
38787         (directive::set_width, directive::set_precision): Call get_int_range.
38788         (format_integer, format_floating): Handle width and precision ranges.
38789         (format_string, parse_directive): Same.
38790
38791 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38792
38793         PR debug/79129
38794         * dwarf2out.c (generate_skeleton_bottom_up): For children with
38795         comdat_type_p set, just clone them, but keep the children in the
38796         original DIE.
38797
38798         PR debug/78835
38799         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
38800         which have direct callers with -fvar-tracking-assignments enabled
38801         in the current TU.
38802         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
38803         inside of type units.
38804
38805 2017-01-26  Martin Sebor  <msebor@redhat.com>
38806
38807         PR middle-end/78703
38808         * gimple-ssa-sprintf.c (struct result_range): Add likely and
38809         unlikely counters.
38810         (struct format_result): Replace number_chars, number_chars_min,
38811         and number_chars_max with a single member of struct result_range.
38812         Remove bounded.
38813         (format_result::operator+=): Adjust.
38814         (struct fmtresult): Remove bounded.  Handle likely and unlikely
38815         counters.
38816         (fmtresult::adjust_for_width_or_precision): New function.
38817         (fmtresult:type_max_digits): New function.
38818         (bytes_remaining): Handle likely and unlikely counters.
38819         (min_bytes_remaining): Remove.
38820         (format_percent): Simplify.
38821         (format_integer, format_floating): Set likely and unlikely counters.
38822         (get_string_length, format_character, format_string): Same.
38823         (format_plain, should_warn_p): New function.
38824         (maybe_warn): Call should_warn_p.  Update diagnostic messages
38825         and handle those for all directives, including plain strings.
38826         (format_directive): Handle likely and unlikely counters.
38827         Remove unnecessary quoting from diagnostics.  Add an informational
38828         note.
38829         (add_bytes): Remove.
38830         (pass_sprintf_length::compute_format_length): Simplify.
38831         (try_substitute_return_value): Handle likely and unlikely counters.
38832
38833 2017-01-26  Carl Love  <cel@us.ibm.com>
38834
38835         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
38836         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
38837
38838 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
38839
38840         PR target/79131
38841         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
38842         endianess for subregs into account.
38843         * lra-constraints.c (lra_constraints): Do risky transformations
38844         always on the first iteration.
38845         * lra-lives.c (check_pseudos_live_through_calls): Add arg
38846         last_call_used_reg_set.
38847         (process_bb_lives): Define and use last_call_used_reg_set.
38848         * lra.c (lra): Always continue after lra_constraints on the first
38849         iteration.
38850
38851 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
38852
38853         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
38854         constant.
38855         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
38856
38857 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38858
38859         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
38860         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
38861         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
38862         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
38863         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
38864         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
38865         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
38866         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
38867         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
38868
38869 2017-01-26  Marek Polacek  <polacek@redhat.com>
38870
38871         PR c/79199
38872         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
38873         for the third operand.
38874
38875 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38876
38877         PR middle-end/79236
38878         * omp-low.c (struct omp_context): Add simt_stmt field.
38879         (scan_omp_for): Return omp_context *.
38880         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
38881         context to the _simt_ SIMD stmt.
38882         (lower_omp_for): For combined SIMD with sibling _simt_
38883         SIMD, make sure to use the same decls in _looptemp_
38884         clauses as in the sibling.
38885
38886 2017-01-26  David Sherwood  <david.sherwood@arm.com>
38887
38888         PR middle-end/79212
38889         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
38890         all contexts.
38891
38892 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38893
38894         PR target/70465
38895         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
38896         emit fld b; fld a; if possible.
38897
38898         * brig-builtins.def: Update copyright years.
38899         * config/arm/arm_acle_builtins.def: Update copyright years.
38900
38901 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
38902
38903         PR target/79179
38904         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
38905         constraint instead of o for the stxsd instruction.
38906
38907 2017-01-25  Carl Love  <cel@us.ibm.com>
38908
38909         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
38910         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
38911
38912 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
38913
38914         * doc/invoke.texi (C++ Dialect Options): Fix typo.
38915
38916 2017-01-25  Richard Biener  <rguenther@suse.de>
38917
38918         PR tree-optimization/69264
38919         * target.def (vector_alignment_reachable): Improve documentation.
38920         * doc/tm.texi: Regenerate.
38921         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
38922         and add a comment.
38923         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
38924         earlier changes with respect to TYPE_USER_ALIGN.
38925         (vector_alignment_reachable_p): Likewise.  Improve dumping.
38926
38927 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38928
38929         PR target/79145
38930         * config/arm/arm.md (xordi3): Force constant operand into a register
38931         for TARGET_IWMMXT.
38932
38933 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38934
38935         * doc/invoke.texi (-fstore-merging): Correct default optimization
38936         levels at which it is enabled.
38937         (-O): Move -fstore-merging from list to...
38938         (-O2): ... Here.
38939
38940 2017-01-25  Richard Biener  <rguenther@suse.de>
38941
38942         PR debug/78363
38943         * omp-expand.c: Include debug.h.
38944         (expand_omp_taskreg): Make sure to generate early debug before
38945         outlining anything from a function.
38946         (expand_omp_target): Likewise.
38947         (grid_expand_target_grid_body): Likewise.
38948
38949 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
38950
38951         PR lto/79061
38952         * asan.c (get_translation_unit_decl): New function.
38953         (asan_add_global): Extract modules file name from globals
38954         TRANSLATION_UNIT_DECL name.
38955
38956 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
38957
38958         PR target/77439
38959         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
38960         for long calls with APCS frame and VFP.
38961
38962 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
38963
38964         * cfg.c (original_copy_tables_initialized_p): New function.
38965         * cfg.h (original_copy_tables_initialized_p): New decl.
38966         * cfgrtl.c (relink_block_chain): Guard the call to
38967         free_original_copy_tables with a call to
38968         original_copy_tables_initialized_p.
38969         * cgraph.h (symtab_node::native_rtl_p): New decl.
38970         * cgraphunit.c (symtab_node::native_rtl_p): New function.
38971         (symtab_node::needed_p): Don't assert for early assembly output
38972         for __RTL functions.
38973         (cgraph_node::finalize_function): Set "force_output" for __RTL
38974         functions.
38975         (cgraph_node::analyze): Bail out early for __RTL functions.
38976         (analyze_functions): Update assertion to support __RTL functions.
38977         (cgraph_node::expand): Bail out early for __RTL functions.
38978         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
38979         __RTL functions.
38980         * function.h (struct function): Update comment for field
38981         "pass_startwith".
38982         * gimple-expr.c: Include "tree-pass.h".
38983         (gimple_has_body_p): Return false for __RTL functions.
38984         * Makefile.in (OBJS): Add run-rtl-passes.o.
38985         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
38986         accessor.
38987         (gcc::pass_manager::get_clean_slate): New accessor.
38988         * passes.c: Include "insn-addr.h".
38989         (should_skip_pass_p): Add logging.  Update logic for running
38990         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
38991         property-provider override so it is only done for gimple passes.
38992         Don't skip dfinit.
38993         (skip_pass): New function.
38994         (execute_one_pass): Call skip_pass when skipping passes.
38995         * read-md.c (md_reader::read_char): Support filtering
38996         the input to a subset of line numbers.
38997         (md_reader::md_reader): Initialize fields
38998         m_first_line and m_last_line.
38999         (md_reader::read_file_fragment): New function.
39000         * read-md.h (md_reader::read_file_fragment): New decl.
39001         (md_reader::m_first_line): New field.
39002         (md_reader::m_last_line): New field.
39003         * read-rtl-function.c (function_reader::create_function): Only
39004         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
39005         curr_properties.  Set DECL_INITIAL to a dummy block.
39006         (read_rtl_function_body_from_file_range): New function.
39007         * read-rtl-function.h (read_rtl_function_body_from_file_range):
39008         New decl.
39009         * run-rtl-passes.c: New file.
39010         * run-rtl-passes.h: New file.
39011
39012 2017-01-24  Jeff Law  <law@redhat.com>
39013
39014         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
39015         buffer size.
39016
39017 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
39018
39019         PR tree-optimization/79159
39020         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
39021         (record_nonwrapping_iv): Improve boundary using above function if no
39022         value range information.
39023
39024 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
39025             Martin Jambor  <mjambor@suse.cz>
39026
39027         * brig-builtins.def: New file.
39028         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
39029         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
39030         (DEF_HSAIL_SAT_BUILTIN): Likewise.
39031         (DEF_HSAIL_INTR_BUILTIN): Likewise.
39032         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
39033         * builtin-types.def (BT_INT8): New.
39034         (BT_INT16): Likewise.
39035         (BT_UINT8): Likewise.
39036         (BT_UINT16): Likewise.
39037         (BT_FN_ULONG): Likewise.
39038         (BT_FN_UINT_INT): Likewise.
39039         (BT_FN_UINT_ULONG): Likewise.
39040         (BT_FN_UINT_LONG): Likewise.
39041         (BT_FN_UINT_PTR): Likewise.
39042         (BT_FN_ULONG_PTR): Likewise.
39043         (BT_FN_INT8_FLOAT): Likewise.
39044         (BT_FN_INT16_FLOAT): Likewise.
39045         (BT_FN_UINT32_FLOAT): Likewise.
39046         (BT_FN_UINT16_FLOAT): Likewise.
39047         (BT_FN_UINT8_FLOAT): Likewise.
39048         (BT_FN_UINT64_FLOAT): Likewise.
39049         (BT_FN_UINT16_UINT32): Likewise.
39050         (BT_FN_UINT32_UINT16): Likewise.
39051         (BT_FN_UINT16_UINT16_UINT16): Likewise.
39052         (BT_FN_INT_PTR_INT): Likewise.
39053         (BT_FN_UINT_PTR_UINT): Likewise.
39054         (BT_FN_LONG_PTR_LONG): Likewise.
39055         (BT_FN_ULONG_PTR_ULONG): Likewise.
39056         (BT_FN_VOID_UINT64_UINT64): Likewise.
39057         (BT_FN_UINT8_UINT8_UINT8): Likewise.
39058         (BT_FN_INT8_INT8_INT8): Likewise.
39059         (BT_FN_INT16_INT16_INT16): Likewise.
39060         (BT_FN_INT_INT_INT): Likewise.
39061         (BT_FN_UINT_FLOAT_UINT): Likewise.
39062         (BT_FN_FLOAT_UINT_UINT): Likewise.
39063         (BT_FN_ULONG_UINT_UINT): Likewise.
39064         (BT_FN_ULONG_UINT_PTR): Likewise.
39065         (BT_FN_ULONG_ULONG_ULONG): Likewise.
39066         (BT_FN_UINT_UINT_UINT): Likewise.
39067         (BT_FN_VOID_UINT_PTR): Likewise.
39068         (BT_FN_UINT_UINT_PTR: Likewise.
39069         (BT_FN_UINT32_UINT64_PTR): Likewise.
39070         (BT_FN_INT_INT_UINT_UINT): Likewise.
39071         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
39072         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
39073         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
39074         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
39075         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
39076         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
39077         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
39078         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
39079         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
39080         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
39081         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
39082         * doc/frontends.texi: List BRIG FE.
39083         * doc/install.texi (Testing): Add BRIG tesring requirements.
39084         * doc/invoke.texi (Overall Options): Mention BRIG.
39085         * doc/standards.texi (Standards): Doucment BRIG HSA version.
39086
39087 2017-01-24  Richard Biener  <rguenther@suse.de>
39088
39089         PR translation/79208
39090         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
39091
39092 2017-01-24  Martin Jambor  <mjambor@suse.cz>
39093
39094         PR bootstrap/79198
39095         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
39096         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
39097         and known_contexts.
39098
39099 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
39100
39101         PR middle-end/79123
39102         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
39103         casts from signed to unsigned really don't have a range.
39104
39105 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
39106
39107         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
39108         GMP_RNDx for compatiblity.
39109
39110 2017-01-24  Martin Liska  <mliska@suse.cz>
39111
39112         PR bootstrap/79132
39113         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
39114         that would prevent us to call alloca with -1 as argument.
39115
39116 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
39117
39118         * dwarf2out.c (output_compilation_unit_header, output_file_names):
39119         Avoid -Wformat-security warning.
39120
39121 2017-01-23  Andrew Pinski  <apinski@cavium.com>
39122
39123         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
39124         cost table.
39125
39126 2017-01-23  Martin Sebor  <msebor@redhat.com>
39127
39128         PR middle-end/78703
39129         * gimple-ssa-sprintf.c (warn_level): New global.
39130         (format_integer): Use it here and throughout the rest of the file.
39131         Use the same switch to compute sign as base.
39132         (maybe_warn): New function.
39133         (format_directive): Factor out warnings into maybe_warn.
39134         Add debugging output.  Use warn_level.
39135         (add_bytes): Use warn_level.
39136         (pass_sprintf_length::compute_format_length): Add debugging output.
39137         (try_substitute_return_value): Same.
39138         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
39139
39140         PR middle-end/78703
39141         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
39142         (struct fmtresult, format_integer, format_floating): Adjust.
39143         (fmtresult::fmtresult): Set max correctly in two argument ctor.
39144         (get_string_length, format_string,format_directive): Same.
39145         (pass_sprintf_length::compute_format_length): Same.
39146         (try_substitute_return_value): Simplify slightly.
39147
39148         PR middle-end/78703
39149         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
39150         (fmtresult::operator+=): Outlined.
39151         (struct fmtresult): Add ctors.
39152         (struct conversion_spec): Rename...
39153         (struct directive): ...to this.  Add and remove data members.
39154         (directive::set_width, directive::set_precision): New functions.
39155         (format_percent): Use fmtresult ctor.
39156         (get_width_and_precision): Remove.
39157         (format_integer): Make naming changes.  Avoid computing width and
39158         precision.
39159         (format_floating): Same.  Adjust indentation.
39160         (format_character, format_none): New functions.
39161         (format_string): Moved character handling to format_character.
39162         (format_directive): Remove arguments, change return type.
39163         (parse_directive): New function.
39164         (pass_sprintf_length::compute_format_length): Move directive
39165         parsing to parse_directive.
39166
39167 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39168
39169         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
39170         (assign_assembler_name_if_needed): ... this.
39171         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
39172         (assign_assembler_name_if_needed): ... this.
39173         (free_lang_data_in_cgraph): Adjust callers.
39174         * cgraphunit.c (cgraph_node::analyze): Likewise.
39175         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
39176         Likewise.
39177
39178 2017-01-23  Richard Biener  <rguenther@suse.de>
39179
39180         PR tree-optimization/79088
39181         PR tree-optimization/79188
39182         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
39183         resetting loop bounds after last path deletion.  Reset loop
39184         bounds of the target loop, make code match the comments.
39185         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
39186         Make sure loops need no fixups.
39187
39188 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
39189
39190         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
39191         exponent support with double type for first argument.
39192         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
39193         type returned by __builtin_vec_extract_sig,
39194         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
39195         functions from "vector int" to "vector unsigned int" or from
39196         "vector long long int" to "vector unsigned long long int".
39197         Changed type returned by __builtin_vec_extract_exp,
39198         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
39199         functions from "vector int" to "vector unsigned int" or from
39200         "vector long long int" to "vector unsigned long long int".
39201         Changed return type of __builtin_vec_test_data_class,
39202         __builtin_vec_test_data_class_sp, and
39203         __builtin_vec_test_data_class_dp from "vector int" to
39204         "vector bool int" or from "vector long long int" to "vector bool
39205         long long int" and changed second argument type from "unsigned
39206         int" to "int".  Added new overloaded function forms "vector float
39207         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
39208         "vector float __builtin_vec_insert_exp_sp (vector float, vector
39209         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
39210         double, vector unsigned long long int)" and "vector double
39211         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
39212         long int)".  Changed return type of
39213         __builtin_scalar_test_data_class and
39214         __builtin_scalar_test_data_class_sp and
39215         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
39216         int" and changed second argument from "unsigned int" to "int".
39217         Changed type returned by __builtin_scalar_test_neg,
39218         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
39219         from "int" to "bool int".  Added new overloaded function form
39220         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
39221         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
39222         exponent double-precision with floating point first argument.
39223         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
39224         documentation of scalar_test_data_class, scalar_test_neg,
39225         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
39226         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
39227         vec_test_data_class built-in functions to reflect refinements in
39228         their type signatures.
39229
39230 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
39231
39232         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
39233         size of buf.
39234         (aarch64_elf_asm_destructor): Likewise.
39235
39236 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
39237
39238         PR rtl-optimization/78634
39239         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
39240         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
39241         * ifcvt.c (noce_try_cmove): Add missing cost check.
39242
39243         PR rtl-optimization/71724
39244         * combine.c (if_then_else_cond): Look for situations where it is
39245         beneficial to undo the work of one of the recursive calls.
39246
39247 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
39248
39249         PR tree-optimization/70754
39250         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
39251         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
39252         combined stmt before it if not NULL.
39253         (combine_chains): Process refs reversely and compute dominance point
39254         for root ref.
39255
39256 2017-01-23  Martin Liska  <mliska@suse.cz>
39257
39258         PR tree-optimization/79196
39259         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
39260         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
39261         instead of memcmp.
39262         (strlen_optimize_stmt): Call the renamed function.
39263
39264 2017-01-23  Michael Matz  <matz@suse.de>
39265
39266         PR tree-optimization/78384
39267         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
39268
39269 2017-01-23  Richard Biener  <rguenther@suse.de>
39270
39271         PR tree-optimization/79186
39272         * tree-vrp.c (register_new_assert_for): Make sure we've seen
39273         both incoming edges before moving an assert.
39274
39275 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39276
39277         * ipa-prop.c (load_from_param_1): Removed.
39278         (load_from_unmodified_param): Bits from load_from_param_1 put back
39279         here.
39280         (load_from_param): Removed.
39281         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
39282         with stmt.  Reverted back to use of load_from_unmodified_param.
39283
39284 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39285
39286         PR ipa/79108
39287         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
39288         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
39289         field a pointer to garbage collected vector, mark lattices and
39290         ipcp_orig_node with GTY((skip)).
39291         (ipa_get_param_count): Adjust to descriptors being a pointer.
39292         (ipa_get_param): Likewise.
39293         (ipa_get_type): Likewise.
39294         (ipa_get_param_move_cost): Likewise.
39295         (ipa_set_param_used): Likewise.
39296         (ipa_get_controlled_uses): Likewise.
39297         (ipa_set_controlled_uses): Likewise.
39298         (ipa_is_param_used): Likewise.
39299         (ipa_node_params_t): Move into garbage collector.  New methods insert
39300         and remove.
39301         (ipa_node_params_sum): Annotate wth GTY(()).
39302         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
39303         garbage collected.
39304         (ipa_load_from_parm_agg): Adjust declaration.
39305         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
39306         * ipa-profile.c (ipa_profile): Likewise.
39307         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
39308         (ipa_populate_param_decls): Make descriptors parameter garbage
39309         collected.
39310         (ipa_dump_param): Adjust to descriptors being a pointer.
39311         (ipa_alloc_node_params): Likewise.
39312         (ipa_initialize_node_params): Likewise.
39313         (load_from_param_1): Make descriptors parameter garbage collected.
39314         (load_from_unmodified_param): Likewise.
39315         (load_from_param): Likewise.
39316         (ipa_load_from_parm_agg): Likewise.
39317         (ipa_node_params::~ipa_node_params): Removed.
39318         (ipa_free_all_node_params): Remove call to delete operator.
39319         (ipa_node_params_t::insert): New.
39320         (ipa_node_params_t::remove): Likewise.
39321         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
39322         copy known_csts and known_contexts vectors.
39323         (ipa_read_node_info): Adjust to descriptors being a pointer.
39324         (ipcp_modif_dom_walker): Make m_descriptors field garbage
39325         collected.
39326         (ipcp_transform_function): Make descriptors variable garbage
39327         collected.
39328
39329 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
39330
39331         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
39332         * config/i386/avx512dqintrin.h: Ditto.
39333         * config/i386/avx512fintrin.h: Ditto.
39334         * config/i386/i386.c: Handle new builtins.
39335         * config/i386/i386-builtin.def: Add new builtins.
39336         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
39337         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
39338
39339 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39340             Martin Liska  <mliska@suse.cz>
39341
39342         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
39343         * asan.c (asan_expand_poison_ifn): Support stores and use
39344         appropriate ASAN report function.
39345         * internal-fn.c (expand_ASAN_POISON_USE): New function.
39346         * internal-fn.def (ASAN_POISON_USE): Declare.
39347         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
39348         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
39349         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
39350         ASAN_POISON calls w/o LHS.
39351         * tree-ssa.c (execute_update_addresses_taken): Create clobber
39352         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
39353         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
39354         * gimplify.c (asan_poison_variables): Add attribute
39355         use_after_scope_memory to variables that really needs to live
39356         in memory.
39357         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
39358         having the attribute.
39359
39360 2017-01-23  Martin Liska  <mliska@suse.cz>
39361
39362         * asan.c (create_asan_shadow_var): New function.
39363         (asan_expand_poison_ifn): Likewise.
39364         * asan.h (asan_expand_poison_ifn): New declaration.
39365         * internal-fn.c (expand_ASAN_POISON): Likewise.
39366         * internal-fn.def (ASAN_POISON): New builtin.
39367         * sanopt.c (pass_sanopt::execute): Expand
39368         asan_expand_poison_ifn.
39369         * tree-inline.c (copy_decl_for_dup_finish): Make function
39370         external.
39371         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
39372         * tree-ssa.c (is_asan_mark_p): New function.
39373         (execute_update_addresses_taken): Rewrite local variables
39374         (identified just by use-after-scope as addressable) into SSA.
39375
39376 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39377
39378         * doc/install.texi (Specific): opensource.apple.com uses https
39379         now. Remove trailing slash.
39380
39381 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39382
39383         * README.Portability: Remove note on an Irix compatibility issue.
39384
39385 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
39386
39387         * gcov.c (INCLUDE_ALGORITHM): Define.
39388         (INCLUDE_VECTOR): Define.
39389         No longer include <vector> and <algorithm> directly.
39390
39391 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
39392
39393         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
39394         to https.
39395         * doc/invoke.texi (Code Gen Options): Ditto.
39396
39397 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
39398
39399         PR lto/78407
39400         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
39401
39402 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
39403
39404         rtl-optimization/79125
39405         * cprop.c (local_cprop_pass): Handle cases where we make an
39406         unconditional trap.
39407
39408 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
39409
39410         PR target/61729
39411         PR target/77850
39412         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
39413         read from, for big endian.
39414
39415 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
39416
39417         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
39418         register pauth builtins for LP64 only.
39419
39420 2017-01-20  Marek Polacek  <polacek@redhat.com>
39421
39422         PR c/79152
39423         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
39424         non-case labels.
39425
39426 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39427
39428         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
39429         of safelen status.
39430         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
39431         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
39432         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
39433
39434 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39435
39436         PR target/71270
39437         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
39438         in big-endian mode when they are not a single duplicated value.
39439
39440 2017-01-20  Richard Biener  <rguenther@suse.de>
39441
39442         * BASE-VER: Bump to 7.0.1.
39443
39444 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39445
39446         * omp-low.c (omplow_simd_context): New struct.  Use it...
39447         (lower_rec_simd_input_clauses): ...here and...
39448         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
39449         references to idx, lane, max_vf, is_simt.
39450
39451 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
39452
39453         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
39454         mcpu=nps400.
39455
39456 2017-01-20  Martin Jambor  <mjambor@suse.cz>
39457
39458         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
39459         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
39460         gt-hsa-common.h.
39461         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
39462         (GTFILES): Rename hsa.c to hsa-common.c.
39463         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
39464         * hsa-dump.c: Likewise.
39465         * hsa-gen.c: Likewise.
39466         * hsa-regalloc.c: Likewise.
39467         * ipa-hsa.c: Likewise.
39468         * omp-expand.c: Likewise.
39469         * omp-low.c: Likewise.
39470         * toplev.c: Likewise.
39471
39472 2017-01-20  Marek Polacek  <polacek@redhat.com>
39473
39474         PR c/64279
39475         * doc/invoke.texi: Document -Wduplicated-branches.
39476         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
39477         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
39478         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
39479         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
39480         return 0 only when not OEP_LEXICOGRAPHIC.
39481         (fold_build_cleanup_point_expr): Use the expression
39482         location when building CLEANUP_POINT_EXPR.
39483         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
39484         * tree.c (add_expr): Handle error_mark_node.
39485
39486 2017-01-20  Martin Liska  <mliska@suse.cz>
39487
39488         PR lto/69188
39489         * tree-profile.c (init_ic_make_global_vars): Do not call
39490         finalize_decl.
39491         (gimple_init_gcov_profiler): Likewise.
39492
39493 2017-01-20  Martin Liska  <mliska@suse.cz>
39494
39495         PR ipa/71190
39496         * cgraph.h (maybe_create_reference): Remove argument and
39497         update comment.
39498         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
39499         argument.
39500         * ipa-cp.c (create_specialized_node): Likewise.
39501         * symtab.c (symtab_node::maybe_create_reference): Handle
39502         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
39503
39504 2017-01-20  Martin Liska  <mliska@suse.cz>
39505
39506         * read-rtl-function.c (function_reader::create_function): Use
39507         build_decl instread of build_decl_stat.
39508
39509 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
39510
39511         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
39512         * config/i386/avx512dqintrin.h: Ditto.
39513         * config/i386/avx512fintrin.h: Ditto.
39514         * config/i386/i386-builtin-types.def: Add new types.
39515         * config/i386/i386.c: Handle new types.
39516         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
39517         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
39518         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
39519         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
39520         (__builtin_ia32_kshiftridi): New.
39521         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
39522
39523 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
39524
39525         PR target/78875
39526         PR target/79140
39527         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
39528         define to rs6000_init_stack_protect_guard.
39529         (rs6000_init_stack_protect_guard): New function.
39530
39531 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39532             Yunqiang Su  <yunqiang.su@imgtec.com>
39533
39534         * config.gcc (supported_defaults): Add madd4.
39535         (with_madd4): Add validation.
39536         (all_defaults): Add madd4.
39537         * config/mips/mips.opt (mmadd4): New option.
39538         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39539         mmadd4.
39540         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39541         __mips_no_madd4.
39542         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
39543         (ISA_HAS_FUSED_MADD4): Likewise.
39544         * doc/invoke.texi (-mmadd4): Document the new option.
39545         * doc/install.texi (--with-madd4): Document the new option.
39546
39547 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39548
39549         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
39550         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
39551         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
39552         (aarch64_init_pauth_hint_builtins): New.
39553         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
39554         (aarch64_expand_builtin): Expand new builtins.
39555
39556 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39557
39558         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
39559         * combine-stack-adj.c (no_unhandled_cfa): Handle
39560         REG_CFA_TOGGLE_RA_MANGLE.
39561         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
39562         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
39563         info for return address signing.
39564         (aarch64_expand_epilogue): Likewise.
39565
39566 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39567
39568         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
39569         * config/aarch64/aarch64-protos.h
39570         (aarch64_return_address_signing_enabled): New declaration.
39571         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
39572         New function.
39573         (aarch64_expand_prologue): Sign return address before it's pushed onto
39574         stack.
39575         (aarch64_expand_epilogue): Authenticate return address fetched from
39576         stack.
39577         (aarch64_override_options): Sanity check for ILP32 and ISA level.
39578         (aarch64_attributes): New function attributes for "sign-return-address".
39579         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
39580         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
39581         ("*do_return"): Generate combined instructions according to key index.
39582         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
39583         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
39584         iterators.
39585         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
39586         * config/aarch64/aarch64.opt (msign-return-address=): New.
39587         * doc/extend.texi (AArch64 Function Attributes): Documents
39588         "sign-return-address=".
39589         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
39590
39591 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39592
39593         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
39594         overall option summary.
39595
39596 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39597
39598         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
39599         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
39600         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
39601         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
39602
39603 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
39604
39605         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
39606         -mpower9-minmax by default for -mcpu=power9.
39607         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
39608         128-bit floating point.
39609
39610 2017-01-20  Alan Modra  <amodra@gmail.com>
39611
39612         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
39613         optimizing for size.
39614
39615 2017-01-20  Alan Modra  <amodra@gmail.com>
39616
39617         PR target/79144
39618         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
39619         for strcmp and strncmp from corresponding builtin decl.
39620
39621 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39622
39623         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
39624         instead of i386/rtems-64.h.
39625         * config/i386/rtems-64.h: Remove.
39626
39627 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39628
39629         PR target/78478
39630         Revert:
39631         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
39632
39633         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
39634
39635 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
39636
39637         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
39638         Change int to HOST_WIDE_INT.
39639         * config/aarch64/aarch64-protos.h
39640         (aarch64_simd_gen_const_vector_dup): Likewise.
39641         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
39642
39643 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
39644
39645         * langhooks-def.h (lhd_type_for_size): New decl.
39646         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
39647         * langhooks.c (lhd_type_for_size): New function, taken from
39648         lto_type_for_size.
39649
39650 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
39651
39652         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
39653         define_bypass for CR latency.
39654         (power9-cracked-alu): Update bypass latency and remove power9-branch.
39655         (power9-alu2): Add define_bypass for CR latency.
39656         (power9-cmp): New.
39657         (power9-mul): Update insn latency.
39658         (power9-mul-compare): Update insn latency, bypass latency and remove
39659         power9-branch.
39660
39661 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39662
39663         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
39664         Delete.
39665         * config/aarch64/aarch64.md
39666         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
39667         aarch64_nopcrelative_literal_loads.
39668         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
39669
39670 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
39671
39672         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
39673         TARGET_LOONGSON_3A.
39674         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
39675
39676 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
39677
39678         PR target/78176
39679         * config.gcc (supported_defaults): Add lxc1-sxc1.
39680         (with_lxc1_sxc1): Add validation.
39681         (all_defaults): Add lxc1-sxc1.
39682         * config/mips/mips.opt (mlxc1-sxc1): New option.
39683         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39684         mlxc1-sxc1.
39685         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39686         __mips_no_lxc1_sxc1.
39687         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
39688         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
39689         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
39690
39691 2017-01-19  Richard Biener  <rguenther@suse.de>
39692
39693         PR tree-optimization/72488
39694         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
39695         sure to restore SSA info.
39696         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
39697
39698 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
39699
39700         PR rtl-optimization/79121
39701         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
39702         of the inner type when shifting an extended value.
39703
39704 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39705
39706         PR lto/78407
39707         * symtab.c (symtab_node::equal_address_to): Fix comparing of
39708         interposable aliases.
39709
39710 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
39711
39712         PR target/78516
39713         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
39714         Use the evmergelohi instruction.
39715         (mov_si<mode>_e500_subreg4_2_le): Likewise.
39716         (mov_sitf_e500_subreg8_2_be): Likewise.
39717         (mov_sitf_e500_subreg12_2_le): Likewise.
39718         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
39719         (mov_si<mode>_e500_subreg4_2_be): Likewise.
39720         (mov_sitf_e500_subreg8_2_le): Likewise.
39721         (mov_sitf_e500_subreg12_2_be): Likewise.
39722
39723 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39724
39725         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
39726         attribute from vecsimple to vecperm.
39727         (altivec_vbpermq2): Likewise.
39728
39729 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39730
39731         PR target/79040
39732         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
39733
39734 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
39735         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
39736         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
39737         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
39738         case where N arg is SIZE_MAX.
39739         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
39740         (cmpstrsi): Add pattern.
39741
39742 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
39743
39744         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39745         __builtin_vec_revb builtins.
39746         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
39747         built-in functions to support generation of the ISA 3.0 XXBR<x>
39748         vector byte reverse instructions.
39749         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
39750         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
39751         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
39752         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
39753         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
39754         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
39755         (P9V_BUILTIN_VEC_REVB): Likewise.
39756         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
39757         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
39758         (p9_xxbrq_v16qi): Likewise.
39759         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
39760         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
39761         (p9_xxbrh_v8hi): Likewise.
39762         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
39763         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
39764         vec_revb built-in functions.
39765
39766 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
39767
39768         PR rtl-optimization/78952
39769         * config/i386/i386.md (any_extract): New code iterator.
39770         (*insvqi_2): Use any_extract for source operand.
39771         (*insvqi_3): Use any_shiftrt for source operand.
39772
39773 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
39774
39775         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
39776         New function.
39777         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
39778
39779 2017-01-18  Matthias Klose  <doko@ubuntu.com>
39780
39781         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
39782
39783 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39784
39785         * config/rs6000/altivec.h (vec_bperm): Change #define.
39786         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
39787         (altivec_vbpermq2): New define_insn.
39788         (altivec_vbpermd): Likewise.
39789         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
39790         function interface.
39791         (VBPERMD): Likewise.
39792         (VBPERM): New polymorphic function interface.
39793         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
39794         Add entries for P9V_BUILTIN_VEC_VBPERM.
39795         * doc/extend.texi: Add interfaces for vec_bperm.
39796
39797 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39798
39799         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
39800         first letter of error messages.
39801         (s390_resolve_overloaded_builtin): Likewise.
39802         * config/s390/s390.c (s390_expand_builtin): Likewise.
39803         (s390_invalid_arg_for_unprototyped_fn): Likewise.
39804         (s390_valid_target_attribute_inner_p): Likewise.
39805         * config/s390/s390.md ("tabort"): Likewise.
39806
39807 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
39808
39809         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
39810         (ISA_AVOID_DIV_HILO): New macro.
39811         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
39812         (ISA_HAS_DDIV): Likewise.
39813
39814 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39815
39816         * doc/invoke.texi (fabi-version): Correct number of occurrences.
39817
39818 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39819
39820         * doc/invoke.texi (fabi-version): Spelling fix.
39821
39822 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39823
39824         PR c++/70182
39825         * doc/invoke.texi (fabi-version): Mention mangling fix for
39826         operator names.
39827
39828 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39829
39830         PR c++/77489
39831         * doc/invoke.texi (fabi-version): Document discriminator mangling.
39832
39833 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39834
39835         PR target/78875
39836         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
39837         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
39838         the new options.
39839         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
39840         flexible settings.
39841         (stack_protect_test): Ditto.
39842         * config/rs6000/rs6000.opt (mstack-protector-guard=,
39843         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
39844         options.
39845         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
39846         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
39847         -mstack-protector-guard-offset=.
39848         (RS/6000 and PowerPC Options): Ditto.
39849
39850 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39851
39852         * config/i386/i386.h (MASK_CLASS_P): New define.
39853         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
39854         there are no registers from different register sets also when
39855         mask registers are used.  Update function comment.
39856         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
39857         to (*k/*r) and (*k/*km) alternatives.
39858
39859 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
39860
39861         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
39862         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
39863         (EH_RETURN_HANDLER_RTX): New define.
39864         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
39865         Force frame pointer in EH return functions.
39866         (aarch64_expand_epilogue): Add barrier for eh_return.
39867         (aarch64_final_eh_return_addr): Remove.
39868         (aarch64_eh_return_handler_rtx): New function.
39869         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
39870         Remove.
39871         (aarch64_eh_return_handler_rtx): New prototype.
39872
39873 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39874
39875         * config/rs6000/altivec.h (vec_rlmi): New #define.
39876         (vec_vrlnm): Likewise.
39877         (vec_rlnm): Likewise.
39878         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
39879         (UNSPEC_VRLNM): Likewise.
39880         (VIlong): New mode iterator.
39881         (altivec_vrl<VI_char>mi): New define_insn.
39882         (altivec_vrl<VI_char>nm): Likewise.
39883         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
39884         function entry.
39885         (VRLDNM): Likewise.
39886         (RLNM): New polymorphic function entry.
39887         (VRLWMI): New monomorphic function entry.
39888         (VRLDMI): Likewise.
39889         (RLMI): New polymorphic function entry.
39890         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
39891         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
39892         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
39893         vec_vrlnm.
39894
39895 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39896
39897         PR debug/78839
39898         * dwarf2out.c (field_byte_offset): Restore the
39899         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
39900         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
39901         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
39902         of build2 + fold.
39903
39904 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39905
39906         PR ada/67205
39907         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
39908
39909 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39910
39911         PR debug/71669
39912         * dwarf2out.c (add_data_member_location_attribute): For constant
39913         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
39914         instead of DW_AT_data_member_location, DW_AT_bit_offset and
39915         DW_AT_byte_size attributes.
39916
39917 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39918
39919         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
39920         after forcing to constant memory when the code model is medium.
39921
39922 2017-01-17  Julia Koval  <julia.koval@intel.com>
39923
39924         PR target/76731
39925         * config/i386/avx512fintrin.h
39926         (_mm512_i32gather_ps): Change __addr type to void const*.
39927         (_mm512_mask_i32gather_ps): Ditto.
39928         (_mm512_i32gather_pd): Ditto.
39929         (_mm512_mask_i32gather_pd): Ditto.
39930         (_mm512_i64gather_ps): Ditto.
39931         (_mm512_mask_i64gather_ps): Ditto.
39932         (_mm512_i64gather_pd): Ditto.
39933         (_mm512_mask_i64gather_pd): Ditto.
39934         (_mm512_i32gather_epi32): Ditto.
39935         (_mm512_mask_i32gather_epi32): Ditto.
39936         (_mm512_i32gather_epi64): Ditto.
39937         (_mm512_mask_i32gather_epi64): Ditto.
39938         (_mm512_i64gather_epi32): Ditto.
39939         (_mm512_mask_i64gather_epi32): Ditto.
39940         (_mm512_i64gather_epi64): Ditto.
39941         (_mm512_mask_i64gather_epi64): Ditto.
39942         (_mm512_i32scatter_ps): Change __addr type to void*.
39943         (_mm512_mask_i32scatter_ps): Ditto.
39944         (_mm512_i32scatter_pd): Ditto.
39945         (_mm512_mask_i32scatter_pd): Ditto.
39946         (_mm512_i64scatter_ps): Ditto.
39947         (_mm512_mask_i64scatter_ps): Ditto.
39948         (_mm512_i64scatter_pd): Ditto.
39949         (_mm512_mask_i64scatter_pd): Ditto.
39950         (_mm512_i32scatter_epi32): Ditto.
39951         (_mm512_mask_i32scatter_epi32): Ditto.
39952         (_mm512_i32scatter_epi64): Ditto.
39953         (_mm512_mask_i32scatter_epi64): Ditto.
39954         (_mm512_i64scatter_epi32): Ditto.
39955         (_mm512_mask_i64scatter_epi32): Ditto.
39956         (_mm512_i64scatter_epi64): Ditto.
39957         (_mm512_mask_i64scatter_epi64): Ditto.
39958         * config/i386/avx512pfintrin.h
39959         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
39960         (_mm512_mask_prefetch_i32gather_ps): Ditto.
39961         (_mm512_mask_prefetch_i64gather_pd): Ditto.
39962         (_mm512_mask_prefetch_i64gather_ps): Ditto.
39963         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
39964         (_mm512_prefetch_i32scatter_ps): Ditto.
39965         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
39966         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
39967         (_mm512_prefetch_i64scatter_pd): Ditto.
39968         (_mm512_prefetch_i64scatter_ps): Ditto.
39969         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
39970         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
39971         * config/i386/avx512vlintrin.h
39972         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
39973         (_mm_mmask_i32gather_ps): Ditto.
39974         (_mm256_mmask_i32gather_pd): Ditto.
39975         (_mm_mmask_i32gather_pd): Ditto.
39976         (_mm256_mmask_i64gather_ps): Ditto.
39977         (_mm_mmask_i64gather_ps): Ditto.
39978         (_mm256_mmask_i64gather_pd): Ditto.
39979         (_mm_mmask_i64gather_pd): Ditto.
39980         (_mm256_mmask_i32gather_epi32): Ditto.
39981         (_mm_mmask_i32gather_epi32): Ditto.
39982         (_mm256_mmask_i32gather_epi64): Ditto.
39983         (_mm_mmask_i32gather_epi64): Ditto.
39984         (_mm256_mmask_i64gather_epi32): Ditto.
39985         (_mm_mmask_i64gather_epi32): Ditto.
39986         (_mm256_mmask_i64gather_epi64): Ditto.
39987         (_mm_mmask_i64gather_epi64): Ditto.
39988         (_mm256_i32scatter_ps): Change __addr type to void*.
39989         (_mm256_mask_i32scatter_ps): Ditto.
39990         (_mm_i32scatter_ps): Ditto.
39991         (_mm_mask_i32scatter_ps): Ditto.
39992         (_mm256_i32scatter_pd): Ditto.
39993         (_mm256_mask_i32scatter_pd): Ditto.
39994         (_mm_i32scatter_pd): Ditto.
39995         (_mm_mask_i32scatter_pd): Ditto.
39996         (_mm256_i64scatter_ps): Ditto.
39997         (_mm256_mask_i64scatter_ps): Ditto.
39998         (_mm_i64scatter_ps): Ditto.
39999         (_mm_mask_i64scatter_ps): Ditto.
40000         (_mm256_i64scatter_pd): Ditto.
40001         (_mm256_mask_i64scatter_pd): Ditto.
40002         (_mm_i64scatter_pd): Ditto.
40003         (_mm_mask_i64scatter_pd): Ditto.
40004         (_mm256_i32scatter_epi32): Ditto.
40005         (_mm256_mask_i32scatter_epi32): Ditto.
40006         (_mm_i32scatter_epi32): Ditto.
40007         (_mm_mask_i32scatter_epi32): Ditto.
40008         (_mm256_i32scatter_epi64): Ditto.
40009         (_mm256_mask_i32scatter_epi64): Ditto.
40010         (_mm_i32scatter_epi64): Ditto.
40011         (_mm_mask_i32scatter_epi64): Ditto.
40012         (_mm256_i64scatter_epi32): Ditto.
40013         (_mm256_mask_i64scatter_epi32): Ditto.
40014         (_mm_i64scatter_epi32): Ditto.
40015         (_mm_mask_i64scatter_epi32): Ditto.
40016         (_mm256_i64scatter_epi64): Ditto.
40017         (_mm256_mask_i64scatter_epi64): Ditto.
40018         (_mm_i64scatter_epi64): Ditto.
40019         (_mm_mask_i64scatter_epi64): Ditto.
40020         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
40021         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
40022         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
40023         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
40024         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
40025         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
40026         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
40027         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
40028         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
40029         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
40030         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
40031         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
40032         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
40033         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
40034         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
40035         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
40036         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
40037         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
40038         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
40039         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
40040         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
40041         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
40042         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
40043         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
40044         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
40045         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
40046         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
40047         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
40048         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
40049         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
40050         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
40051         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
40052         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
40053         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
40054         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
40055         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
40056         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
40057         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
40058         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
40059         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
40060         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
40061         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
40062         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
40063         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
40064         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
40065         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
40066         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
40067         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
40068         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
40069         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
40070         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
40071         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
40072         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
40073         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
40074         definitions accordingly.
40075
40076 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
40077             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
40078
40079         PR target/79079
40080         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
40081         gen_lowpart.
40082
40083 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
40084
40085         PR target/79058
40086         * ira-conflicts.c (ira_build_conflicts): Update total conflict
40087         hard regs for inner regno.
40088
40089 2017-01-17  Martin Liska  <mliska@suse.cz>
40090
40091         PR ipa/71207
40092         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
40093         assumption and add comment.
40094
40095 2017-01-17  Nathan Sidwell  <nathan@acm.org>
40096
40097         * ipa-visibility.c (localize_node): New function, broken out of ...
40098         (function_and_variable_visibility): ... here. Call it.
40099
40100 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
40101
40102         PR middle-end/77445
40103         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
40104         correctly set frequency of oudgoing edge.
40105         (duplicate_thread_path): Fix profile updating.
40106
40107 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
40108
40109         PR other/79046
40110         * configure.ac: Add GCC_BASE_VER.
40111         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
40112         version from BASE-VER file.
40113         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
40114         (gcc.o): Depend on $(BASEVER).
40115         * common.opt (dumpfullversion): New option.
40116         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
40117         * doc/invoke.texi: Document -dumpfullversion.
40118         * doc/install.texi: Document --with-gcc-major-version-only.
40119         * configure: Regenerated.
40120
40121 2017-01-17  Richard Biener  <rguenther@suse.de>
40122
40123         PR tree-optimization/71433
40124         * tree-vrp.c (register_new_assert_for): Merge same asserts
40125         on all incoming edges.
40126         (process_assert_insertions_for): Handle insertions at the
40127         beginning of BBs.
40128
40129 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
40130
40131         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
40132         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
40133
40134 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
40135
40136         PR target/78633
40137         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
40138         RTL sharing.
40139
40140 2017-01-17  Alan Modra  <amodra@gmail.com>
40141
40142         PR target/79066
40143         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
40144         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
40145         symbolic stack limit when pic.
40146
40147 2017-01-16  Martin Sebor  <msebor@redhat.com>
40148
40149         PR tree-optimization/78608
40150         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
40151
40152 2017-01-16  Jeff Law  <law@redhat.com>
40153
40154         Revert:
40155         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
40156         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
40157         for several include directories that may be relative to sysroot.
40158         * config/i386/x-mingw32 (gplus_includedir): Define.
40159         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
40160         (native_system_includedir): Likewise.
40161         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
40162         override if TARGET_SYSTEM_ROOT is defined.
40163         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
40164
40165         PR tree-optimization/79090
40166         PR tree-optimization/33562
40167         PR tree-optimization/61912
40168         PR tree-optimization/77485
40169         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
40170         and computed trims into the dump file.
40171
40172 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
40173
40174         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
40175
40176 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
40177
40178         PR c/79089
40179         * gimplify.c (gimplify_init_constructor): If want_value and
40180         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
40181         fix.
40182
40183         PR target/79080
40184         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
40185         sequence.  Formatting fixes.
40186         (doloop_optimize): Formatting fixes.
40187
40188         PR driver/49726
40189         * gcc.c (debug_level_greater_than_spec_func): New function.
40190         (static_spec_functions): Add debug-level-gt spec function.
40191         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
40192         !g0.
40193         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40194         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40195         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
40196         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
40197         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
40198         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
40199
40200 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
40201
40202         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
40203         QImode fixups to general and mask registers only.
40204
40205 2017-01-16  Carl Love  <cel@us.ibm.com>
40206
40207         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
40208         for built-in functions
40209         vector signed char vec_nabs (vector signed char)
40210         vector signed short vec_nabs (vector signed short)
40211         vector signed int vec_nabs (vector signed int)
40212         vector signed long long vec_nabs (vector signed long long)
40213         vector float vec_nabs (vector float)
40214         vector double vec_nabs (vector double)
40215         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
40216         and NABS overload.
40217         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
40218         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
40219         * doc/extend.texi: Update the documentation file for the new built-in
40220         functions.
40221
40222 2017-01-16  Martin Sebor  <msebor@redhat.com>
40223
40224         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
40225         message.
40226
40227 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40228
40229         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
40230         UNSPEC_VSX__XXSPLTD to require special splat handling.
40231
40232 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
40233
40234         PR bootstrap/78616
40235         * system.h: Poison strndup.
40236
40237 2017-01-16  Alan Modra  <amodra@gmail.com>
40238
40239         PR target/79098
40240         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
40241         use a switch.
40242
40243 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
40244
40245         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
40246
40247 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
40248
40249         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
40250         call recog here.  Assert that INSN_CODE (insn) is non-negative.
40251
40252 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40253
40254         PR target/72749
40255         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
40256         fallthrough.
40257         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
40258         in the currently scheduled RTL fragment.
40259
40260 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40261
40262         PR rtl-optimization/78751
40263         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
40264         give up.
40265
40266 2017-01-14  Jeff Law  <law@redhat.com>
40267
40268         PR tree-optimization/79090
40269         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
40270         variable length stores.
40271         (compute_trims): Delete dead assignment to *trim_tail.
40272         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
40273         zero length.
40274
40275 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
40276
40277         PR rtl-optimization/78626
40278         PR rtl-optimization/78727
40279         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
40280         of a block, and split such blocks after everything else is finished.
40281
40282 2017-01-14  Alan Modra  <amodra@gmail.com>
40283
40284         PR target/72749
40285         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
40286         target legitimate_combined_insn.
40287         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
40288         (rs6000_legitimate_combined_insn): New function.
40289         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
40290         all uses.
40291         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
40292         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
40293         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
40294
40295 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
40296
40297         * doc/frontends.texi (G++ and GCC): Remove references to Java.
40298
40299 2017-01-13  Jeff Law  <law@redhat.com>
40300
40301         PR tree-optimization/33562
40302         PR tree-optimization/61912
40303         PR tree-optimization/77485
40304         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
40305         a statement.
40306         (delete_dead_assignment): Likewise.
40307         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
40308         statement to delete_dead_call and delete_dead_assignment.
40309
40310 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
40311
40312         PR c/78304
40313         * substring-locations.c (format_warning_va): Strengthen case 1 so
40314         that both endpoints of the substring must be within the format
40315         range for just the substring to be printed.
40316
40317 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
40318
40319         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
40320         * config/i386/i386.c (ix86_target_string): Add missing options
40321         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
40322         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
40323         flags_other and ix86_target_other to flags2_other.  Display unknown
40324         isa2 options.
40325         (ix86_valid_target_attribute_inner_p): Add missing options and
40326         reorder options by implied ISAs, as in ix86_target_string.
40327
40328 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40329
40330         * hash-table.h (hash_table::too_empty_p): New function.
40331         (hash_table::expand): Use it.
40332         (hash_table::traverse): Likewise.
40333         (hash_table::empty_slot): Use sizeof (value_type) instead of
40334         sizeof (PTR) to convert bytes to elements.  Shrink the table
40335         if the current size is excessive for the current number of
40336         elements.
40337
40338 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40339
40340         * ira-costs.c (record_reg_classes): Break from the inner loop
40341         early once alt_fail is known to be true.  Update outer loop
40342         handling accordingly.
40343
40344 2017-01-13  Jeff Law  <law@redhat.com>
40345
40346         * tree-ssa-dse.c (decrement_count): New function.
40347         (increment_start_addr, maybe_trim_memstar_call): Likewise.
40348         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
40349         when we know the partially dead statement is a mem* function.
40350
40351         PR tree-optimization/61912
40352         PR tree-optimization/77485
40353         * tree-ssa-dse.c: Include expr.h.
40354         (maybe_trim_constructor_store): New function.
40355         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
40356
40357         PR tree-optimization/33562
40358         PR tree-optimization/61912
40359         PR tree-optimization/77485
40360         * doc/invoke.texi: Document new dse-max-object-size param.
40361         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
40362         * tree-ssa-dse.c: Include params.h.
40363         (dse_store_status): New enum.
40364         (initialize_ao_ref_for_dse): New, partially extracted from
40365         dse_optimize_stmt.
40366         (valid_ao_ref_for_dse, normalize_ref): New.
40367         (setup_live_bytes_from_ref, compute_trims): Likewise.
40368         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
40369         (maybe_trim_partially_dead_store): Likewise.
40370         (maybe_trim_complex_store): Likewise.
40371         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
40372         Track what bytes live from the original store.  Return tri-state
40373         for dead, partially dead or live.
40374         (dse_dom_walker): Add constructor, destructor and new private members.
40375         (delete_dead_call, delete_dead_assignment): New extracted from
40376         dse_optimize_stmt.
40377         (dse_optimize_stmt): Make a member of dse_dom_walker.
40378         Use initialize_ao_ref_for_dse.
40379
40380         PR tree-optimization/33562
40381         PR tree-optimization/61912
40382         PR tree-optimization/77485
40383         * sbitmap.h (bitmap_count_bits): Prototype.
40384         (bitmap_clear_range, bitmap_set_range): Likewise.
40385         * sbitmap.c (bitmap_clear_range): New function.
40386         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
40387
40388 2017-01-13  Martin Liska  <mliska@suse.cz>
40389
40390         PR ipa/79043
40391         * function.c (set_cfun): Add new argument force.
40392         * function.h (set_cfun): Likewise.
40393         * ipa-inline-transform.c (inline_call): Use the function when
40394         strict alising from is dropped for function we inline to.
40395
40396 2017-01-13  Richard Biener  <rguenther@suse.de>
40397
40398         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
40399         for dumping GIMPLE INTEGER_CSTs.
40400
40401 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40402
40403         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
40404         to 201112L since C++17.
40405
40406 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
40407
40408         PR sanitizer/78887
40409         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
40410         if -fsanitize=kernel-address is present.
40411
40412 2017-01-13  Richard Biener  <rguenther@suse.de>
40413
40414         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
40415         as _Literal ( type ) number in case usual suffixes do not
40416         preserve all information.
40417
40418 2017-01-13  Richard Biener  <rguenther@suse.de>
40419
40420         PR tree-optimization/77283
40421         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
40422         and ssa-iterators.h.
40423         (is_feasible_trace): Implement a cost model based on joiner
40424         PHI node uses.
40425
40426 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
40427
40428         PR target/79004
40429         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
40430         char or short to __float128/_Float128 directly.
40431
40432 2017-01-12  Martin Sebor  <msebor@redhat.com>
40433
40434         to -Wformat-overflow.
40435         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
40436         (min_bytes_remaining): Same.
40437         (get_string_length): Same.
40438         (format_string): Same.
40439         (format_directive): Same.
40440         (add_bytes): Same.
40441         (pass_sprintf_length::handle_gimple_call): Same.
40442
40443 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
40444
40445         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
40446         info.nowrite calls with no lhs that can't throw.  Return bool
40447         whether gsi_remove has been called or not.
40448         (pass_sprintf_length::handle_gimple_call): Return bool whether
40449         try_substitute_return_value called gsi_remove.  Formatting fix.
40450         (pass_sprintf_length::execute): Don't use gsi_remove if
40451         handle_gimple_call returned true.
40452
40453         PR bootstrap/79069
40454         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
40455         be removed due to side-effects, don't remove following barrier nor
40456         turn the successor edge into fallthru edge.
40457
40458 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40459
40460         PR target/79044
40461         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
40462         element-reversing loads and stores as not swappable.
40463
40464 2017-01-12  Nathan Sidwell  <nathan@acm.org>
40465             Nicolai Stange  <nicstange@gmail.com>
40466
40467         * combine.c (try_combine): Don't ignore result of overlap checking
40468         loop.  Combine overlap & asm check into single loop.
40469
40470 2017-01-12  Richard Biener  <rguenther@suse.de>
40471
40472         * tree-pretty-print.c (dump_generic_node): Provide -gimple
40473         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
40474
40475 2017-01-12  Richard Biener  <rguenther@suse.de>
40476
40477         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
40478         and TS_TARGET_OPTION directly derive from TS_BASE.
40479         * tree-core.h (tree_optimization_option): Derive from tree_base.
40480         (tree_target_option): Likewise.
40481
40482 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
40483
40484         * config/i386/i386.c (memory_address_length): Increase len
40485         only when rip_relative_addr_p returns false.
40486
40487 2017-01-11  Julia Koval  <julia.koval@intel.com>
40488
40489         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
40490         (OPTION_MASK_ISA_SGX_SET): New.
40491         (ix86_handle_option): Handle OPT_msgx.
40492         * config.gcc: Added sgxintrin.h.
40493         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
40494         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
40495         * config/i386/i386.c (ix86_target_string): Add -msgx.
40496         (PTA_SGX): New.
40497         (ix86_option_override_internal): Handle new options.
40498         (ix86_valid_target_attribute_inner_p): Add sgx.
40499         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
40500         * config/i386/i386.opt: Add msgx.
40501         * config/i386/sgxintrin.h: New file.
40502         * config/i386/x86intrin.h: Add sgxintrin.h.
40503
40504 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40505
40506         PR c++/71537
40507         * fold-const.c (maybe_nonzero_address): Return 1 for function
40508         local objects.
40509         (tree_single_nonzero_warnv_p): Don't handle function local objects
40510         here.
40511
40512         PR c++/72813
40513         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
40514         of c-header.
40515
40516 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
40517
40518         PR driver/78877
40519         * opts.c: Include "spellcheck.h"
40520         (struct string_fragment): New struct.
40521         (struct edit_distance_traits<const string_fragment &>): New
40522         struct.
40523         (get_closest_sanitizer_option): New function.
40524         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
40525
40526 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40527
40528         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
40529         by 12.
40530         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
40531         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
40532         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
40533         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
40534         for initial die_offset if dwarf_split_debug_info.
40535         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
40536         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
40537         fields.
40538         (output_skeleton_debug_sections): Formatting fix.  Use
40539         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
40540         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
40541
40542 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
40543
40544         * config/arm/cortex-a53.md: Add bypasses for
40545         cortex_a53_r2f_cvt.
40546         (cortex_a53_r2f): Only use for transfers.
40547         (cortex_a53_f2r): Likewise.
40548         (cortex_a53_r2f_cvt): Add reservation for conversions.
40549         (cortex_a53_f2r_cvt): Likewise.
40550
40551 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
40552
40553         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
40554         to all inlined functions, change static to extern.
40555
40556 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
40557
40558         PR target/78253
40559         * config/arm/arm.c (legitimize_pic_address): Handle reference to
40560         weak symbol.
40561         (arm_assemble_integer): Likewise.
40562
40563 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
40564
40565         * config.gcc: Use new awk script to check CPU, FPU and architecture
40566         parameters for --with-... options.
40567         * config/arm/parsecpu.awk: New file
40568         * config/arm/arm-cpus.in: New file.
40569         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
40570         files.
40571         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
40572         files.
40573         * config/arm/t-arm: Update dependency rules.
40574         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
40575         of processing .def files.
40576         * config/arm/genopt.sh: Deleted.
40577         * config/arm/gentune.sh: Deleted.
40578         * config/arm/arm-cores.def: Deleted.
40579         * config/arm/arm-arches.def: Deleted.
40580         * config/arm/arm-fpus.def: Deleted.
40581         * config/arm/arm-tune.md: Regenerated.
40582         * config/arm/arm-tables.opt: Regenerated.
40583         * config/arm/arm-cpu.h: New generated file.
40584         * config/arm/arm-cpu-data.h: New generated file.
40585         * config/arm/arm-cpu-cdata.h: New generated file.
40586
40587 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
40588
40589         PR lto/79042
40590         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
40591         bit.
40592         (input_varpool_node): Unpack dynamically_initialized bit.
40593
40594 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
40595
40596         PR rtl-optimization/79032
40597         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
40598         the alignment of the adjusted memory reference against that of MODE,
40599         instead of the alignment of the original memory reference.
40600
40601 2017-01-11  Martin Jambor  <mjambor@suse.cz>
40602
40603         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
40604         test.
40605         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
40606         decorated functions.
40607
40608 2017-01-11  Richard Biener  <rguenther@suse.de>
40609
40610         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
40611         set range/nonnull info for PHI results.  Do not set it on
40612         stmts marked for removal.
40613
40614 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
40615
40616         * expr.c (store_field): In the bitfield case, fetch the return value
40617         from the registers before applying a single big-endian adjustment.
40618         Always do a final load for a BLKmode value not larger than a word.
40619
40620 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
40621
40622         PR c++/77949
40623         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40624         that we correctly handle column numbers greater than
40625         LINE_MAP_MAX_COLUMN_NUMBER.
40626
40627 2017-01-10  Martin Sebor  <msebor@redhat.com>
40628
40629         PR middle-end/78245
40630         * gimple-ssa-sprintf.c (get_destination_size): Call
40631         {init,fini}object_sizes.
40632         * tree-object-size.c (addr_object_size): Adjust.
40633         (pass_through_call): Adjust.
40634         (pass_object_sizes::execute): Adjust.
40635         * tree-object-size.h (fini_object_sizes): Declare.
40636
40637 2017-01-10  Martin Sebor  <msebor@redhat.com>
40638
40639         PR tree-optimization/78775
40640         * builtins.c (get_size_range): Move...
40641         * calls.c: ...to here.
40642         (alloc_max_size): Accept zero argument.
40643         (operand_signed_p): Remove.
40644         (maybe_warn_alloc_args_overflow): Call get_size_range.
40645         * calls.h (get_size_range): Declare.
40646
40647 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
40648
40649         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
40650         from TI's devices.csv file as of September 2016.
40651         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
40652
40653 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40654
40655         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
40656         * doc/invoke.texi: Likewise.
40657         * doc/md.texi: Likewise.
40658         * doc/objc.texi: Likewise.
40659
40660 2017-01-10  Joshua Conner  <joshconner@google.com>
40661
40662         * config/arm/fuchsia-elf.h: New file.
40663         * config/fuchsia.h: New file.
40664         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
40665         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
40666         targets.
40667         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
40668
40669 2016-01-10  Richard Biener  <rguenther@suse.de>
40670
40671         PR tree-optimization/79034
40672         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
40673         Propagate out degenerate PHIs in the joiner.
40674
40675 2017-01-10  Martin Liska  <mliska@suse.cz>
40676
40677         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
40678         (sort_congruence_classes_by_decl_uid): Likewise.
40679         (sort_congruence_class_groups_by_decl_uid): Likewise.
40680         (sem_item_optimizer::merge_classes): Sort class, groups in these
40681         classes and members in the groups by DECL_UID of declarations.
40682         This would make merge operations stable.
40683
40684 2017-01-10  Martin Liska  <mliska@suse.cz>
40685
40686         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
40687         usage of m_classes_vec.
40688         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
40689         (sem_item_optimizer::get_group_by_hash): Likewise.
40690         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
40691         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
40692         (sem_item_optimizer::verify_classes): Likewise.
40693         (sem_item_optimizer::process_cong_reduction): Likewise.
40694         (sem_item_optimizer::dump_cong_classes): Likewise.
40695         (sem_item_optimizer::merge_classes): Likewise.
40696         * ipa-icf.h (congruence_class_hash): Rename from
40697         congruence_class_group_hash.  Remove declaration of m_classes_vec.
40698
40699 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
40700
40701         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
40702         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
40703         * config.gcc: Add avx512vpopcntdqintrin.h.
40704         * config/i386/avx512vpopcntdqintrin.h: New.
40705         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
40706         * config/i386/i386-builtin-types.def: Add new types.
40707         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
40708         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
40709         __builtin_ia32_vpopcountq_v8di_mask): New.
40710         * config/i386/i386-c.c (ix86_target_macros_internal): Define
40711         __AVX512VPOPCNTDQ__.
40712         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
40713         (PTA_AVX512VPOPCNTDQ): Define.
40714         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
40715         TARGET_AVX512VPOPCNTDQ_P): Define.
40716         * config/i386/i386.opt: Add mavx512vpopcntdq.
40717         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
40718         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
40719
40720 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40721
40722         PR middle-end/77484
40723         * predict.def (PRED_CALL): Set to 67.
40724
40725 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
40726
40727         * expr.c (store_field): In the bitfield case, if the value comes from
40728         a function call and is of an aggregate type returned in registers, do
40729         not modify the field mode; extract the value in all cases if the mode
40730         is BLKmode and the size is not larger than a word.
40731
40732 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
40733
40734         PR target/71017
40735         * config/i386/cpuid.h: Fix undefined behavior.
40736
40737 2017-01-04  Jeff Law  <law@redhat.com>
40738
40739         PR tree-optimization/79007
40740         PR tree-optimization/67955
40741         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
40742         conservative for pt.null when flag_non_call_exceptions is on.
40743
40744 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40745
40746         PR translation/79019
40747         PR translation/79020
40748         * params.def (PARAM_INLINE_MIN_SPEEDUP,
40749         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
40750         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
40751         in descriptions.
40752         * config/avr/avr.opt (maccumulate-args): Likewise.
40753         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
40754         * common.opt (freport-bug): Likewise.
40755         * cif-code.def (CIF_FINAL_ERROR): Likewise.
40756         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
40757         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
40758         translatable string.
40759         * config/i386/i386.c (function_value_32): Likewise.
40760         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
40761         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
40762         Likewise.
40763         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
40764         * common/config/msp430/msp430-common.c (msp430_handle_option):
40765         Likewise.
40766         * symtab.c (symtab_node::verify_base): Likewise.
40767         * opts.c (set_debug_level): Likewise.
40768         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
40769         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
40770         missing whitespace to translatable strings.
40771         * config/avr/avr.md (bswapsi2): Fix typo in comment.
40772         * config/sh/superh.h: Likewise.
40773         * config/i386/xopintrin.h: Likewise.
40774         * config/i386/znver1.md: Likewise.
40775         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
40776         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
40777         * double-int.h (struct double_int): Likewise.
40778         * double-int.c (div_and_round_double): Likewise.
40779         * wide-int.cc: Likewise.
40780         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40781         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
40782         * cfgcleanup.c (crossjumps_occured): Renamed to ...
40783         (crossjumps_occurred): ... this.
40784         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
40785         Adjust all uses.
40786
40787         PR tree-optimization/78899
40788         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
40789         returning bool return struct loop *, NULL for failure and the new
40790         loop on success.
40791         (versionable_outer_loop_p): Don't version outer loop if it has
40792         dont_vectorized bit set.
40793         (tree_if_conversion): When versioning outer loop, ensure
40794         tree_if_conversion is performed also on the inner loop of the
40795         non-vectorizable outer loop copy.
40796         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
40797         LOOP_VECTORIZED in inner loop of the scalar outer loop and
40798         prevent vectorization of it.
40799         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
40800         the outer loop vectorization of the non-scalar version is attempted
40801         before vectorization of the inner loop in scalar version.  If
40802         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
40803         vectorization of its inner loop.
40804         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
40805         has 2 inner loops, rename also on edges from bb whose single pred
40806         is outer_loop->header.  Fix typo in function comment.
40807
40808 2017-01-09  Martin Sebor  <msebor@redhat.com>
40809
40810         PR bootstrap/79033
40811         * asan.c (asan_emit_stack_protection): Increase local buffer size
40812         to avoid snprintf truncation warning.
40813
40814 2017-01-09  Andrew Pinski  <apinski@cavium.com>
40815
40816         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
40817         to reference thunderx2t99 for the tuning structure
40818         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
40819         Rename to ...
40820         (thunderx2t99_extra_costs): This.
40821         * config/aarch64/aarch64-tune.md: Regenerate.
40822         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
40823         (vulcan_addrcost_table): This.
40824         (vulcan_regmove_cost): Rename to ...
40825         (thunderx2t99_regmove_cost): This.
40826         (vulcan_vector_cost): Rename to ...
40827         (thunderx2t99_vector_cost): this.
40828         (vulcan_branch_cost): Rename to ...
40829         (thunderx2t99_branch_cost): This.
40830         (vulcan_tunings): Rename to ...
40831         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
40832         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
40833
40834 2017-01-09  Martin Jambor  <mjambor@suse.cz>
40835
40836         PR ipa/78365
40837         PR ipa/78599
40838         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
40839         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
40840         (propagate_vr_accross_jump_function): Use the above function for all
40841         value range computations for pass-through jump functions and type
40842         converasion from explicit value range values.
40843         (ipcp_propagate_stage): Do not attempt to deduce types of formal
40844         parameters from TYPE_ARG_TYPES.
40845         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
40846         (ipa_write_node_info): Stream type of the actual argument.
40847         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
40848
40849 2017-01-09  Martin Liska  <mliska@suse.cz>
40850
40851         PR pch/78970
40852         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
40853         (lookup_compiler): Do not show error message with have_E.
40854
40855 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40856
40857         PR tree-optimization/78938
40858         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
40859         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
40860         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
40861         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
40862         fixes.
40863
40864 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40865
40866         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
40867         is const0_rtx.
40868
40869 2017-01-09  Richard Biener  <rguenther@suse.de>
40870
40871         PR tree-optimization/78997
40872         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
40873         name condition properly.
40874
40875 2017-01-09  Richard Biener  <rguenther@suse.de>
40876
40877         PR debug/79000
40878         * dwarf2out.c (is_cxx): New overload with context.
40879         (is_naming_typedef_decl): Use it.
40880
40881 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40882
40883         * invoke.texi (Option Summary): Correct spacing in option lists
40884         and add line breaks to fix over-long lines.
40885
40886 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40887
40888         PR middle-end/17660
40889
40890         * extend.texi (Common Variable Attributes): Add xref to GCC
40891         Internals manual to explain mode attribute keywords.
40892
40893 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40894
40895         PR other/16519
40896         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
40897         and Preprocessor Options.
40898         (Options for Linking): Document -pthread here....
40899         (RS/6000 and PowerPC Options): ...not here.
40900         (Solaris 2 Options): ...or here.
40901         * doc/cppopts.texi: Document -pthread.
40902
40903 2017-01-08  Martin Sebor  <msebor@redhat.com>
40904
40905         PR middle-end/77708
40906         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
40907         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
40908         New member functions.
40909         (format_directive): Used them.
40910         (add_bytes): Same.
40911         (pass_sprintf_length::handle_gimple_call): Same.
40912         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
40913         to avoid truncation for any argument.
40914         (extract_affine_mul): Same.
40915         * tree.c (get_file_function_name): Same.
40916
40917 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40918
40919         PR middle-end/77484
40920         * predict.def (PRED_INDIR_CALL): Set to 86.
40921
40922 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40923
40924         PR preprocessor/54124
40925         * doc/cppopts.texi: Reformat -d subtable to list the full name
40926         of the options.  Add cross-reference to the docs for the general
40927         compiler -d options.
40928         * doc/invoke.texi (Developer Options): Add cross-reference to the
40929         preprocessor-specific -d option documentation.
40930
40931 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40932
40933         PR preprocessor/13498
40934         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
40935         redudant material, and reflect new command-line options.
40936         (System Headers): Likewise.
40937
40938 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40939
40940         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
40941         -isystem, and -idirafter.  Copy-edit.
40942         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
40943         default for -ftrack-macro-expansion.  Delete obsolete and
40944         badly-formatted implementation details about -fdebug-cpp output.
40945         * doc/cppwarnopts.texi: Copy-edit.
40946
40947 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
40948
40949         PR c++/72803
40950         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40951         that the transition from a max line width >= 1<<10 to narrower
40952         lines works correctly.
40953
40954 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
40955
40956         * doc/options.texi (PerFunction): New.
40957         * opt-functions.awk (switch_flags): Map both Optimization and
40958         PerFunction to CL_OPTIMIZATION.
40959         * opth-gen.awk: Test for PerFunction flag along with
40960         Optimization.
40961         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
40962         it only when the latter is present.  Skip those that don't in
40963         the hash function generator.
40964         * common.opt (fvar-tracking): Mark as PerFunction instead of
40965         Optimization.
40966         (fvar-tracking-assignments): Likewise.
40967         (fvar-tracking-assignments-toggle): Likewise.
40968         (fvar-tracking-uninit): Likewise.
40969
40970 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
40971
40972         PR translation/79018
40973         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
40974         the and store.
40975
40976 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
40977
40978         PR target/57583
40979         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
40980         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
40981         TARGET_LONG_JUMP_TABLE_OFFSETS.
40982         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
40983         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
40984         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
40985         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
40986         * config/m68k/m68k.md (tablejump expander): Likewise.
40987         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
40988         TARGET_LONG_JUMP_TABLE_OFFSETS.
40989         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
40990         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
40991
40992 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
40993             David Holsgrove <david.holsgrove@xilinx.com>
40994
40995         * common/config/microblaze/microblaze-common.c
40996         (TARGET_EXCEPT_UNWIND_INFO): Remove.
40997         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
40998         New prototype.
40999         * config/microblaze/microblaze.c (microblaze_must_save_register)
41000         (microblaze_expand_epilogue, microblaze_return_addr): Handle
41001         calls_eh_return.
41002         (microblaze_eh_return): New function.
41003         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
41004         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
41005         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
41006         * config/microblaze/microblaze.md (eh_return): New pattern.
41007
41008 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
41009
41010         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
41011         GCC_DIAGNOSTIC_STRINGIFY): Define.
41012
41013         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
41014
41015 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41016
41017         * config/arm/arm.md (<mcrr>): New.
41018         (<mrrc>): New.
41019         * config/arm/arm.c (arm_arch5te): New.
41020         (arm_option_override): Set arm_arch5te.
41021         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
41022         and mrrc2.
41023         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
41024         (arm_mcrr_qualifiers): ... this. New.
41025         (MRRC_QUALIFIERS): Define to...
41026         (arm_mrrc_qualifiers): ... this. New.
41027         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
41028         __arm_mrrc2): New.
41029         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
41030         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
41031         (MRRCI, mrrc, MRRC): New.
41032         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
41033         VUNSPEC_MRRC2): New.
41034
41035 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41036
41037         * config/arm/arm.md (<mcr>): New.
41038         (<mrc>): New.
41039         * config/arm/arm.c (arm_coproc_builtin_available): Add
41040         support for mcr, mrc, mcr2 and mrc2.
41041         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
41042         (arm_mcr_qualifiers): ... this. New.
41043         (MRC_QUALIFIERS): Define to ...
41044         (arm_mrc_qualifiers): ... this. New.
41045         (MCR_QUALIFIERS): Define to ...
41046         (arm_mcr_qualifiers): ... this. New.
41047         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
41048         __arm_mrc2): New.
41049         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
41050         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
41051         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
41052         VUNSPEC_MRC2): New.
41053
41054 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41055
41056         * config/arm/arm.md (*ldc): New.
41057         (*stc): New.
41058         (<ldc>): New.
41059         (<stc>): New.
41060         * config/arm/arm.c (arm_coproc_builtin_available): Add
41061         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
41062         (arm_coproc_ldc_stc_legitimate_address): New.
41063         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
41064         'qualifier_const_pointer'.
41065         (LDC_QUALIFIERS): Define to...
41066         (arm_ldc_qualifiers): ... this. New.
41067         (STC_QUALIFIERS): Define to...
41068         (arm_stc_qualifiers): ... this. New.
41069         * config/arm/arm-protos.h
41070         (arm_coproc_ldc_stc_legitimate_address): New.
41071         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
41072         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
41073         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
41074         stc2, stcl, stc2l): New.
41075         * config/arm/constraints.md (Uz): New.
41076         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
41077         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
41078         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
41079         VUNSPEC_STC2L): New.
41080
41081 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41082
41083         * config/arm/arm.md (<cdp>): New.
41084         * config/arm/arm.c (neon_const_bounds): Rename this ...
41085         (arm_const_bounds): ... this.
41086         (arm_coproc_builtin_available): New.
41087         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
41088         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
41089         (CDP_QUALIFIERS): Define to...
41090         (arm_cdp_qualifiers): ... this. New.
41091         (void_UP): Define.
41092         (arm_expand_builtin_args): Add case for 6 arguments.
41093         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
41094         (arm_const_bounds): ... this.
41095         (arm_coproc_builtin_available): New.
41096         * config/arm/arm_acle.h (__arm_cdp): New.
41097         (__arm_cdp2): New.
41098         * config/arm/arm_acle_builtins.def (cdp): New.
41099         (cdp2): New.
41100         * config/arm/iterators.md (CDPI,CDP,cdp): New.
41101         * config/arm/neon.md: Rename all 'neon_const_bounds' to
41102         'arm_const_bounds'.
41103         * config/arm/types.md (coproc): New.
41104         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
41105         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
41106         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
41107         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
41108
41109 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41110
41111         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
41112         (UBINOP_QUALIFIERS): New.
41113         (si_UP): Define.
41114         (acle_builtin_data): New. Change comment.
41115         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
41116         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
41117         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
41118         arm_acle_builtins.def.
41119         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
41120         (arm_init_acle_builtins): New.
41121         (CRC32_BUILTIN): Remove.
41122         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
41123         crc32cb, crc32ch and crc32cw.
41124         (arm_init_crc32_builtins): Remove.
41125         (arm_init_builtins): Use arm_init_acle_builtins rather
41126         than arm_init_crc32_builtins.
41127         (arm_expand_acle_builtin): New.
41128         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
41129         * config/arm/arm_acle_builtins.def: New.
41130
41131 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41132
41133         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
41134         (arm_builtin_datum): ... this.
41135         (arm_init_neon_builtin): Rename to ...
41136         (arm_init_builtin): ... this. Add a new parameters PREFIX
41137         and USE_SIG_IN_NAME.
41138         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
41139         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
41140         'arm_builtin_datum'.
41141         (arm_init_vfp_builtins): Likewise.
41142         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
41143         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
41144         (arm_expand_neon_args): Rename to ...
41145         (arm_expand_builtin_args): ... this. Rename builtin_arg
41146         enum values and differentiate between ARG_BUILTIN_MEMORY
41147         and ARG_BUILTIN_NEON_MEMORY.
41148         (arm_expand_neon_builtin_1): Rename to ...
41149         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
41150         values, arm_expand_builtin_args and add bool parameter NEON.
41151         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
41152         (arm_expand_vfp_builtin): Likewise.
41153         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
41154
41155 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41156
41157         PR middle-end/77484
41158         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
41159         * predict.c (tree_estimate_probability_bb): Reverse direction of
41160         polymorphic call predictor.
41161
41162 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
41163
41164         * passes.c (execute_one_pass): Split out pass-skipping logic into...
41165         (determine_pass_name_match): ...this new function and...
41166         (should_skip_pass_p): ...this new function.
41167
41168 2017-01-06  Nathan Sidwell  <nathan@acm.org>
41169
41170         * ipa-visibility.c (function_and_variable_visibility): Reformat
41171         comments and long lines.  Remove extrneous if.
41172         * symtab.c (symtab_node::make_decl_local): Fix code format.
41173         (symtab_node::set_section_for_node): Fix comment typo.
41174
41175 2017-01-06  Martin Liska  <mliska@suse.cz>
41176
41177         PR bootstrap/79003
41178         * lra-constraints.c: Rename invariant to lra_invariant.
41179         * predict.c (set_even_probabilities): Initialize e to NULL.
41180
41181 2017-01-05  Martin Sebor  <msebor@redhat.com>
41182
41183         PR tree-optimization/78910
41184         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
41185         (format_integer): Correct off-by-one error in the handling
41186         of precision with negative numbers in signed conversions..
41187
41188 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41189
41190         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
41191
41192 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41193
41194         PR tree-optimization/71016
41195         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
41196         factor_out_conditional_conversion.  Formatting fix.
41197         (factor_out_conditional_conversion): Add cond_stmt argument.
41198         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
41199         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
41200         Formatting fix.
41201
41202 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
41203
41204         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
41205         read-rtl-function.o, and selftest-rtl.o.
41206         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
41207         (selftest::aarch64_test_loading_full_dump): New function.
41208         (selftest::aarch64_run_selftests): New function.
41209         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
41210         selftest::aarch64_run_selftests.
41211         * config/i386/i386.c
41212         (selftest::ix86_test_loading_dump_fragment_1): New function.
41213         (selftest::ix86_test_loading_call_insn): New function.
41214         (selftest::ix86_test_loading_full_dump): New function.
41215         (selftest::ix86_test_loading_unspec): New function.
41216         (selftest::ix86_run_selftests): Call the new functions.
41217         * emit-rtl.c (maybe_set_max_label_num): New function.
41218         * emit-rtl.h (maybe_set_max_label_num): New decl.
41219         * function.c (instantiate_decls): Guard call to
41220         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
41221         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
41222         "static".
41223         * gensupport.c (gen_reader::gen_reader): Pass "false"
41224         for new "compact" param of rtx_reader.
41225         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
41226         rather than an empty string for NULL strings.
41227         * read-md.c: Potentially include config.h rather than bconfig.h.
41228         Wrap include of errors.h with #ifdef GENERATOR_FILE.
41229         (have_error): New global, copied from errors.c.
41230         (md_reader::read_name): Rename to...
41231         (md_reader::read_name_1): ...this, adding "out_loc" param,
41232         and converting "missing name or number" to returning false, rather
41233         than failing.
41234         (md_reader::read_name): Reimplement in terms of read_name_1.
41235         (md_reader::read_name_or_nil): New function.
41236         (md_reader::read_string): Handle "(nil)" by returning NULL.
41237         (md_reader::md_reader): Add new param "compact".
41238         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
41239         (md_reader::read_file): New method.
41240         * read-md.h (md_reader::md_reader): Add new param "compact".
41241         (md_reader::read_file): New method.
41242         (md_reader::is_compact): New accessor.
41243         (md_reader::read_name): Convert return type from void to file_location.
41244         (md_reader::read_name_or_nil): New decl.
41245         (md_reader::read_name_1): New decl.
41246         (md_reader::m_compact): New field.
41247         (noop_reader::noop_reader): Pass "false" for new "compact" param
41248         of rtx_reader.
41249         (rtx_reader::rtx_reader): Add new "compact" param.
41250         (rtx_reader::read_rtx_operand): Make virtual and convert return
41251         type from void to rtx.
41252         (rtx_reader::read_until): New decl.
41253         (rtx_reader::handle_any_trailing_information): New virtual function.
41254         (rtx_reader::postprocess): New virtual function.
41255         (rtx_reader::finalize_string): New virtual function.
41256         (rtx_reader::m_in_call_function_usage): New field.
41257         (rtx_reader::m_reuse_rtx_by_id): New field.
41258         * read-rtl-function.c: New file.
41259         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
41260         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
41261         (selftest::verify_three_block_rtl_cfg): New decl.
41262         * read-rtl-function.h: New file.
41263         * read-rtl.c: Potentially include config.h rather than bconfig.h.
41264         For host, include function.h, memmodel.h, and emit-rtl.h.
41265         (one_time_initialization): New function.
41266         (struct compact_insn_name): New struct.
41267         (compact_insn_names): New array.
41268         (find_code): Handle insn codes in compact dumps.
41269         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
41270         (bind_subst_iter_and_attr): Likewise.
41271         (add_condition_to_string): Likewise.
41272         (add_condition_to_rtx): Likewise.
41273         (apply_attribute_uses): Likewise.
41274         (add_current_iterators): Likewise.
41275         (apply_iterators): Likewise.
41276         (initialize_iterators): Guard usage of apply_subst_iterator with
41277         #ifdef GENERATOR_FILE.
41278         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
41279         (md_reader::read_mapping): Likewise.
41280         (add_define_attr_for_define_subst): Likewise.
41281         (add_define_subst_attr): Likewise.
41282         (read_subst_mapping): Likewise.
41283         (check_code_iterator): Likewise.
41284         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
41285         logic to...
41286         (one_time_initialization): New function.
41287         (rtx_reader::read_until): New method.
41288         (read_flags): New function.
41289         (parse_reg_note_name): New function.
41290         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
41291         Handle reuse_rtx ids.
41292         Wrap iterator lookup within #ifdef GENERATOR_FILE.
41293         Add parsing support for RTL dumps, mirroring the special-cases in
41294         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
41295         values, and calling handle_any_trailing_information.
41296         (rtx_reader::read_rtx_operand): Convert return type from void
41297         to rtx, returning return_rtx.  Handle case 'e'.  Call
41298         finalize_string on XSTR and XTMPL fields.
41299         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
41300          "(nil)" values were omitted.  Call the postprocess vfunc on the
41301         return_rtx.
41302         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
41303         class ctor.  Initialize m_in_call_function_usage.  Call
41304         one_time_initialization.
41305         * rtl-tests.c (selftest::test_uncond_jump): Call
41306         set_new_first_and_last_insn.
41307         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
41308         * selftest-rtl.c: New file.
41309         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
41310         (selftest::get_insn_by_uid): New decl.
41311         * selftest-run-tests.c (selftest::run_tests): Call
41312         read_rtl_function_c_tests.
41313         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
41314         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
41315         dumps.
41316
41317 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
41318
41319         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
41320         operands in a special way.  Assert that pos+len <= mode precision.
41321
41322 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41323
41324         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
41325         3 argument Alias with unlimited for the negative form.
41326         (fno-vect-cost-model): Removed.
41327
41328 2017-01-05  Martin Liska  <mliska@suse.cz>
41329
41330         * hsa-gen.c (gen_hsa_divmod): New function.
41331         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
41332
41333 2017-01-05  Martin Liska  <mliska@suse.cz>
41334
41335         PR pch/78970
41336         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
41337         header.
41338
41339 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41340
41341         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
41342         small constant length operands.
41343
41344 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41345
41346         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
41347         between loop iterations.
41348
41349 2017-01-05  Martin Liska  <mliska@suse.cz>
41350
41351         PR sanitizer/78815
41352         * gimplify.c (gimplify_decl_expr): Compare to
41353         asan_poisoned_variables instread of checking flags.
41354         (gimplify_target_expr): Likewise.
41355         (gimplify_expr): Likewise.
41356         (gimplify_function_tree): Conditionally initialize
41357         asan_poisoned_variables.
41358
41359 2017-01-04  Jeff Law  <law@redhat.com>
41360
41361         PR tree-optimizatin/78812
41362         * rtl.h (contains_mem_rtx_p): Prototype.
41363         * ifcvt.c (containts_mem_rtx_p): Move from here to...
41364         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
41365         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
41366         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
41367         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
41368
41369 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41370
41371         * input.c (assert_char_at_range): Default-initialize actual_range.
41372
41373 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41374
41375         * df-scan.c (df_ref_create_structure): Make regno unsigned,
41376         to match the caller.
41377
41378 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41379
41380         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
41381         insns after final jump in test to emit dummy move.
41382
41383 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41384
41385         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
41386         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
41387
41388 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41389
41390         * multiple_target.c (create_dispatcher_calls): Init e_next.
41391         * tree-ssa-loop-split.c (split_loop): Init border.
41392         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
41393         scalar_type.
41394
41395 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
41396
41397         PR target/71977
41398         PR target/70568
41399         PR target/78823
41400         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
41401         (altivec_register_operand): Do not return true if the operand
41402         contains a SUBREG mixing SImode and SFmode.
41403         (vsx_register_operand): Likewise.
41404         (vsx_reg_sfsubreg_ok): New predicate.
41405         (vfloat_operand): Do not return true if the operand contains a
41406         SUBREG mixing SImode and SFmode.
41407         (vint_operand): Likewise.
41408         (vlogical_operand): Likewise.
41409         (gpc_reg_operand): Likewise.
41410         (int_reg_operand): Likewise.
41411         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
41412         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
41413         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
41414         SImode and SFmode.
41415         (rs6000_emit_move_si_sf_subreg): New helper function.
41416         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
41417         fixup SUBREGs involving SImode and SFmode.
41418         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
41419         numbers for the new peephole2 optimization.
41420         (peephole2 for SFmode unions): New peephole2 to optimize cases in
41421         the GLIBC math library that do AND/IOR/XOR operations on single
41422         precision floating point.
41423         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
41424         target macros to say whether we need to avoid SUBREGs mixing
41425         SImode and SFmode.
41426         (TARGET_ALLOW_SF_SUBREG): Likewise.
41427         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
41428         (UNSPEC_SI_FROM_SF): Likewise.
41429         (iorxor): Change spacing.
41430         (and_ior_xor): New iterator for AND, IOR, and XOR.
41431         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
41432         (movdi_from_sf_zero_ext): Likewise.
41433         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
41434         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
41435         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
41436         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
41437         (fms<mode>4): Likewise.
41438         (fnma<mode>4): Likewise.
41439         (fnms<mode>4): Likewise.
41440         (nfma<mode>4): Likewise.
41441         (nfms<mode>4): Likewise.
41442
41443 2017-01-04  Marek Polacek  <polacek@redhat.com>
41444
41445         PR c++/64767
41446         * doc/invoke.texi: Document -Wpointer-compare.
41447
41448 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41449
41450         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
41451         RejectNegative.
41452
41453         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
41454         descriptions for -gdwarf-5 and emit them as uleb128 instead of
41455         2-byte data.
41456
41457 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
41458
41459         PR target/78056
41460         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
41461         documentation of the powerpc_popcntb_ok attribute.
41462         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
41463         code to issue warning messages if a requested CPU configuration is
41464         not supported by the binary (assembler and loader) toolchain.
41465         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
41466         made to define a built-in function that has been disabled.
41467         (paired_init_builtins): Add assertion to prevent ICE if attempt is
41468         made to define a built-in function that has been disabled.
41469         (altivec_init_builtins): Add comment explaining why definition
41470         of the DST built-in functions is not preceded by an assertion
41471         check.  Add assertions to prevent ICE if attempts are made to
41472         define an altivec predicate or an abs* built-in function that has
41473         been disabled.
41474         (htm_init_builtins): Add comment explaining why definition of the
41475         htm built-in functions is not preceded by an assertion check.
41476
41477 2017-01-04  Jeff Law  <law@redhat.com>
41478
41479         PR tree-optimizatin/67955
41480         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
41481         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
41482         the points-to solution does not include pt_null.  Use DECL_PT_UID
41483         unconditionally.
41484
41485 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
41486
41487         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
41488         Use gen_int_mode instead of gen_lopwart for const_int operands.
41489
41490 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41491
41492         PR tree-optimization/71563
41493         * match.pd: Simplify X << Y into X if Y is known to be 0 or
41494         out of range value - has low bits known to be zero.
41495
41496 2017-01-04  Alan Modra  <amodra@gmail.com>
41497
41498         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
41499         * configure: Regenerate.
41500         * config.in: Regenerate.
41501
41502 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41503
41504         PR bootstrap/77569
41505         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
41506         a substring of the message, but strcmp with the whole message.  Ifdef
41507         ENABLE_NLS, translate the message first using dgettext.
41508
41509 2017-01-03  Jeff Law  <law@redhat.com>
41510
41511         PR tree-optimizatin/78856
41512         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
41513         (mark_threaded_blocks): Remove code to truncate thread paths that
41514         cross multiple loop headers.  Instead invalidate the cached loop
41515         iteration information and handle case of a thread path walking
41516         into an irreducible region.
41517
41518 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
41519
41520         PR target/78900
41521         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
41522         assertions.  Add support for doing the signbit if the IEEE 128-bit
41523         floating point value is in a GPR.
41524         * config/rs6000/rs6000.md (Fsignbit): Delete.
41525         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
41526         Update the length attribute if the value is in a GPR.
41527         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
41528         the sign or zero extension instruction, since the value is always 0/1.
41529         (signbit<mode>2_dm2): Delete using <Fsignbit>.
41530
41531         PR target/78953
41532         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
41533         extracting SImode to a GPR register so that we can generate a
41534         store, limit the vector to be in a traditional Altivec register
41535         for the vextuwrx instruction.
41536
41537 2017-01-03  Ian Lance Taylor  <iant@google.com>
41538
41539         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
41540
41541 2017-01-03  Martin Sebor  <msebor@redhat.com>
41542
41543         PR tree-optimization/78696
41544         * gimple-ssa-sprintf.c (format_floating): Correct handling of
41545         precision.  Use MPFR for %f for greater fidelity.  Correct handling
41546         of %g.
41547         (pass_sprintf_length::compute_format_length): Set width and precision
41548         specified by asrerisk to void_node for vararg functions.
41549         (try_substitute_return_value): Adjust dump output.
41550
41551 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
41552
41553         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
41554
41555 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
41556
41557         * doc/invoke.texi (SPARC options): Document -mlra as the default.
41558         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
41559         -mlra/-mno-lra was passed to the compiler.
41560
41561 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
41562
41563         PR rtl-optimization/65618
41564         * emit-rtl.c (try_split): Move initialization of "before" and
41565         "after" to just before the call to emit_insn_after_setloc.
41566
41567 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
41568
41569         * doc/md.texi (Standard Names): Remove reference to Java frontend.
41570
41571 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
41572
41573         * dwarf2out.c (gen_enumeration_type_die): When
41574         -gno-strict-dwarf, add a DW_AT_encoding attribute.
41575
41576 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
41577
41578         PR tree-optimization/78965
41579         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
41580         Change first argument from const call_info & to call_info &.  For %n
41581         set info.nowrite to false.
41582
41583         PR middle-end/78901
41584         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
41585         possibly throwing calls.
41586
41587         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
41588         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
41589         and fns handling, rather than in a separate case SSA_NAME.
41590
41591 2017-01-02  Jeff Law  <law@redhat.com>
41592
41593         * config/darwin-driver.c (darwin_driver_init): Const-correctness
41594         fixes for first_period and second_period variables.
41595
41596 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
41597
41598         PR target/78967
41599         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
41600         (*insvqi_1): New insn pattern.
41601         (*insvqi_1_mem_rex64): Ditto.
41602         (*insvqi_2): Ditto.
41603         (*insvqi_3): Rename from *insvqi.
41604
41605         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
41606
41607 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
41608
41609         * doc/cfg.texi (Edges): Remove reference to Java.
41610         (Maintaining the CFG): Ditto.
41611
41612 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41613
41614         PR middle-end/77674
41615         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
41616         transparent aliases.
41617
41618 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41619
41620         PR middle-end/77484
41621         * predict.def (PRED_CALL): Update hitrate.
41622         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
41623         * predict.c (tree_estimate_probability_bb): Split CALL predictor
41624         into direct/indirect/polymorphic variants.
41625
41626 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
41627
41628         Update copyright years.
41629
41630         * gcc.c (process_command): Update copyright notice dates.
41631         * gcov-dump.c (print_version): Ditto.
41632         * gcov.c (print_version): Ditto.
41633         * gcov-tool.c (print_version): Ditto.
41634         * gengtype.c (create_file): Ditto.
41635         * doc/cpp.texi: Bump @copying's copyright year.
41636         * doc/cppinternals.texi: Ditto.
41637         * doc/gcc.texi: Ditto.
41638         * doc/gccint.texi: Ditto.
41639         * doc/gcov.texi: Ditto.
41640         * doc/install.texi: Ditto.
41641         * doc/invoke.texi: Ditto.
41642 \f
41643 Copyright (C) 2017 Free Software Foundation, Inc.
41644
41645 Copying and distribution of this file, with or without modification,
41646 are permitted in any medium without royalty provided the copyright
41647 notice and this notice are preserved.