m68k.md (ashrdi3_const1, [...]): Add CC_STATUS_INIT.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2017-12-28  Andreas Schwab  <schwab@linux-m68k.org>
2
3         * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add
4         CC_STATUS_INIT.
5
6 2017-12-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
7
8         * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New.
9         (aarch64_ld1x2<VDC:mode>): Likewise.
10         (aarch64_simd_ld1<mode>_x2): Likewise.
11         (aarch64_simd_ld1<mode>_x2): Likewise.
12         * config/aarch64/arm_neon.h (vld1_u8_x2): New.
13         (vld1_s8_x2): Likewise.
14         (vld1_u16_x2): Likewise.
15         (vld1_s16_x2): Likewise.
16         (vld1_u32_x2): Likewise.
17         (vld1_s32_x2): Likewise.
18         (vld1_u64_x2): Likewise.
19         (vld1_s64_x2): Likewise.
20         (vld1_f16_x2): Likewise.
21         (vld1_f32_x2): Likewise.
22         (vld1_f64_x2): Likewise.
23         (vld1_p8_x2): Likewise.
24         (vld1_p16_x2): Likewise.
25         (vld1_p64_x2): Likewise.
26         (vld1q_u8_x2): Likewise.
27         (vld1q_s8_x2): Likewise.
28         (vld1q_u16_x2): Likewise.
29         (vld1q_s16_x2): Likewise.
30         (vld1q_u32_x2): Likewise.
31         (vld1q_s32_x2): Likewise.
32         (vld1q_u64_x2): Likewise.
33         (vld1q_s64_x2): Likewise.
34         (vld1q_f16_x2): Likewise.
35         (vld1q_f32_x2): Likewise.
36         (vld1q_f64_x2): Likewise.
37         (vld1q_p8_x2): Likewise.
38         (vld1q_p16_x2): Likewise.
39         (vld1q_p64_x2): Likewise.
40
41 2017-12-27  Martin Liska  <mliska@suse.cz>
42
43         PR tree-optimization/83552
44         * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
45         of get_string_lenth to a SSA_NAME if not a GIMPLE value.
46
47 2017-12-27  Tom de Vries  <tom@codesourcery.com>
48
49         * config/nvptx/nvptx.c (nvptx_option_override): Disable
50         -gstatement-frontiers.
51
52 2017-12-26  Alexander Monakov  <amonakov@ispras.ru>
53
54         PR rtl-optimization/83513
55         * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
56         before priority comparison.
57
58 2017-12-25  Jakub Jelinek  <jakub@redhat.com>
59
60         PR target/83488
61         * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from
62         ix86_isa_flags2 to ix86_isa_flags.
63         * config/i386/i386-c.c (ix86_target_macros_internal): Test
64         OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in
65         isa_flags rather than isa_flags2.
66         * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq
67         and -mavx512bitalg from isa2_opts to isa_opts.
68         (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ
69         in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit
70         and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2.
71         Formatting fixes.
72         (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or
73         OPTION_MASK_ISA_AVX512F ored with another option similarly to
74         OPTION_MASK_ISA_AVX512VL.  Even for OPTION_MASK_ISA_AVX512VL don't
75         clear it if mask is just OPTION_MASK_ISA_AVX512VL itself.
76         (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and
77         OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle
78         OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way.
79         * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG
80         builtins from bdesc_args2 to bdesc_args section.
81         (__builtin_ia32_compressstoreuqi512_mask,
82         __builtin_ia32_compressstoreuhi512_mask,
83         __builtin_ia32_compressstoreuqi256_mask,
84         __builtin_ia32_expandloadqi512_mask,
85         __builtin_ia32_expandloadqi512_maskz,
86         __builtin_ia32_expandloadhi512_mask,
87         __builtin_ia32_expandloadhi512_maskz,
88         __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask,
89         __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask,
90         __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask,
91         __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask,
92         __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask,
93         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask,
94         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask,
95         __builtin_ia32_vpshldv_v32hi_maskz,
96         __builtin_ia32_vpopcountb_v64qi_mask,
97         __builtin_ia32_vpopcountw_v32hi_mask,
98         __builtin_ia32_vpshufbitqmb512_mask,
99         __builtin_ia32_vpshufbitqmb256_mask): Add
100         " | OPTION_MASK_ISA_AVX512BW".
101         (__builtin_ia32_expandloadqi256_mask,
102         __builtin_ia32_expandloadqi256_maskz,
103         __builtin_ia32_vpopcountb_v32qi_mask): Add
104         " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW".
105         (__builtin_ia32_expandloadhi256_mask,
106         __builtin_ia32_expandloadhi256_maskz,
107         __builtin_ia32_expandloadqi128_mask,
108         __builtin_ia32_expandloadqi128_maskz,
109         __builtin_ia32_expandloadhi128_mask,
110         __builtin_ia32_expandloadhi128_maskz,
111         __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask,
112         __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask,
113         __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask,
114         __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask,
115         __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask,
116         __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask,
117         __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask,
118         __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask,
119         __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask,
120         __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask,
121         __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask,
122         __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask,
123         __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask,
124         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi,
125         __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz,
126         __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask,
127         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si,
128         __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz,
129         __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask,
130         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di,
131         __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz,
132         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
133         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
134         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
135         __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask,
136         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si,
137         __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz,
138         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
139         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
140         __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz,
141         __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi,
142         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi,
143         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
144         __builtin_ia32_vpopcountw_v8hi_mask): Add
145         " | OPTION_MASK_ISA_AVX512VL".
146         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
147         _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
148         _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64,
149         _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
150         _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64,
151         _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32,
152         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
153         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16,
154         _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32,
155         _mm512_shldv_epi64, _mm512_mask_shldv_epi64,
156         _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics.
157         * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask,
158         _mm_mask_bitshuffle_epi64_mask): Likewise.
159         * common/config/i386/i386-common.c
160         (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
161         OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET.
162         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
163         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and
164         OPTION_MASK_ISA_AVX512BITALG_UNSET.
165         (OPTION_MASK_ISA2_AVX512F_UNSET,
166         OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define.
167         (ix86_handle_option): For -mno-general-regs-only, clear from
168         ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than
169         just OPTION_MASK_ISA_MPX.  For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and
170         -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from
171         ix86_isa_flags2.  For -mno-avx512f likewise, instead of masking
172         individually listed ISAs.  For -m{,no-}avx512{vpopcntdq,bitalg} adjust
173         for moving from ix86_isa_flags2 to ix86_isa_flags.
174
175 2017-12-23  Jakub Jelinek  <jakub@redhat.com>
176
177         PR c++/83553
178         * fold-const.c (struct contains_label_data): New type.
179         (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
180         inside of a SWITCH_BODY seen during the walk.
181         (contains_label_p): Use walk_tree instead of
182         walk_tree_without_duplicates, prepare data for contains_label_1 and
183         provide own pset.
184
185 2017-12-22  Jakub Jelinek  <jakub@redhat.com>
186
187         PR debug/83547
188         * tree-iterator.c (alloc_stmt_list): Start with cleared
189         TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated
190         or old one reused.
191
192         PR target/83488
193         * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor
194         enable avx512f explicitly in #pragma GCC target.
195         * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si,
196         __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz,
197         __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask,
198         __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si,
199         __builtin_ia32_vpdpbusds_v8si_mask,
200         __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si,
201         __builtin_ia32_vpdpbusds_v4si_mask,
202         __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si,
203         __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz,
204         __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask,
205         __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si,
206         __builtin_ia32_vpdpwssds_v8si_mask,
207         __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si,
208         __builtin_ia32_vpdpwssds_v4si_mask,
209         __builtin_ia32_vpdpwssds_v4si_maskz): Use
210         OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of
211         just OPTION_MASK_ISA_AVX512VNNI.
212
213 2017-12-22  Martin Jambor  <mjambor@suse.cz>
214
215         PR lto/82027
216         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
217         clones.
218
219 2017-12-22  Julia Koval  <julia.koval@intel.com>
220             Sebastian Peryt  <sebastian.peryt@intel.com>
221
222         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET,
223         OPTION_MASK_ISA_AVX512BITALG_UNSET): New.
224         (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting.
225         * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h.
226         * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16,
227         _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16,
228         _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8,
229         _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8,
230         _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16,
231         _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
232         _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8,
233         _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8,
234         _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics.
235         * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64,
236         _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32,
237         _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64,
238         _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64,
239         _mm256_maskz_popcnt_epi64): New intrinsics.
240         * config/i386/cpuid.h (bit_AVX512BITALG): New bit.
241         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg.
242         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI,
243         V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI,
244         V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types.
245         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di,
246         __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di,
247         __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si,
248         __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si,
249         __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi,
250         __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi,
251         __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi,
252         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi,
253         __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi,
254         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
255         __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask,
256         __builtin_ia32_vpshufbitqmb256_mask,
257         __builtin_ia32_vpshufbitqmb512_mask): New builtins.
258         * config/i386/i386-c.c (__AVX512BITALG__): New.
259         * config/i386/i386.c (isa2_opts): Add -mavx512bitalg.
260         (ix86_valid_target_attribute_inner_p): Ditto.
261         (ix86_expand_args_builtin): Handle new types.
262         * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New.
263         * config/i386/i386.opt: Add -mavx512bitalg.
264         * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and
265         avx512bitalgintrin.h.
266         * config/i386/sse.md (VI48_AVX512VLBW): New iterator.
267         (vpopcount<mode><mask_name>): Add more types.
268         (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New.
269         * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq.
270
271 2017-12-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
272
273         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET):
274         Or in OPTION_MASK_ISA_AVX512F_SET.
275         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
276         OPTION_MASK_ISA_AVX512VNNI_UNSET.
277         (ix86_handle_option): Adjust for
278         OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags.
279         * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2
280         section to ARGS.
281         * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in
282         isa_flag instead of isa_flag2.
283         * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from
284         isa_opts2 to isa_opts.
285         * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2
286         to ix86_isa_flags.
287
288 2017-12-22  Mike Stump  <mikestump@comcast.net>
289             Eric Botcazou  <ebotcazou@adacore.com>
290
291         * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll.
292
293 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
294
295         PR middle-end/83487
296         * config/i386/i386.c (ix86_function_arg_boundary): Return
297         PARM_BOUNDARY for TYPE_EMPTY_P types.
298
299         PR c/83448
300         * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
301         if navail is >= dir.len.
302
303 2017-12-21  Steve Ellcey  <sellcey@cavium.com>
304
305         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix
306         triplet for ilp32.
307
308 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
309
310         PR rtl-optimization/80747
311         PR rtl-optimization/83512
312         * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
313         succ edge from ENTRY, copy partition from e->dest to the newly
314         created bb.
315         * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
316         ENTRY, use BB_PARTITION of its successor block as current_partition.
317         Don't copy partition when splitting succ edge from ENTRY.
318
319         PR tree-optimization/83523
320         * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
321         for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
322         (convert_mult_to_fma): Likewise.
323
324         PR tree-optimization/83521
325         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
326         gimple_build_assign without code on result of
327         fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
328         a VIEW_CONVERT_EXPR.
329
330 2017-12-21  Andrew Pinski  <apinski@cavium.com>
331             Steve Ellcey  <sellcey@cavium.com>
332
333         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle
334         multi-arch for ilp32.
335
336 2017-12-21  Uros Bizjak  <ubizjak@gmail.com>
337
338         PR target/83467
339         * config/i386/i386.md (*ashl<mode>3_mask): Add operand
340         constraints to operand 2.
341         (*ashl<mode>3_mask_1): Ditto.
342         (*<shift_insn><mode>3_mask): Ditto.
343         (*<shift_insn><mode>3_mask_1): Ditto.
344         (*<rotate_insn><mode>3_mask): Ditto.
345         (*<rotate_insn><mode>3_mask_1): Ditto.
346
347 2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
348
349         * reorg.c (make_return_insns): Reemit each insn with its own location.
350
351 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
352
353         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
354         generation for cases where splatting a value is not useful.
355         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
356         across a vec_duplicate and a paradoxical subreg forming a vector
357         mode to a vec_concat.
358
359 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
360
361         * combine.c (simplify_set): Do not transform subregs to zero_extends
362         if the destination is not a scalar int mode.
363
364 2017-12-21  Eric Botcazou  <ebotcazou@adacore.com>
365
366         PR c++/82872
367         * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the
368         shared zero if the input has overflowed.
369
370 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
371
372         * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod
373         support for Cortex-A55 and Cortex-A75.
374
375 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
376
377         * common/config/arm/arm-common.c (compare_opt_names): Add function
378         comment.  Use strcmp instead of manual loop.
379
380 2017-12-21  Martin Liska  <mliska@suse.cz>
381
382         PR gcov-profile/83509
383         * gcov-dump.c (dump_gcov_file): Do not read info about
384         support_unexecuted_blocks for gcda files.
385
386 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
387
388         PR rtl-optimization/82973
389         * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ...
390         (valid_for_const_vector_p): ... this.
391         * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ...
392         (valid_for_const_vector_p): ... this.  Adjust function comment.
393         (gen_vec_duplicate): Adjust caller.
394         * optabs.c (expand_vector_broadcast): Likewise.
395         * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into
396         CONST_VECTOR if some element isn't simplified valid_for_const_vector_p
397         constant.
398         (simplify_const_binary_operation): Likewise.  Use CONST_FIXED_P macro
399         instead of GET_CODE == CONST_FIXED.
400         (simplify_subreg): Use CONST_FIXED_P macro instead of
401         GET_CODE == CONST_FIXED.
402
403         PR target/83488
404         * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and
405         -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe,
406         -mclzero and -mmwaitx entries from isa_opts to isa_opts2.
407         (ix86_option_override_internal): Adjust for
408         OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2
409         and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags.
410         (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks.
411         (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling.
412         Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX
413         and OPTION_MASK_ISA_CLZERO builtins.  Use def_builtin instead of
414         def_builtin2 for CET builtins.
415         (ix86_expand_builtin): Remove bdesc_special_args2 handling.  Fix
416         up formatting in IX86_BUILTIN_RDPID code.
417         * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2
418         section to SPECIAL_ARGS and from ARGS2 section to ARGS.
419         * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from
420         ix86_isa_flags2 to ix86_isa_flags.
421         (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to
422         ix86_isa_flags2.
423         * config/i386/i386-c.c (ix86_target_macros_internal): Check for
424         OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag.
425         Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead
426         of isa_flag2.
427         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET):
428         Or in OPTION_MASK_ISA_AVX512F_SET.
429         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
430         OPTION_MASK_ISA_AVX512VBMI2_UNSET.
431         (ix86_handle_option): Adjust for
432         OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags
433         and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2.
434
435 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
436             Alan Hayward  <alan.hayward@arm.com>
437             David Sherwood  <david.sherwood@arm.com>
438
439         * tree-data-ref.h (prune_runtime_alias_test_list): Take the
440         factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
441         * tree-data-ref.c (prune_runtime_alias_test_list): Likewise.
442         Track polynomial offsets.
443
444 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
445             Alan Hayward  <alan.hayward@arm.com>
446             David Sherwood  <david.sherwood@arm.com>
447
448         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
449         Treat drb->init as a poly_int.  Fail if its misalignment wrt
450         vector_alignment isn't known.
451
452 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
453             Alan Hayward  <alan.hayward@arm.com>
454             David Sherwood  <david.sherwood@arm.com>
455
456         * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold
457         field.
458         (LOOP_VINFO_VERSIONING_THRESHOLD): New macro
459         (vect_loop_versioning): Take the loop versioning threshold as a
460         separate parameter.
461         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
462         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
463         versioning_threshold.
464         (vect_analyze_loop_2): Compute the loop versioning threshold
465         whenever loop versioning is needed, and store it in the new
466         field rather than combining it with the cost model threshold.
467         (vect_transform_loop): Update call to vect_loop_versioning.
468         Try to combine the loop versioning and cost thresholds here.
469
470 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
471             Alan Hayward  <alan.hayward@arm.com>
472             David Sherwood  <david.sherwood@arm.com>
473
474         * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as
475         poly_uint64_pod rather than an unsigned HOST_WIDE_INT.
476         * tree-loop-distribution.c (classify_builtin_st): Update accordingly.
477         * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from
478         an unsigned HOST_WIDE_INT to a poly_uint64_pod.
479         (group_compare_offset): Update accordingly.
480         (split_small_address_groups_p): Likewise.
481         (record_use): Take addr_offset as a poly_uint64 rather than
482         an unsigned HOST_WIDE_INT.
483         (strip_offset): Return the offset as a poly_uint64 rather than
484         an unsigned HOST_WIDE_INT.
485         (record_group_use, split_address_groups): Track polynomial offsets.
486         (add_iv_candidate_for_use): Likewise.
487         (addr_offset_valid_p): Take the offset as a poly_int64 rather
488         than a HOST_WIDE_INT.
489         (strip_offset_1): Return the offset as a poly_int64 rather than
490         a HOST_WIDE_INT.
491
492 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
493             Alan Hayward  <alan.hayward@arm.com>
494             David Sherwood  <david.sherwood@arm.com>
495
496         * tree.h (get_binfo_at_offset): Take the offset as a poly_int64
497         rather than a HOST_WIDE_INT.
498         * tree.c (get_binfo_at_offset): Likewise.
499
500 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
501             Alan Hayward  <alan.hayward@arm.com>
502             David Sherwood  <david.sherwood@arm.com>
503
504         * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64
505         rather than a HOST_WIDE_INT.
506         * tree-sra.c (build_ref_for_offset): Likewise.
507
508 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
509             Alan Hayward  <alan.hayward@arm.com>
510             David Sherwood  <david.sherwood@arm.com>
511
512         * fold-const.h (mem_ref_offset): Return a poly_offset_int rather
513         than an offset_int.
514         * tree.c (mem_ref_offset): Likewise.
515         (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints.
516         * builtins.c (get_object_alignment_2): Likewise.
517         * expr.c (get_inner_reference, expand_expr_real_1): Likewise.
518         * gimple-fold.c (get_base_constructor): Likewise.
519         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
520         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
521         Likewise.
522         * ipa-polymorphic-call.c
523         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
524         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
525         (get_ancestor_addr_info): Likewise.
526         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise.
527         * match.pd: Likewise.
528         * tree-data-ref.c (dr_analyze_innermost): Likewise.
529         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
530         * tree-eh.c (tree_could_trap_p): Likewise.
531         * tree-object-size.c (addr_object_size): Likewise.
532         * tree-ssa-address.c (copy_ref_info): Likewise.
533         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
534         (indirect_refs_may_alias_p): Likewise.
535         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
536         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
537         (non_rewritable_mem_ref_base): Likewise.
538         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
539         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
540         * varasm.c (decode_addr_const): 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         * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial
547         offsets for MEM_REFs.
548
549 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
550             Alan Hayward  <alan.hayward@arm.com>
551             David Sherwood  <david.sherwood@arm.com>
552
553         * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
554         as a poly_uint64 rather than an unsigned int.
555         * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.
556
557 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
558             Alan Hayward  <alan.hayward@arm.com>
559             David Sherwood  <david.sherwood@arm.com>
560
561         * varasm.c (addr_const::offset): Change from HOST_WIDE_INT
562         to poly_int64.
563         (decode_addr_const): Update accordingly.
564
565 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
566             Alan Hayward  <alan.hayward@arm.com>
567             David Sherwood  <david.sherwood@arm.com>
568
569         * tree.h (bit_field_size, bit_field_offset): New functions.
570         * hsa-gen.c (gen_hsa_addr): Use them.
571         * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise.
572         (simplify_vector_constructor): Likewise.
573         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
574         * tree-cfg.c (verify_expr): Require the sizes and offsets of a
575         BIT_FIELD_REF to be poly_uint64s rather than uhwis.
576         * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with
577         tree_fits_uhwi_p.
578
579 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
580             Alan Hayward  <alan.hayward@arm.com>
581             David Sherwood  <david.sherwood@arm.com>
582
583         * expr.h (emit_group_load, emit_group_load_into_temps)
584         (emit_group_store): Take the size as a poly_int64 rather than an int.
585         * expr.c (emit_group_load_1, emit_group_load): Likewise.
586         (emit_group_load_into_temp, emit_group_store): Likewise.
587
588 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
589             Alan Hayward  <alan.hayward@arm.com>
590             David Sherwood  <david.sherwood@arm.com>
591
592         * ira-int.h (ira_spilled_reg_stack_slot::width): Change from
593         an unsigned int to a poly_uint64.
594         * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the
595         sizes as poly_uint64s rather than unsigned ints.
596         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot):
597         Likewise.
598
599 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
600             Alan Hayward  <alan.hayward@arm.com>
601             David Sherwood  <david.sherwood@arm.com>
602
603         * lra-constraints.c (emit_inc): Change inc_amount from an int
604         to a poly_int64.
605
606 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
607             Alan Hayward  <alan.hayward@arm.com>
608             David Sherwood  <david.sherwood@arm.com>
609
610         * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT
611         to a poly_uint64.
612         (add_stack_var, stack_var_cmp, partition_stack_vars)
613         (dump_stack_var_partition): Update accordingly.
614         (alloc_stack_frame_space): Take the size as a poly_int64 rather
615         than a HOST_WIDE_INT.
616         (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes.
617         (defer_stack_allocation, estimated_stack_frame_size): Likewise.
618         (account_stack_vars, expand_one_var): Likewise.  Return a poly_uint64
619         rather than a HOST_WIDE_INT.
620
621 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
622             Alan Hayward  <alan.hayward@arm.com>
623             David Sherwood  <david.sherwood@arm.com>
624
625         * target.def (return_pops_args): Treat both the input and output
626         sizes as poly_int64s rather than HOST_WIDE_INTS.
627         * targhooks.h (default_return_pops_args): Update accordingly.
628         * targhooks.c (default_return_pops_args): Likewise.
629         * doc/tm.texi: Regenerate.
630         * emit-rtl.h (incoming_args): Change pops_args, size and
631         outgoing_args_size from int to poly_int64_pod.
632         * function.h (expr_status): Change x_pending_stack_adjust and
633         x_stack_pointer_delta from int to poly_int64.
634         (args_size::constant): Change from HOST_WIDE_INT to poly_int64.
635         (ARGS_SIZE_RTX): Update accordingly.
636         * calls.c (highest_outgoing_arg_in_use): Change from int to
637         unsigned int.
638         (stack_usage_watermark, stored_args_watermark): New variables.
639         (stack_region_maybe_used_p, mark_stack_region_used): New functions.
640         (emit_call_1): Change the stack_size and rounded_stack_size
641         parameters from HOST_WIDE_INT to poly_int64.  Track n_popped
642         as a poly_int64.
643         (save_fixed_argument_area): Check stack_usage_watermark.
644         (initialize_argument_information): Change old_pending_adj from
645         a HOST_WIDE_INT * to a poly_int64_pod *.
646         (compute_argument_block_size): Return the size as a poly_int64
647         rather than an int.
648         (finalize_must_preallocate): Track polynomial argument sizes.
649         (compute_argument_addresses): Likewise.
650         (internal_arg_pointer_based_exp): Track polynomial offsets.
651         (mem_overlaps_already_clobbered_arg_p): Rename to...
652         (mem_might_overlap_already_clobbered_arg_p): ...this and take the
653         size as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
654         Check stored_args_used_watermark.
655         (load_register_parameters): Update accordingly.
656         (check_sibcall_argument_overlap_1): Likewise.
657         (combine_pending_stack_adjustment_and_call): Take the unadjusted
658         args size as a poly_int64 rather than an int.  Return a bool
659         indicating whether the optimization was possible and return
660         the new adjustment by reference.
661         (check_sibcall_argument_overlap): Track polynomail argument sizes.
662         Update stored_args_watermark.
663         (can_implement_as_sibling_call_p): Handle polynomial argument sizes.
664         (expand_call): Likewise.  Maintain stack_usage_watermark and
665         stored_args_watermark.  Update calls to
666         combine_pending_stack_adjustment_and_call.
667         (emit_library_call_value_1): Handle polynomial argument sizes.
668         Call stack_region_maybe_used_p and mark_stack_region_used.
669         Maintain stack_usage_watermark.
670         (store_one_arg): Likewise.  Update call to
671         mem_overlaps_already_clobbered_arg_p.
672         * config/arm/arm.c (arm_output_function_prologue): Add a cast to
673         HOST_WIDE_INT.
674         * config/avr/avr.c (avr_outgoing_args_size): Likewise.
675         * config/microblaze/microblaze.c (microblaze_function_prologue):
676         Likewise.
677         * config/cr16/cr16.c (cr16_return_pops_args): Update for new
678         TARGET_RETURN_POPS_ARGS interface.
679         (cr16_compute_frame, cr16_initial_elimination_offset): Add casts
680         to HOST_WIDE_INT.
681         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
682         * config/i386/i386.c (ix86_return_pops_args): Update for new
683         TARGET_RETURN_POPS_ARGS interface.
684         (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT.
685         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
686         * config/m68k/m68k.c (m68k_return_pops_args): Update for new
687         TARGET_RETURN_POPS_ARGS interface.
688         * config/vax/vax.c (vax_return_pops_args): Likewise.
689         * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64.
690         (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size.
691         * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise.
692         * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
693         * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
694         * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise.
695         * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
696         * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
697         * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise.
698         * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust
699         and x_stack_pointer_delta from int to poly_int64.
700         * dojump.c (do_pending_stack_adjust): Update accordingly.
701         * explow.c (allocate_dynamic_stack_space): Handle polynomial
702         stack_pointer_deltas.
703         * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64.
704         (pad_to_arg_alignment): Track polynomial offsets.
705         (assign_parm_find_stack_rtl): Likewise.
706         (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes.
707         * toplev.c (output_stack_usage): Update reference to
708         current_function_pushed_stack_size.
709
710 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
711             Alan Hayward  <alan.hayward@arm.com>
712             David Sherwood  <david.sherwood@arm.com>
713
714         * function.c (in_arg_offset, var_offset, dynamic_offset)
715         (out_arg_offset, cfa_offset): Change from int to poly_int64.
716         (instantiate_new_reg): Return the new offset as a poly_int64_pod
717         rather than a HOST_WIDE_INT.
718         (instantiate_virtual_regs_in_rtx): Track polynomial offsets.
719         (instantiate_virtual_regs_in_insn): Likewise.
720
721 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
722             Alan Hayward  <alan.hayward@arm.com>
723             David Sherwood  <david.sherwood@arm.com>
724
725         * rtl.h (get_args_size, add_args_size_note): New functions.
726         (find_args_size_adjust): Return a poly_int64 rather than a
727         HOST_WIDE_INT.
728         (fixup_args_size_notes): Likewise.  Make the same change to the
729         end_args_size parameter.
730         * rtlanal.c (get_args_size, add_args_size_note): New functions.
731         * builtins.c (expand_builtin_trap): Use add_args_size_note.
732         * calls.c (emit_call_1): Likewise.
733         * explow.c (adjust_stack_1): Likewise.
734         * cfgcleanup.c (old_insns_match_p): Update use of
735         find_args_size_adjust.
736         * combine.c (distribute_notes): Track polynomial arg sizes.
737         * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size,
738         end_true_args_size, beg_delay_args_size and end_delay_args_size
739         from HOST_WIDE_INT to poly_int64.
740         (add_cfi_args_size): Take the args_size as a poly_int64 rather
741         than a HOST_WIDE_INT.
742         (notice_args_size, notice_eh_throw, maybe_record_trace_start)
743         (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track
744         polynomial arg sizes.
745         * emit-rtl.c (try_split): Use get_args_size.
746         * recog.c (peep2_attempt): Likewise.
747         * reload1.c (reload_as_needed): Likewise.
748         * expr.c (find_args_size_adjust): Return the adjustment as a
749         poly_int64 rather than a HOST_WIDE_INT.
750         (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT
751         to a poly_int64 and change the return type in the same way.
752         (emit_single_push_insn): Track polynomial arg sizes.
753
754 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
755             Alan Hayward  <alan.hayward@arm.com>
756             David Sherwood  <david.sherwood@arm.com>
757
758         * expr.h (push_block, emit_push_insn): Change the "extra" parameter
759         from HOST_WIDE_INT to poly_int64.
760         * expr.c (push_block, emit_push_insn): Likewise.
761
762 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
763             Alan Hayward  <alan.hayward@arm.com>
764             David Sherwood  <david.sherwood@arm.com>
765
766         * function.h (frame_space): Change start and length from HOST_WIDE_INT
767         to poly_int64.
768         (get_frame_size): Return the size as a poly_int64 rather than a
769         HOST_WIDE_INT.
770         (frame_offset_overflow): Take the offset as a poly_int64 rather
771         than a HOST_WIDE_INT.
772         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
773         (assign_stack_temp): Likewise for the size.
774         * function.c (get_frame_size): Return a poly_int64 rather than
775         a HOST_WIDE_INT.
776         (frame_offset_overflow): Take the offset as a poly_int64 rather
777         than a HOST_WIDE_INT.
778         (try_fit_stack_local): Take the start, length and size as poly_int64s
779         rather than HOST_WIDE_INTs.  Return the offset as a poly_int64_pod
780         rather than a HOST_WIDE_INT.
781         (add_frame_space): Take the start and end as poly_int64s rather than
782         HOST_WIDE_INTs.
783         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
784         (assign_stack_temp): Likewise for the size.
785         (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
786         to poly_int64.
787         (find_temp_slot_from_address): Handle polynomial offsets.
788         (combine_temp_slots): Likewise.
789         * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
790         to poly_int64.
791         * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
792         poly_int64 rather than a HOST_WIDE_INT.
793         (expand_one_stack_var_at): Take the offset as a poly_int64 rather
794         than a HOST_WIDE_INT.
795         (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
796         polynomial frame offsets.
797         * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
798         as a poly_int64 rather than an int.
799         * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
800         * config/v850/v850-protos.h (compute_frame_size): Likewise.
801         * config/v850/v850.c (compute_frame_size): Likewise.
802         * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
803         * config/xtensa/xtensa.c (compute_frame_size): Likewise.
804         * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
805         * config/pa/pa.c (pa_compute_frame_size): Likewise.
806         * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
807         rather than a HOST_WIDE_INT.
808         * explow.c (get_dynamic_stack_base): Likewise.
809         * final.c (final_start_function): Use the constant lower bound
810         of the frame size for -Wframe-larger-than.
811         * ira.c (do_reload): Adjust for new get_frame_size return type.
812         * lra.c (lra): Likewise.
813         * reload1.c (reload): Likewise.
814         * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
815         * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
816         * rtlanal.c (get_initial_register_offset): Return the offset as
817         a poly_int64 rather than a HOST_WIDE_INT.
818
819 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
820             Alan Hayward  <alan.hayward@arm.com>
821             David Sherwood  <david.sherwood@arm.com>
822
823         * reload1.c (elim_table): Change initial_offset, offset and
824         previous_offset from HOST_WIDE_INT to poly_int64_pod.
825         (offsets_at): Change the target array's element type from
826         HOST_WIDE_INT to poly_int64_pod.
827         (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn)
828         (elimination_costs_in_insn, update_eliminable_offsets)
829         (verify_initial_elim_offsets, set_offsets_for_label)
830         (init_eliminable_invariants): Update after above changes.
831
832 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
833             Alan Hayward  <alan.hayward@arm.com>
834             David Sherwood  <david.sherwood@arm.com>
835
836         * reload.h (reload::inc): Change from an int to a poly_int64_pod.
837         * reload.c (combine_reloads, debug_reload_to_stream): Likewise.
838         (decomposition): Change start and end from HOST_WIDE_INT
839         to poly_int64_pod.
840         (decompose, immune_p): Update accordingly.
841         (find_inc_amount): Return a poly_int64 rather than an int.
842         * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
843         rather than an int.
844
845 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
846             Alan Hayward  <alan.hayward@arm.com>
847             David Sherwood  <david.sherwood@arm.com>
848
849         * tree.h (get_inner_reference): Return the bitsize and bitpos
850         as poly_int64_pods rather than HOST_WIDE_INT.
851         * fold-const.h (ptr_difference_const): Return the pointer difference
852         as a poly_int64_pod rather than a HOST_WIDE_INT.
853         * expr.c (get_inner_reference): Return the bitsize and bitpos
854         as poly_int64_pods rather than HOST_WIDE_INT.
855         (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
856         offsets and sizes.
857         * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
858         rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
859         (optimize_bit_field_compare): Update call to get_inner_reference.
860         (decode_field_reference): Likewise.
861         (fold_unary_loc): Track polynomial offsets and sizes.
862         (split_address_to_core_and_offset): Return the bitpos as a
863         poly_int64_pod rather than a HOST_WIDE_INT.
864         (ptr_difference_const): Likewise for the pointer difference.
865         * asan.c (instrument_derefs): Track polynomial offsets and sizes.
866         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
867         * dbxout.c (dbxout_expand_expr): Likewise.
868         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
869         (loc_list_from_tree_1, fortran_common): Likewise.
870         * gimple-laddress.c (pass_laddress::execute): Likewise.
871         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
872         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
873         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
874         * tree-affine.c (tree_to_aff_combination): Likewise.
875         (get_inner_reference_aff): Likewise.
876         * tree-data-ref.c (split_constant_offset_1): Likewise.
877         (dr_analyze_innermost): Likewise.
878         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
879         * tree-sra.c (ipa_sra_check_caller): Likewise.
880         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
881         * ubsan.c (maybe_instrument_pointer_overflow): Likewise.
882         (instrument_bool_enum_load, instrument_object_size): Likewise.
883         * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
884         to get_inner_reference.
885         * hsa-gen.c (gen_hsa_addr): Likewise.
886         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
887         * tsan.c (instrument_expr): Likewise.
888         * match.pd: Update call to ptr_difference_const.
889
890 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
891             Alan Hayward  <alan.hayward@arm.com>
892             David Sherwood  <david.sherwood@arm.com>
893
894         * fold-const.c (fold_comparison): Track sizes and offsets as
895         poly_int64s rather than HOST_WIDE_INTs when folding address
896         comparisons.
897
898 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
899             Alan Hayward  <alan.hayward@arm.com>
900             David Sherwood  <david.sherwood@arm.com>
901
902         * expr.h (get_bit_range): Return the bitstart and bitend as
903         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Return the bitpos
904         as a poly_int64 rather than a HOST_WIDE_INT.
905         * expr.c (get_bit_range): Likewise.
906         (expand_assignment): Update call accordingly.
907         * fold-const.c (optimize_bit_field_compare): Likewise.
908
909 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
910             Alan Hayward  <alan.hayward@arm.com>
911             David Sherwood  <david.sherwood@arm.com>
912
913         * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum.
914         (aarch64_legitimate_address_p): Use it instead of an rtx code,
915         as an optional final parameter.
916         * config/aarch64/aarch64.c (aarch64_classify_address): Likewise.
917         (aarch64_legitimate_address_p): Likewise.
918         (aarch64_print_address_internal): Take an aarch64_addr_query_type
919         instead of an rtx code.
920         (aarch64_address_valid_for_prefetch_p): Update calls accordingly.
921         (aarch64_legitimate_address_hook_p): Likewise.
922         (aarch64_print_ldpstp_address): Likewise.
923         (aarch64_print_operand_address): Likewise.
924         (aarch64_address_cost): Likewise.
925         * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise.
926         * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise.
927         (aarch64_mem_pair_lanes_operand): Likewise.
928
929 2017-12-20  Richard Biener  <rguenther@suse.de>
930
931         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call
932         update_stmt_if_modified.
933
934 2017-12-20  Wilco Dijkstra  <wdijkstr@arm.com>
935
936         PR tree-optimization/83491
937         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME
938         before walking uses.  Improve coding style and comments.
939
940 2017-12-20  Tom de Vries  <tom@codesourcery.com>
941
942         * gimple-fold.c (fold_internal_goacc_dim): Simplify.
943
944 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
945
946         PR ipa/83506
947         * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
948         todo_flags_finish.
949         (pass_ipa_free_fn_summary): Add small_p private data member,
950         initialize to false in the ctor.
951         (pass_ipa_free_fn_summary::clone,
952         pass_ipa_free_fn_summary::set_pass_param,
953         pass_ipa_free_fn_summary::gate): New methods.
954         (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
955         | TODO_dump_symtab if small_p.
956         * passes.def: Add true parm for the existing pass_ipa_free_fn_summary
957         entry and add another instance of the pass with false parm after
958         ipa-pure-const.
959         * ipa-pure-const.c (pass_ipa_pure_const): Don't call
960         ipa_free_fn_summary here.
961
962 2017-12-20  Paolo Carlini  <paolo.carlini@oracle.com>
963
964         * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check.
965
966 2017-12-20  Martin Sebor  <msebor@redhat.com>
967
968         PR testsuite/83131
969         * builtins.c (expand_builtin_strlen): Use get_callee_fndecl.
970         (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
971         (expand_builtin_strncmp): Same.
972
973 2017-12-20  Alexandre Oliva  <aoliva@redhat.com>
974
975         PR bootstrap/83396
976         * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
977         allowed debug stmts before labels.
978         (expand_gimple_basic_block): Likewise.
979         * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
980         * gimple-iterator.h (gsi_after_labels): Likewise.
981         * tree-cfgcleanup (remove_forwarder_block): Likewise, but
982         rename reused variable, and simplify using gsi_move_before.
983         * tree-ssa-tail-merge.c (find_duplicate): Likewise.
984         * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
985         (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
986         (gimple_verify_flow_info, gimple_block_label): Likewise.
987         (make_blocks): Move debug markers after adjacent labels.
988         * cfgrtl.c (skip_insns_after_block): Revert SFN changes that
989         allowed debug insns outside blocks.
990         * df-scan.c (df_insn_delete): Likewise.
991         * lra-constraints.c (update_ebb_live_info): Likewise.
992         * var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
993         (vt_initialize, delete_vta_debug_insns): Likewise.
994         (reemit_marker_as_note): Drop BB parm.  Adjust callers.
995
996 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
997             Alan Hayward  <alan.hayward@arm.com>
998             David Sherwood  <david.sherwood@arm.com>
999
1000         * poly-int-types.h (round_down_to_byte_boundary): New macro.
1001         (round_up_to_byte_boundary): Likewise.
1002         * expr.h (get_bit_range): Add temporary shim.
1003         * gimple-ssa-store-merging.c (store_operand_info): Change the
1004         bitsize, bitpos, bitregion_start and bitregion_end fields from
1005         unsigned HOST_WIDE_INT to poly_uint64.
1006         (merged_store_group): Likewise load_align_base.
1007         (compatible_load_p, compatible_load_p): Update accordingly.
1008         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1009         (split_group, imm_store_chain_info::output_merged_store): Likewise.
1010         (mem_valid_for_store_merging): Return the bitsize, bitpos,
1011         bitregion_start and bitregion_end as poly_uint64s rather than
1012         unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
1013         (handled_load): Take the bitsize, bitpos,
1014         bitregion_start and bitregion_end as poly_uint64s rather than
1015         unsigned HOST_WIDE_INTs.
1016         (pass_store_merging::process_store): Update call to
1017         mem_valid_for_store_merging.
1018
1019 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1020             Alan Hayward  <alan.hayward@arm.com>
1021             David Sherwood  <david.sherwood@arm.com>
1022
1023         * builtins.c (get_object_alignment_2): Track polynomial offsets
1024         and sizes.  Update the alignment handling.
1025
1026 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1027             Alan Hayward  <alan.hayward@arm.com>
1028             David Sherwood  <david.sherwood@arm.com>
1029
1030         * tree.h (get_inner_reference): Add a version that returns the
1031         offset and size as poly_int64_pods rather than HOST_WIDE_INTs.
1032         * cfgexpand.c (expand_debug_expr): Track polynomial offsets.  Simply
1033         the case in which bitpos is not associated with the first byte.
1034
1035 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1036             Alan Hayward  <alan.hayward@arm.com>
1037             David Sherwood  <david.sherwood@arm.com>
1038
1039         * tree-affine.h (get_inner_reference_aff): Return the size as a
1040         poly_widest_int.
1041         * tree-affine.c (get_inner_reference_aff): Likewise.
1042         * tree-data-ref.c (dr_may_alias_p): Update accordingly.
1043         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise.
1044
1045 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1046             Alan Hayward  <alan.hayward@arm.com>
1047             David Sherwood  <david.sherwood@arm.com>
1048
1049         * fold-const.c (pointer_may_wrap_p): Take the offset as a
1050         HOST_WIDE_INT rather than a poly_int64.
1051
1052 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1053             Alan Hayward  <alan.hayward@arm.com>
1054             David Sherwood  <david.sherwood@arm.com>
1055
1056         * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
1057         HOST_WIDE_INT to poly_int64_pod.
1058         (perform_symbolic_merge): Update accordingly.
1059         (bswap_replace): Likewise.
1060
1061 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1062             Alan Hayward  <alan.hayward@arm.com>
1063             David Sherwood  <david.sherwood@arm.com>
1064
1065         * tree-affine.h (aff_tree::offset): Change from widest_int
1066         to poly_widest_int.
1067         (wide_int_ext_for_comb): Delete.
1068         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
1069         constants as poly_widest_int rather than widest_int.
1070         (aff_combination_constant_multiple_p): Return the multiplier
1071         as a poly_widest_int.
1072         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
1073         polynomial offsets.
1074         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
1075         version static and add an overload for poly_widest_int.
1076         (aff_combination_const, aff_combination_add_cst)
1077         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
1078         the constants as poly_widest_int rather than widest_int.
1079         (tree_to_aff_combination): Generalize INTEGER_CST case to
1080         poly_int_tree_p.
1081         (aff_combination_to_tree): Track offsets as poly_widest_ints.
1082         (aff_combination_add_product, aff_combination_mult): Handle
1083         polynomial offsets.
1084         (aff_combination_constant_multiple_p): Return the multiplier
1085         as a poly_widest_int.
1086         * tree-predcom.c (determine_offset): Return the offset as a
1087         poly_widest_int.
1088         (split_data_refs_to_components, suitable_component_p): Update
1089         accordingly.
1090         (valid_initializer_p): Update call to
1091         aff_combination_constant_multiple_p.
1092         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
1093         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
1094         as a poly_int64 rather than a HOST_WIDE_INT.
1095         (get_address_cost): Handle polynomial offsets.
1096         (iv_elimination_compare_lt): Likewise.
1097         (rewrite_use_nonlinear_expr): Likewise.
1098
1099 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1100             Alan Hayward  <alan.hayward@arm.com>
1101             David Sherwood  <david.sherwood@arm.com>
1102
1103         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
1104         as a poly_int64_pod rather than a HOST_WIDE_INT.
1105         (get_addr_base_and_unit_offset): Likewise.
1106         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
1107         (get_addr_base_and_unit_offset): Likewise.
1108         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
1109         to poly_int64 in example.
1110         * fold-const.c (fold_binary_loc): Update call to
1111         get_addr_base_and_unit_offset.
1112         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
1113         (maybe_canonicalize_mem_ref_addr): Likewise.
1114         (gimple_fold_stmt_to_constant_1): Likewise.
1115         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1116         Likewise.
1117         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
1118         * match.pd: Likewise.
1119         * omp-low.c (lower_omp_target): Likewise.
1120         * tree-sra.c (build_ref_for_offset): Likewise.
1121         (build_debug_ref_for_model): Likewise.
1122         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1123         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
1124         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
1125         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1126         (constant_pointer_difference): Likewise.
1127         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1128         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
1129         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1130         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
1131         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
1132         (set_ssa_val_to): Likewise.
1133         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
1134         (maybe_diag_stxncpy_trunc): Likewise.
1135         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
1136         * tree.c (build_simple_mem_ref_loc): Likewise.
1137         (array_at_struct_end_p): Likewise.
1138
1139 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1140             Alan Hayward  <alan.hayward@arm.com>
1141             David Sherwood  <david.sherwood@arm.com>
1142
1143         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
1144         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1145         (get_ref_base_and_extent_hwi): Declare.
1146         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
1147         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1148         (get_ref_base_and_extent_hwi): New function.
1149         * cfgexpand.c (expand_debug_expr): Update call to
1150         get_ref_base_and_extent.
1151         * dwarf2out.c (add_var_loc_to_decl): Likewise.
1152         * gimple-fold.c (get_base_constructor): Return the offset as a
1153         poly_int64_pod rather than a HOST_WIDE_INT.
1154         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
1155         * ipa-polymorphic-call.c
1156         (ipa_polymorphic_call_context::set_by_invariant)
1157         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
1158         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
1159         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
1160         rather than get_ref_base_and_extent.
1161         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1162         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
1163         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
1164         Likewise.
1165         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
1166         call to get_ref_base_and_extent.
1167         * tree-sra.c (create_access, get_access_for_expr): Likewise.
1168         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
1169         (stmt_kills_ref_p): Likewise.
1170         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1171         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
1172         Likewise.
1173         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
1174         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
1175         when calling native_encode_expr.
1176         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
1177         call to get_ref_base_and_extent.
1178         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
1179         get_ref_base_and_extent.
1180         * var-tracking.c (track_expr_p): Likewise.
1181
1182 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1183             Alan Hayward  <alan.hayward@arm.com>
1184             David Sherwood  <david.sherwood@arm.com>
1185
1186         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
1187         HOST_WIDE_INT to poly_int64_pod.
1188         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
1189         polynomail parameter offsets.
1190
1191 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1192             Alan Hayward  <alan.hayward@arm.com>
1193             David Sherwood  <david.sherwood@arm.com>
1194
1195         * gengtype.c (main): Handle poly_int64_pod.
1196         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
1197         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
1198         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
1199         from HOST_WIDE_INT to poly_int64_pod.
1200         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
1201         (copy_cfa): New function.
1202         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
1203         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
1204         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
1205         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
1206         (initial_return_save): Treat offsets as poly_ints.
1207         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
1208         offset is nonconstant.
1209         (reg_save): Take the offset as a poly_int64.  Fall back to
1210         DW_CFA_expression for nonconstant offsets.
1211         (queue_reg_save): Take the offset as a poly_int64.
1212         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
1213
1214 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1215             Alan Hayward  <alan.hayward@arm.com>
1216             David Sherwood  <david.sherwood@arm.com>
1217
1218         * rtl.h (operand_subword, operand_subword_force): Take the offset
1219         as a poly_uint64 an unsigned int.
1220         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
1221
1222 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1223             Alan Hayward  <alan.hayward@arm.com>
1224             David Sherwood  <david.sherwood@arm.com>
1225
1226         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
1227         'p' format code.  Use INT_LIST rather than SUBREG as the example of
1228         a code with an XINT and an XEXP.  Remove the implication that
1229         accessing an rtx field using XINT is expected to work.
1230         * rtl.def (SUBREG): Change format from "ei" to "ep".
1231         * rtl.h (rtunion::rt_subreg): New field.
1232         (XCSUBREG): New macro.
1233         (SUBREG_BYTE): Use it.
1234         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
1235         Update constructor accordingly.
1236         (subreg_shape::operator ==): Update accordingly.
1237         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
1238         than an unsigned int.
1239         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
1240         a poly_uint64 rather than an unsigned int.
1241         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
1242         than an unsigned int.
1243         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
1244         (subreg_size_highpart_offset): Return a poly_uint64 rather than
1245         an unsigned int.  Take the sizes as poly_uint64s.
1246         (subreg_offset_from_lsb): Return a poly_uint64 rather than
1247         an unsigned int.  Take the shift as a poly_uint64 rather than
1248         an unsigned int.
1249         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
1250         as a poly_uint64 rather than an unsigned int.
1251         (simplify_subreg_regno): Likewise.
1252         (byte_lowpart_offset): Return the memory offset as a poly_int64
1253         rather than an int.
1254         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1255         poly_uint64 rather than an unsigned int.
1256         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
1257         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
1258         poly_uint64 rather than an unsigned int.
1259         * rtl.c (rtx_format): Describe 'p' in comment.
1260         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
1261         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
1262         offset as a poly_uint64 rather than an unsigned int.
1263         (byte_lowpart_offset): Return the memory offset as a poly_int64
1264         rather than an int.
1265         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1266         poly_uint64 rather than an unsigned int.
1267         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
1268         mode sizes as poly_uint64s rather than unsigned ints.  Return a
1269         poly_uint64 rather than an unsigned int.
1270         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
1271         (copy_insn_1): Handle 'p'.
1272         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
1273         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
1274         an unsigned int.  Return the shift in the same way.
1275         (subreg_lsb): Return the shift as a poly_uint64 rather than an
1276         unsigned int.
1277         (subreg_size_offset_from_lsb): Take the sizes and shift as
1278         poly_uint64s rather than unsigned ints.  Return the offset as
1279         a poly_uint64.
1280         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
1281         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
1282         an unsigned int.
1283         * rtlhash.c (add_rtx): Handle 'p'.
1284         * genemit.c (gen_exp): Likewise.
1285         * gengenrtl.c (type_from_format, gendef): Likewise.
1286         * gensupport.c (subst_pattern_match, get_alternatives_number)
1287         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
1288         (subst_dup): Likewise.
1289         * gengtype.c (adjust_field_rtx_def): Likewise.
1290         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
1291         (match_pattern_2): Likewise.
1292         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
1293         (rtx_test::subreg_field): New function.
1294         (operator ==, safe_to_hoist_p, transition_parameter_type)
1295         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
1296         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
1297         * genpeep.c (match_rtx): Likewise.
1298         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
1299         (rtx_writer::print_rtx_operand): Handle 'p'.
1300         (print_value): Handle SUBREG.
1301         * read-rtl.c (apply_int_iterator): Likewise.
1302         (rtx_reader::read_rtx_operand): Handle 'p'.
1303         * alias.c (rtx_equal_for_memref_p): Likewise.
1304         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
1305         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
1306         as poly_ints.
1307         * calls.c (expand_call): Likewise.
1308         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
1309         (make_extraction, gen_lowpart_for_combine): Likewise.
1310         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
1311         Likewise.
1312         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
1313         rather than an unsigned int.  Treat subreg offsets as poly_ints.
1314         (exp_equiv_p): Handle 'p'.
1315         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
1316         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
1317         * dse.c (find_shift_sequence): Likewise.
1318         * dwarf2out.c (rtl_for_decl_location): Likewise.
1319         * expmed.c (extract_low_bits): Likewise.
1320         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
1321         (expand_expr_real_2): Likewise.
1322         * final.c (alter_subreg): Likewise.
1323         (leaf_renumber_regs_insn): Handle 'p'.
1324         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
1325         Treat subreg offsets as poly_ints.
1326         * fwprop.c (forward_propagate_and_simplify): Likewise.
1327         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
1328         * ira.c (get_subreg_tracking_sizes): Likewise.
1329         * ira-conflicts.c (go_through_subreg): Likewise.
1330         * ira-lives.c (process_single_reg_class_operands): Likewise.
1331         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
1332         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
1333         as a poly_uint64 rather than an unsigned int.
1334         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
1335         subreg offsets as poly_ints.
1336         * lra-constraints.c (operands_match_p): Handle 'p'.
1337         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
1338         * lra-spills.c (assign_mem_slot): Likewise.
1339         * postreload.c (move2add_valid_value_p): Likewise.
1340         * recog.c (general_operand, indirect_operand): Likewise.
1341         * regcprop.c (copy_value, maybe_mode_change): Likewise.
1342         (copyprop_hardreg_forward_1): Likewise.
1343         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
1344         (record_subregs_of_mode): Likewise.
1345         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
1346         * reload.c (operands_match_p): Handle 'p'.
1347         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
1348         * reload1.c (alter_reg, choose_reload_regs): Likewise.
1349         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
1350         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
1351         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
1352         (simplify_const_poly_int_tests<N>::run): Likewise.
1353         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
1354         a poly_uint64 rather than an unsigned int.
1355         * valtrack.c (debug_lowpart_subreg): Likewise.
1356         * var-tracking.c (var_lowpart): Likewise.
1357         (loc_cmp): Handle 'p'.
1358
1359 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1360             Alan Hayward  <alan.hayward@arm.com>
1361             David Sherwood  <david.sherwood@arm.com>
1362
1363         * ira.c (get_subreg_tracking_sizes): New function.
1364         (init_live_subregs): Take an integer size rather than a register.
1365         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
1366         to init_live_subregs.
1367
1368 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1369             Alan Hayward  <alan.hayward@arm.com>
1370             David Sherwood  <david.sherwood@arm.com>
1371
1372         * expr.c (store_constructor_field): Change bitsize from a
1373         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
1374         HOST_WIDE_INT to a poly_int64.
1375         (store_constructor): Change size from a HOST_WIDE_INT to
1376         a poly_int64.
1377         (store_field): Likewise bitsize and bitpos.
1378
1379 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1380             Alan Hayward  <alan.hayward@arm.com>
1381             David Sherwood  <david.sherwood@arm.com>
1382
1383         * expmed.h (store_bit_field): Change bitregion_start and
1384         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
1385         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
1386         (store_bit_field_1, store_integral_bit_field, store_bit_field)
1387         (store_fixed_bit_field, store_split_bit_field): Likewise.
1388         * expr.c (store_constructor_field, store_field): Likewise.
1389         (optimize_bitfield_assignment_op): Likewise.  Make the same change
1390         to bitsize and bitpos.
1391         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
1392         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
1393         same change in the constructor arguments.
1394         (get_best_mode): Change bitregion_start and bitregion_end from
1395         unsigned HOST_WIDE_INT to poly_uint64.
1396         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1397         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
1398         poly_int64.
1399         (bit_field_mode_iterator::next_mode): Update for new types
1400         of m_bitregion_start and m_bitregion_end.
1401         (get_best_mode): Change bitregion_start and bitregion_end from
1402         unsigned HOST_WIDE_INT to poly_uint64.
1403
1404 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1405             Alan Hayward  <alan.hayward@arm.com>
1406             David Sherwood  <david.sherwood@arm.com>
1407
1408         * rtl.h (simplify_gen_subreg): Add a temporary overload that
1409         accepts poly_uint64 offsets.
1410         * expmed.h (extract_bit_field): Take bitsize and bitnum as
1411         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1412         * expmed.c (lowpart_bit_field_p): Likewise.
1413         (extract_bit_field_as_subreg): New function, split out from...
1414         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
1415         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
1416         extractions, check that BITSIZE matches the size of the extracted
1417         value and that BITNUM is an exact multiple of that size.
1418         If all else fails, try forcing the value into memory if
1419         BITNUM is variable, and adjusting the address so that the
1420         offset is constant.  Split the part that can only handle constant
1421         bitsize and bitnum out into...
1422         (extract_integral_bit_field): ...this new function.
1423         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
1424         rather than unsigned HOST_WIDE_INTs.
1425
1426 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1427             Alan Hayward  <alan.hayward@arm.com>
1428             David Sherwood  <david.sherwood@arm.com>
1429
1430         * expmed.h (store_bit_field): Take bitsize and bitnum as
1431         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1432         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
1433         that returns the byte size.
1434         (store_bit_field_1): Take bitsize and bitnum as
1435         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
1436         to simple_mem_bitfield_p.  Split the part that can only handle
1437         constant bitsize and bitnum out into...
1438         (store_integral_bit_field): ...this new function.
1439         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
1440         than unsigned HOST_WIDE_INTs.
1441         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
1442
1443 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1444             Alan Hayward  <alan.hayward@arm.com>
1445             David Sherwood  <david.sherwood@arm.com>
1446
1447         * lra-int.h (lra_reg): Change offset from int to poly_int64.
1448         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
1449         to poly_int64.
1450         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1451         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
1452         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
1453         offset as a poly_int64 rather than an int.
1454         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
1455         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
1456         * lra-constraints.c (equiv_address_substitution): Track offsets
1457         as poly_int64s.
1458         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
1459         (curr_insn_transform): Handle the new form of sp_offset.
1460         * lra-eliminations.c (lra_elim_table): Change previous_offset
1461         and offset from HOST_WIDE_INT to poly_int64.
1462         (print_elim_table, update_reg_eliminate): Update accordingly.
1463         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
1464         (get_elimination): Update accordingly.
1465         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
1466         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1467         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
1468         poly_int64 offsets generally.
1469         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
1470         (mark_not_eliminable, init_elimination): Update accordingly.
1471         (remove_reg_equal_offset_note): Return a bool and pass the new
1472         offset back by pointer as a poly_int64.
1473         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
1474         rather than a HOST_WIDE_INT.
1475         (do_remat): Track offsets poly_int64s.
1476         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
1477
1478 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1479             Alan Hayward  <alan.hayward@arm.com>
1480             David Sherwood  <david.sherwood@arm.com>
1481
1482         * rtl.h (mem_attrs): Add a default constructor.  Change size and
1483         offset from HOST_WIDE_INT to poly_int64.
1484         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
1485         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
1486         (widen_memory_access): Take the sizes and offsets as poly_int64s
1487         rather than HOST_WIDE_INTs.
1488         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
1489         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
1490         and ints.
1491         (adjust_offset_for_component_ref): Change the offset from a
1492         HOST_WIDE_INT to a poly_int64.
1493         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
1494         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
1495         * dce.c (find_call_stack_args): Likewise.
1496         * dse.c (record_store): Likewise.
1497         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
1498         * print-rtl.c (rtx_writer::print_rtx): Likewise.
1499         * read-rtl-function.c (test_loading_mem): Likewise.
1500         * rtlanal.c (may_trap_p_1): Likewise.
1501         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1502         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
1503         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
1504         (mem_attrs::mem_attrs): New function.
1505         (set_mem_attributes_minus_bitpos): Change bitpos from a
1506         HOST_WIDE_INT to poly_int64.
1507         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
1508         (clear_mem_offset, clear_mem_size, change_address)
1509         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
1510         initialize mem_attrs.
1511         (set_mem_offset, set_mem_size, adjust_address_1)
1512         (adjust_automodify_address_1, offset_address, widen_memory_access):
1513         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
1514
1515 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1516             Alan Hayward  <alan.hayward@arm.com>
1517             David Sherwood  <david.sherwood@arm.com>
1518
1519         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
1520         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
1521         rather than 0 to represent an unknown size.  Assert that the size
1522         is known when the mode isn't BLKmode.
1523         (may_trap_p_1): Use -1 for unknown sizes.
1524         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
1525
1526 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1527             Alan Hayward  <alan.hayward@arm.com>
1528             David Sherwood  <david.sherwood@arm.com>
1529
1530         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
1531         to poly_int64.  Update commentary for positions_needed.large.
1532         (read_info_type): Change offset and width from HOST_WIDE_INT
1533         to poly_int64.
1534         (set_usage_bits): Likewise.
1535         (canon_address): Return the offset as a poly_int64 rather than
1536         a HOST_WIDE_INT.  Use strip_offset_and_add.
1537         (set_all_positions_unneeded, any_positions_needed_p): Use
1538         positions_needed.large to track stores with non-constant widths.
1539         (all_positions_needed_p): Likewise.  Take the offset and width
1540         as poly_int64s rather than ints.  Assert that rhs is nonnull.
1541         (record_store): Cope with non-constant offsets and widths.
1542         Nullify the rhs of an earlier store if we can't tell which bytes
1543         of it are needed.
1544         (find_shift_sequence): Take the access_size and shift as poly_int64s
1545         rather than ints.
1546         (get_stored_val): Take the read_offset and read_width as poly_int64s
1547         rather than HOST_WIDE_INTs.
1548         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
1549         non-constant offsets and widths.
1550
1551 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1552             Alan Hayward  <alan.hayward@arm.com>
1553             David Sherwood  <david.sherwood@arm.com>
1554
1555         * inchash.h (inchash::hash::add_poly_int): New function.
1556         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
1557         Use poly_int64 rather than HOST_WIDE_INT.
1558         (ao_ref::max_size_known_p): New function.
1559         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
1560         rather than HOST_WIDE_INT.
1561         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
1562         to temporaries until its interface is adjusted to match.
1563         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
1564         (aliasing_component_refs_p, decl_refs_may_alias_p)
1565         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
1566         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
1567         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
1568         ao_ref fields.
1569         * alias.c (ao_ref_from_mem): Likewise.
1570         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1571         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
1572         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
1573         (maybe_trim_complex_store, maybe_trim_constructor_store)
1574         (live_bytes_read, dse_classify_store): Likewise.
1575         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
1576         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
1577         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
1578         (vn_reference_lookup_3): Likewise.
1579         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1580
1581 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1582             Alan Hayward  <alan.hayward@arm.com>
1583             David Sherwood  <david.sherwood@arm.com>
1584
1585         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
1586         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
1587         instead of ranges_overlap_p.
1588
1589 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1590             Alan Hayward  <alan.hayward@arm.com>
1591             David Sherwood  <david.sherwood@arm.com>
1592
1593         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
1594         sizes as poly_int64s rather than HOST_WIDE_INTs.
1595
1596 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1597             Alan Hayward  <alan.hayward@arm.com>
1598             David Sherwood  <david.sherwood@arm.com>
1599
1600         * gimple-fold.h (fold_ctor_reference): Take the offset and size
1601         as poly_uint64 rather than unsigned HOST_WIDE_INT.
1602         * gimple-fold.c (fold_ctor_reference): Likewise.
1603
1604 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1605             Alan Hayward  <alan.hayward@arm.com>
1606             David Sherwood  <david.sherwood@arm.com>
1607
1608         * target.def (dwarf_poly_indeterminate_value): New hook.
1609         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
1610         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
1611         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
1612         * doc/tm.texi: Regenerate.
1613         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
1614         offset as a poly_int64.
1615         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
1616         offset as a poly_int64.
1617         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
1618         Take the offset as a poly_int64.
1619         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
1620         (frame_pointer_fb_offset): Change to a poly_int64.
1621         (int_loc_descriptor): Take the offset as a poly_int64.  Use
1622         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
1623         (based_loc_descr): Take the offset as a poly_int64.
1624         Use strip_offset_and_add to handle (plus X (const)).
1625         Use new_reg_loc_descr instead of an open-coded version of the
1626         previous implementation.
1627         (mem_loc_descriptor): Handle CONST_POLY_INT.
1628         (compute_frame_pointer_to_fb_displacement): Take the offset as a
1629         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
1630
1631 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1632             Alan Hayward  <alan.hayward@arm.com>
1633             David Sherwood  <david.sherwood@arm.com>
1634
1635         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
1636         (gen_rtx_REG_offset): Take the offset as a poly_int64.
1637         * inchash.h (inchash::hash::add_poly_hwi): New function.
1638         * gengtype.c (main): Register poly_int64.
1639         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
1640         offset as a poly_int.
1641         (reg_attr_hasher::equal): Use must_eq to compare offsets.
1642         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
1643         offset as a poly_int64.
1644         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
1645         * print-rtl.c (print_poly_int): New function.
1646         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
1647         a poly_int.
1648         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
1649         functions.
1650         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
1651         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
1652         (vt_get_decl_and_offset): Return the offset as a poly_int64.
1653         Enforce track_offset_p for parts of a PARALLEL.
1654         (vt_add_function_parameter): Use const_offset for the final
1655         offset to track.  Use get_tracked_reg_offset for the parts
1656         of a PARALLEL.
1657
1658 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1659             Alan Hayward  <alan.hayward@arm.com>
1660             David Sherwood  <david.sherwood@arm.com>
1661
1662         * target.def (truly_noop_truncation): Take poly_uint64s instead of
1663         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
1664         * doc/tm.texi: Regenerate.
1665         * hooks.h (hook_bool_uint_uint_true): Delete.
1666         (hook_bool_puint64_puint64_true): Declare.
1667         * hooks.c (hook_bool_uint_uint_true): Delete.
1668         (hook_bool_puint64_puint64_true): New function.
1669         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
1670         instead of unsigned ints.
1671         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
1672         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
1673
1674 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1675             Alan Hayward  <alan.hayward@arm.com>
1676             David Sherwood  <david.sherwood@arm.com>
1677
1678         * optabs.h (expand_operand): Add an int_value field.
1679         (create_expand_operand): Add an int_value parameter and use it
1680         to initialize the new expand_operand field.
1681         (create_integer_operand): Replace with a declaration of a function
1682         that accepts poly_int64s.  Move the implementation to...
1683         * optabs.c (create_integer_operand): ...here.
1684         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
1685         the mode preserves the value of int_value, instead of calling
1686         const_int_operand on the rtx.  Use gen_int_mode to generate
1687         the new rtx.
1688
1689 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1690             Alan Hayward  <alan.hayward@arm.com>
1691             David Sherwood  <david.sherwood@arm.com>
1692
1693         * dumpfile.h (dump_dec): Declare.
1694         * dumpfile.c (dump_dec): New function.
1695         * pretty-print.h (pp_wide_integer): Turn into a function and
1696         declare a poly_int version.
1697         * pretty-print.c (pp_wide_integer): New function for poly_ints.
1698
1699 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1700             Alan Hayward  <alan.hayward@arm.com>
1701             David Sherwood  <david.sherwood@arm.com>
1702
1703         * doc/generic.texi (POLY_INT_CST): Document.
1704         * tree.def (POLY_INT_CST): New tree code.
1705         * treestruct.def (TS_POLY_INT_CST): New tree layout.
1706         * tree-core.h (tree_poly_int_cst): New struct.
1707         (tree_node): Add a poly_int_cst field.
1708         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
1709         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
1710         instead of a wide_int_ref.
1711         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
1712         of a HOST_WIDE_INT.
1713         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1714         instead of an unsigned HOST_WIDE_INT.
1715         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
1716         (ptrdiff_tree_p): Declare.
1717         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
1718         extern inline implementations if the target doesn't use POLY_INT_CST.
1719         (poly_int_tree_p): New function.
1720         (wi::unextended_tree): New class.
1721         (wi::int_traits <unextended_tree>): New override.
1722         (wi::extended_tree): Add a default constructor.
1723         (wi::extended_tree::get_tree): New function.
1724         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
1725         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
1726         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
1727         (wi::tree_to_poly_wide_ref): New typedefs.
1728         (wi::ints_for): Provide overloads for extended_tree and
1729         unextended_tree.
1730         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
1731         (wi::to_wide): New functions.
1732         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
1733         * tree.c (poly_int_cst_hasher): New struct.
1734         (poly_int_cst_hash_table): New variable.
1735         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
1736         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
1737         POLY_INT_CST.
1738         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
1739         (init_ttree): Initialize poly_int_cst_hash_table.
1740         (build_int_cst, build_int_cst_type, build_invariant_address): Take
1741         a poly_int64 instead of a HOST_WIDE_INT.
1742         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1743         instead of an unsigned HOST_WIDE_INT.
1744         (wide_int_to_tree): Rename to...
1745         (wide_int_to_tree_1): ...this.
1746         (build_new_poly_int_cst, build_poly_int_cst): New functions.
1747         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
1748         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
1749         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
1750         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
1751         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
1752         TS_POLY_INT_CST.
1753         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
1754         (streamer_read_tree_body): Likewise.
1755         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
1756         (streamer_write_tree_body): Likewise.
1757         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
1758         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
1759         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
1760         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
1761         * gimple-expr.h (is_gimple_constant): Likewise.
1762         * gimplify.c (maybe_with_size_expr): Likewise.
1763         * print-tree.c (print_node): Likewise.
1764         * tree-data-ref.c (data_ref_compare_tree): Likewise.
1765         * tree-pretty-print.c (dump_generic_node): Likewise.
1766         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1767         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
1768         * tree-vrp.c (compare_values_warnv): Likewise.
1769         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
1770         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
1771         (force_expr_to_var_cost): Likewise.
1772         * tree-ssa-loop.c (for_each_index): Likewise.
1773         * fold-const.h (build_invariant_address, size_int_kind): Take a
1774         poly_int64 instead of a HOST_WIDE_INT.
1775         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
1776         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
1777         POLY_INT_CST.
1778         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
1779         (int_const_binop_2): New function, split out from...
1780         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
1781         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
1782         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
1783         * gimple-ssa-strength-reduction.c (slsr_process_add)
1784         (slsr_process_mul): Check for INTEGER_CSTs before using them
1785         as candidates.
1786         * stor-layout.c (bits_from_bytes): New function.
1787         (bit_from_pos): Use it.
1788         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
1789         by BITS_PER_UNIT to get the TYPE_SIZE.
1790         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
1791         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
1792
1793 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1794             Alan Hayward  <alan.hayward@arm.com>
1795             David Sherwood  <david.sherwood@arm.com>
1796
1797         * doc/rtl.texi (const_poly_int): Document.  Also document the
1798         rtl sharing behavior.
1799         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
1800         * rtl.h (const_poly_int_def): New struct.
1801         (rtx_def::u): Add a cpi field.
1802         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
1803         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
1804         (wi::rtx_to_poly_wide_ref): New typedef
1805         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
1806         (poly_int_rtx_p): New functions.
1807         (trunc_int_for_mode): Declare a poly_int64 version.
1808         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1809         (immed_wide_int_const): Take a poly_wide_int_ref rather than
1810         a wide_int_ref.
1811         (strip_offset): Declare.
1812         (strip_offset_and_add): New function.
1813         * rtl.def (CONST_POLY_INT): New rtx code.
1814         * rtl.c (rtx_size): Handle CONST_POLY_INT.
1815         (shared_const_p): Use poly_int_rtx_p.
1816         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
1817         HOST_WIDE_INT.
1818         (gen_int_shift_amount): Likewise.
1819         * emit-rtl.c (const_poly_int_hasher): New class.
1820         (const_poly_int_htab): New variable.
1821         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
1822         (const_poly_int_hasher::hash): New function.
1823         (const_poly_int_hasher::equal): Likewise.
1824         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
1825         (immed_wide_int_const): Rename to...
1826         (immed_wide_int_const_1): ...this and make static.
1827         (immed_wide_int_const): New function, taking a poly_wide_int_ref
1828         instead of a wide_int_ref.
1829         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
1830         (gen_lowpart_common): Handle CONST_POLY_INT.
1831         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
1832         * cselib.c (cselib_hash_rtx): Likewise.
1833         * dwarf2out.c (const_ok_for_output_1): Likewise.
1834         * expr.c (convert_modes): Likewise.
1835         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
1836         * rtlhash.c (add_rtx): Likewise.
1837         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
1838         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1839         Handle existing CONST_POLY_INT rtxes.
1840         * expmed.h (expand_shift): Take a poly_int64 instead of a
1841         HOST_WIDE_INT.
1842         * expmed.c (expand_shift): Likewise.
1843         * rtlanal.c (strip_offset): New function.
1844         (commutative_operand_precedence): Give CONST_POLY_INT the same
1845         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
1846         and CONST_INT.
1847         * rtl-tests.c (const_poly_int_tests): New struct.
1848         (rtl_tests_c_tests): Use it.
1849         * simplify-rtx.c (simplify_const_unary_operation): Handle
1850         CONST_POLY_INT.
1851         (simplify_const_binary_operation): Likewise.
1852         (simplify_binary_operation_1): Fold additions of symbolic constants
1853         and CONST_POLY_INTs.
1854         (simplify_subreg): Handle extensions and truncations of
1855         CONST_POLY_INTs.
1856         (simplify_const_poly_int_tests): New struct.
1857         (simplify_rtx_c_tests): Use it.
1858         * wide-int.h (storage_ref): Add default constructor.
1859         (wide_int_ref_storage): Likewise.
1860         (trailing_wide_ints): Use GTY((user)).
1861         (trailing_wide_ints::operator[]): Add a const version.
1862         (trailing_wide_ints::get_precision): New function.
1863         (trailing_wide_ints::extra_size): Likewise.
1864
1865 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1866             Alan Hayward  <alan.hayward@arm.com>
1867             David Sherwood  <david.sherwood@arm.com>
1868
1869         * emit-rtl.h (gen_int_shift_amount): Declare.
1870         * emit-rtl.c (gen_int_shift_amount): New function.
1871         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
1872         instead of GEN_INT.
1873         * calls.c (shift_return_value): Likewise.
1874         * cse.c (fold_rtx): Likewise.
1875         * dse.c (find_shift_sequence): Likewise.
1876         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
1877         (expand_shift, expand_smod_pow2): Likewise.
1878         * lower-subreg.c (shift_cost): Likewise.
1879         * optabs.c (expand_superword_shift, expand_doubleword_mult)
1880         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
1881         (expand_vec_perm_var): Likewise.
1882         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1883         (simplify_binary_operation_1): Likewise.
1884         * combine.c (try_combine, find_split_point, force_int_to_mode)
1885         (simplify_shift_const_1, simplify_shift_const): Likewise.
1886         (change_zero_ext): Likewise.  Use simplify_gen_binary.
1887
1888 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1889
1890         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
1891
1892 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1893
1894         * doc/invoke.texi (ARM Options): Document accepted extension options
1895         for -march=armv8.3-a.
1896
1897 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
1898
1899         PR target/83105
1900         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
1901         or --with-float=softfp, set the default CPU to arm10e.
1902
1903 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
1904
1905         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
1906         * config/visium/predicates.md (const_shift_operand): Likewise.
1907         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
1908         (visium_legitimize_reload_address): Likewise.
1909
1910 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1911
1912         PR target/82975
1913         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
1914
1915 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
1916
1917         PR c++/83490
1918         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
1919
1920 2017-12-20  Julia Koval  <julia.koval@intel.com>
1921
1922         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
1923         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
1924         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
1925         * config.gcc: Include vpclmulqdqintrin.h.
1926         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
1927         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
1928         -mvpclmulqdq.
1929         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
1930         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
1931         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
1932         * config/i386/i386.c (isa2_opts): Add -mcx16.
1933         (isa_opts): Add -mpclmulqdq, remove -mcx16.
1934         (ix86_option_override_internal): Move mcx16 to flags2.
1935         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
1936         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
1937         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
1938         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
1939         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
1940         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
1941         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
1942         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
1943         * doc/invoke.texi: Add -mvpclmulqdq.
1944
1945 2017-12-20  Tom de Vries  <tom@codesourcery.com>
1946
1947         PR middle-end/83423
1948         * config/i386/i386.c (ix86_static_chain): Move
1949         DECL_STATIC_CHAIN test ...
1950         * calls.c (rtx_for_static_chain): ... here.  New function.
1951         * calls.h (rtx_for_static_chain): Declare.
1952         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
1953         instead of targetm.calls.static_chain.
1954         * df-scan.c (df_get_entry_block_def_set): Same.
1955
1956 2017-12-19  Tom de Vries  <tom@codesourcery.com>
1957
1958         PR tree-optimization/83493
1959         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
1960         and lb.
1961
1962 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1963
1964         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
1965         inform with hardcoded english plural handling.
1966
1967 2017-12-18  Jeff Law  <law@redhat.com>
1968
1969         PR tree-optimization/83477
1970         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
1971         a non-virtual PHI, always push a new range.
1972
1973 2017-12-19  Martin Sebor  <msebor@redhat.com>
1974
1975         PR middle-end/77608
1976         * builtins.c (compute_objsize): Handle non-constant offsets.
1977
1978 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1979
1980         PR tree-optimization/83444
1981         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
1982         character load case, if get_stridx on MEM_REF's operand doesn't
1983         look usable, retry with get_addr_stridx.
1984
1985 2017-12-19  Alexandre Oliva  <aoliva@redhat.com>
1986
1987         PR debug/83422
1988         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
1989         (variable_tracking_main_1): Keep markers even when VTA fails.
1990
1991         PR bootstrap/83396
1992         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
1993         even if there are markers before it.
1994         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
1995
1996 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
1997
1998         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
1999         typical order conditions.
2000         * sel-sched.c (extract_new_fences_from): Likewise.
2001         * config/visium/constraints.md (J, K, L): Likewise.
2002         * config/visium/predicates.md (const_shift_operand): Likewise.
2003         * config/visium/visium.c (visium_legitimize_address,
2004         visium_legitimize_reload_address): Likewise.
2005         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
2006         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
2007         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
2008         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
2009         SET_DUMP_DETAIL): Likewise.
2010         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
2011         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
2012         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
2013         avr_set_core_architecture, avr_set_current_function,
2014         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
2015         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
2016         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
2017         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
2018         avr_map_decompose, avr_fold_builtin): Likewise.
2019         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
2020         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
2021         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
2022         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
2023         * config/m32c/m32c.c (m32c_conditional_register_usage,
2024         m32c_address_cost): Likewise.
2025         * config/m32c/predicates.md (shiftcount_operand,
2026         longshiftcount_operand): Likewise.
2027         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2028         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
2029         can_use_cdx_ldstw): Likewise.
2030         * config/nios2/nios2.h (CDX_REG_P): Likewise.
2031         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
2032         Likewise.
2033         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
2034         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
2035         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
2036         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
2037         * config/vax/vax.c (adjacent_operands_p): Likewise.
2038         * config/ft32/constraints.md (L, b, KA): Likewise.
2039         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
2040         Likewise.
2041         * cfgexpand.c (expand_stack_alignment): Likewise.
2042         * gcse.c (insert_expr_in_table): Likewise.
2043         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
2044         * cgraphunit.c (cgraph_node::expand): Likewise.
2045         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
2046         * emit-rtl.c (add_insn): Likewise.
2047         * input.c (dump_location_info): Likewise.
2048         * passes.c (NEXT_PASS): Likewise.
2049         * read-rtl-function.c (parse_note_insn_name,
2050         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
2051         Likewise.
2052         * sched-rgn.c (sched_rgn_init): Likewise.
2053         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
2054         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
2055         if_then_else_cond, simplify_shift_const_1, simplify_comparison):
2056         Likewise.
2057         * explow.c (eliminate_constant_term): Likewise.
2058         * final.c (leaf_renumber_regs_insn): Likewise.
2059         * cfgrtl.c (print_rtl_with_bb): Likewise.
2060         * genhooks.c (emit_init_macros): Likewise.
2061         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
2062         * tree-data-ref.c (conflict_fn): Likewise.
2063         * selftest.c (assert_streq): Likewise.
2064         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
2065         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
2066         fold_binary_loc, multiple_of_p): Likewise.
2067         * reload.c (push_reload, find_equiv_reg): Likewise.
2068         * et-forest.c (et_nca, et_below): Likewise.
2069         * dbxout.c (dbxout_symbol_location): Likewise.
2070         * reorg.c (relax_delay_slots): Likewise.
2071         * dojump.c (do_compare_rtx_and_jump): Likewise.
2072         * gengtype-parse.c (type): Likewise.
2073         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
2074         simplify_const_relational_operation): Likewise.
2075         * reload1.c (do_output_reload): Likewise.
2076         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
2077         * gengtype.c (type_for_name): Likewise.
2078         * gimple-ssa-sprintf.c (format_directive): Likewise.
2079
2080 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2081
2082         PR target/82975
2083         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
2084         accessing it.  Adjust comment.
2085
2086 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2087
2088         PR middle-end/81914
2089         * predict.c (zero_one_minusone): New function.
2090         (apply_return_prediction): Avoid return prediction for functions
2091         returning only -1, 0 and 1 values, unless they only return -1 and 0
2092         or 0 and 1.
2093
2094 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2095
2096         * config/arc/arc.c (legitimate_scaled_address_p): Clean
2097         fall-through warning.
2098         (arc_compute_frame_size): Remove unused variables.
2099         (arc_print_operand): Fix fprintif format.
2100         (arc_can_follow_jump): Clean fall-through warning.
2101
2102 2017-12-19  Marek Polacek  <polacek@redhat.com>
2103
2104         PR c++/83489
2105         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
2106         on an error node.
2107
2108 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2109
2110         * config/arc/arc.c (overriderregs): New variable.
2111         (arc_override_options): Track fixed/call saved/call options.
2112         (arc_conditional_register_usage): Check against overrideregs
2113         variable whenever we change register properties.
2114
2115 2017-12-19  Nathan Sidwell  <nathan@acm.org>
2116
2117         * opts.c (finish_options): Don't prefix dump_base_name if it
2118         already contains directories.
2119
2120 2017-12-19  Martin Liska  <mliska@suse.cz>
2121
2122         PR rtl-optimization/82675
2123         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
2124         more element in sbitmap.
2125
2126 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
2127
2128         * gimplify.c (gimplify_expr): Use error_operand_p.
2129
2130 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2131
2132         PR target/83387
2133         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
2134         multilib.
2135
2136 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
2137
2138         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
2139         the jump is to a label.
2140
2141 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2142
2143         PR tree-optimization/83444
2144         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
2145         character loads.
2146
2147         PR ipa/82801
2148         PR ipa/83346
2149         * ipa-inline.c (flatten_remove_node_hook): New function.
2150         (ipa_inline): Keep only nodes with flatten attribute at the end of
2151         the array in the order from ipa_reverse_postorder, only walk that
2152         portion of array for flattening, if there is more than one such
2153         node, temporarily register a removal hook and ignore removed nodes.
2154
2155         PR tree-optimization/80631
2156         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
2157         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
2158         IFN_REDUC_MAX or IFN_REDUC_MIN.
2159
2160 2017-12-18  Jeff Law  <law@redhat.com>
2161
2162         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
2163         record symbolic equivalences from backedges in the CFG.
2164
2165         Revert
2166         2017-11-19  Jeff Law  <law@redhat.com>
2167
2168         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
2169         of degenerates resulting from ignoring an edge.
2170
2171 2017-12-18  Martin Sebor  <msebor@redhat.com>
2172
2173         PR middle-end/83373
2174         PR tree-optimization/78450
2175         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
2176         (handle_builtin_strlen): Call it.
2177
2178 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
2179
2180         PR rtl-optimization/83424
2181         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
2182
2183 2017-12-18  Marek Polacek  <polacek@redhat.com>
2184
2185         PR middle-end/83463
2186         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
2187         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
2188         values.
2189
2190 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2191
2192         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
2193         (umaddsidi4, umaddsidi_split): Likewise.
2194
2195 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2196
2197         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
2198         constants.
2199
2200 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2201
2202         PR target/83420
2203         * config/s390/s390.c (s390_option_override): Avoid strncpy.
2204
2205 2017-12-18  Richard Biener  <rguenther@suse.de>
2206
2207         PR tree-optimization/81877
2208         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
2209         (outermost_indep_loop): Adjust.
2210         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
2211         (can_sm_ref_p): Adjust.
2212
2213 2017-12-18  Richard Biener  <rguenther@suse.de>
2214
2215         PR middle-end/77291
2216         * tree.c (array_at_struct_end_p): Return true if the underlying
2217         object has space for at least one element in excess of what
2218         the array domain specifies.
2219
2220 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2221
2222         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
2223         example to avoid overfull hbox.
2224         * doc/invoke.texi (Option Summary): Add missing @gol.
2225         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
2226         overfull hbox.
2227
2228 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2229             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2230
2231         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
2232         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
2233         (AArch64 Options): Document -mverbose-cost-dump.
2234         (ARM Options): Likewise, plus -mflip-thumb.
2235
2236 2017-12-17  Martin Sebor  <msebor@redhat.com>
2237
2238         PR bootstrap/83446
2239         * gimple-ssa-warn-restrict.c
2240         (builtin_memref::offset_out_of_bounds): Correct the handling of
2241         anti-ranges.
2242
2243 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2244
2245         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
2246
2247 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
2248
2249         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
2250
2251 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
2252
2253         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
2254         latencies.
2255
2256 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
2257
2258         * doc/invoke.texi: Fix some typos.
2259
2260 2017-12-16  Martin Sebor  <msebor@redhat.com>
2261
2262         PR tree-optimization/78918
2263         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
2264         * builtins.c (check_sizes): Rename...
2265         (check_access): ...to this.  Rename function arguments for clarity.
2266         (check_memop_sizes): Adjust names.
2267         (expand_builtin_memchr, expand_builtin_memcpy): Same.
2268         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
2269         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
2270         (check_strncat_sizes, expand_builtin_strncat): Same.
2271         (expand_builtin_strncpy, expand_builtin_memset): Same.
2272         (expand_builtin_bzero, expand_builtin_memcmp): Same.
2273         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
2274         (maybe_emit_sprintf_chk_warning): Same.
2275         (expand_builtin_strcpy): Adjust.
2276         (expand_builtin_stpcpy): Same.
2277         (expand_builtin_with_bounds): Detect out-of-bounds accesses
2278         in pointer-checking forms of memcpy, memmove, and mempcpy.
2279         (gcall_to_tree_minimal, max_object_size): Define new functions.
2280         * builtins.h (max_object_size): Declare.
2281         * calls.c (alloc_max_size): Call max_object_size instead of
2282         hardcoding ssizetype limit.
2283         (get_size_range): Handle new argument.
2284         * calls.h (get_size_range): Add a new argument.
2285         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
2286         * doc/invoke.texi (-Wrestrict): Adjust, add example.
2287         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
2288         operations.
2289         (gimple_fold_builtin_memory_chk): Same.
2290         (gimple_fold_builtin_stxcpy_chk): New function.
2291         * gimple-ssa-warn-restrict.c: New source.
2292         * gimple-ssa-warn-restrict.h: New header.
2293         * gimple.c (gimple_build_call_from_tree): Propagate location.
2294         * passes.def (pass_warn_restrict): Add new pass.
2295         * tree-pass.h (make_pass_warn_restrict): Declare.
2296         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
2297         operations.
2298         (handle_builtin_strcat): Same.
2299         (strlen_optimize_stmt): Rename...
2300         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
2301         stpncpy, strncpy, and their checking forms.
2302
2303 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
2304
2305         PR rtl-optimization/82849
2306         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
2307         and get_max_loop_iterations_int.
2308
2309 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2310             Alan Hayward  <alan.hayward@arm.com>
2311             David Sherwood  <david.sherwood@arm.com>
2312
2313         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
2314         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
2315         size as a poly_uint64.
2316         (mode_for_vector, mode_for_int_vector): Take the number of vector
2317         elements as a poly_uint64.
2318         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
2319         size as a poly_uint64.
2320         (mode_for_vector, mode_for_int_vector): Take the number of vector
2321         elements as a poly_uint64.
2322
2323 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2324             Alan Hayward  <alan.hayward@arm.com>
2325             David Sherwood  <david.sherwood@arm.com>
2326
2327         * machmode.h (MACRO_MODE): New macro.
2328         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
2329         * targhooks.c (default_libcall_value, default_secondary_reload)
2330         (default_memory_move_cost, default_register_move_cost)
2331         (default_class_max_nregs): Likewise.
2332
2333 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2334             Alan Hayward  <alan.hayward@arm.com>
2335             David Sherwood  <david.sherwood@arm.com>
2336
2337         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
2338         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
2339         target C file.
2340         * genautomata.c (main): Likewise.
2341         * genconditions.c (write_header): Likewise.
2342         * genemit.c (main): Likewise.
2343         * genextract.c (print_header): Likewise.
2344         * genopinit.c (main): Likewise.
2345         * genoutput.c (output_prologue): Likewise.
2346         * genpeep.c (main): Likewise.
2347         * genpreds.c (write_insn_preds_c): Likewise.
2348         * genrecog.c (writer_header): Likewise.
2349         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
2350         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
2351         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
2352         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
2353         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
2354         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
2355         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
2356         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
2357         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
2358         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
2359         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
2360         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
2361         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
2362         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
2363         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
2364         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
2365         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
2366         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
2367         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
2368         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
2369         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
2370         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
2371         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
2372         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
2373         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
2374         * config/darwin.c (IN_TARGET_CODE): Likewise.
2375         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
2376         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
2377         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
2378         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
2379         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
2380         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
2381         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
2382         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
2383         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
2384         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
2385         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
2386         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
2387         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
2388         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
2389         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
2390         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
2391         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
2392         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
2393         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
2394         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
2395         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
2396         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
2397         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
2398         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
2399         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
2400         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
2401         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
2402         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
2403         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
2404         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
2405         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
2406         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
2407         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
2408         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
2409         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
2410         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
2411         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
2412         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
2413         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
2414         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
2415         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
2416         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
2417         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
2418         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
2419         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
2420         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
2421         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
2422         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
2423         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
2424         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
2425         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
2426         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
2427         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
2428         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
2429         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
2430         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
2431         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
2432         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
2433         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
2434         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
2435         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2436         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
2437         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
2438         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
2439         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
2440         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
2441         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
2442         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
2443         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
2444         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
2445         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
2446         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2447         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
2448         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
2449         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
2450         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
2451         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
2452         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
2453         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
2454         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
2455         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
2456         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
2457         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
2458         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
2459         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
2460         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
2461         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
2462         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
2463         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
2464         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
2465         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
2466         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
2467         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
2468         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
2469         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
2470         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
2471         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
2472         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
2473         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
2474         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
2475         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
2476         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
2477         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
2478         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
2479         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
2480         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
2481
2482 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2483             Alan Hayward  <alan.hayward@arm.com>
2484             David Sherwood  <david.sherwood@arm.com>
2485
2486         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
2487         checks for MEM_REF.
2488
2489 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2490             Alan Hayward  <alan.hayward@arm.com>
2491             David Sherwood  <david.sherwood@arm.com>
2492
2493         * doc/generic.texi (VEC_SERIES_EXPR): Document.
2494         * doc/md.texi (vec_series@var{m}): Document.
2495         * tree.def (VEC_SERIES_EXPR): New tree code.
2496         * tree.h (build_vec_series): Declare.
2497         * tree.c (build_vec_series): New function.
2498         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
2499         * tree-pretty-print.c (dump_generic_node): Likewise.
2500         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
2501         * tree-inline.c (estimate_operator_cost): Likewise.
2502         * expr.c (expand_expr_real_2): Likewise.
2503         * optabs-tree.c (optab_for_tree_code): Likewise.
2504         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2505         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
2506         * expmed.c (make_tree): Handle VEC_SERIES.
2507         * optabs.def (vec_series_optab): New optab.
2508         * optabs.h (expand_vec_series_expr): Declare.
2509         * optabs.c (expand_vec_series_expr): New function.
2510         * tree-vect-generic.c (expand_vector_operations_1): Check that
2511         the operands also have vector type.
2512
2513 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2514             Alan Hayward  <alan.hawyard@arm.com>
2515             David Sherwood  <david.sherwood@arm.com>
2516
2517         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
2518         (VEC_COND_EXPR): Add missing @tindex.
2519         * doc/md.texi (vec_duplicate@var{m}): Document.
2520         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
2521         * tree.c (build_vector_from_val): Add stubbed-out handling of
2522         variable-length vectors, using VEC_DUPLICATE_EXPR.
2523         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
2524         * cfgexpand.c (expand_debug_expr): Likewise.
2525         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2526         * tree-inline.c (estimate_operator_cost): Likewise.
2527         * tree-pretty-print.c (dump_generic_node): Likewise.
2528         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
2529         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
2530         (test_vec_duplicate_folding): New function.
2531         (fold_const_c_tests): Call it.
2532         * optabs.def (vec_duplicate_optab): New optab.
2533         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
2534         * optabs.h (expand_vector_broadcast): Declare.
2535         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
2536         vec_duplicate_optab.
2537         * expr.c (store_constructor): Try using vec_duplicate_optab for
2538         uniform vectors.
2539         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
2540
2541 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2542
2543         PR target/83358
2544         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
2545         div/mod latencies a bit.
2546
2547 2017-12-15  Jeff Law  <law@redhat.com>
2548
2549         PR tree-optimization/36550
2550         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
2551         (mark_threaded_blocks): Rewrite code to avoid block copying when
2552         optimizing for size.  Don't pessimize blocks which will be
2553         copied, but all the statements will be dead.
2554
2555 2017-12-15  Alexandre Oliva  <aoliva@redhat.com>
2556
2557         PR tree-optimization/81165
2558         * tree-ssa-threadupdate.c (uses_in_bb): New.
2559         (estimate_threading_killed_stmts): New.
2560         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
2561         * tree-ssa-threadedge.c
2562         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
2563         when its hit.
2564
2565 2017-12-15  Jeff Law  <law@redhat.com>
2566
2567         PR tree-optimization/83410
2568         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
2569         threads when parallelizing loops.
2570
2571 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
2572
2573         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
2574         handler fields.
2575         * config/alpha/alpha.c (vms_attribute_table): Swap
2576         affects_type_identity and handler fields, adjust comments.
2577         * config/mips/mips.c (mips_attribute_table): Likewise.
2578         * config/visium/visium.c (visium_attribute_table): Likewise.
2579         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
2580         * config/microblaze/microblaze.c (microblaze_attribute_table):
2581         Likewise.
2582         * config/spu/spu.c (spu_attribute_table): Likewise.
2583         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2584         * config/arc/arc.c (arc_attribute_table): Likewise.
2585         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
2586         * config/v850/v850.c (v850_handle_interrupt_attribute,
2587         v850_handle_data_area_attribute): Formatting fixes.
2588         (v850_attribute_table): Swap affects_type_identity and handler
2589         fields, adjust comments.
2590         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2591         * config/arm/arm.c (arm_attribute_table): Likewise.
2592         * config/avr/avr.c (avr_attribute_table): Likewise.
2593         * config/s390/s390.c (s390_attribute_table): Likewise.
2594         * config/sh/sh.c (sh_attribute_table): Likewise.
2595         * config/i386/i386.c (ix86_handle_cconv_attribute,
2596         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
2597         (ix86_attribute_table): Swap affects_type_identity and handler
2598         fields, adjust comments.
2599         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2600         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2601         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
2602         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
2603         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
2604         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2605         * config/rx/rx.c (rx_attribute_table): Likewise.
2606         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
2607         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2608         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
2609         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
2610         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2611         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
2612         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2613         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2614         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2615         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2616         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
2617         exclude.
2618         * attribs.c (empty_attribute_table): Swap affects_type_identity and
2619         handler fields.
2620         (register_scoped_attributes, decl_attributes): Formatting fixes.
2621
2622         PR tree-optimization/83269
2623         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
2624         subtraction in arg0's type if type is signed and arg0 is unsigned.
2625         Formatting fix.
2626
2627         PR sanitizer/81281
2628         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
2629         convert? on @0 instead of convert.  Check type of @1, not @0.
2630         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
2631         convert? on @0 instead of convert.  Check type of @1, not @0.
2632         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
2633         only optimize if either both @1 and @2 types are narrower
2634         precision, or both are wider or equal precision, and in the former
2635         case only if both have undefined overflow.
2636
2637 2017-12-15  Richard Biener  <rguenther@suse.de>
2638
2639         PR lto/83388
2640         * internal-fn.def (IFN_NOP): Add.
2641         * internal-fn.c (expand_NOP): Do nothing.
2642         * lto-streamer-in.c (input_function): Instead of removing
2643         sanitizer calls replace them with IFN_NOP calls.
2644
2645 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
2646             Alan Hayward  <alan.hayward@arm.com>
2647             David Sherwood  <david.sherwood@arm.com>
2648
2649         * dse.c (store_info, read_info_type): Replace begin and end with
2650         offset and width.
2651         (print_range): New function.
2652         (set_all_positions_unneeded, any_positions_needed_p)
2653         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
2654         accordingly.
2655         (record_store): Likewise.  Optimize the case in which all positions
2656         are unneeded.
2657         (get_stored_val): Replace read_begin and read_end with read_offset
2658         and read_width.
2659         (replace_read): Update call accordingly.
2660
2661 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
2662
2663         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
2664         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
2665         (loop_cand::loop_cand): Initialize above members.
2666         (loop_cand::supported_operations): Delete.
2667         (loop_cand::can_interchange_p): Inline above function.
2668         (loop_cand::classify_simple_reduction): Record number of constant
2669         initialized simple reductions.
2670         (should_interchange_loops): New parameters.  Check stmt cost of loops
2671         to be interchange.
2672         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
2673         Update call to should_interchange_loops.
2674         (should_interchange_loop_nest): Update call to
2675         should_interchange_loops.
2676
2677 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
2678
2679         PR target/66488
2680         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
2681         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
2682         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
2683
2684 2017-12-15  Julia Koval  <julia.koval@intel.com>
2685
2686         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
2687         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi):
2688         New.
2689         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
2690         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
2691         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
2692
2693 2017-12-15  Julia Koval  <julia.koval@intel.com>
2694
2695         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
2696         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
2697         * config/i386/sse.md (vaesenc_<mode>): New pattern.
2698         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
2699         _mm_aesenc_epi128): New intrinsics.
2700
2701 2017-12-15  Julia Koval  <julia.koval@intel.com>
2702
2703         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
2704         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi):
2705         New.
2706         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
2707         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
2708         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
2709
2710 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2711
2712         * gimple-ssa-strength-reduction.c (analyze_increments):
2713         Distinguish replacement costs for constant strides from those for
2714         unknown strides.
2715
2716 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2717
2718         * var-tracking.c (variable_tracking_main_1): Formatting fix.
2719
2720 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2721
2722         * doc/invoke.texi: Document -Wcast-function-type.
2723         * recog.h (stored_funcptr): Change signature.
2724         * tree-dump.c (dump_node): Avoid warning.
2725         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
2726
2727 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
2728
2729         PR middle_end/79538
2730         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
2731         array.
2732
2733 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
2734
2735         PR tree-optimization/83312
2736         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
2737         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
2738         "val" param, and to cope with arbitrary basic blocks.
2739         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
2740         handle NULL_TREE for "val", dropping "bb" param.
2741         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
2742         drop "bb" param.  Handle NULL_TREE for "val".
2743         (find_case_label_for_value): Make "switch_stmt" param const.
2744         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
2745         of dom_walker.
2746         (vrp_prop::check_all_array_refs): Reimplement as...
2747         (check_array_bounds_dom_walker::before_dom_children): ...this new
2748         vfunc.  Replace linear search through BB block list, excluding
2749         those with non-executable in-edges via dominator walk.
2750
2751 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2752
2753         * config/arm/arm.opt (mverbose-cost-dump): New option.
2754         * config/arm/arm.c (arm_rtx_costs): Use it.
2755
2756 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
2757
2758         PR bootstrap/83396
2759         * reload1.c (emit_input_reload_insns): Skip debug markers.
2760
2761 2017-12-14  Alexandre Oliva  <aoliva@redhat.com>
2762
2763         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
2764         for its nop_endbr.
2765
2766         PR bootstrap/83396
2767         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
2768         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
2769         * config/sh/sh.c: Skip debug insns besides notes.
2770         * config/sh/sh.md: Likewise.
2771         * config/sh/sh_treg_combine.cc: Likewise.
2772         * config/sh/sync.md: Likewise.
2773
2774 2017-12-14  Tom de Vries  <tom@codesourcery.com>
2775
2776         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2777         Add item for weak_undefined.
2778
2779 2017-12-14  Richard Biener  <rguenther@suse.de>
2780
2781         PR tree-optimization/67842
2782         * sese.h (bb_in_region): Remove #if 0'ed code.
2783
2784 2017-12-14  Richard Biener  <rguenther@suse.de>
2785
2786         PR tree-optimization/83326
2787         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
2788         may_be_zero parameter and handle it by not marking the first
2789         peeled copy as not exiting the loop.
2790         (try_peel_loop): Likewise.
2791         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
2792         to handle the case of constant or zero iterations and perform
2793         loop header copying on-the-fly.
2794
2795 2017-12-14  Richard Biener  <rguenther@suse.de>
2796
2797         PR tree-optimization/83418
2798         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
2799         Instead of asserting we don't get unfolded comparisons deal with them.
2800
2801 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2802
2803         PR bootstrap/83396
2804         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
2805         basic blocks.  Assert debug bind insns don't appear outside of bbs,
2806         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
2807         bb.  Simplify.
2808
2809         PR tree-optimization/83198
2810         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
2811         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
2812         value if arg is a REAL_CST with incompatible type.
2813
2814 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
2815             Bin Cheng  <bin.cheng@arm.com>
2816
2817         PR target/81228
2818         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
2819         to CCFPEmode.
2820         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
2821         LTGT.
2822
2823 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2824
2825         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
2826         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
2827
2828 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
2829             Alan Hayward  <alan.hayward@arm.com>
2830             David Sherwood  <david.sherwood@arm.com>
2831
2832         * poly-int.h: New file.
2833         * poly-int-types.h: Likewise.
2834         * coretypes.h: Include them.
2835         (POLY_INT_CONVERSION): Define.
2836         * target.def (estimated_poly_value): New hook.
2837         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
2838         * doc/tm.texi: Regenerate.
2839         * doc/poly-int.texi: New file.
2840         * doc/gccint.texi: Include it.
2841         * doc/rtl.texi: Describe restrictions on subreg modes.
2842         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
2843         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
2844         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
2845         * targhooks.h (default_estimated_poly_value): Declare.
2846         * targhooks.c (default_estimated_poly_value): New function.
2847         * target.h (estimated_poly_value): Likewise.
2848         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
2849         (wi::unary_traits): Delete.
2850         (wi::binary_traits::signed_shift_result_type): Define for
2851         offset_int << HOST_WIDE_INT, etc.
2852         (generic_wide_int::operator <<=): Define for all types and use
2853         wi::lshift instead of <<.
2854         (wi::hwi_with_prec): Add a default constructor.
2855         (wi::ints_for): New class.
2856         (operator <<): Define for all wide-int types.
2857         (operator /): New function.
2858         (operator %): Likewise.
2859         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
2860         (ASSERT_MAYBE_NE_AT): New macros.
2861
2862 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
2863             Dominik Vogt  <vogt@linux.vnet.ibm.com>
2864
2865         PR middle-end/78468
2866         * emit-rtl.c (init_emit): Remove ??? comment.
2867         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2868         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
2869         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
2870         alignment of 3 virtual registers to BITS_PER_WORD.
2871
2872         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
2873
2874 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
2875
2876         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
2877         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
2878
2879 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2880
2881         PR bootstrap/83396
2882         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
2883
2884 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
2885
2886         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
2887         with the exception of debug begin stmt markers appear before
2888         labels.
2889
2890         PR bootstrap/83396
2891         * final.c (rest_of_handle_final): Call variable_tracking_main only
2892         if !flag_var_tracking.
2893
2894 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
2895             Jakub Jelinek  <jakub@redhat.com>
2896
2897         PR bootstrap/83396
2898         PR debug/83391
2899         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
2900         labels debug stmts that can only appear after labels.
2901
2902 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
2903
2904         PR rtl-optimization/82398
2905         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
2906         EXPR_USEFULNESS in priority comparison.
2907
2908 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
2909
2910         PR rtl-optimization/83393
2911         * combine.c (move_deaths): If reg_stat points to a too new insn in
2912         last_death, do not use it: find the proper insn instead.
2913
2914 2017-12-12  Jeff Law  <law@redhat.com>
2915
2916         PR tree-optimization/83298
2917         PR tree-optimization/83362
2918         PR tree-optimization/83383
2919         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
2920         push_value_range a public interface.  Add new argument to
2921         record_ranges_from_stmt.
2922         * gimple-ssa-evrp-analyze.c
2923         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
2924         Update comments.  Handle recording temporary equivalences.
2925         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
2926         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
2927         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
2928         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
2929         gimple-ssa-evrp-analyze.h.
2930         (record_temporary_equivalences_from_phis): Add new argument.  When
2931         the PHI arg is an SSA_NAME, set the result's range to the range
2932         of the PHI arg.
2933         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
2934         from statements too.
2935         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
2936         Pass it down to children as needed.
2937         (thread_outgoing_edges): Likewise.
2938         (thread_across_edge): Likewise.   Push/pop range state as needed.
2939         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
2940
2941 2017-12-12  Julia Koval  <julia.koval@intel.com>
2942
2943         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
2944         (PTA_CANNONLAKE): Remove PTA_CLWB.
2945
2946 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2947
2948         PR target/83332
2949         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
2950         (vcondv2div2df): Likewise.
2951         (vconduv2dfv2di): Likewise.
2952
2953 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2954
2955         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
2956         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
2957         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
2958         ATTR_MATHFN_FPROUNDING_ERRNO.
2959
2960 2017-12-12  Richard Biener  <rguenther@suse.de>
2961
2962         PR tree-optimization/83385
2963         * graphite-scop-detection.c (get_order, order): Remove.
2964         (bb_to_rpo): New global.
2965         (cmp_pbbs): Adjust.
2966         (build_scops): Sort pbbs in RPO order.
2967
2968 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
2969
2970         * combine.c (simplify_set): Do not transform subregs to zero_extends
2971         if the destination mode is a vector mode.
2972
2973 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
2974
2975         PR tree-optimization/83359
2976         * tree-cfg.h (fold_loop_internal_call): Declare.
2977         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
2978         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
2979         (find_loop_dist_alias): New function.
2980         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
2981         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
2982         calls.
2983
2984         PR tree-optimization/80631
2985         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
2986         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
2987         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
2988         hardcoding zero as the value if COND_EXPR is never true.  For
2989         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
2990         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
2991         hardcoding MAX_EXPR as the reduction operation.
2992         (is_nonwrapping_integer_induction): Allow negative step.
2993         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
2994         vect_create_epilog_for_reduction, if no value is suitable, don't
2995         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
2996
2997 2017-12-12  Richard Biener  <rguenther@suse.de>
2998
2999         PR tree-optimization/81889
3000         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
3001         range info from the non-wrapping IV instead of just the range
3002         of the type.
3003
3004 2017-12-12  Julia Koval  <julia.koval@intel.com>
3005
3006         * config.gcc: Add vaesintrin.h.
3007         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3008         New type.
3009         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3010         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3011         New builtins.
3012         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3013         * config/i386/immintrin.h: Include vaesintrin.h.
3014         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3015         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3016         _mm_aesdec_epi128): New intrinsics.
3017
3018 2017-12-12  Julia Koval  <julia.koval@intel.com>
3019
3020         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
3021         OPTION_MASK_ISA_VAES_UNSET): New.
3022         (ix86_handle_option): Handle -mvaes.
3023         * config/i386/cpuid.h: Define bit_VAES.
3024         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
3025         * config/i386/i386-c.c (__VAES__): New.
3026         * config/i386/i386.c (ix86_target_string): Add -mvaes.
3027         (ix86_valid_target_attribute_inner_p): Ditto.
3028         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
3029         * config/i386/i386.opt: Add -mvaes.
3030         * doc/invoke.texi: Ditto.
3031
3032 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
3033
3034         * debug.h (gcc_debug_hooks): Add inline_entry.
3035         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3036         * debug.c (do_nothing_debug_hooks): Likewise.
3037         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3038         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3039         (dwarf2_lineno_debug_hooks): Likewise.
3040
3041         * common.opt (gstatement-frontiers): New, setting
3042         debug_nonbind_markers_p.
3043         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
3044         * toplev.c (process_options): Autodetect value for debug statement
3045         frontiers option.
3046         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
3047         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
3048
3049         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
3050         markers.  Integrate source bind into debug stmt expand loop.
3051         (pass_expand::execute): Check debug marker limit.  Avoid deep
3052         TER and expand debug locations for debug bind insns only.
3053         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
3054         followed by them.
3055         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
3056         * final.c (reemit_insn_block_notes): Take current block from
3057         nonbind markers.  Declare note where it's first set.
3058         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
3059         begin stmt markers if enabled.
3060         (notice_source_line): Handle nonbind markers.  Fail if their
3061         location is unknown or that of builtins.
3062         (rest_of_handle_final): Convert begin stmt markers to notes if
3063         var-tracking didn't run.
3064         (rest_of_clean_state): Skip begin stmt markers.
3065         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
3066         markers.
3067         * function.c (allocate_struct_function): Set begin_stmt_markers.
3068         * function.h (struct function): Add debug_marker_count counter
3069         and debug_nonbind_markers flag.
3070         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
3071         * gimple-low.c (lower_function_body): Adjust
3072         debug_nonbind_markers.
3073         (lower_stmt): Drop or skip gimple debug stmts.
3074         (lower_try_catch): Skip debug stmts.
3075         * gimple.c (gimple_build_debug_begin_stmt): New.
3076         (gimple_copy): Increment debug_marker_count if copying one.
3077         * gimple.h (gimple_build_debug_begin_stmt): Declare.
3078         * gimplify.c (rexpr_location): New.
3079         (rexpr_has_location): New.
3080         (warn_switch_unreachable_r): Handle gimple debug stmts.
3081         (shortcut_cond_r): Call expr_location.
3082         (find_goto): New.
3083         (find_goto_label): New.
3084         (shortcut_cond_expr): Call expr_has_location, expr_location, and
3085         find_goto_label.
3086         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
3087         expr_location.
3088         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
3089         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
3090         (LANG_HOOKS_INITIALIZER): ... this.
3091         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
3092         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
3093         debug insns.
3094         (update_ebb_live_info): Skip debug insn markers.
3095         * lra.c (debug_insn_static_data): Rename to...
3096         (debug_bind_static_data): ... this.
3097         (debug_marker_static_data): New.
3098         (lra_set_insn_recog_data): Select one of the above depending
3099         on debug insn kind.
3100         (lra_update_isn_regno_info): Don't assume debug insns have
3101         freqs.
3102         (push_insns): Skip debug insns.
3103         * lto-streamer-in.c (input_function): Drop debug stmts
3104         depending on active options.  Adjust debug_nonbind_markers.
3105         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
3106         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
3107         begin stmt marker notes.
3108         (print_insn): Likewise.
3109         * recog.c (extract_insn): Recognize rtl for debug markers.
3110         * rtl.def (DEBUG_MARKER): New.
3111         * tree-inline.c: Include params.h.
3112         (remap_gimple_stmt): Handle nonbind markers.
3113         (maybe_move_debug_stmts_to_successors): Likewise.
3114         (copy_debug_stmt): Likewise.
3115         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
3116         markers regardless of no side effects.
3117         (tsi_link_before): Don't update container's side effects when adding
3118         a begin stmt marker.
3119         (tsi_link_after): Likewise.
3120         (expr_first): Skip begin stmt markers.
3121         (expr_last): Likewise.
3122         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
3123         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3124         Disregard nonbind markers.
3125         * tree.c (make_node_stat): Don't set side effects for begin stmt
3126         markers.
3127         (build1_stat): Likewise.
3128         * tree.def (DEBUG_BEGIN_STMT): New.
3129         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
3130         * var-tracking.c (delete_debug_insns): Renamed to...
3131         (delete_vta_debug_insns): ... this.
3132         (reemit_marker_as_note): New.
3133         (vt_initialize): Reemit markers.
3134         (delete_vta_debug_insns): Likewise.
3135         (vt_debug_insns_local): Reemit or delete markers.
3136         (variable_tracking_main_1): Likewise.
3137         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
3138         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
3139         (gimple_debug_nonbind_marker_p): New.
3140         (gimple_build_debug_bind): Adjust.
3141         (gimple_build_debug_begin_stmt): New.
3142         * doc/invoke.texi (max-debug-marker-count): New param.
3143         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
3144         (debug_parameter_ref, debug_marker): New.
3145         (NOTE_INSN_BEGIN_STMT): New.
3146         (DEBUG_INSN): Describe begin stmt markers.
3147
3148         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
3149         without debug insns, we wouldn't, but clean up debug insns
3150         after a control flow insn nevertheless.
3151
3152         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
3153         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
3154         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
3155         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
3156         (rtl_tidy_fallthru_edge): Likewise.
3157         (rtl_verify_fallthru): Likewise.
3158         (rtl_verify_bb_layout): Likewise.
3159         (skip_insns_after_block): Likewise.
3160         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
3161         * dwarf2out.c: Include print-rtl.h.
3162         (dwarf2out_next_real_insn): New.
3163         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
3164         Dump debug binds in asm comments.
3165         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
3166         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
3167         callers to use gsi_start_nondebug_bb instead.
3168         (gsi_after_labels): Skip gimple debug stmts.
3169         (gsi_start_nondebug): New.
3170         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
3171         (proper_loop_form_for_interchange): Adjust.
3172         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
3173         * gimple.h (gimple_seq_last_nondebug_stmt): New.
3174         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
3175         (collect_fallthrough_labels): Likewise.
3176         (should_warn_for_implicit_fallthrough): Likewise.
3177         (warn_implicit_fallthrough_r): Likewise.
3178         (expand_FALLTHROUGH_r): Likewise.
3179         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
3180         (graphite_copy_stmts_from_block): Skip nonbind markers.
3181         * haifa-sched.c (sched_extend_bb): Skip debug insns.
3182         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
3183         * jump.c (clean_barriers): Skip debug insns.
3184         * omp-expand.c (expand_parallel_call): Skip debug insns.
3185         (expand_task_call): Likewise.
3186         (remove_exit_barrier): Likewise.
3187         (expand_omp_taskreg): Likewise.
3188         (expand_omp_for_init_counts): Likewise.
3189         (expand_omp_for_generic): Likewise.
3190         (expand_omp_for_static_nochunk): Likewise.
3191         (expand_omp_for_static_chunk): Likewise.
3192         (expand_omp_simd): Likewise.
3193         (expand_omp_taskloop_for_outer): Likewise.
3194         (expand_omp_taskloop_for_inner): Likewise.
3195         (expand_oacc_for): Likewise.
3196         (expand_omp_sections): Likewise.
3197         (expand_omp_single): Likewise.
3198         (expand_omp_synch): Likewise.
3199         (expand_omp_atomic_load): Likewise.
3200         (expand_omp_atomic_store): Likewise.
3201         (expand_omp_atomic_fetch_op): Likewise.
3202         (expand_omp_atomic_pipeline): Likewise.
3203         (expand_omp_atomic_mutex): Likewise.
3204         (expand_omp_target): Likewise.
3205         (grid_expand_omp_for_loop): Likewise.
3206         (grid_expand_target_grid_body): Likewise.
3207         (build_omp_regions_1): Likewise.
3208         * omp-low.c (check_combined_parallel): Skip debug stmts.
3209         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
3210         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
3211         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
3212         test.
3213         * tree-cfg.c (make_blobs_1): Skip debug stmts.
3214         (make_edges): Likewise.
3215         (cleanup_dead_labels): Likewise.
3216         (gimple_can_merge_blocks_p): Likewise.
3217         (stmt_starts_bb_p): Likewise.
3218         (gimple_block_label): Likewise.
3219         (gimple_redirect_edge_and_branch): Likewise.
3220         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
3221         of debug stmts.
3222         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
3223         TDF_SLIM.
3224         * tree-pretty-print (print_declaration): Omit initializer in slim
3225         dumps.
3226         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
3227         markers.
3228         (eliminate_unnecessary_stmts): Stabilize block removal order.
3229         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
3230         * var-tracking.c (get_first_insn): New.
3231         (vt_emit_notes): Call it.
3232         (vt_initialize): Walk any insns before the first BB.
3233         (delete_debug_insns): Likewise.
3234
3235         * gimple.h (enum gimple_debug_subcode): Add
3236         GIMPLE_DEBUG_BEGIN_STMT.
3237         (gimple_debug_begin_stmt_p): New.
3238         (gimple_debug_nonbind_marker_p): New.
3239         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
3240         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
3241         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
3242         * insn-notes.def (BEGIN_STMT): New.
3243         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
3244         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
3245         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
3246         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
3247         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
3248         (INSN_DEBUG_MARKER_KIND): New.
3249         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
3250         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
3251         (INSN_VAR_LOCATION_PTR): New.
3252         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
3253         only.
3254         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
3255         deps only if debug bind insns are enabled.
3256         (pass_expand::execute): Avoid deep TER and expand
3257         debug locations for debug bind insns only.
3258         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
3259         debug stmts special handling down to debug bind stmts.
3260         * combine.c (try_combine): Narrow debug insns special handling
3261         down to debug bind insns.
3262         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
3263         Narrow debug insns preexisting special handling down to debug
3264         bind insns.
3265         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
3266         handling down to debug bind insns.
3267         * function.c (instantiate_virtual_regs): Skip debug markers,
3268         adjust handling of debug binds.
3269         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
3270         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
3271         * haifa-sched.c (schedule_insn): Narrow special handling of debug
3272         insns to debug bind insns.
3273         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
3274         special handling of debug stmts to debug bind stmts.
3275         * ipa-split.c (split_function): Likewise.
3276         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
3277         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
3278         debug insns.
3279         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
3280         * regrename.c (build_def_use): Likewise.
3281         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
3282         (pass_cprop_hardreg): Narrow special casing of debug insns to
3283         debug bind insns.
3284         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
3285         * reload1.c (reload): Likewise.
3286         * sese.c (sese_insert_phis_for_liveouts): Narrow special
3287         casing of debug stmts to debug bind stmts.
3288         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
3289         * ssa-iterators.h (num_imm_uses): Likewise.
3290         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
3291         debug stmts to debug bind stmts.
3292         * tree-inline.c (tree_function_versioning): Narrow special casing
3293         of debug stmts to debug bind stmts.
3294         * tree-loop-distribution.c (generate_loops_for_partition):
3295         Narrow special casing of debug stmts to debug bind stmts.
3296         * tree-sra.c (analyze_access_subtree): Narrow special casing
3297         of debug stmts to debug bind stmts.
3298         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
3299         stmts to debug bind stmts.
3300         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
3301         casing of debug stmts to debug bind stmts.
3302         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
3303         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
3304         casing of debug stmts to debug bind stmts.
3305         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3306         Likewise.
3307         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
3308         debug stmts to debug bind stmts.
3309         (gimple_replace_ssa_lhs): Likewise.
3310         (insert_debug_temp_for_var_def): Likewise.
3311         (insert_debug_temps_for_defs): Likewise.
3312         (reset_debug_uses): Likewise.
3313         * tree-ssanames.c (release_ssa_name_fn): Likewise.
3314         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
3315         (adjust_debug_stmts): Likewise.
3316         (adjust_phi_and_debug_stmts): Likewise.
3317         (vect_do_peeling): Likewise.
3318         * tree-vect-loop.c (vect_transform_loop): Likewise.
3319         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
3320         * var-tracking.c (adjust_mems): Narrow special casing of debug
3321         insns to debug bind insns.
3322         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
3323         (compute_bb_dataflow, vt_find_locations): Likewise.
3324         (vt_expand_loc, emit_notes_for_changes): Likewise.
3325         (vt_init_cfa_base): Likewise.
3326         (vt_emit_notes): Likewise.
3327         (vt_initialize): Likewise.
3328         (vt_finalize): Likewise.
3329
3330         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
3331         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
3332         (next_nonnote_nondebug_insn_bb): New.
3333         (prev_nonnote_nondebug_insn_bb): New.
3334         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
3335         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
3336         (prev_nonnote_nondebug_insn_bb): Declare.
3337         (next_nonnote_nondebug_insn_bb): Declare.
3338         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
3339         * cfgrtl.c (get_last_bb_insn): Likewise.
3340         * lra.c (push_insns): Likewise.
3341
3342 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
3343
3344         PR c/82050
3345         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
3346         to...
3347         * selftest.c (selftest::test_runner::test_runner): New ctor.
3348         (selftest::test_runner::~test_runner): New dtor.
3349         * selftest.h (class selftest::test_runner): New class.
3350
3351 2017-12-11  Carl Love  <cel@us.ibm.com>
3352
3353         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
3354         vec_extract_fp32_from_shortl]): Add #defines.
3355         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
3356         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
3357         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
3358         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
3359         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
3360         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
3361         * doc/extend.texi: Add documentation for the added builtins.
3362
3363 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
3364
3365         PR rtl-optimization/80693
3366         PR rtl-optimization/81019
3367         PR rtl-optimization/81020
3368         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
3369         are not mentioned in i3.  Place the REG_UNUSED note on i2,
3370         possibly modified to REG_DEAD, if it did not originate in i3.
3371
3372 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3373
3374         * recog.c (store_data_bypass_p_1): New function.
3375         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
3376         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
3377
3378 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
3379
3380         PR rtl-optimization/83361
3381         * ifcvt.c (if_convert): Call fixup_partitions.
3382
3383 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
3384
3385         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
3386         early folding of splat_u{8,16,32}.
3387
3388 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3389
3390         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
3391         output_operand_lossage first argument with capital letter.
3392         (aarch64_override_options): Don't start error and sorry first argument
3393         with capital letter.
3394
3395 2017-12-11  Andi Kleen  <ak@linux.intel.com>
3396
3397         PR gcov-profile/83355
3398         * auto-profile.c (string_table::get_index_by_decl): Don't
3399         recurse when abstract origin points to itself.
3400
3401 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
3402
3403         PR tree-optimization/83320
3404         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
3405         (prune_datarefs_not_in_loop): Ditto.
3406
3407 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
3408
3409         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
3410
3411 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
3412
3413         PR tree-optimization/83337
3414         * gimple-loop-interchange.cc (compute_access_stride): Handle
3415         bitfield DRs properly.
3416
3417 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
3418
3419         PR tree-optimization/83338
3420         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
3421         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
3422         vector of unsigned integers to vector of signed integers.
3423
3424 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
3425
3426         PR rtl-optimization/83317
3427         * lra-constraints.c (process_address_1): Add insn code check.
3428
3429 2017-12-08  Michael Matz  <matz@suse.de>
3430
3431         Fix PR tree-optimization/83323
3432         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
3433         head-controlled loops and loop BBs.
3434         * common.opt (funroll-and-jam): Remove, instead ...
3435         (floop-unroll-and-jam): ... reuse this option.
3436         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
3437         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
3438         (-floop-unroll-and-jam): ... this option.
3439
3440 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3441
3442         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
3443         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
3444         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
3445
3446 2017-12-08  Richard Biener  <rguenther@suse.de>
3447
3448         PR middle-end/81782
3449         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
3450         handle accesses outside of zero-sized vars.
3451
3452 2017-12-08  Martin Jambor  <mjambor@suse.cz>
3453
3454         PR tree-optimization/83141
3455         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
3456         test for MEM_REFs implicitely changing types with padding.  Remove
3457         inline keyword.
3458         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
3459
3460 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3461
3462         * config/arc/arc.c (arc_attribute_table): Add exclusions to
3463         the comment.
3464         * config/avr/avr.c (avr_attribute_table): Likewise.
3465         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
3466         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
3467         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
3468         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
3469         of struct attribute_spec.
3470         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
3471
3472 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
3473
3474         PR target/82960
3475         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
3476
3477 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
3478
3479         PR middle-end/83609
3480         * profile-count.c (profile_count::from_gcov_type): Move from
3481         profile-count.h; handle overflow.
3482         * profile-count.h (profile_count::from_gcov_type): Move offline.
3483
3484 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
3485
3486         PR rtl-optimization/83304
3487         * combine.c (move_deaths): If we do not know where a register died,
3488         search for it.
3489
3490 2017-12-08  Richard Biener  <rguenther@suse.de>
3491
3492         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
3493         Provide -fopt-info-loop feedback when we interchange in a nest.
3494
3495 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3496
3497         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
3498         for armv6 ARM CPU IDs.
3499
3500 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3501
3502         * common/config/arm/arm-common.c: Include <algorithm>.
3503         (INCLUDE_VECTOR): Define.
3504         (compare_opt_names): New function.
3505         (arm_rewrite_selected_arch): Only strip out extensions that can be
3506         expressed through -mfpu.  Sort the remaining extensions
3507         alphabetically.
3508
3509 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3510
3511         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
3512         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
3513         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
3514         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
3515
3516 2017-06-08  Tristan Gingold  <gindold@adacore.com>
3517
3518         PR ada/81470
3519         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
3520         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
3521
3522 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3523
3524         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
3525         of struct attribute_spec.
3526
3527 2017-12-08  Julia Koval  <julia.koval@intel.com>
3528
3529         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
3530         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
3531         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
3532         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
3533         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
3534         _mm_maskz_dpwssds_epi32): Ditto.
3535
3536 2017-12-08  Richard Biener  <rguenther@suse.de>
3537
3538         PR tree-optimization/81303
3539         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
3540         conditions try to create a comparison vector type matching
3541         the data vector type.
3542         (vectorizable_condition): Adjust.
3543         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3544         Leave invariant conditions alone in case we can vectorize those.
3545
3546 2017-12-08  Julia Koval  <julia.koval@intel.com>
3547
3548         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
3549         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
3550         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
3551         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
3552         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
3553
3554 2017-12-08  Julia Koval  <julia.koval@intel.com>
3555
3556         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
3557         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
3558         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
3559         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
3560         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
3561         _mm_maskz_dpbusds_epi32): New intrinsics.
3562
3563 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3564
3565         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
3566         operand.
3567         (ld<bh>io_signed): Likewise.
3568         (st<bhw>io): Likewise.
3569         * config/nios2/predicates.md (ldstio_memory_operand): Allow
3570         SMALL_INT12 constant integer operand.
3571
3572 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3573
3574         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
3575         Rename to...
3576         (nios2_large_constant_allowed): ...this.  Adjust uses.
3577         (nios2_plus_symbolic_constant_p): Rename to...
3578         (nios2_plus_large_constant_p): ...this.  Adjust uses.
3579         (nios2_legitimate_address_p): Correct CONST_INT handling.
3580         (nios2_symbolic_memory_operand_p): Rename to...
3581         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
3582         (nios2_large_constant_p): Check for large constant integers too.
3583         (nios2_split_large_constant): Handle constant integers.
3584         (nios2_split_symbolic_memory_operand): Rename to...
3585         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
3586         (nios2_legitimize_constant_address): Handle constant integers.
3587         (r0rel_constant_p): Handle small constant integers.
3588         (nios2_print_operand_address): Handle r0-relative integer addresses.
3589         * config/nios2/nios2-protos.h: Adjust for renamed functions.
3590         * config/nios2/nios2.md: Adjust for renamed functions.
3591
3592 2017-12-07  Andrew Waterman  <andrew@sifive.com>
3593
3594         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
3595         (TARGET_HAVE_SRODATA_SECTION): New define.
3596         (riscv_select_section): New function.
3597
3598 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
3599             Alexander Monakov  <amonakov@ispras.ru>
3600             Jakub Jelinek  <jakub@redhat.com>
3601
3602         PR target/81906
3603         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
3604
3605 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3606
3607         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
3608         a bool success value.  Don't call output_operand_lossage here.
3609         (aarch64_print_ldpstp_address): Return a bool success value.
3610         (aarch64_print_operand_address): Call output_addr_const if
3611         aarch64_print_address_internal fails.
3612         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
3613         'y'; call output_operand_lossage instead.  Call output_operand_lossage
3614         if aarch64_print_ldpstp_address fails.
3615
3616 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3617
3618         * tree-vector-builder.h
3619         (tree_vector_builder::binary_encoded_nelts): Declare.
3620         * tree-vector-builder.c
3621         (tree_vector_builder::binary_encoded_nelts): New function.
3622         * fold-const.c (negate_expr_p): Likewise.
3623         (operand_equal_p, fold_checksum_tree): Likewise.
3624         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
3625         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
3626         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
3627         (uniform_vector_p): Likewise.
3628         * varasm.c (const_hash_1, compare_constant): Likewise.
3629         * tree-ssa-ccp.c: Include tree-vector-builder.h.
3630         (valid_lattice_transition): Operate directly on the VECTOR_CST
3631         encoding.
3632         * ipa-icf.c: Include tree-vector-builder.h.
3633         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
3634         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
3635
3636 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3637
3638         * tree.c (build_vector): Delete.
3639         * tree.h (build_vector): Make static and move into the self-testing
3640         block.
3641
3642 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3643
3644         * vector-builder.h (vector_builder::derived): New const overload.
3645         (vector_builder::elt): New function.
3646         * tree-vector-builder.h (tree_vector_builder::type): New function.
3647         (tree_vector_builder::apply_step): Declare.
3648         * tree-vector-builder.c (tree_vector_builder::apply_step): New
3649         function.
3650         * gimple-fold.h (tree_vector_builder): Declare.
3651         (gimple_build_vector): Take a tree_vector_builder instead of a
3652         type and vector of elements.
3653         * gimple-fold.c (gimple_build_vector): Likewise.
3654         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
3655         accordingly.
3656         (get_initial_defs_for_reduction): Likewise.
3657         (vectorizable_induction): Likewise.
3658
3659 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3660
3661         * tree-vector-builder.h
3662         (tree_vector_builder::new_binary_operation): Declare.
3663         * tree-vector-builder.c
3664         (tree_vector_builder::new_binary_operation): New function.
3665         * fold-const.c (fold_relational_const): Use it.
3666         (const_binop): Likewise.  Check that both input vectors have
3667         the same number of elements, thus excluding things like WIDEN_SUM.
3668         Check whether it is possible to operate directly on the encodings
3669         of stepped inputs.
3670
3671 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3672
3673         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
3674         new_unary_operation, operating only on the encoded elements.
3675         (const_unop): Likewise.
3676         (exact_inverse): Likewise.
3677         (distributes_over_addition_p): New function.
3678         (const_binop): Use tree_vector_builder and new_unary_operation
3679         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
3680         on the encoded elements unless the encoding is strided and the
3681         operation does not distribute over addition.
3682         (fold_convert_const):  Use tree_vector_builder and
3683         new_unary_operation.  Operate only on the encoded elements
3684         for truncating integer conversions, or for non-stepped encodings.
3685
3686 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3687
3688         * config/sparc/sparc.c: Include tree-vector-builder.h.
3689         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
3690         * expmed.c: Include tree-vector-builder.h.
3691         (make_tree): Use tree_vector_builder instead of build_vector.
3692         * fold-const.c: Include tree-vector-builder.h.
3693         (const_binop): Use tree_vector_builder instead of build_vector.
3694         (const_unop): Likewise.
3695         (native_interpret_vector): Likewise.
3696         (fold_vec_perm): Likewise.
3697         (fold_ternary_loc): Likewise.
3698         * gimple-fold.c: Include tree-vector-builder.h.
3699         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
3700         of build_vector.
3701         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
3702         (simplify_vector_constructor): Use tree_vector_builder instead
3703         of build_vector.
3704         * tree-vect-generic.c: Include tree-vector-builder.h.
3705         (add_rshift): Use tree_vector_builder instead of build_vector.
3706         (expand_vector_divmod): Likewise.
3707         (optimize_vector_constructor): Likewise.
3708         * tree-vect-loop.c: Include tree-vector-builder.h.
3709         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
3710         of build_vector.  Explicitly use a stepped encoding for
3711         { 1, 2, 3, ... }.
3712         * tree-vect-slp.c: Include tree-vector-builder.h.
3713         (vect_get_constant_vectors): Use tree_vector_builder instead
3714         of build_vector.
3715         (vect_transform_slp_perm_load): Likewise.
3716         (vect_schedule_slp_instance): Likewise.
3717         * tree-vect-stmts.c: Include tree-vector-builder.h.
3718         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
3719         (vect_gen_perm_mask_any): Likewise.
3720         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
3721         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
3722         of build_vector.
3723         (build_vector_from_val): Likewise.  Explicitly use a duplicate
3724         encoding.
3725
3726 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
3727
3728         * doc/generic.texi (VECTOR_CST): Describe new representation of
3729         vector constants.
3730         * vector-builder.h: New file.
3731         * tree-vector-builder.h: Likewise.
3732         * tree-vector-builder.c: Likewise.
3733         * Makefile.in (OBJS): Add tree-vector-builder.o.
3734         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
3735         * tree-core.h (tree_base): Add a vector_cst field to the u union.
3736         (tree_vector): Change the number of elements to
3737         vector_cst_encoded_nelts.
3738         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
3739         (VECTOR_CST_ELTS): Delete.
3740         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
3741         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
3742         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
3743         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
3744         (VECTOR_CST_ENCODED_ELT): Likewise.
3745         (vector_cst_encoded_nelts): New function.
3746         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3747         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3748         (vector_cst_int_elt, vector_cst_elt): Declare.
3749         * tree.c: Include tree-vector-builder.h.
3750         (tree_code_size): Abort if passed VECTOR_CST.
3751         (tree_size): Update for new VECTOR_CST layout.
3752         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3753         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3754         (build_vector): Use tree_vector_builder.
3755         (vector_cst_int_elt, vector_cst_elt): New functions.
3756         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
3757         encoded elements and then create the vector in the canonical form.
3758         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
3759         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
3760         (tree_c_tests): Call test_vector_cst_patterns.
3761         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
3762         VECTOR_CST fields.
3763         (hash_tree): Likewise.
3764         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
3765         (streamer_write_tree_header): Likewise.
3766         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
3767         (streamer_alloc_tree): Likewise.  Update call to make_vector.
3768         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
3769
3770 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3771
3772         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
3773         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
3774         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
3775
3776 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
3777             Richard Biener  <rguenther@suse.de>
3778
3779         PR tree-optimization/81303
3780         * Makefile.in (gimple-loop-interchange.o): New object file.
3781         * common.opt (floop-interchange): Reuse the option from graphite.
3782         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
3783         -floop-interchange and mention it for -O3.
3784         * opts.c (default_options_table): Enable -floop-interchange at -O3.
3785         * gimple-loop-interchange.cc: New file.
3786         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
3787         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
3788         * passes.def (pass_linterchange): New pass.
3789         * timevar.def (TV_LINTERCHANGE): New time var.
3790         * tree-pass.h (make_pass_linterchange): New declaration.
3791         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
3792         interchange.  Record IV before/after increment in new parameters.
3793         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
3794         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
3795         path check into...
3796         (check_reduction_path): ...New function here.
3797         * tree-vectorizer.h (check_reduction_path): New declaration.
3798
3799 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
3800
3801         PR target/83252
3802         PR rtl-optimization/80818
3803         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
3804         always early clobbered.
3805         * lra-lives.c (process_bb_lives): Check input hard regs for early
3806         clobbered non-operand hard reg.
3807
3808 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
3809
3810         PR middle-end/83164
3811         * tree-cfg.c (verify_gimple_assign_binary): Don't require
3812         types_compatible_p, just that TYPE_MODE is the same.
3813
3814 2017-12-07  Martin Sebor  <msebor@redhat.com>
3815
3816         PR c/81544
3817         * attribs.c (empty_attribute_table): Initialize new member of
3818         struct attribute_spec.
3819         (decl_attributes): Add argument.  Handle mutually exclusive
3820         combinations of attributes.
3821         (selftests::test_attribute_exclusions): New function.
3822         (selftests::attribute_c_tests): Ditto.
3823         * attribs.h (decl_attributes): Add default argument.
3824         * selftest.h (attribute_c_tests): Declare.
3825         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
3826         * tree-core.h (attribute_spec::exclusions, exclude): New type and
3827         member.
3828         * doc/extend.texi (Common Function Attributes): Update const and pure.
3829         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
3830         of struct attribute_spec.
3831         * config/arc/arc.c (arc_attribute_table): Same.
3832         * config/arm/arm.c (arm_attribute_table): Same.
3833         * config/avr/avr.c ( avr_attribute_table): Same.
3834         * config/bfin/bfin.c (bfin_attribute_table): Same.
3835         * config/cr16/cr16.c (cr16_attribute_table): Same.
3836         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
3837         * config/h8300/h8300.c (h8300_attribute_table): Same.
3838         * config/i386/i386.c (ix86_attribute_table): Same.
3839         * config/ia64/ia64.c (ia64_attribute_table): Same.
3840         * config/m32c/m32c.c (m32c_attribute_table): Same.
3841         * config/m32r/m32r.c (m32r_attribute_table): Same.
3842         * config/m68k/m68k.c (m68k_attribute_table): Same.
3843         * config/mcore/mcore.c (mcore_attribute_table): Same.
3844         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
3845         * config/mips/mips.c (mips_attribute_table): Same.
3846         * config/msp430/msp430.c (msp430_attribute_table): Same.
3847         * config/nds32/nds32.c (nds32_attribute_table): Same.
3848         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
3849         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
3850         * config/rl78/rl78.c (rl78__attribute_table): Same.
3851         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
3852         * onfig/rx/rx.c (rx_attribute_table): Same.
3853         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
3854         * config/sh/sh.c (sh_attribute_table): Same.
3855         * config/sparc/sparc.c (sparc_attribute_table): Same.
3856         * config/spu/spu.c (spu_attribute_table): Same.
3857         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
3858         * config/v850/v850.c (v850_attribute_table): Same.
3859         * config/visium/visium.c (visium_attribute_table): Same.
3860
3861 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
3862
3863         PR target/82641
3864         * config/arm/arm.c (INCLUDE_STRING): Define.
3865         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
3866         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
3867         and .fpu.
3868
3869 2017-12-07  Michael Matz  <matz@suse.de>
3870
3871         Add unroll and jam pass
3872
3873         * gimple-loop-jam.c: New file.
3874         * Makefile.in (OBJS): Add gimple-loop-jam.o.
3875         * common.opt (funroll-and-jam): New option.
3876         * opts.c (default_options_table): Add unroll-and-jam at -O3.
3877         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
3878         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
3879         * passes.def: Add pass_loop_jam.
3880         * timevar.def (TV_LOOP_JAM): Add.
3881         * tree-pass.h (make_pass_loop_jam): Declare.
3882         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
3883         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
3884         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
3885         to flow_loop_tree_node_add.
3886         (duplicate_subloops, copy_loops_to): Append to sibling list.
3887         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
3888         * doc/invoke.texi (-funroll-and-jam): Document new option.
3889         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
3890
3891 2017-12-07  Richard Biener  <rguenther@suse.de>
3892
3893         PR tree-optimization/83296
3894         PR tree-optimization/67769
3895         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
3896         flow sensitive info in an unrelated BB.
3897         (value_replacement): Use reset_flow_sensitive_info.
3898         (minmax_replacement): Reset flow sensitive info on the def
3899         we move.  Do not reset flow sensitive info in the whole BB
3900         we move the stmt to.
3901         (abs_replacement): Likewise.
3902
3903 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3904
3905         PR target/43871
3906         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
3907         rs6000_cpu to the given -mcpu=, or to the default processor.
3908
3909 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3910
3911         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
3912         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
3913         instead of rs6000_cpu_attr.
3914         (rs6000_adjust_cost): Ditto.
3915         (is_microcoded_insn): Ditto.
3916         (rs6000_adjust_priority): Ditto.
3917         (rs6000_issue_rate): Ditto.
3918         (rs6000_use_sched_lookahead): Ditto.
3919         (rs6000_use_sched_lookahead_guard): Ditto.
3920         (rs6000_sched_reorder): Ditto.
3921         (force_new_group): Ditto.
3922         * config/rs6000/rs6000.md (cpu attribute): Ditto.
3923         (group_ending_nop): Ditto.
3924
3925 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
3926
3927         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
3928         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
3929         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
3930         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
3931         appropriate.
3932         (rs6000_reassociation_width): Ditto.
3933         (rs6000_emit_epilogue): Ditto.
3934         (rs6000_adjust_cost): Ditto.
3935         (is_microcoded_insn): Ditto.
3936         (is_cracked_insn): Ditto.
3937         (rs6000_adjust_priority): Ditto.
3938         (rs6000_sched_reorder): Ditto.
3939         (rs6000_sched_reorder2): Ditto.
3940         (insn_must_be_first_in_group): Ditto.
3941         (insn_must_be_last_in_group): Ditto.
3942         (rs6000_register_move_cost): Ditto.
3943         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
3944         rs6000_cpu.
3945
3946 2017-12-07  Julia Koval  <julia.koval@intel.com>
3947
3948         * config.gcc: Add vaesintrin.h.
3949         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3950         New type.
3951         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3952         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3953         New builtins.
3954         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3955         * config/i386/immintrin.h: Include vaesintrin.h.
3956         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3957         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3958         _mm_aesdec_epi128): New intrinsics.
3959
3960 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
3961
3962         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
3963         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
3964         c-family/c-spellcheck.cc.
3965         (best_macro_match::best_macro_match): Likewise.
3966         * spellcheck-tree.h
3967         (struct edit_distance_traits<cpp_hashnode *>): Move to
3968         c-family/c-spellcheck.h.
3969         (class best_macro_match): Likewise.
3970
3971 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
3972
3973         PR tree-optimization/83293
3974         * gimple-ssa-strength-reduction.c (insert_initializers): Use
3975         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
3976         might insert into empty bb.
3977
3978         PR sanitizer/81281
3979         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
3980         simplify for plus with :c added, and pointer_plus without that.
3981         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
3982         with undefined overflow and the conversion is not widening,
3983         perform negation in utype and only convert to type afterwards.
3984         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
3985         simplify for plus with :c added, and pointer_plus without that.
3986         If type is integral with undefined overflow and the conversion is
3987         not widening, perform minus in utype and only convert to type
3988         afterwards.  Move the last pointer_diff_expr simplify into the
3989         two outermost ifs.
3990
3991 2017-12-06  Martin Sebor  <msebor@redhat.com>
3992
3993         PR tree-optimization/82646
3994         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
3995         strncpy, not maxlen.
3996
3997 2017-12-06  Martin Sebor  <msebor@redhat.com>
3998
3999         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
4000         nonstring.
4001
4002         PR tree-optimization/83075
4003         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
4004         strncat/strncpy don't change length of source string.
4005
4006 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
4007
4008         Revert
4009         2017-11-29  Martin Aberg  <maberg@gaisler.com>
4010
4011         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4012         to prevent b2bst errata sequence.
4013         (sqrtdf2_fix): Likewise.
4014
4015 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
4016
4017         PR tree-optimization/81945
4018         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
4019         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
4020         to dest_cfun has orig_loop_num set, either remap it to the new
4021         loop number if the loop got moved too, or clear it.
4022
4023 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
4024
4025         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
4026         to reservation.
4027         (thunderx2t99_nothing): New insn reservation.
4028         (thunderx2t99_mrs): New insn reservation.
4029         (thunderx2t99_multiple): New insn reservation.
4030         (thunderx2t99_alu_basi): Add bfx to reservation.
4031         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
4032
4033 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4034
4035         PR target/82248
4036         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
4037
4038 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
4039
4040         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
4041         tree-ssa-pre.c::remove_dead_inserted_code.
4042         * tree-ssa-dce.h: New file.
4043         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
4044         (remove_dead_inserted_code): Move and rename to function
4045         tree-ssa-dce.c::simple_dce_from_worklist.
4046         (pass_pre::execute): Update use.
4047
4048 2017-12-05  Richard Biener  <rguenther@suse.de>
4049
4050         PR tree-optimization/83277
4051         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
4052         to code-gen liveout vars.
4053
4054 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
4055
4056         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
4057         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
4058         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
4059         split condition.
4060
4061 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
4062
4063         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
4064         function.
4065         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
4066         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
4067         ASAN is enabled.
4068
4069 2017-12-05  Richard Biener  <rguenther@suse.de>
4070
4071         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
4072         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
4073         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
4074         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
4075
4076 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4077
4078         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
4079
4080 2017-12-05  Martin Liska  <mliska@suse.cz>
4081             Jakub Jelinek  <jakub@redhat.com>
4082
4083         * doc/invoke.texi: Document the options.
4084         * flag-types.h (enum sanitize_code): Add
4085         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4086         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
4087         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4088         * opts.c: Define new sanitizer options.
4089         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
4090         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
4091
4092 2017-12-05  Julia Koval  <julia.koval@intel.com>
4093
4094         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
4095         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
4096         (ix86_handle_option): Handle -mavx512vnni.
4097         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
4098         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
4099         * config/i386/i386-c (__AVX512VNNI__): New.
4100         * config/i386/i386.c (ix86_target_string): Handle new option.
4101         (ix86_valid_target_attribute_inner_p): Handle new option.
4102         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
4103         * config/i386/i386.opt (mavx512vnni): New option.
4104
4105 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4106
4107         PR target/81616
4108         * athlon.md: Disable for generic.
4109         * haswell.md: Enable for generic.
4110         * i386.c (ix86_sched_init_global): Add core hooks for generic.
4111         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
4112         to 4.
4113         (ix86_adjust_cost): Move generic to haswell path.
4114
4115 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
4116
4117         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
4118         instead of MEM_P in a couple more places.  Fix formatting issues.
4119
4120 2017-12-04  Jim Wilson  <jimw@sifive.com>
4121
4122         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
4123         instead of GP_REG_LAST-1.
4124         (riscv_adjust_libcall_cfi_prologue): Likewise.
4125         (riscv_adjust_libcall_cri_epilogue): Likewise.
4126         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
4127         comment.
4128
4129 2017-12-04  Luis Machado  <luis.machado@linaro.org>
4130
4131         * ipa-pure-const.c (check_decl): Add missing newline.
4132         (state_from_flags): Likewise.
4133
4134 2017-12-04  Jeff Law  <law@redhat.com>
4135
4136         PR tree-optimizatin/78496
4137         * gimple-ssa-evrp-analyze.h
4138         (evrp_range_analyzer::get_vr_values): Simplify.
4139         * gimple-ssa-evrp-analyze.c: Corresponding changes.
4140         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
4141         and gimple-ssa-evrp-analyze.h.
4142         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
4143         (simplify_stmt_for_jump_threading): Copy a blob of code from
4144         tree-vrp.c to use ranges to simplify statements.
4145         (dom_opt_dom_walker::before_dom_children): Call
4146         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
4147         (dom_opt_dom_walker::after_dom_children): Similarly for
4148         evrp_range_analyzer::leave.
4149         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
4150         conditionals.
4151
4152         * gimple-ssa-evrp-analyze.c
4153         (evrp_range_analyzer::extract_range_from_stmt):  Always use
4154         vr_values::update_value_range so preexisting range info is
4155         medged with new range info, even if the new range is VR_VARYING.
4156
4157 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4158
4159         * combine.c: Adjust comment.
4160         (use_crosses_set_p): Delete.
4161         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
4162         (try_combine): Ditto.
4163
4164 2017-12-04  Richard Biener  <rguenther@suse.de>
4165
4166         PR tree-optimization/83255
4167         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
4168         Re-add zero-iteration check.
4169
4170 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4171
4172         PR rtl-optimization/83245
4173         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
4174         hard registers as earlyclobber, also if not in an asm.
4175
4176 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4177
4178         PR bootstrap/83265
4179         Revert
4180         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4181
4182         PR target/43871
4183         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4184         rs6000_cpu based on cpu_index, not tune_index.
4185
4186 2017-12-04  Richard Biener  <rguenther@suse.de>
4187
4188         PR tree-optimization/83238
4189         * graphite-scop-detection.c (scop_detection::merge_sese): Make
4190         code match comment, rejecting invalid SESE regions.
4191
4192 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
4193
4194         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
4195         require base operand is a REG_POINTER prior to reload on targets
4196         with non-equivalent space registers.
4197
4198 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4199
4200         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
4201         (update_specialized_profile): Fix updating of counts.
4202         (perhaps_add_new_callers): Likewise.
4203
4204 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4205
4206         PR target/81616
4207         * x86-tune.def: Remove obsolette FIXMEs.
4208         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
4209         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
4210         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
4211         Enable for generic.
4212         (X86_TUNE_PAD_RETURNS): Disable for generic.
4213
4214 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
4215
4216         PR tree-optimization/83170
4217         PR tree-optimization/83241
4218         * gimple-ssa-store-merging.c
4219         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
4220         gimple_vuse (ins_stmt) in case it has changed.
4221         (imm_store_chain_info::output_merged_store): Likewise.
4222
4223         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
4224         POINTER_DIFF_EXPR.
4225
4226         PR c++/81212
4227         * tree-cfg.c (pass_warn_function_return::execute): Handle
4228         __builtin_ubsan_handle_missing_return like __builtin_unreachable
4229         with BUILTINS_LOCATION.
4230
4231         PR target/78643
4232         PR target/80583
4233         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
4234         is BLKmode for vector field with vector raw mode, use TYPE_MODE
4235         instead of DECL_MODE.
4236
4237         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
4238         last argument to rtx pointer.
4239         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
4240         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
4241         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
4242         depending on the chosen ISAs.
4243         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
4244         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
4245         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
4246         callers.
4247         * config/i386/sse.md (mov<mode>_internal): Likewise.
4248         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
4249
4250 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4251
4252         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
4253
4254 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4255
4256         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
4257         parameters from prototype.
4258         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
4259         parameters.  Don't print a comment.
4260         (emit_fusion_gpr_load): Adjust.
4261         (emit_fusion_load_store): Adjust.
4262         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
4263         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
4264         comment on the second line.
4265
4266 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4267
4268         PR target/43871
4269         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4270         rs6000_cpu based on cpu_index, not tune_index.
4271
4272 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4273
4274         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
4275         which_alternative instead of which_alternative + 1.
4276         (output_asm_insn): Print an extra tab if the template is short.
4277
4278 2017-12-01  Jim Wilson  <jimw@sifive.com>
4279
4280         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
4281         comment.
4282         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
4283         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
4284         reference.
4285         * doc/tm.texi: Regenerate.
4286
4287 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
4288
4289         PR target/81959
4290         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
4291         whether we can allocate pseudos before trying to fix an address.
4292         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
4293         memory address is indexed or indirect.
4294         (floatuns_<mode>si2_hw2): Likewise.
4295
4296 2017-12-01  Jason Merrill  <jason@redhat.com>
4297
4298         * Makefile.in (TAGS): Add c-family/*.cc.
4299
4300 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
4301
4302         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
4303         (call_value_insn): Likewise.
4304         (sibcall_insn): Likewise.
4305         (sibcall_value_insn): Likewise.
4306         (movsi_aarch64): Likewise.
4307         (movdi_aarch64): Likewise.
4308         (add_losym_): Likewise.
4309         (ldr_got_small_): Likewise.
4310         (ldr_got_small_sidi): Likewise.
4311         (ldr_got_small_28k_): Likewise.
4312         (ldr_got_small_28k_sidi): Likewise.
4313         * config/aarch64/aarch64.c (aarch64_print_address_internal):
4314         Move output_addr_const to symbolic case. Add error check.
4315
4316 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4317
4318         * config/s390/predicates.md (plus16_Q_operand): New predicate.
4319         * config/s390/s390.md: Disable MVC merging peephole if it would
4320         disable operand forwarding.
4321         (new peephole2): Split MVCs if it would turn them into up to 2
4322         forwardable MVCs.
4323
4324 2017-12-01  Richard Biener  <rguenther@suse.de>
4325
4326         PR tree-optimization/83232
4327         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
4328         detection of same access. Instead of breaking the group here
4329         do not consider the duplicate.  Add comment explaining real fix.
4330
4331 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
4332
4333         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
4334
4335 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
4336
4337         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
4338
4339 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
4340
4341         * function.h (struct function): Remove cilk_frame_decl,
4342         is_cilk_function and calls_cilk_spawn fields.
4343         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
4344         field.
4345         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
4346         cilk_elemental field.
4347         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
4348         * target.def: Adjust comment.
4349         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4350         Don't test cilk_elemental.
4351
4352         PR tree-optimization/83233
4353         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
4354         bswap_stat name for the struct.
4355
4356         PR c/79153
4357         * tree.h (SWITCH_BREAK_LABEL_P): Define.
4358         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
4359         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
4360         SWITCH_BREAK_LABEL_P set on the label.
4361         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
4362         added for default case if it was missing and not all cases covered.
4363         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
4364         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
4365         set on the label.
4366         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
4367         to avoid -Wimplicit-fallthrough warning.
4368         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
4369         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
4370
4371         PR tree-optimization/83221
4372         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
4373         down by 16.
4374         (init_reassoc): Formatting fix.
4375
4376         PR sanitizer/81275
4377         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
4378         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
4379         is diagnosed.
4380
4381         PR sanitizer/83219
4382         * tree-cfg.c: Include asan.h.
4383         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
4384
4385 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4386
4387         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
4388
4389 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4390
4391         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
4392         vpcmpeqd instruction.
4393
4394 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4395
4396         * config/i386/i386.c (standard_sse_constant_opcode): Fix
4397         registers type for 128bit mode.
4398
4399 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4400
4401         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
4402         of ;;.
4403         * gengtype-state.c (read_state_pair): Likewise.
4404         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
4405         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
4406         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
4407         * ifcvt.c (noce_try_store_flag_constants): Likewise.
4408         * tree-ssa-ccp.c (ccp_finalize): Likewise.
4409         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
4410         * builtins.c (fold_builtin_3): Likewise.
4411         * graphite-scop-detection.c
4412         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
4413         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
4414         Likewise.
4415
4416 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
4417
4418         PR sanitizer/81697
4419         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
4420         parameter. Return true if ignore_decl_rtl_set_p is true and other
4421         conditions are satisfied.
4422         * asan.h (asan_protect_global): Add new parameter.
4423         * varasm.c (categorize_decl_for_section): Pass true as second parameter
4424         to asan_protect_global calls.
4425
4426 2017-11-30  Jim Wilson  <jimw@sifive.com>
4427
4428         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
4429         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
4430         -mstrict-align, add info on default value.  Delete redundant lines for
4431         -mabi.  Add missing -mexplicit-relocs docs.
4432
4433 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4434
4435         * config/arc/arc.md (trap): New pattern.
4436
4437 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4438
4439         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
4440         instruction to end into a delay slot.
4441         * config/arc/arc.md (cond_delay_insn): Check if the instruction
4442         can be placed into a delay slot against reg_note.
4443
4444 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4445
4446         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
4447         labels number of usages.
4448
4449 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4450
4451         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
4452         function.
4453         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
4454
4455 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4456
4457         PR target/83210
4458         * internal-fn.c (expand_mul_overflow): Optimize unsigned
4459         multiplication by power of 2 constant into two shifts + comparison.
4460
4461 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
4462
4463         PR target/81616
4464         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
4465
4466 2017-11-30  Richard Biener  <rguenther@suse.de>
4467
4468         PR tree-optimization/83202
4469         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
4470         allow_peel argument and guard peeling.
4471         (canonicalize_loop_induction_variables): Likewise.
4472         (canonicalize_induction_variables): Pass false.
4473         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
4474         peeling from cunrolli.
4475
4476 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4477
4478         * combine.c (try_combine): Print a message to dump file whenever
4479         I0, I1, or I2 cannot be combined into I3.
4480
4481 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4482
4483         PR rtl-optimization/83156
4484         PR rtl-optimization/82621
4485         * combine.c (try_combine): Don't split an I2 if one of the dests is
4486         set again before I3.  Allow unused dests.
4487
4488 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4489
4490         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
4491
4492 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
4493
4494         PR rtl-optimization/80818
4495         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
4496         recursively.  Use insn code for clobber.
4497         (lra_set_insn_recog_data): Pass the new arg to
4498         collect_non_operand_hard_regs.
4499         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
4500         code for clobber.
4501         (lra_update_insn_regno_info): Pass insn to
4502         add_regs_to_insn_regno_info.
4503
4504 2017-11-29  Jim Wilson  <jimw@sifive.com>
4505             Andrew Waterman  <andrew@sifive.com>
4506
4507         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
4508         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
4509         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
4510         use SINGLE_SHIFT_COST.
4511         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
4512         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
4513
4514 2017-11-29  Julia Koval  <julia.koval@intel.com>
4515
4516         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
4517         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
4518         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
4519         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
4520         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
4521         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
4522         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
4523         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
4524         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
4525         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
4526         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
4527         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
4528         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
4529         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
4530         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
4531         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
4532         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
4533         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
4534         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
4535         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
4536         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
4537         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
4538         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
4539         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
4540         __builtin_ia32_vpshldv_v2di_mask,
4541         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
4542         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
4543         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
4544
4545 2017-11-29  Julia Koval  <julia.koval@intel.com>
4546
4547         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
4548         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
4549         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
4550         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
4551         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
4552         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
4553         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
4554         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
4555         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
4556         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
4557         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
4558         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
4559         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
4560         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
4561         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
4562         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
4563         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
4564         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
4565         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4566         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
4567         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
4568
4569 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4570
4571         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
4572         movsi_pic_gotdata_op instruction as a load for the UT699 errata
4573         workaround.
4574
4575 2017-11-29  Martin Aberg  <maberg@gaisler.com>
4576
4577         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4578         to prevent b2bst errata sequence.
4579         (sqrtdf2_fix): Likewise.
4580
4581 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4582
4583         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
4584         (div_sqrt_insn_p): New function.
4585         (sparc_do_work_around_errata): Insert NOP instructions to
4586         prevent sequences that could trigger the TN-0013 errata for
4587         certain LEON3 processors.
4588         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
4589         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
4590         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
4591         (in_branch_delay): Prevent div and sqrt in delay slot if
4592         fix_lost_divsqrt.
4593         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
4594
4595 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4596
4597         * config/sparc/sparc.c (atomic_insn_p): New function.
4598         (sparc_do_work_around_errata): Insert NOP instructions to
4599         prevent sequences that could trigger the TN-0010 errata for
4600         UT700.
4601         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
4602         instruction referable in atomic_insns_p.
4603
4604 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4605
4606         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
4607         (atomic_compare_and_swap_leon3_1): Likewise.
4608         (ldstub): Likewise.
4609
4610 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4611
4612         * config/sparc/sparc.c (fpop_insn_p): New function.
4613         (sparc_do_work_around_errata): Insert NOP instructions to
4614         prevent sequences that could trigger the TN-0012 errata for
4615         GR712RC.
4616         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
4617         * config/sparc/sparc.md (fix_gr712rc): New attribute.
4618         (in_branch_annul_delay): Prevent floating-point instructions
4619         in delay slot of annulled integer branch.
4620
4621 2017-11-29  Richard Biener  <rguenther@suse.de>
4622
4623         PR tree-optimization/83202
4624         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
4625         (bst_fail): Use it.
4626         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
4627         nodes vectorized to the same stmts multiple times.
4628         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
4629         (vect_analyze_slp_instance): Adjust.
4630         (scalar_stmts_to_slp_tree_map_t): New typedef.
4631         (vect_schedule_slp_instance): Add a map recording the SLP node
4632         representing the vectorized stmts for a set of scalar stmts.
4633         Avoid code-generating redundancies.
4634         (vect_schedule_slp): Allocate map and pass it down.
4635
4636 2017-11-29  Nathan Sidwell  <nathan@acm.org>
4637
4638         PR c++/83187
4639         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
4640         type if it is new.
4641
4642 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
4643
4644         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
4645         cases for printing LDP/STP memory addresses.
4646         (aarch64_print_address_internal): Renamed from
4647         aarch64_print_operand_address, added parameter, add Pmode check.
4648         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
4649         (aarch64_print_operand_address): Indirect to
4650         aarch64_print_address_internal.
4651         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
4652         'y' operand output specifier.
4653
4654 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
4655
4656         PR middle-end/83185
4657         * tree.c (build_simple_mem_ref_loc): Handle
4658         get_addr_base_and_unit_offset returning a MEM_REF.
4659
4660         PR middle-end/80929
4661         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
4662
4663         PR target/80819
4664         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
4665         alternative.
4666
4667 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
4668
4669         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
4670         m_x_offset.
4671         (layout::move_to_column): Likewise.
4672
4673 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4674
4675         PR sanitizer/81275
4676         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
4677         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
4678
4679 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4680             Martin Jambor  <mjambor@suse.cz>
4681
4682         PR ipa/82808
4683         * tree.h (expr_type_first_operand_type_p): Declare
4684         * tree.c (expr_type_first_operand_type_p): New function.
4685         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
4686         (ipa_value_from_jfunc): Adjust declaration.
4687         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
4688         Use it as result type for arithmetics, unless it is NULL in which case
4689         be more conservative.
4690         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
4691         ipa_get_jf_pass_through_result.
4692         (propagate_vals_across_pass_through): Likewise.
4693         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
4694         is to propagate_vals_across_pass_through.
4695         (propagate_constants_across_call): Pass PARM_TYPE to
4696         propagate_scalar_across_jump_function.
4697         (find_more_scalar_values_for_callers_subset): Pass parameter type to
4698         ipa_value_from_jfunc.
4699         (cgraph_edge_brings_all_scalars_for_node): Likewise.
4700         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
4701         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
4702         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
4703         target_type, pass it to ipa_value_from_jfunc.
4704         (update_indirect_edges_after_inlining): Pass parameter type to
4705         try_make_edge_direct_simple_call.
4706
4707 2017-11-28  Jeff Law  <law@redhat.com>
4708
4709         * gimple-ssa-evrp-analyze.c
4710         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
4711         refine ranges if scev_initialized_p returns true.
4712         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
4713
4714 2017-11-28  Julia Koval  <julia.koval@intel.com>
4715
4716         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
4717         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
4718         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
4719         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
4720         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
4721         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
4722         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
4723         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
4724         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
4725         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
4726         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
4727         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
4728         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
4729         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
4730         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
4731         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
4732         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
4733         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
4734         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
4735         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
4736         __builtin_ia32_vpshrd_v2di_mask): New builtins.
4737         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
4738
4739 2017-11-28  Julia Koval  <julia.koval@intel.com>
4740
4741         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
4742         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
4743         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
4744         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
4745         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
4746         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
4747         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
4748         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
4749         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
4750         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
4751         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
4752         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
4753         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
4754         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
4755         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
4756         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
4757         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
4758         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
4759         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
4760         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
4761         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
4762         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
4763         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
4764         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
4765         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
4766         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
4767         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
4768         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
4769         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
4770         __builtin_ia32_vpshld_v2di_mask): New builtins.
4771         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4772         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
4773
4774 2017-11-28  Richard Biener  <rguenther@suse.de>
4775
4776         PR tree-optimization/80776
4777         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
4778         Declare.
4779         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
4780         New function.
4781         (evrp_range_analyzer::record_ranges_from_incoming_edges):
4782         If the incoming edge is an effective fallthru because the other
4783         edge only reaches a __builtin_unreachable () then record ranges
4784         derived from the controlling condition in SSA info.
4785         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
4786         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4787
4788 2017-11-28  Olivier Hainque  <hainque@adacore.com>
4789
4790         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
4791         on mingw build hosts.
4792
4793 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4794
4795         PR debug/81307
4796         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
4797
4798 2017-11-28  Richard Biener  <rguenther@suse.de>
4799
4800         PR middle-end/83141
4801         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
4802         copies generated from memcpy use a character array as reference
4803         type.
4804
4805 2017-11-28  Julia Koval  <julia.koval@intel.com>
4806             Sebastian Peryt  <sebastian.peryt@intel.com>
4807
4808         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
4809         c-family/c-cilkplus.o, c-family/array-notation-common.o,
4810         cilk-common.o, cilk.h, cilk-common.c): Remove.
4811         * builtin-types.def
4812         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
4813         * builtins.c (is_builtin_name): Remove cilkplus condition.
4814         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
4815         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
4816         cilk-builtins.def, cilkplus.def): Remove.
4817         * cif-code.def (CILK_SPAWN): Remove.
4818         * cilk-builtins.def: Delete.
4819         * cilk-common.c: Ditto.
4820         * cilk.h: Ditto.
4821         * cilkplus.def: Ditto.
4822         * config/darwin.h (fcilkplus): Delete.
4823         * cppbuiltin.c: Ditto.
4824         * doc/extend.texi: Remove cilkplus doc.
4825         * doc/generic.texi: Ditto.
4826         * doc/invoke.texi: Ditto.
4827         * doc/passes.texi: Ditto.
4828         * gcc.c (fcilkplus): Remove.
4829         * gengtype.c (cilk.h): Remove.
4830         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
4831         support.
4832         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
4833         Remove.
4834         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
4835         gimplify_call_expr,
4836         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
4837         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
4838         cilkplus conditions.
4839         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
4840         inline_read_section): Ditto.
4841         * ipa-inline-analysis.c (cilk.h): Remove.
4842         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
4843         * lto-wrapper.c (merge_and_complain, append_compiler_options,
4844         append_linker_options): Remove condition for fcilkplus.
4845         * lto/lto-lang.c (cilk.h): Remove.
4846         (lto_init): Remove condition for fcilkplus.
4847         * omp-expand.c (expand_cilk_for_call): Delete.
4848         (expand_omp_taskreg, expand_omp_for_static_chunk,
4849         expand_omp_for): Remove cilkplus
4850         conditions.
4851         (expand_cilk_for): Delete.
4852         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
4853         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
4854         execute_lower_omp, diagnose_sb_0): Ditto.
4855         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
4856         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4857         * tree-nested.c: Ditto.
4858         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
4859         (dump_generic_node): Ditto.
4860         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4861         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
4862         Delete.
4863         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
4864
4865 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4866
4867         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
4868         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
4869         for vector mode and !TARGET_SIMD.
4870
4871 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4872
4873         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
4874         Adjust comment.
4875         * tree.h (SWITCH_LABELS): Remove.
4876         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
4877         assert SWITCH_BODY is non-NULL.
4878         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
4879         handling.
4880         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
4881
4882         PR tree-optimization/80788
4883         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
4884         has TREE_OVERFLOW set, call drop_tree_overflow.
4885
4886 2017-11-28  Richard Biener  <rguenther@suse.de>
4887
4888         PR tree-optimization/83158
4889         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
4890
4891 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
4892
4893         PR 81288/target
4894         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
4895         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
4896
4897 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
4898
4899         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
4900         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
4901
4902 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
4903
4904         PR middle_end/82333
4905         * varasm.c (compare_constant): Take the mode of the constants into
4906         account when comparing floating point constants.
4907
4908 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
4909
4910         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
4911         from explicit instantiation of debug_helper.
4912         * vec.h (DEFINE_DEBUG_VEC): Ditto.
4913
4914 2017-11-27  Richard Biener  <rguenther@suse.de>
4915
4916         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
4917         refactor a bit.
4918
4919 2017-11-27  Richard Biener  <rguenther@suse.de>
4920
4921         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
4922         (type_hash_canon): Also clear int_cst_hash_table entry for
4923         TYPE_MIN/MAX_VALUE.
4924         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
4925
4926 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
4927
4928         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4929         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4930         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
4931
4932 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4933
4934         * hash-map.h (gt_cleare_cache): Avoid UB.
4935
4936 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
4937
4938         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
4939         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
4940         (decide_unroll_runtime_iterations): Likewise.
4941         (decide_unroll_stupid): Likewise.
4942
4943 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
4944
4945         PR target/83109
4946         * config/i386/i386.md: Add a loop with incssp.
4947
4948 2017-11-27  Martin Jambor  <mjambor@suse.cz>
4949
4950         PR tree-optimization/81248
4951         * tree-sra.c (splice_param_accesses): Remove size check.
4952         (decide_one_param_reduction): Fix size check.
4953         * gimple-pretty-print.c (dump_profile): Silence warning.
4954         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
4955
4956 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
4957
4958         PR debug/81307
4959         * dbxout.c (lastlineno): New variable.
4960         (dbx_debug_hooks): Use dbxout_switch_text_section as
4961         switch_text_section debug hook.
4962         (dbxout_function_end): Switch to current_function_section
4963         rather than function_section.  If crtl->has_bb_partition,
4964         output just one N_FUN, depending on in_cold_section_p.
4965         (dbxout_source_line): Remember last lineno in lastlineno.
4966         (dbxout_switch_text_section): New function.
4967         (dbxout_function_decl): Adjust dbxout_block caller.
4968         (dbx_block_with_cold_children): New function.
4969         (dbxout_block): Return true if any LBRAC/RBRAC have been
4970         emitted.  Use dbx_block_with_cold_children at depth == 0
4971         in second partition.  Add PARENT_BLOCKNUM argument, pass
4972         it optionally adjusted to children.  Output LBRAC/RBRAC
4973         around recursive call only if the block is in the current
4974         partition, if not and anything was output, emit empty
4975         range LBRAC/RBRAC.
4976         * final.c (final_scan_insn): Compute cold_function_name
4977         before calling switch_text_section debug hook.  Call
4978         that hook even if dwarf2out_do_frame if not emitting
4979         dwarf debug info.
4980
4981         PR target/83100
4982         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
4983         TREE_READONLY decls.
4984
4985 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
4986
4987         PR rtl-optimization/82488
4988         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
4989
4990 2017-11-26  Julia Koval  <julia.koval@intel.com>
4991
4992         * config/i386/i386.c (processor_target_table): Add skylake_cost for
4993         skylake-avx512.
4994         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
4995         skylake_cost): New.
4996
4997 2017-11-26  Julia Koval  <julia.koval@intel.com>
4998
4999         * config/i386/driver-i386.c (host_detect_local_cpu):
5000         Detect skylake-avx512.
5001
5002 2017-11-26  Julia Koval  <julia.koval@intel.com>
5003
5004         * config.gcc: Add -march=cannonlake.
5005         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
5006         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
5007         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
5008         (PTA_CANNONLAKE): New.
5009         (processor_target_table): Add cannonlake.
5010         (ix86_option_override_internal): Ditto.
5011         (fold_builtin_cpu): Ditto.
5012         (get_builtin_code_for_version): Handle cannonlake.
5013         (M_INTEL_COREI7_CANNONLAKE): New.
5014         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
5015         * doc/invoke.texi: Add -march=cannonlake.
5016
5017 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
5018
5019         * plugin.c (add_new_plugin): Use platform-specific library extensions.
5020         (try_init_one_plugin): Alternative implementation for MinGW.
5021         * Makefile.in (plugin_implib): New.
5022         (gengtype-lex.c): Fix broken AIX workaround.
5023         * configure: Regenerate.
5024         * doc/plugins.texi: Document support for MinGW.
5025
5026 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
5027
5028         PR rtl-optimization/81553
5029         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
5030         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
5031         is a shift where C1 has different mode than the whole shift, use C1's
5032         mode for MULT rather than the shift's mode.
5033
5034         PR target/82848
5035         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
5036         builtins not enabled in the currently selected ISA.
5037
5038 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
5039
5040         PR tree-optimization/71026
5041         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
5042         (insert_reciprocals): Change to insert reciprocals before a division
5043         by a square and to insert the square of a reciprocal.
5044         (execute_cse_reciprocals_1): Change to consider division by a square.
5045         (register_division_in): Add importance parameter.
5046
5047 2017-11-24  Richard Biener  <rguenther@suse.de>
5048
5049         PR tree-optimization/82402
5050         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
5051         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
5052
5053 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
5054
5055         * match.pd (0-ptr): New transformation.
5056
5057 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
5058
5059         PR bootstrap/83015
5060         * ipa-inline.c (inline_small_functions): Set current badnes correctly
5061         when skipping checking.
5062
5063 2017-11-24  Richard Biener  <rguenther@suse.de>
5064
5065         PR tree-optimization/83128
5066         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
5067         (vn_reference_lookup_3): Likewise.
5068
5069 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
5070
5071         PR sanitizer/83014
5072         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
5073         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
5074         tree_to_uhwi twice.
5075
5076         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
5077         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
5078         check for the latter with gimple_call_builtin_p.  Do not handle
5079         BUILT_IN_STPNCPY_CHK which is not a pass through call.
5080
5081 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
5082
5083         * config/arm/arm_neon.h: Fix pragma GCC push_options before
5084         vdot_u32.
5085
5086 2017-11-23  Julia Koval  <julia.koval@intel.com>
5087
5088         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
5089         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
5090         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
5091         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
5092         _mm512_maskz_expandloadu_epi16): New intrinsics.
5093         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
5094         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
5095         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
5096         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
5097         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
5098         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
5099         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
5100         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
5101         _mm256_maskz_expandloadu_epi8): New intrinsics.
5102         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
5103         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
5104         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
5105         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
5106         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
5107         * config/i386/sse.md (VI248_VLBW): New iterator.
5108         (expand<mode>_mask, expand<mode>_maskz): New patterns.
5109
5110 2017-11-23  Julia Koval  <julia.koval@intel.com>
5111
5112         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
5113         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
5114         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
5115         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
5116         _mm512_mask_compressstoreu_epi16): New.
5117         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
5118         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
5119         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
5120         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
5121         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
5122         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
5123         _mm256_mask_compressstoreu_epi8): New.
5124         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
5125         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
5126         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
5127         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
5128         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
5129         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
5130         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
5131         __builtin_ia32_compresshi128_mask,
5132         __builtin_ia32_compressstoreuqi512_mask,
5133         __builtin_ia32_compressstoreuhi512_mask,
5134         __builtin_ia32_compressstoreuqi256_mask,
5135         __builtin_ia32_compressstoreuqi128_mask,
5136         __builtin_ia32_compressstoreuhi256_mask,
5137         __builtin_ia32_compressstoreuhi128_mask): New builtins.
5138         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
5139         array for flags2.
5140         (ix86_expand_special_args_builtin): Handle new types.
5141         (s4fma_expand): Handle new builtin array.
5142         * config/i386/immintrin.h: Include new headers.
5143         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
5144         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
5145
5146 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5147
5148         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
5149         fixes.  Declare temp and g variables at the top in order to avoid
5150         {} in most of the cases.
5151
5152 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
5153
5154         * match.pd (ptr-0): New transformation.
5155
5156 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5157
5158         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
5159         (struct addr_mode_cost_table): New.
5160         (struct tune_params): Add field addr_mode_costs.
5161         * config/arm/arm.c (generic_addr_mode_costs): New.
5162         (arm_slowmul_tune): Initialise addr_mode_costs field.
5163         (arm_fastmul_tune): Likewise.
5164         (arm_strongarm_tune): Likewise.
5165         (arm_xscale_tune): Likewise.
5166         (arm_9e_tune): Likewise.
5167         (arm_marvell_pj4_tune): Likewise.
5168         (arm_v6t2_tune): Likewise.
5169         (arm_cortex_tune): Likewise.
5170         (arm_cortex_a8_tune): Likewise.
5171         (arm_cortex_a7_tune): Likewise.
5172         (arm_cortex_a15_tune): Likewise.
5173         (arm_cortex_a35_tune): Likewise.
5174         (arm_cortex_a53_tune): Likewise.
5175         (arm_cortex_a57_tune): Likewise.
5176         (arm_exynosm1_tune): Likewise.
5177         (arm_xgene1_tune): Likewise.
5178         (arm_cortex_a5_tune): Likewise.
5179         (arm_cortex_a9_tune): Likewise.
5180         (arm_cortex_a12_tune): Likewise.
5181         (arm_cortex_a73_tune): Likewise.
5182         (arm_v7m_tune): Likewise.
5183         (arm_cortex_m7_tune): Likewise.
5184         (arm_v6m_tune): Likewise.
5185         (arm_fa726te_tune): Likewise.
5186         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
5187
5188 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5189
5190         * config/arm/arm.c (arm_mem_costs): New function.
5191         (arm_rtx_costs_internal): Use arm_mem_costs.
5192
5193 2017-11-23  Mark Wielaard  <mark@klomp.org>
5194
5195         * dwarf2out.c (init_sections_and_labels): Use generation to create
5196         unique ranges_section_label and ranges_base_label. Return generation.
5197         (output_rnglists): Add generation argument. Use generation to create
5198         unique ranges labels.
5199         (dwarf2out_finish): Get generation from init_sections_and_labels
5200         and pass generation to output_rnglists.
5201
5202 2017-11-23  Mike Stump  <mikestump@comcast.net>
5203             Eric Botcazou  <ebotcazou@adacore.com>
5204
5205         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
5206         * cfgloop.h (struct loop): Add unroll field.
5207         * function.h (struct function): Add has_unroll bitfield.
5208         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
5209         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
5210         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
5211         (pass_rtl_unroll_loops::gate): Likewise.
5212         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
5213         for which loop->unroll==1.
5214         (decide_unroll_constant_iterations): Use note for consistency and
5215         take loop->unroll into account.  Return early if loop->unroll is set.
5216         Fix thinko in existing test.
5217         (decide_unroll_runtime_iterations): Use note for consistency and
5218         take loop->unroll into account.
5219         (decide_unroll_stupid): Likewise.
5220         * lto-streamer-in.c (input_cfg): Read loop->unroll.
5221         * lto-streamer-out.c (output_cfg): Write loop->unroll.
5222         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
5223         New case.
5224         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
5225         (print_loop): Print loop->unroll if set.
5226         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
5227         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
5228         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
5229         New case.
5230         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
5231         loop->unroll is set and smaller than the trip count.  Otherwise bypass
5232         entirely the heuristics if loop->unroll is set.  Remove dead note.
5233         Fix off-by-one bug in other note.
5234         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
5235         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
5236         is greater than 1.
5237         (tree_unroll_loops_completely): Make static.
5238         (pass_complete_unroll::execute): Use correct type for variable.
5239         (pass_complete_unrolli::execute): Fix formatting.
5240         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
5241
5242 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5243
5244         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
5245         enable when TARGET_PREFER_AVX128 is set.
5246
5247 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5248
5249         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
5250         frequency.
5251         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
5252         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
5253
5254 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5255
5256         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
5257         frequencies. Fix estimation of aggregate parameters.
5258
5259 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5260
5261         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
5262         when inlining.
5263
5264 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5265
5266         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
5267
5268 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5269
5270         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
5271         macro.
5272
5273 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
5274
5275         PR target/83111
5276         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
5277         sibcall_value_pcrel_fdpic): Use local variable instead of
5278         operands[3].
5279         (calli_tbr_rel): Add missing operand 2.
5280         (call_valuei_tbr_rel): Add missing operand 3.
5281
5282 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5283
5284         PR middle-end/82253
5285         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
5286         bitpos/bitsize covering the whole destination, use store_expr only if
5287         the complex mode is the same.  Otherwise, use expand_normal and if
5288         it returns CONCAT, subreg each part separately instead of trying to
5289         subreg the whole result.
5290
5291 2017-11-23  Richard Biener  <rguenther@suse.de>
5292
5293         PR tree-optimization/23094
5294         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
5295         come here from walking over backedges in the first iteration.
5296         (vn_reference_lookup_3): Skip clobbers that store the same value.
5297
5298 2017-11-23  Richard Biener  <rguenther@suse.de>
5299
5300         PR tree-optimization/81403
5301         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
5302         a block we need a leader relative to.
5303         (phi_translate_1): For nary processing require a leader from
5304         get_representative_for given we run expression simplification
5305         using match-and-simplify.  Remove previous fix.
5306
5307 2017-11-22  Jeff Law  <law@redhat.com>
5308
5309         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
5310         Use new method allocate_value_range rather than accessing the
5311         vrp_value_range_pool data member directly.
5312         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
5313         to use extract_range_from_stmt method to avoid need for
5314         extract_range_from_assignment method.
5315         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
5316         method rather than setting values_propgated data member directly.
5317         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
5318         and values propagated data members and extract_range_from_assignment
5319         method.  Reorder private data members to conform to standards.
5320         Add new methods set_lattice_propagation_complete and
5321         allocate_value_range.
5322
5323 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
5324
5325         PR rtl-optimization/83030
5326         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
5327         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
5328         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
5329         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
5330         CROSSING_JUMP_P flag is already set before setting it.
5331         * cfgrtl.c (fixup_partition_crossing): Likewise.
5332         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
5333         insn as useless.
5334
5335 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5336
5337         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
5338         Handle the case where both arguments are using gen_const_vec_series.
5339
5340 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
5341
5342         PR c++/62170
5343         * pretty-print.c (pp_format): Move quoting implementation to
5344         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
5345         to pass address of "quote" local.
5346         (pp_begin_quote): New function.
5347         (pp_end_quote): New function.
5348         * pretty-print.h (printer_fn): Convert penultimate param from bool
5349         to bool *.
5350         (pp_begin_quote): New decl.
5351         (pp_end_quote): New decl.
5352         * tree-diagnostic.c (default_tree_printer): Convert penultimate
5353         param from bool to bool *.
5354         * tree-diagnostic.h (default_tree_printer): Likewise.
5355
5356 2017-11-22  Jeff Law  <law@redhat.com>
5357
5358         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
5359         Initialize vr_values.
5360         (evrp_range_analyzer::try_find_new_range): Call methods attached to
5361         vr_values via vr_values class instance rather than delegators.
5362         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
5363         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
5364         (evrp_range_analyzer::push_value_range): Likewise.
5365         (evrp_range_analyzer::pop_value_range): Likewise.
5366         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
5367         most delegators.  Those remaining are exposed as public interfaces.
5368         Make vr_values a pointer and private.
5369         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
5370         vr_values.
5371         (evrp_range_analyzer::get_vr_value): New method.
5372         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
5373         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
5374         (class evrp_dom_walker): Attach evrp_folder class, initialize
5375         it in the ctor.  Remove temporary delegators.
5376         (evrp_dom_walker::before_dom_children): Call methods in attached
5377         evrp_range_analyzer class via class instance pointer.  Use
5378         free value_range_constant_singleton to remove need for
5379         op_with_constant_singleton_value delegator method.  Do not
5380         create a vrp_prop class instance for every call!  Narrow
5381         scope of a couple variables.
5382         (evrp_dom_walker::cleanup): Call methods in attached
5383         evrp_range_analyzer class via class instance pointer.
5384         * vr-values.h (class vr_values): Privatize many methods and
5385         data members.
5386
5387 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5388
5389         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
5390         * cfgexpand.c (expand_debug_expr): Remove handling for them.
5391         * expr.c (expand_expr_real_2): Likewise.
5392         * fold-const.c (const_unop): Likewise.
5393         * optabs-tree.c (optab_for_tree_code): Likewise.
5394         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
5395         * tree-inline.c (estimate_operator_cost): Likewise.
5396         * tree-pretty-print.c (dump_generic_node): Likewise.
5397         (op_code_prio): Likewise.
5398         (op_symbol_code): Likewise.
5399         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
5400         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
5401         * internal-fn.c (direct_internal_fn_optab): New function.
5402         (direct_internal_fn_array, direct_internal_fn_supported_p
5403         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
5404         * fold-const-call.c (fold_const_reduction): New function.
5405         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
5406         CFN_REDUC_MIN.
5407         * tree-vect-loop.c: Include internal-fn.h.
5408         (reduction_code_for_scalar_code): Rename to...
5409         (reduction_fn_for_scalar_code): ...this and return an internal
5410         function.
5411         (vect_model_reduction_cost): Take an internal_fn rather than
5412         a tree_code.
5413         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
5414         than assignments.
5415         (vectorizable_reduction): Use internal functions rather than tree
5416         codes for the reduction operation.  Update calls to the functions
5417         above.
5418         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
5419         Use calls to internal functions rather than REDUC tree codes.
5420         * config/aarch64/aarch64-simd.md: Update comment accordingly.
5421
5422 2017-11-22  Olivier Hainque  <hainque@adacore.com>
5423
5424         * config/vxworks.c (vxworks_override_options): Pick default
5425         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
5426         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
5427         DWARF_GNAT_ENCODINGS_DEFAULT.
5428         * config/vxworksae.h: Likewise.
5429
5430 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
5431
5432         PR tree-optimization/83104
5433         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
5434         not result.
5435
5436 2017-11-22  Marek Polacek  <polacek@redhat.com>
5437             H.J. Lu  <hongjiu.lu@intel.com>
5438             Jason Merrill  <jason@redhat.com>
5439
5440         PR c++/60336
5441         PR middle-end/67239
5442         PR target/68355
5443         * calls.c (initialize_argument_information): Call
5444         warn_parameter_passing_abi target hook.
5445         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
5446         argument onto stack.
5447         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
5448         * common.opt: Update -fabi-version description.
5449         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
5450         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
5451         int_size_in_bytes.
5452         (ix86_is_empty_record): New function.
5453         (ix86_warn_parameter_passing_abi): New function.
5454         (TARGET_EMPTY_RECORD_P): Redefine.
5455         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
5456         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
5457         * doc/tm.texi: Regenerated.
5458         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
5459         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
5460         * dwarf2out.c (get_ultimate_context): Move to tree.c.
5461         * explow.c (hard_function_value): Call arg_int_size_in_bytes
5462         instead of int_size_in_bytes.
5463         * expr.c (copy_blkmode_to_reg): Likewise.
5464         * function.c (aggregate_value_p): Return 0 for empty types.
5465         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
5466         target hook.
5467         (locate_and_pad_parm): Call arg size_in_bytes instead
5468         size_in_bytes.
5469         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
5470         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
5471         * target.def (empty_record_p, warn_parameter_passing_abi): New target
5472         hooks.
5473         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
5474         (std_gimplify_va_arg_expr): Skip empty records.  Call
5475         arg_size_in_bytes instead size_in_bytes.
5476         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
5477         * tree-core.h (tree_type_common): Add empty_flag.
5478         (tree_decl_common): Update comments.
5479         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
5480         DECL_PADDING_P.
5481         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5482         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
5483         DECL_PADDING_P.
5484         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5485         * tree.c (default_is_empty_type): New function.
5486         (default_is_empty_record): New function.
5487         (arg_int_size_in_bytes): New function.
5488         (arg_size_in_bytes): New function.
5489         (get_ultimate_context): New function.
5490         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
5491         TRANSLATION_UNIT_WARN_EMPTY_P.
5492         (default_is_empty_record, arg_int_size_in_bytes,
5493         arg_size_in_bytes, get_ultimate_context): Declare.
5494
5495 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5496
5497         * config/arm/arm.c (cmse_clear_registers): New function.
5498         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
5499         code by call to cmse_clear_registers.
5500         (cmse_nonsecure_entry_clear_before_return): Likewise.
5501
5502 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
5503
5504         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
5505         (vdot_s32, vdotq_s32): New.
5506         (vdot_lane_u32, vdotq_lane_u32): New.
5507         (vdot_lane_s32, vdotq_lane_s32): New.
5508
5509
5510 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5511
5512         PR middle-end/82547
5513         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
5514         for unsigned values with fewer HWIs than the precision.
5515         (test_overflow): New function.
5516         (wide_int_cc_tests): Call it.
5517
5518 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5519
5520         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
5521         has the same mode class as Pmode.
5522
5523 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5524
5525         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
5526         padding_bits_to_clear_ptr.
5527         (cmse_nonsecure_entry_clear_before_return): Likewise.
5528
5529 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5530
5531         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
5532         auto_sbitap instead of integer bitfield to control register needing
5533         clearing.
5534
5535 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5536
5537         PR tree-optimization/83044
5538         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
5539         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
5540         that need the upper bound.  Subtract offset from
5541         get_addr_base_and_unit_offset only if positive and subtract it
5542         before division by eltsize rather than after it.
5543
5544         PR debug/83084
5545         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
5546         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
5547         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
5548         asm.
5549
5550         PR middle-end/82875
5551         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
5552         expand_binop with *mul_widen_optab, make sure at least one of the
5553         operands doesn't have VOIDmode.
5554
5555         PR debug/83034
5556         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
5557
5558         PR rtl-optimization/82044
5559         PR tree-optimization/82042
5560         * dse.c (record_store): Check for overflow.
5561         (check_mem_read_rtx): Properly check for overflow if width == -1, call
5562         add_wild_read instead of clear_rhs_from_active_local_stores on
5563         overflow and log it into dump_file.
5564
5565 2017-11-22  Richard Biener  <rguenther@suse.de>
5566
5567         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
5568         fake edges to exit when looking for a place to insert.
5569         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
5570         and remove.
5571         (insert_into_preds_of_block): Commit edge insertion immediately,
5572         assert that doesn't require new BBs.
5573         (fini_pre): Release expressions.
5574         (pass_pre::execute): Shuffle things around a bit, if the fn
5575         is too large do not compute AVAIL either as this is really the
5576         quadratic bit.
5577
5578 2017-11-22  Richard Biener  <rguenther@suse.de>
5579
5580         PR tree-optimization/83089
5581         * tree-if-conv.c (pass_if_conversion::execute): If anything
5582         changed reset SCEV and free the number of iteration estimates.
5583
5584 2017-11-21  Martin Sebor  <msebor@redhat.com>
5585
5586         PR tree-optimization/82945
5587         * calls.h (warn_nonstring_bound): Remove unused function.
5588
5589 2017-11-21  Martin Sebor  <msebor@redhat.com>
5590
5591         PR tree-optimization/82945
5592         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
5593         * calls.h (maybe_warn_nonstring_arg): Declare new function.
5594         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
5595         functions.
5596         (initialize_argument_information): Call maybe_warn_nonstring_arg.
5597         * calls.h (get_attr_nonstring_decl): Declare new function.
5598         * doc/extend.texi (attribute nonstring): Update.
5599         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
5600         get_attr_nonstring_decl and handle it.
5601         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
5602         detection of nul-termination.
5603         (strlen_to_stridx): Change to a pointer.
5604         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
5605         (pass_strlen::execute): Same.
5606
5607 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5608
5609         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
5610         for the new option -mprefer-vector-width=[none|128|256|512].
5611         * config/i386/i386.c (ix86_target_string): remove old style options
5612         -mprefer-avx256 and make -mprefer-avx128 as alias.
5613         (ix86_option_override_internal):  Apply defaults for the
5614         -mprefer-vector-width=[128|256] option.
5615         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
5616         Implement macros to work with -mprefer-vector-width=.
5617         * config/i386/i386.opt: Implemented option
5618         -mprefer-vector-width=[none|128|256|512].
5619         * doc/invoke.texi: Documentation for
5620         -mprefer-vector-width=[none|128|256|512].
5621
5622 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
5623
5624         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5625
5626 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
5627
5628         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
5629
5630 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
5631
5632         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
5633         POINTER_PLUS_EXPR.
5634         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
5635         * expr.c (expand_expr_real_2): Likewise.
5636         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
5637         fold_binary_loc): Likewise.
5638         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
5639         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
5640         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
5641         MINUS_EXPR transformations.
5642         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
5643         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
5644         * tree-inline.c (estimate_operator_cost): Likewise.
5645         * tree-pretty-print.c (dump_generic_node, op_code_prio,
5646         op_symbol_code): Likewise.
5647         * tree-vect-stmts.c (vectorizable_operation): Likewise.
5648         * vr-values.c (extract_range_from_binary_expr): Likewise.
5649         * varasm.c (initializer_constant_valid_p_1): Likewise.
5650         * tree.def: New tree code POINTER_DIFF_EXPR.
5651
5652 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
5653
5654         * config/i386/i386.md (*bswap<mode>2_movbe): Add
5655         integer suffix to movbe mnemonic.
5656         (*bswaphi2_movbe): Ditto.
5657         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
5658
5659 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5660
5661         PR c++/83045
5662         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
5663         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
5664         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
5665
5666 2017-11-21  Martin Liska  <mliska@suse.cz>
5667
5668         * tree-inline.c (expand_call_inline): Remove not needed
5669         xstrdup_for_dump.
5670
5671 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
5672             Jakub Jelinek  <jakub@redhat.com>
5673
5674         PR target/82880
5675         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5676         Remove static keyword from f variable.
5677
5678 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5679
5680         PR tree-optimization/83086
5681         * gimple-ssa-store-merging.c
5682         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
5683         rather than n.base_addr.
5684
5685 2017-11-21  Martin Liska  <mliska@suse.cz>
5686
5687         PR rtl-optimization/82044
5688         PR tree-optimization/82042
5689         * dse.c (check_mem_read_rtx): Check for overflow.
5690
5691 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5692
5693         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
5694         typo in comment.
5695
5696 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5697
5698         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
5699         and its corresponding call arg location note.
5700
5701 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5702             Andrew Burgess  <andrew.burgess@embecosm.com>
5703
5704         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
5705         declaration.
5706         (arc_return_slot_offset): Likewise.
5707         (arc_eh_return_address_location): New declaration.
5708         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5709         (MUST_SAVE_REGISTER): Add exception handler case.
5710         (MUST_SAVE_RETURN_ADDR): Likewise.
5711         (arc_frame_pointer_required): Likewise.
5712         (arc_frame_pointer_needed): New function.
5713         (arc_compute_frame_size): Changed.
5714         (arc_expand_prologue): Likewise.
5715         (arc_expand_epilogue): Likewise.
5716         (arc_initial_elimination_offset): Likewise.
5717         (arc_return_slot_offset): Delete.
5718         (arc_eh_return_address_location): New function.
5719         (arc_builtin_setjmp_frame_value): Likewise.
5720         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
5721         (EH_RETURN_STACKADJ_RTX): Define.
5722         (EH_RETURN_HANDLER_RTX): Likewise.
5723         * config/arc/arc.md (eh_return): Delete.
5724
5725 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5726
5727         * print-tree.h (debug_vec_tree): Remove prototype.
5728         * gdbinit.in (pvt): Remove macro.
5729
5730 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5731
5732         PR tree-optimization/83047
5733         * gimple-ssa-store-merging.c
5734         (imm_store_chain_info::output_merged_store): If the loads with the
5735         same vuse are in different basic blocks, for load_gsi pick a load
5736         location that is dominated by the other loads.
5737
5738         PR c++/83059
5739         * config/i386/i386.c (ix86_memmodel_check): Start
5740         -Winvalid-memory-model diagnostics with lowercase letter.
5741
5742         PR debug/82718
5743         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
5744         set in_cold_section_p to the partition containing loc_list->first.
5745         When seeing loc_list->last_before_switch node, update secname and
5746         perform range_across_switch second partition handling only after that.
5747
5748         PR debug/82933
5749         * run-rtl-passes.c: Include debug.h.
5750         (run_rtl_passes): Call debug_hooks->assembly_start.
5751         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
5752         multiple times.
5753
5754         PR target/82981
5755         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
5756         OPTAB_DIRECT in calls to expand_simple_binop.
5757
5758 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5759
5760         PR c/81404
5761         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
5762
5763 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5764
5765         PR c++/72786
5766         * spellcheck.h (best_match::blithely_get_best_candidate): New
5767         accessor.
5768
5769 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5770
5771         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
5772         with lower case letter.
5773
5774 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
5775
5776         * config/i386/i386.md (bswaphi2): New expander.
5777         (*bswaphi2_movbe): New insn pattern.
5778         (bswaphi -> rorhi pepehole2): New peephole pattern.
5779
5780 2017-11-20  Jeff Law  <law@redhat.com>
5781
5782         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
5783         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
5784         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
5785         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
5786         gimple-ssa-evrp-analyze.h.
5787
5788         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
5789         set BB_VISITED here.
5790         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
5791
5792 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5793
5794         * tree-predcom.c: Add general comment on Store-Store chains.
5795         (split_data_refs_to_components): Postpone clearing eliminate_store_p
5796         flag in component.
5797         (get_chain_last_ref_at): Rename into...
5798         (get_chain_last_write_at): ...this.
5799         (get_chain_last_write_before_load): New function.
5800         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
5801         CT_STORE_STORE when write reference is added.
5802         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
5803         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
5804         (initialize_root_vars_store_elim_1): Ditto.
5805         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
5806         definition is created.
5807         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
5808         chain by replacing it with dominant stored value.
5809
5810 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5811
5812         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
5813
5814 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
5815
5816         * vr-values.c (extract_range_from_binary_expr): Use a full range
5817         for VR_VARYING.
5818
5819 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5820
5821         * config/arm/arm.md (R4_REGNUM): Define constant.
5822         (nonsecure_call_internal): Remove r4 clobber.
5823         (nonsecure_call_value_internal): Likewise.
5824         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
5825         clobber and resequence match_operands.
5826         (nonsecure_call_value_reg_thumb1_v5): Likewise.
5827         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
5828         (nonsecure_call_value_reg_thumb2): Likewise.
5829
5830 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5831
5832         PR tree-optimization/78821
5833         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
5834         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
5835         to the address of the base rather than the base itself.
5836         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
5837         (find_bswap_or_nop_finalize): New function.
5838         (find_bswap_or_nop): Use it.
5839         (bswap_replace): Return a tree rather than bool, change first
5840         argument from gimple * to gimple_stmt_iterator, allow inserting
5841         into an empty sequence, allow ins_stmt to be NULL - then emit
5842         all stmts into gsi.  Fix up MEM_REF address gimplification.
5843         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
5844         (struct store_immediate_info): Add N and INS_STMT non-static
5845         data members.
5846         (store_immediate_info::store_immediate_info): Initialize them
5847         from newly added ctor args.
5848         (merged_store_group::apply_stores): Formatting fixes.  Sort by
5849         bitpos at the end.
5850         (stmts_may_clobber_ref_p): For stores call also
5851         refs_anti_dependent_p.
5852         (gather_bswap_load_refs): New function.
5853         (imm_store_chain_info::try_coalesce_bswap): New method.
5854         (imm_store_chain_info::coalesce_immediate_stores): Use it.
5855         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
5856         (imm_store_chain_info::output_merged_store): Fail if number of
5857         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
5858         and NOP_EXPR rhs_code.
5859         (pass_store_merging::process_store): Compute n and ins_stmt, if
5860         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
5861         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
5862         ctor.
5863         (pass_store_merging::execute): Calculate dominators.
5864
5865         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
5866         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
5867         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
5868         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5869         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
5870         class pass_optimize_bswap, bswap_replace,
5871         pass_optimize_bswap::execute): Moved to ...
5872         * gimple-ssa-store-merging.c: ... this file.
5873         Include optabs-tree.h.
5874         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
5875         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
5876         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
5877         anonymous namespace, remove static keywords.
5878         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
5879         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
5880
5881 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
5882
5883         PR bootstrap/83062
5884         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
5885
5886 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
5887
5888         * vec.h (debug_helper): New function.
5889         (DEFINE_DEBUG_VEC): New macro.
5890         * hash-set.h (debug_helper): New function.
5891         (DEFINE_DEBUG_HASH_SET): New macro.
5892         * cfg.c (debug_slim (edge)): New function.
5893         Call DEFINE_DEBUG_VEC for edges.
5894         Call DEFINE_DEBUG_HASH_SET for edges.
5895         * cfghooks.c (debug_slim (basic_block)): New function.
5896         Call DEFINE_DEBUG_VEC for basic blocks.
5897         Call DEFINE_DEBUG_HASH_SET for basic blocks.
5898         * print-tree.c (debug_slim): New function to handle trees.
5899         Call DEFINE_DEBUG_VEC for trees.
5900         Call DEFINE_DEBUG_HASH_SET for trees.
5901         (debug (vec<tree, va_gc>) &): Remove.
5902         (debug (<vec<tree, va_gc>) *): Remove.
5903         * print-rtl.c (debug_slim): New function to handle const_rtx.
5904         Call DEFINE_DEBUG_VEC for rtx_def.
5905         Call DEFINE_DEBUG_VEC for rtx_insn.
5906         Call DEFINE_DEBUG_HASH_SET for rtx_def.
5907         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
5908         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
5909         (debug (vec<rtx_insn *> *ptr): Remove.
5910         (debug_insn_vector): Remove.
5911         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
5912
5913 2017-11-20  Tom de Vries  <tom@codesourcery.com>
5914
5915         PR rtl-optimization/82020
5916         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
5917         IF_THEN_ELSE condition.
5918
5919 2017-11-19  Jeff Law  <law@redhat.com>
5920
5921         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
5922         of degenerates resulting from ignoring an edge.
5923
5924 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5925
5926         PR ipa/81360
5927         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
5928
5929 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5930
5931         PR ipa/83001
5932         * profile-count.c (profile_count::to_sreal_scale): Fix return value
5933         for uninitialied counts.
5934
5935 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5936
5937         PR ipa/60243
5938         * tree-inline.c (estimate_num_insns): Set to 1 at least.
5939
5940 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
5941
5942         PR target/82713
5943         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
5944
5945 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5946
5947         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
5948         "do while (0)".
5949
5950 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5951
5952         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
5953         "do {} while (0)".
5954
5955 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5956
5957         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
5958         macro body.
5959
5960 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5961
5962         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
5963         "do {} while (0)".
5964         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
5965
5966 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5967
5968         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
5969         "do {} while (0)".
5970         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
5971         semicolon after MCORE_EXPORT_NAME call.
5972
5973 2017-11-19  Tom de Vries  <tom@codesourcery.com>
5974
5975         PR target/82961
5976         * vmsdbgout.c (vmsdbgout_early_finish): New function.
5977         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
5978
5979 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
5980
5981         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
5982         (cgraph_edge::clone): Cleanup updating of profile.
5983         * ipa-cp.c (update_profiling_info): Likewise.
5984         * ipa-inline-transform.c (inline_transform): Likewise.
5985         * ipa-inline.c (inline_small_functions): Add missing space to dump.
5986         * ipa-split.c (execute_split_functions): Do not split when function
5987         is cold.
5988         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
5989         * profile-count.c (profile_count::dump): Add global0.
5990         (profile_count::to_cgraph_frequency): Do not ICE when entry is
5991         undefined.
5992         (profile_count::to_sreal_scale): Likewise.
5993         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
5994         (profile_count::combine_with_ipa_count): New function.
5995         * profile-count.h (profile_guessed_global0adjusted): New.
5996         (profile_count::adjusted_zero): New.
5997         (profile_count::global0adjusted): New.
5998         (profile_count::combine_with_ipa_count): New.
5999         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
6000         correct profile of return block of split functions.
6001         (copy_cfg_body): Remove unused profile_count.
6002         (copy_body): Likewise.
6003         (expand_call_inline): Update.
6004         (tree_function_versioning): Update.
6005
6006 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
6007
6008         * hash-set.h (hash_set::empty): New.
6009         * tree-ssa-threadbackward.h: Delete.
6010         * tree-ssa-threadbackward.c (class thread_jumps): New.
6011         Move max_threaded_paths into class.
6012         (fsm_find_thread_path): Remove arguments that are now in class.
6013         (profitable_jump_thread_path): Rename to...
6014         (thread_jumps::profitable_jump_thread_path): ...this.
6015         (convert_and_register_jump_thread_path): Rename to...
6016         (thread_jumps::convert_and_register_current_path): ...this.
6017         (check_subpath_and_update_thread_path): Rename to...
6018         (thread_jumps::check_subpath_and_update_thread_path): ...this.
6019         (register_jump_thread_path_if_profitable): Rename to...
6020         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
6021         (handle_phi): Rename to...
6022         (thread_jumps::handle_phi): ...this.
6023         (handle_assignment): Rename to...
6024         (thread_jumps::handle_assignment): ...this.
6025         (fsm_find_control_statement_thread_paths): Rename to...
6026         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
6027         (find_jump_threads_backwards): Rename to...
6028         (thread_jumps::find_jump_threads_backwards): ...this.
6029         Initialize path local data.
6030         (pass_thread_jumps::execute): Call find_jump_threads_backwards
6031         from within thread_jumps class.
6032         (pass_early_thread_jumps::execute): Same.
6033
6034 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6035
6036         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
6037
6038 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
6039
6040         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
6041         to canonical location.
6042
6043 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
6044
6045         PR target/81356
6046         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
6047         Remove.
6048         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
6049
6050 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
6051
6052         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
6053         rcrt1.o%s/grcrt1.o%s for -static-pie.
6054
6055 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6056
6057         * i386.c (ix86_multiplication_cost, ix86_division_cost,
6058         ix86_shift_rotate_cost): Break out from ...
6059         (ix86_rtx_costs): ... here.
6060         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
6061         vector operations.
6062
6063 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6064
6065         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
6066         when entry block was promoted unlikely.
6067         (estimate_bb_frequencies): Increase frequency scale.
6068         * profile-count.h (profile_count): Export precision info.
6069
6070 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6071
6072         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
6073         disturbin profile of entry block.
6074
6075 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6076
6077         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
6078         roundoff errors.
6079
6080 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6081
6082         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
6083         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
6084
6085 2017-11-17  Jeff Law  <law@redhat.com>
6086
6087         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
6088         from evrp_dom_walker class.  Various methods moved into new class.
6089         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
6090         (evrp_range_analyzer::enter): New method.
6091         (evrp_range_analyzer::leave): New method.
6092         (evrp_dom_walker): Remove delegators no longer needed by this class.
6093         Replace vr_values data member with evrp_range_analyzer
6094
6095         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
6096         method extracted from evrp_dom_walker::before_dom_children.
6097         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
6098         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
6099
6100         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
6101         Add private copy constructor and move assignment operators.
6102         Privatize methods and class data where trivially possible.
6103         (evrp_dom_walker::cleanup): New function, extracted from
6104         execute_early_vrp.  Simplify access to class data.
6105
6106         * vr-values.h (get_output_for_vrp): Prototype.
6107         * vr-values.c (get_output_for_vrp): New function extracted from
6108         vrp_visit_assignment_or_call and extract_range_from_stmt.
6109         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
6110
6111 2017-11-17  Luis Machado  <luis.machado@linaro.org>
6112
6113         * config/aarch64/aarch64.c
6114         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
6115         (qdf24xx_tunings) <autoprefetcher_model>: Set to
6116         tune_params::AUTOPREFETCHER_WEAK.
6117
6118 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6119
6120         PR target/82641
6121         * config/arm/arm.c (arm_valid_target_attribute_rec):
6122         Parse "arch=" and "+<ext>".
6123         (arm_valid_target_attribute_tree): Re-init global options.
6124         (arm_option_override): Make non-static.
6125         (arm_options_perform_arch_sanity_checks): Make errors fatal.
6126         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
6127         (__ARM_FEATURE_CRC32): Support undef.
6128         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
6129         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
6130
6131 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
6132
6133         * gdbinit.in (break-on-diagnostic): New command.
6134
6135 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6136
6137         * config/i386/i386.c (ix86_expand_epilogue): Change simple
6138         return to indirect jump for EH return if control-flow
6139         protection is enabled. Change explicit 'false' argument in
6140         pro_epilogue_adjust_stack with a value of
6141         flag_cf_protection.
6142         * config/i386/i386.md (simple_return_indirect_internal):
6143         Remove SImode restriction to support 64-bit.
6144
6145 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6146
6147         * combine.c (added_notes_insn): New.
6148         (try_combine): Handle added_notes_insn like added_links_insn.
6149         Rewrite return value code.
6150         (distribute_notes): Set added_notes_insn to the earliest insn we added
6151         a note to.
6152
6153 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6154
6155         PR rtl-optimization/82621
6156         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
6157         dest of one of those SETs is unused.
6158
6159 2017-11-17  Richard Biener  <rguenther@suse.de>
6160
6161         PR fortran/83017
6162         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
6163         * tree-pretty-print.c (dump_generic_node): Handle
6164         annot_expr_parallel_kind.
6165         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
6166         * gimplify.c (gimple_boolify): Likewise.
6167
6168 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6169
6170         * config.gcc (extra_headers): Add cet.h for x86 targets.
6171         * config/i386/cet.h: New file.
6172         * doc/install.texi: Add --enable-cet/--disable-cet.
6173
6174 2017-11-17  Richard Biener  <rguenther@suse.de>
6175
6176         PR tree-optimization/83017
6177         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
6178         (gen_parallel_loop): Properly count iterations.
6179         (parallelize_loops): Handle loop->can_be_parallel independent
6180         of flag_loop_parallelize_all.  Make static profitability test match
6181         the runtime one.
6182         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
6183         * invoke.texi (parloops-min-per-thread): Document.
6184
6185 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
6186
6187         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
6188         upstreaming review comments.
6189
6190 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6191
6192         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
6193         with fast unaligned access.
6194         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
6195
6196 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6197
6198         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
6199         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
6200
6201 2017-11-17  Richard Biener  <rguenther@suse.de>
6202
6203         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
6204         folding of references.
6205
6206 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
6207
6208         PR middle-end/78809
6209         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
6210         of replacing call to strncmp with corresponding call to strcmp when
6211         meeting conditions.
6212
6213 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
6214
6215         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
6216         option prefer-avx256 for skylake-avx512 configuration.
6217         * config/i386/i386.c (ix86_option_override_internal): Ditto.
6218         (get_builtin_code_for_version): Ditto.
6219
6220 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6221             Monk Chiang  <sh.chiang04@gmail.com>
6222
6223         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
6224         (FIXED_REGISTERS): Reserve more register numbers.
6225         (CALL_USED_REGISTERS): Likewise.
6226         (REG_ALLOC_ORDER): Likewise.
6227         (REG_CLASS_CONTENTS): Likewise.
6228         (REGISTER_NAMES): Likewise.
6229
6230 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6231             Kito Cheng  <kito.cheng@gmail.com>
6232
6233         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
6234         V2SI.
6235         * config/nds32/iterators.md: Add vector mode iterators and attributes.
6236
6237 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
6238
6239         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
6240         parameter list for vec_splats.
6241
6242 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
6243
6244         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
6245         date of C17.
6246         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
6247
6248 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
6249
6250         PR bootstrap/82856
6251         * doc/install.texi: Document incompatibility of Perl >=5.6.26
6252         with the required version of automake 1.11.6.
6253
6254 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
6255
6256         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
6257         for it.
6258         (DU_C2_3_power9): Correct reservation combinations.
6259         (FP_DIV_power9, VEC_DIV_power9): New.
6260         (power9-alu): Split out rotate/shift...
6261         (power9-rot): ...to here, correct dispatch resource.
6262         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
6263         resource.
6264         (power9-fp): Correct latency.
6265         (power9-sdiv): Add div/sqrt resource.
6266         (power9-ddiv): Correct latency, add div/sqrt resource.
6267         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
6268         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
6269         resource.
6270         (power9-qpdiv, power9-qpmul): Adjust resource usage.
6271
6272 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6273
6274         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
6275         switch statement mapping KF built-ins to TF built-ins if we don't
6276         have the proper ISA 3.0 assembler support.
6277
6278 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6279
6280         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
6281         (lower_emutls_function_body): Do not compute it.
6282
6283 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6284
6285         * ipa-split.c (split_bb_info): Turn time to sreal.
6286         (split_point): Likewise.
6287         (dump_split_point): Likewise.
6288         (fine_split_points): Likewise.
6289         (execute_split_functions): Only zero split_bbs; turn time to sreals.
6290
6291 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6292
6293         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
6294         in sreal.
6295
6296 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6297
6298         * predict.c (combine_predictions_for_bb): Preserve zero predicted
6299         edges.
6300         (expensive_function_p): Remove useless assert.
6301         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
6302
6303 2017-11-16  Martin Sebor  <msebor@redhat.com>
6304
6305         PR tree-optimization/82588
6306         PR tree-optimization/82583
6307         * tree-vrp.c (check_array_ref): Handle flexible array members,
6308         string literals, and inner indices.
6309         (search_for_addr_array): Add detail to diagnostics.
6310
6311 2017-11-16  Nathan Sidwell  <nathan@acm.org>
6312
6313         PR c++/82836
6314         PR c++/82737
6315         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
6316         (SET_DECL_ASSEMBLER_NAME): Forward to
6317         overwrite_decl_assembler_name.
6318         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
6319         (overwrite_decl_assembler_name): Declare.
6320         * tree.c (overwrite_decl_assembler_name): New.
6321         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
6322         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
6323         (LANG_HOOKS_INITIALIZER): Add it.
6324         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
6325         * langhooks.c (lhd_set_decl_assembler_name): Use
6326         SET_DECL_ASSEMBLER_NAME.
6327         (lhd_overwrite_decl_assembler_name): Default implementation.
6328
6329 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6330             Jackson Woodruff  <jackson.woodruff@arm.com>
6331
6332         PR tree-optimization/71026
6333         * match.pd: Canonicalize constant multiplies in division.
6334
6335 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6336
6337         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
6338         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
6339         Remove OPT_fomit_frame_pointer entry.
6340         * common/config/arc/arc-common.c: Likewise.
6341         * common/config/arm/arm-common.c: Likewise.
6342         * common/config/avr/avr-common.c: Likewise.
6343         * common/config/c6x/c6x-common.c: Likewise.
6344         * common/config/cr16/cr16-common.c: Likewise.
6345         * common/config/cris/cris-common.c: Likewise.
6346         * common/config/epiphany/epiphany-common.c: Likewise.
6347         * common/config/fr30/fr30-common.c: Likewise.
6348         * common/config/frv/frv-common.c: Likewise.
6349         * common/config/ia64/ia64-common.c: Likewise.
6350         * common/config/iq2000/iq2000-common.c: Likewise.
6351         * common/config/lm32/lm32-common.c: Likewise.
6352         * common/config/m32r/m32r-common.c: Likewise.
6353         * common/config/mcore/mcore-common.c: Likewise.
6354         * common/config/microblaze/microblaze-common.c: Likewise.
6355         * common/config/mips/mips-common.c: Likewise.
6356         * common/config/mmix/mmix-common.c: Likewise.
6357         * common/config/mn10300/mn10300-common.c: Likewise.
6358         * common/config/nios2/nios2-common.c: Likewise.
6359         * common/config/pa/pa-common.c: Likewise.
6360         * common/config/pdp11/pdp11-common.c: Likewise.
6361         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
6362         * common/config/riscv/riscv-common.c: Likewise.
6363         * common/config/rs6000/rs6000-common.c: Likewise.
6364         * common/config/rx/rx-common.c: Likewise.
6365         * common/config/s390/s390-common.c: Likewise.
6366         * common/config/sh/sh-common.c: Likewise.
6367         * common/config/sparc/sparc-common.c: Likewise.
6368         * common/config/tilegx/tilegx-common.c: Likewise.
6369         * common/config/tilepro/tilepro-common.c: Likewise.
6370         * common/config/v850/v850-common.c: Likewise.
6371         * common/config/visium/visium-common.c: Likewise.
6372         * common/config/xstormy16/xstormy16-common.c: Likewise.
6373         * common/config/xtensa/xtensa-common.c: Likewise.
6374         * invoke.texi (-fomit-frame-pointer): Update documentation.
6375
6376 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6377
6378         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
6379
6380 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6381
6382         * cfg.c (scale_bbs_frequencies_int,
6383         cale_bbs_frequencies_gcov_type): Remove.
6384         * cfg.h (scale_bbs_frequencies_int,
6385         cale_bbs_frequencies_gcov_type): Remove.
6386
6387 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6388
6389         * tree-ssa-loop-manip.c
6390         (scale_dominated_blocks_in_loop): Update to profile counts.
6391         (tree_transform_and_unroll_loop): Likewise.
6392
6393 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6394
6395         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
6396         scale_bbs_frequencies_int.
6397
6398 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6399
6400         * final.c (compute_alignments): Use counts rather than frequencies.
6401
6402 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6403
6404         * cfgloopanal.c: Include sreal.h
6405         (average_num_loop_insns): Use counts and sreal for accounting.
6406
6407 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6408
6409         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
6410         manipulation.
6411
6412 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6413             Kito Cheng  <kito.cheng@gmail.com>
6414
6415         * config/nds32/constraints.md: Provide more constraints.
6416         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
6417         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
6418         support constraints usage.
6419
6420 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6421
6422         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
6423
6424 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6425             Kito Cheng  <kito.cheng@gmail.com>
6426
6427         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
6428         * config/nds32/nds32.opt: Refine the layout.
6429         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
6430         TARGET_EXT_STRING): Support new options.
6431         * config/nds32/nds32.h: Likewise.
6432         * config/nds32/nds32.md: Likewise.
6433         * config/nds32/nds32-predicates.c: Likewise.
6434         * config/nds32/constraints.md: Likewise.
6435         * common/config/nds32/nds32-common.c: Likewise.
6436
6437 2017-11-16  Julia Koval  <julia.koval@intel.com>
6438
6439         PR target/82983
6440         * config/i386/gfniintrin.h: Add sse check.
6441         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
6442
6443 2017-11-16  Julia Koval  <julia.koval@intel.com>
6444
6445         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
6446         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
6447         (ix86_handle_option): Handle -mavx512vbmi2.
6448         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
6449         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
6450         * config/i386/i386-c.c (__AVX512VBMI2__): New.
6451         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
6452         (ix86_valid_target_attribute_inner_p): Ditto.
6453         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
6454         * config/i386/i386.opt (mavx512vbmi2): New option.
6455         * doc/invoke.texi: Add new option.
6456
6457 2017-11-16  Julia Koval  <julia.koval@intel.com>
6458
6459         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
6460         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
6461         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
6462         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
6463         _mm512_gf2p8mul_epi8): New intrinsics.
6464         * config/i386/i386-builtin-types.def
6465         (V64QI_FTYPE_V64QI_V64QI): New type.
6466         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
6467         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
6468         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
6469         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
6470         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
6471         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
6472
6473 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
6474
6475         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
6476         explicitly as a stream of bytes.
6477
6478 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6479
6480         * config/rs6000/altivec.h (vec_xst_be): New #define.
6481         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
6482         and externalize from *altivec_vperm_<mode>_internal.
6483         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
6484         instantiation.
6485         (XL_BE_V8HI): Likewise.
6486         (XL_BE_V4SI): Likewise.
6487         (XL_BE_V4SI): Likewise.
6488         (XL_BE_V2DI): Likewise.
6489         (XL_BE_V4SF): Likewise.
6490         (XL_BE_V2DF): Likewise.
6491         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
6492         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
6493         all array entries with these keys: VSX_BUILTIN_VEC_XL,
6494         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
6495         VSX_BUILTIN_VEC_XST_BE.
6496         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
6497         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
6498         built-ins.
6499         (altivec_init_builtins): Replace conditional calls to def_builtin
6500         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
6501         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
6502         with unconditional calls.  Remove calls to def_builtin for
6503         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
6504         __builtin_vec_xst_be.
6505         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
6506         to define_expand, and add alternate RTL generation for P8.
6507         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
6508         vsx_ld_elemrev_v8hi.
6509         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
6510         add alternate RTL generation for P8.
6511         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
6512         vsx_ld_elemrev_v16qi.
6513         (vsx_st_elemrev_v8hi): Convert define_insn
6514         to define_expand, and add alternate RTL generation for P8.
6515         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
6516         vsx_st_elemrev_v8hi.
6517         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
6518         add alternate RTL generation for P8.
6519         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
6520         vsx_st_elemrev_v16qi.
6521
6522 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
6523
6524         PR target/82990
6525         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
6526         TARGET_AVX512ER check.
6527         (ix86_option_override_internal): Set MASK_VZEROUPPER if
6528         neither -mzeroupper nor -mno-zeroupper is used and
6529         TARGET_EMIT_VZEROUPPER is set.
6530         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
6531         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
6532
6533 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
6534
6535         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
6536         folding of vector compares.
6537         (fold_build_vec_cmp): New helper function.
6538         (fold_compare_helper): New helper function.
6539         (builtin_function_type): Add compare builtins to the list of functions
6540         having unsigned arguments.  Cosmetic updates to comment indentation.
6541         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
6542         the not+eq combination.
6543
6544 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6545
6546         PR tree-optimization/82726
6547         PR tree-optimization/70754
6548         * tree-predcom.c (order_drefs_by_pos): New function.
6549         (combine_chains): Move code setting has_max_use_after to...
6550         (try_combine_chains): ...here.  New parameter.  Sort combined chains
6551         according to position information.
6552         (tree_predictive_commoning_loop): Update call to above function.
6553         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
6554
6555 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6556
6557         PR tree-optimization/82726
6558         Revert
6559         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
6560
6561         PR tree-optimization/70754
6562         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
6563         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
6564         combined stmt before it if not NULL.
6565         (combine_chains): Process refs reversely and compute dominance point
6566         for root ref.
6567
6568         Revert
6569         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
6570
6571         PR tree-optimization/79663
6572         * tree-predcom.c (combine_chains): Process refs in reverse order
6573         only for ZERO length chains, and add explaining comment.
6574
6575 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6576
6577         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
6578         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
6579         * doc/invoke.texi (ARM Options): Add armv8.3-a.
6580
6581 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6582
6583         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
6584
6585 2017-11-15  Martin Liska  <mliska@suse.cz>
6586
6587         * tree-cfg.c (pass_warn_function_return::execute):
6588         Compare warn_return_type for greater than zero.
6589
6590 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
6591
6592         PR target/82941
6593         PR target/82942
6594         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
6595         to return true on Xeon and not on Xeon Phi.
6596         (ix86_check_avx256_register): Changed to ...
6597         (ix86_check_avx_upper_register): ... this. Add extra check for
6598         VALID_AVX512F_REG_OR_XI_MODE.
6599         (ix86_avx_u128_mode_needed): Changed
6600         ix86_check_avx256_register to ix86_check_avx_upper_register.
6601         (ix86_check_avx256_stores): Changed to ...
6602         (ix86_check_avx_upper_stores): ... this. Changed
6603         ix86_check_avx256_register to ix86_check_avx_upper_register.
6604         (ix86_avx_u128_mode_after): Changed
6605         avx_reg256_found to avx_upper_reg_found. Changed
6606         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
6607         (ix86_avx_u128_mode_entry): Changed
6608         ix86_check_avx256_register to ix86_check_avx_upper_register.
6609         (ix86_avx_u128_mode_exit): Ditto.
6610         * config/i386/i386.h: (host_detect_local_cpu): New define.
6611
6612 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
6613
6614         * config/arm/xgene1.md (xgene1): Split into automatons
6615         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
6616         (xgene1_f_load): Adjust reservations and/or types.
6617         (xgene1_f_store): Likewise.
6618         (xgene1_load_pair): Likewise.
6619         (xgene1_store_pair): Likewise.
6620         (xgene1_fp_load1): Likewise.
6621         (xgene1_load1): Likewise.
6622         (xgene1_store1): Likewise.
6623         (xgene1_move): Likewise.
6624         (xgene1_alu): Likewise.
6625         (xgene1_simd): Likewise.
6626         (xgene1_bfm): Likewise.
6627         (xgene1_neon_load1): Likewise.
6628         (xgene1_neon_store1): Likewise.
6629         (xgene1_neon_logic): Likewise.
6630         (xgene1_neon_st1): Likewise.
6631         (xgene1_neon_ld1r): Likewise.
6632         (xgene1_alu_cond): Added.
6633         (xgene1_shift_reg): Likwise.
6634         (xgene1_bfx): Likewise.
6635         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
6636
6637 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
6638
6639         PR target/82981
6640         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
6641         ssa-iterators.h.
6642         (can_widen_mult_without_libcall): New function.
6643         (expand_mul_overflow): If only checking unsigned mul overflow,
6644         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
6645         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
6646         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
6647         (expand_DIVMOD): Formatting fix.
6648         * expmed.h (expand_mult): Add NO_LIBCALL argument.
6649         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
6650         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
6651
6652         PR tree-optimization/82977
6653         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
6654         constructed temporary to strlen_to_stridx.put.
6655
6656 2017-11-15  Martin Liska  <mliska@suse.cz>
6657
6658         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
6659         * configure: Regenerate.
6660
6661 2017-11-15  Martin Liska  <mliska@suse.cz>
6662
6663         PR target/82927
6664         * config/sh/sh-mem.cc: Use proper probability for
6665         REG_BR_PROB_NOTE.
6666
6667 2017-11-14  Jeff Law  <law@redhat.com>
6668
6669         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
6670         the red zone for stack_clash_protection_final_dynamic_probe targets
6671         when the total dynamic stack size is zero bytes.
6672
6673         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
6674         blocks is post order.
6675
6676 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
6677
6678         * dumpfile.h (TDF_COMPARE_DEBUG): New.
6679         * final.c (rest_of_clean_state): Set it for the
6680         -fcompare-debug dump.
6681         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
6682         class when TDF_COMPARE_DEBUG is set.
6683
6684         * dwarf2out.c (gen_producer_string): Discard
6685         OPT_fcompare_debug.
6686
6687 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6688
6689         PR c/81156
6690         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
6691         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
6692         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
6693         (__TGMATH_REAL_2_3): Remove macros.
6694         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
6695         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
6696         __builtin_tgmath.
6697         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
6698         __TGMATH_REAL_2.
6699         (remquo): Define using __TGMATH_REAL_3.
6700
6701 2017-11-14  Jeff Law  <law@redhat.com>
6702
6703         * vr-values.c: New file with contents extracted from tree-vrp.c.
6704         * Makefile.in (OBJS): Add vr-values.o
6705         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
6706         (set_value_range, set_and_canonicalize_value_range): Likewise.
6707         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
6708         (value_range_constant_singleton, symbolic_range_p): Likewise.
6709         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
6710         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
6711         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
6712         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
6713         (find_case_label_range, find_case_label_index): Likewise.
6714         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
6715         (range_int_cst_singleton_p, value_inside_range): Likewise.
6716         (get_single_symbol): Likewise.
6717         (switch_update): Move structure definition here.
6718         (to_remove_edges, to_update_switch_stmts): Provide externs.
6719         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
6720         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
6721         (vrp_val_is_min, set_value_range): Likewise.
6722         (set_and_canonicalize_value_range, copy_value_range): Likewise.
6723         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
6724         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
6725         (range_is_nonnull, range_int_cst_p): Likewwise.
6726         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
6727         (get_single_symbol, operand_less_p): Likewise
6728         (compare_values_warnv, compare_values): Likewise.
6729         (value_inside_range, value_range_constant_singleton): Likewise.
6730         (zero_nonzero_bitgs_from_vr): Likewise.
6731         (extract_range_from_binary_expr_1): Likewise.
6732         (overflow_comparison_p): Likewise.
6733         (to_remove_edges, to_update_switch_stmts): Likewise.
6734         (find_case_label-index, find_case_label_range): Likewise.
6735         (switch_update, set_value_range_to_nonnegative): Remove.
6736         (set_value_range_to_truthvalue): Likewise.
6737         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
6738         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
6739         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
6740         (find_case_label_ranges, test_for_singularity): Likewise.
6741         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
6742         (x_vr_values): Move to its remaining use site.
6743
6744 2017-11-10  Jeff Law  <law@redhat.com>
6745
6746         * vr-values.h (VR_INITIALIZER): Move #define here.
6747         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
6748         * Makefile.in (OBJS): Add tree-evrp.o
6749         * tree-vrp.h (assert_info): Move structure definition here.
6750         (set_value_range_to_varying): Prototype.
6751         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6752         (infer_value_range, register_edge_assert_for): Likewise.
6753         (stmt_interesting_for_vrp): Likewise.
6754         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
6755         (set_value_range_to_varying): No longer static.
6756         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6757         (infer_value_range, register_edge_assert_for): Likewise.
6758
6759 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6760
6761         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
6762         generate the XXBRD instruction.
6763
6764         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
6765         (rs6000_builtin_type_compatible): Treat _Float128 and long double
6766         as being compatible if -mabi=ieeelongdouble.
6767         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
6768         to setup float128 built-ins with hardware support.
6769         (BU_FLOAT128_HW_2): Likewise.
6770         (BU_FLOAT128_HW_3): Likewise.
6771         (BU_FLOAT128_HW_VSX_1): Likewise.
6772         (BU_FLOAT128_HW_VSX_2): Likewise.
6773         (scalar_extract_expq): Change float128 built-in functions to
6774         accommodate having both KFmode and TFmode functions.  Use the
6775         KFmode variant as the default.
6776         (scalar_extract_sigq): Likewise.
6777         (scalar_test_neg_qp): Likewise.
6778         (scalar_insert_exp_q): Likewise.
6779         (scalar_insert_exp_qp): Likewise.
6780         (scalar_test_data_class_qp): Likewise.
6781         (sqrtf128_round_to_odd): Delete processing the round to odd
6782         built-in functions as special built-in functions, and define them
6783         as float128 built-ins.  Use the KFmode variant as the default.
6784         (truncf128_round_to_odd): Likewise.
6785         (addf128_round_to_odd): Likewise.
6786         (subf128_round_to_odd): Likewise.
6787         (mulf128_round_to_odd): Likewise.
6788         (divf128_round_to_odd): Likewise.
6789         (fmaf128_round_to_odd): Likewise.
6790         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
6791         support for KFmode and TFmode xststdcqp calls.
6792         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
6793         point, switch the built-in handlers for the get/set float128
6794         exponent, get float128 mantissa, float128 test built-ins, and the
6795         float128 round to odd built-in functions.  Eliminate creating the
6796         float128 round to odd built-in functions as special built-ins.
6797         (rs6000_init_builtins): Eliminate special creation of the float128
6798         round to odd built-in functions.
6799         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
6800         function insns to support both TFmode and KFmode variants.
6801         (xsxsigqp_<mode>): Likewise.
6802         (xsiexpqpf_<mode>): Likewise.
6803         (xsiexpqp_<mode>): Likewise.
6804         (xststdcqp_<mode>): Likewise.
6805         (xststdcnegqp_<mode>): Likewise.
6806         (xststdcqp_<mode>): Likewise.
6807
6808 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6809
6810         * tree-ssa-threadupdate.c (compute_path_counts): Remove
6811         unused path_in_freq_ptr parameter.
6812         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
6813
6814 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6815
6816         * ipa-inline.c (edge_badness): Dump sreal frequency.
6817         (compute_inlined_call_time): Match natural implementaiton ...
6818         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
6819         forgotten division by CGRAPH_FREQ_BASE.
6820
6821 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6822
6823         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
6824         Solaris 11.  Update comment.
6825         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
6826         renaming.
6827         * config/sol2.h (STARTFILE_SPEC): Likewise.
6828         * configure: Regenerate.
6829
6830 2017-11-14  Carl Love  <cel@us.ibm.com>
6831
6832         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
6833         le_ and be_ prefixes to swap* variables.  Remove
6834         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
6835         statements.
6836
6837 2017-11-14  Jason Merrill  <jason@redhat.com>
6838
6839         Support GTY((cache)) on hash_map.
6840         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
6841         (ggc_cache_remove): Override it instead of ggc_mx.
6842         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
6843         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
6844         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
6845         (simple_cache_map_traits): Override maybe_mx.
6846         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
6847         (hash_map): Friend gt_cleare_cache.
6848         (gt_cleare_cache): New.
6849         * tree.h (tree_cache_traits): New hash_map traits class.
6850         (tree_cache_map): New typedef.
6851
6852 2017-11-14  Richard Biener  <rguenther@suse.de>
6853
6854         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
6855         paramter and handling.
6856         (cleanup_control_flow_bb): Likewise.
6857         (cleanup_control_flow_pre): New helper performing a DFS walk
6858         to call cleanup_control_flow_bb in PRE order.
6859         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
6860         via cleanup_control_flow_pre.
6861
6862 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
6863
6864         * config/aarch64/aarch64-simd.md
6865         (aarch64_simd_bsl<mode>_internal): Remove DImode.
6866         (*aarch64_simd_bsl<mode>_alt): Likewise.
6867         (aarch64_simd_bsldi_internal): New.
6868         (aarch64_simd_bsldi_alt): Likewise.
6869
6870 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6871
6872         * tracer.c (better_p): Do not compare frequencies.
6873         * reg-stack.c (better_edge): Likewise.
6874         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
6875         and back.
6876
6877 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6878
6879         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
6880         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
6881         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
6882         * lto-streamer-in.c (input_function): Use update_max_bb_count.
6883         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
6884         * predict.c (maybe_hot_frequency_p): Inline to ...
6885         (maybe_hot_count_p): ... here; rewrite to counts.
6886         (counts_to_freqs): Rename to ...
6887         (update_max_bb_count): ... this one.
6888         (expensive_function_p): Use counts.
6889         (estimate_bb_frequencies): Update.
6890         (rebuild_frequencies): Update.
6891         * predict.h (counts_to_freqs): Rename to ...
6892         (update_max_bb_count): ... this one.
6893         * profile.c (compute_branch_probabilities): Add debug info
6894         * tree-inline.c (expand_call_inline): Update debug info.
6895         (optimize_inline_calls): Use update_max_bb_count..
6896         (tree_function_versioning): Use update_max_bb_count..
6897         * value-prof.c (gimple_value_profile_transformations):
6898         Do not use update_max_bb_count.
6899
6900 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6901
6902         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
6903         always use frequencies.
6904
6905 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6906
6907         * bb-reorder.c: Remove frequencies from comments.
6908         (better_edge_p): Use profile counts.
6909         (find_traces): Dump profile counts.
6910         (rotate_loop): Use profile counts.
6911         (find_traces_1_round): Likewise.
6912         (connect_better_edge_p): Use counts instead of probabilities for
6913         reverse walk.
6914         (copy_bb_p): Drop early check for non-0 frequency.
6915         (sanitize_hot_paths): Update comments.
6916
6917 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6918
6919         * ipa-split.c (struct split_point): Add count.
6920         (consider_split): Do not compute incoming frequency; compute incoming
6921         count and store it to split_point.
6922         (split_function): Set count of the call to split part correctly.
6923
6924 2017-11-13  Carl Love  <cel@us.ibm.com>
6925
6926         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
6927
6928 2017-11-13  Tom Tromey  <tom@tromey.com>
6929
6930         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
6931
6932 2017-11-13  Carl Love  <cel@us.ibm.com>
6933
6934         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
6935         Add support for builtins:
6936         unsigned int vec_first_{,miss}_match_{,or_eos}index,
6937         vector {un,}signed {char,int,short},
6938         vector {un,}signed {char,int,short}) arguments.
6939         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
6940         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
6941         Add BU_P9V_AV_2 expansions for the builtins.
6942         * config/rs6000/altivec.h (vec_first_match_index,
6943         vec_first_mismatch_index, vec_first_match_or_eos_index,
6944         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
6945         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
6946         new extern declaration.
6947         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
6948         * config/rs6000/vsx.md (first_match_index_<mode>,
6949         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
6950         first_mismatch_or_eos_index_<mode>): Add define expand.
6951         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
6952         * doc/extend.texi: Update the built-in documenation file for the new
6953         built-in functions.
6954
6955 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6956
6957         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
6958         into the min/max operations for _Float<N> and _Float<N>X types.
6959
6960 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6961
6962         PR lto/81351
6963         * dwarf2out.c (do_eh_frame): New static variable.
6964         (dwarf2out_begin_prologue): Set it.
6965         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
6966
6967 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6968
6969         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
6970
6971         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
6972
6973 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
6974
6975         PR lto/81351
6976         * debug.h (dwarf2out_do_eh_frame): Declare.
6977         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
6978         (dwarf2out_do_frame): Use it.
6979         (dwarf2out_do_cfi_asm): Likewise.
6980         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
6981         (dwarf2out_assembly_start): Likewise.
6982         (dwarf2out_begin_prologue): Fix comment.
6983         * toplev.c (compile_file): Always call dwarf2out_frame_finish
6984         if the target needs either debug or unwind DWARF2 info.
6985         * lto-opts.c (lto_write_options): Do not save -fexceptions,
6986         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
6987         -ftrapping-math, -ftrapv and -fwrapv.
6988
6989 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
6990
6991         * cgraph.c (cgraph_edge::sreal_frequency): New function.
6992         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
6993         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
6994         (estimate_edge_size_and_time): Likewise.
6995         (ipa_merge_fn_summary_after_inlining): Likewise.
6996         * ipa-inline.c (cgraph_freq_base_rec): Remove.
6997         (compute_uninlined_call_time): Use sreal_frequency.
6998         (compute_inlined_call_time): Likewise.
6999         (ipa_inline): Do not initialize cgraph_freq_base_rec.
7000         * profile-count.c: Include sreal.h.
7001         (profile_count::to_sreal_scale): New.
7002         * profile-count.h: Forward declare sreal.
7003         (profile_count::to_sreal_scale): Declare.
7004
7005 2017-11-13  Nathan Sidwell  <nathan@acm.org>
7006
7007         * diagnostic.c (maybe_line_and_column): New.
7008         (diagnostic_get_location_text): Use it.
7009         (diagnostic_report_current_module): Likewise.
7010         (test_diagnostic_get_location_text): Add tests.
7011
7012 2017-11-13  Luis Machado  <luis.machado@linaro.org>
7013
7014         * doc/md.texi (Specifying processor pipeline description): Fix
7015         incorrect latency for the div instruction example.
7016
7017 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
7018
7019         PR tree-optimization/78821
7020         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
7021         that bit_not_p is the same.
7022         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
7023         (split_group): Count precisely bit_not_p bits in each statement.
7024         (invert_op): New function.
7025         (imm_store_chain_info::output_merged_store): Use invert_op to
7026         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
7027         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
7028
7029 2017-11-13  Martin Liska  <mliska@suse.cz>
7030
7031         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
7032         (struct source_info): Likewise.
7033         (add_branch_counts): Likewise.
7034         (add_line_counts): Likewise.
7035         (function_summary): Likewise.
7036         (output_intermediate_line): Likewise.
7037         (generate_results): Likewise.
7038
7039 2017-11-13  Martin Liska  <mliska@suse.cz>
7040
7041         * gcov.c (struct block_info): Remove typedef for block_t.
7042         (struct line_info): Likewise.
7043         (line_info::has_block): Likewise.
7044         (EXIT_BLOCK): Likewise.
7045         (unblock): Likewise.
7046         (circuit): Likewise.
7047         (get_cycles_count): Likewise.
7048         (process_file): Likewise.
7049         (read_graph_file): Likewise.
7050         (solve_flow_graph): Likewise.
7051         (find_exception_blocks): Likewise.
7052         (add_line_counts): Likewise.
7053         (accumulate_line_info): Likewise.
7054         (output_line_details): Likewise.
7055
7056 2017-11-13  Martin Liska  <mliska@suse.cz>
7057
7058         * gcov.c (struct arc_info): Remove typedef for arc_t.
7059         (struct line_info): Likewise.
7060         (add_branch_counts): Likewise.
7061         (output_branch_count): Likewise.
7062         (function_info::~function_info): Likewise.
7063         (circuit): Likewise.
7064         (output_intermediate_line): Likewise.
7065         (read_graph_file): Likewise.
7066         (solve_flow_graph): Likewise.
7067         (find_exception_blocks): Likewise.
7068         (add_line_counts): Likewise.
7069         (accumulate_line_info): Likewise.
7070         (output_line_details): Likewise.
7071         (output_function_details): Likewise.
7072
7073 2017-11-13  Martin Liska  <mliska@suse.cz>
7074
7075         * gcov.c (struct function_info): Remove typedef for function_t.
7076         (struct source_info): Likewise.
7077         (source_info::get_functions_at_location): Likewise.
7078         (solve_flow_graph): Likewise.
7079         (find_exception_blocks): Likewise.
7080         (add_line_counts): Likewise.
7081         (output_intermediate_file): Likewise.
7082         (process_file): Likewise.
7083         (generate_results): Likewise.
7084         (release_structures): Likewise.
7085         (read_graph_file): Likewise.
7086         (read_count_file): Likewise.
7087         (accumulate_line_counts): Likewise.
7088         (output_lines): Likewise.
7089
7090 2017-11-13  Martin Liska  <mliska@suse.cz>
7091
7092         * gcov.c (function_info::function_info): Remove num_counts
7093         and add vector<gcov_type>.
7094         (function_info::~function_info): Use the vector.
7095         (process_file): Likewise.
7096         (read_graph_file): Likewise.
7097         (read_count_file): Likewise.
7098         (solve_flow_graph): Likewise.
7099
7100 2017-11-13  Martin Liska  <mliska@suse.cz>
7101
7102         * gcov.c (function_info::is_artificial): New function.
7103         (process_file): Erase all artificial early.
7104         (generate_results): Skip as all artificial are already
7105         removed.
7106
7107 2017-11-13  Martin Liska  <mliska@suse.cz>
7108
7109         * gcov.c (read_graph_file): Store to global vector of functions.
7110         (read_count_file): Iterate the vector.
7111         (process_file): Likewise.
7112         (generate_results): Likewise.
7113         (release_structures): Likewise.
7114
7115 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
7116
7117         PR tree-optimization/82954
7118         * gimple-ssa-store-merging.c
7119         (imm_store_chain_info::coalesce_immediate_stores): If
7120         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
7121
7122 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
7123
7124         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
7125         Upddate call to ENDIAN_LANE_N.
7126         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
7127         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
7128         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
7129         and use aarch64_endian_lane_rtx.
7130         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
7131
7132 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7133
7134         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
7135
7136 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7137
7138         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
7139
7140 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7141
7142         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
7143         body.
7144         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7145         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7146         * defaults.h (ASM_OUTPUT_LABELREF): Same.
7147
7148 2017-11-11  Martin Sebor  <msebor@redhat.com>
7149
7150         PR c/81117
7151         * doc/extend.texi (attribute nonstring): Remove spurious argument.
7152
7153         PR bootstrap/82948
7154         * prefic.c (translate_name): Replace strncpy with memcpy to
7155         avoid -Wstringop-truncation.
7156
7157 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7158
7159         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
7160
7161 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7162
7163         * predict.c (maybe_hot_frequency_p): Do not use cfun.
7164
7165 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7166
7167         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
7168         merging.
7169
7170 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7171
7172         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
7173         enable generating XXBRH if the value is in a vector register.
7174         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
7175         value is in a vector register.
7176         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
7177         register to register bswap64's instead of doing the GPR sequence
7178         used on previous machines.
7179         (bswapdi2_xxbrd): New insn.
7180         (bswapdi2_reg): Disallow on ISA 3.0.
7181         (register to register bswap64 splitter): Do not split the insn on
7182         ISA 3.0 systems that use XXBRD.
7183
7184 2017-11-10  Martin Sebor  <msebor@redhat.com>
7185
7186         PR c/81117
7187         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
7188         with memcpy.
7189         (find_subframework_file): Same.
7190
7191 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7192
7193         * auto-profile.c (afdo_indirect_call): Drop frequency.
7194         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
7195         (cgraph_node::create_edge): Drop frequency argument.
7196         (cgraph_node::create_indirect_edge): Drop frequency argument.
7197         (cgraph_edge::make_speculative): Drop frequency arguments.
7198         (cgraph_edge::resolve_speculation): Do not update frequencies
7199         (cgraph_edge::dump_edge_flags): Do not dump frequency.
7200         (cgraph_node::dump): Check consistency in IPA mode.
7201         (cgraph_edge::maybe_hot_p): Use IPA counter.
7202         (cgraph_edge::verify_count_and_frequency): Rename to ...
7203         (cgraph_edge::verify_count): ... this one; drop frequency checking.
7204         (cgraph_node::verify_node): Update.
7205         * cgraph.h (struct cgraph_edge): Drop frequency.
7206         (cgraph_edge::frequency): New function.
7207         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
7208         frequencies.
7209         (cgraph_edge::rebuild_edges): Likewise.
7210         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
7211         (duplicate_thunk_for_node): Do not pass frequency.
7212         (cgraph_node::create_clone): Scale only counts.
7213         (cgraph_node::create_virtual_clone): Do not pass frequency.
7214         (cgraph_node::create_edge_including_clones): Do not pass frequency.
7215         (cgraph_node::create_version_clone): Do not pass frequency.
7216         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
7217         (cgraph_node::expand_thunk): Do not pass frequency.
7218         (cgraph_node::create_wrapper): Do not pass frequency.
7219         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
7220         frequency.
7221         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
7222         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
7223         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
7224         (gather_caller_stats): Use frequency function.
7225         (ipcp_cloning_candidate_p): Use frequency function.
7226         (ipcp_propagate_stage): Use frequency function.
7227         (get_info_about_necessary_edges): Use frequency function.
7228         (update_profiling_info): Update only IPA profile.
7229         (update_specialized_profile): Use frequency functoin.
7230         (perhaps_add_new_callers): Update only IPA profile.
7231         * ipa-devirt.c (ipa_devirt): Use IPA profile.
7232         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
7233         (dump_ipa_call_summary): Use frequency function.
7234         (estimate_edge_size_and_time): Use frequency function.
7235         (ipa_merge_fn_summary_after_inlining): Use frequency function.
7236         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
7237         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
7238         (update_noncloned_counts): ... ths one; scale counts only.
7239         (clone_inlined_nodes): Do not scale frequency.
7240         (inline_call): Do not pass frequency.
7241         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
7242         (compute_inlined_call_time): Use IPA profile.
7243         (want_inline_small_function_p): Use IPA profile.
7244         (want_inline_self_recursive_call_p): Use IPA profile.
7245         (edge_badness): Use IPA profile.
7246         (lookup_recursive_calls): Use IPA profile.
7247         (recursive_inlining): Do not pass frequency.
7248         (resolve_noninline_speculation): Do not update frequency.
7249         (inline_small_functions): Collect max of IPA profile.
7250         (dump_overall_stats): Dump IPA porfile.
7251         (dump_inline_stats): Dump IPA porfile.
7252         (ipa_inline): Collect IPA stats.
7253         * ipa-inline.h (clone_inlined_nodes): Update prototype.
7254         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
7255         (ipa_propagate_frequency): Use frequency function.
7256         (ipa_profile): Cleanup.
7257         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
7258         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
7259         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
7260         (input_node): Do not stream frequency.
7261         (input_edge): Do not stream frequency.
7262         (merge_profile_summaries): Scale only IPA profiles.
7263         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
7264         * predict.c (drop_profile): Do not recompute frequency.
7265         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
7266         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
7267         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
7268         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
7269         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
7270         * tree-inline.c (copy_bb): Do not scale frequency.
7271         (expand_call_inline): Do not scale frequency.
7272         (tree_function_versioning): Do not scale frequency.
7273         * ubsan.c (ubsan_create_edge): Do not pass frequency.
7274
7275 2017-11-10  Julia Koval  <julia.koval@intel.com>
7276
7277         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
7278         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
7279         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
7280         (_mm256_maskz_gf2p8affine_epi64_epi8)
7281         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
7282         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
7283         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
7284         (__builtin_ia32_vgf2p8affineqb_v32qi)
7285         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
7286         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
7287
7288 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
7289
7290         PR target/82641
7291         * config/arm/arm.c
7292         (arm_option_override): Refactor.
7293         (arm_option_reconfigure_globals): New.
7294         (arm_options_perform_arch_sanity_checks): New.
7295         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
7296         New prototype.
7297         (arm_options_perform_arch_sanity_checks): Likewise
7298
7299 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
7300
7301         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
7302         (power9-qpmul): New.
7303         * rs6000/rs6000.md ("type" attr): Add qmul.
7304         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
7305         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
7306         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
7307
7308 2017-11-10  Martin Sebor  <msebor@redhat.com>
7309
7310         PR c/81117
7311         * builtins.c (compute_objsize): Handle arrays that
7312         compute_builtin_object_size likes to fail for.  Make extern.
7313         * builtins.h (compute_objsize): Declare.
7314         (check_strncpy_sizes): New function.
7315         (expand_builtin_strncpy): Call check_strncpy_sizes.
7316         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
7317         -Wstringop-truncation.
7318         (gimple_fold_builtin_strncat): Same.
7319         * gimple.c (gimple_build_call_from_tree): Set call location.
7320         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
7321         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
7322         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
7323         (handle_builtin_strlen): Use strlen_to_stridx.
7324         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
7325         stpncpy.
7326         Use strlen_to_stridx.
7327         (pass_strlen::execute): Release strlen_to_stridx.
7328         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
7329         (-Wstringop-truncation): Document new option.
7330
7331 2017-11-10  Martin Liska  <mliska@suse.cz>
7332
7333         PR gcov-profile/82702
7334         * gcov.c (main): Handle intermediate files in a different
7335         way.
7336         (get_gcov_intermediate_filename): New function.
7337         (output_gcov_file): Remove support of intermediate files.
7338         (generate_results): Allocate intermediate file.
7339         (release_structures): Clean-up properly fn_end.
7340         (output_intermediate_file): Start iterating with line 1.
7341
7342 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7343
7344         PR tree-optimization/82929
7345         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7346         ops_swapped_p non-static data member.
7347         (store_immediate_info::store_immediate_info): Clear it.
7348         (imm_store_chain_info::coalesce_immediate_stores): If swapping
7349         ops set ops_swapped_p.
7350         (count_multiple_uses): Handle ops_swapped_p.
7351
7352 2017-11-10  Martin Liska  <mliska@suse.cz>
7353
7354         * coverage.c (coverage_init): Stream information about
7355         support of has_unexecuted_blocks.
7356         * doc/gcov.texi: Document that.
7357         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
7358         * gcov.c (read_graph_file): Likewise.
7359         (output_line_beginning): Fix a small issue with
7360         color output.
7361
7362 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
7363
7364         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
7365         reference of trivial component.
7366
7367 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7368
7369         PR bootstrap/82916
7370         * gimple-ssa-store-merging.c
7371         (pass_store_merging::terminate_all_aliasing_chains): For
7372         gimple_store_p stmts also call refs_output_dependent_p.
7373
7374         PR rtl-optimization/82913
7375         * compare-elim.c (try_merge_compare): Punt if def_insn is not
7376         single set.
7377
7378 2017-11-09  Jeff Law  <law@redhat.com>
7379
7380         * vr-values.h: New file with vr_values class.
7381         * tree-vrp.c: Include vr-values.h
7382         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
7383         data objects into the vr_values class.
7384         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
7385         (get_value_range): Make it a member function within vr_values class.
7386         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
7387         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
7388         (op_with_constant_singleton_value_range): Likewise.
7389         (extract_range_for_var_from_comparison_expr): Likewise.
7390         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
7391         (extract_range_from_binary_expr): Likewise.
7392         (extract_range_from_unary_expr): Likewise.
7393         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
7394         (check_for_binary_op_overflow, extract_range_basic): Likewise.
7395         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
7396         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
7397         (compare_name_with_value, compare_names): Likewise.
7398         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
7399         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
7400         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
7401         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
7402         (extract_range_from_phi_node): Likewise.
7403         (simplify_truth_ops_using_ranges): Likewise.
7404         (simplify_div_or_mod_using_ranges): Likewise.
7405         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
7406         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
7407         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
7408         (simplify_float_conversion_using_ranges): Likewise.
7409         (simplify_internal_call_using_ranges): Likewise.
7410         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
7411         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
7412         poitner via x_vr_values for calls into gimple folder.
7413         (vrp_initialize_lattice): Make this the vr_values ctor.
7414         (vrp_free_lattice): Make this the vr_values dtor.
7415         (set_vr_value): New function.
7416         (class vrp_prop): Add vr_values data member.  Add various member
7417         functions as well as member functions that delegate to vr_values.
7418         (check_array_ref): Make a member function within vrp_prop class.
7419         (search_for_addr_array, vrp_initialize): Likewise.
7420         (vrp_finalize): Likewise.  Revamp to avoid direct access to
7421         vr_value, values_propagated, etc.
7422         (check_array_bounds): Extract vrp_prop class instance pointer from
7423         walk info structure.  Use it to call member functions.
7424         (check_all_array_refs): Make a member function within vrp_prop class.
7425         Smuggle class instance pointer via walk info structure.
7426         (x_vr_values): New local static.
7427         (vrp_valueize): Use x_vr_values to get class instance.
7428         (vr_valueize_1): Likewise.
7429         (class vrp_folder): Add vr_values data member.  Add various member
7430         functions as well as member functions that delegate to vr_values.
7431         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
7432         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
7433         class instance from vr_values.  Use it to call member functions.
7434         (vrp_dom_walker): Add vr_values data member.
7435         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
7436         instance via x_vr_values.
7437         (identify_jump_threads): Accept vr_values as argument.  Store
7438         it into the walker structure.
7439         (evrp_dom_walker): Add vr_values class data member.  Add various
7440         delegators.
7441         (evrp_dom_walker::try_find_new_range): Use vr_values data
7442         member to access the memory allocator.
7443         (evrp_dom_walker::before_dom_children): Store vr_values class
7444         instance into the vrp_folder class.
7445         (evrp_dom_walker::push_value_range): Rework to avoid direct
7446         access to num_vr_values and vr_value.
7447         (evrp_dom_walker::pop_value_range): Likewise.
7448         (execute_early_vrp): Remove call to vrp_initialize_lattice.
7449         Use vr_values to get to dump_all_value_ranges member function.
7450         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
7451         and simplify_cond_using_ranges_2 via vrp_prop class instance.
7452         Pass vr_values class instance down to identify_jump_threads.
7453         Remove call to vrp_free_lattice.
7454         (debug_all_value_ranges): Remove.
7455
7456         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
7457         (vrp_folder): Likewise.
7458
7459         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
7460         Get it from the existing bitmap instead.
7461         (vrp_intersect_ranges_1): Likewise.
7462
7463 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7464
7465         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7466         bit_not_p field.
7467         (store_immediate_info::store_immediate_info): Add bitnotp argument,
7468         set bit_not_p to it.
7469         (imm_store_chain_info::coalesce_immediate_stores): Break group
7470         if bit_not_p is different.
7471         (count_multiple_uses, split_group,
7472         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
7473         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
7474         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
7475         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
7476         to store_immediate_info ctor.
7477
7478 2017-11-09  Jim Wilson  <jimw@sifive.com>
7479
7480         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
7481         (scan_prog_file): Likewise.
7482
7483 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7484
7485         * bb-reorder.c (max_entry_frequency): Remove.
7486         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
7487         connect_traces, push_to_next_round_p): Remove prototypes.
7488         (find_traces_1_round): Use counts only.
7489         (push_to_next_round_p): Likewise.
7490         (find_traces): Likewise.
7491         (rotate_loop): Likewise.
7492         (find_traces_1_round): Likewise.
7493         (connect_traces): Likewise.
7494         (edge_order): Likewise.
7495
7496 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7497
7498         * config/arm/arm.c (output_return_instruction): Add comments to
7499         indicate requirement for cmse_nonsecure_entry return to account
7500         for the size of clearing instruction output here.
7501         (thumb_exit): Likewise.
7502         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
7503         return in hardfloat mode.
7504
7505 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
7506
7507         * config/rs6000/rs6000.c (machine_function): Add a bool,
7508         "toc_is_wrapped_separately".
7509         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
7510         if it wasn't explicitly set or unset, we are optimizing for speed, and
7511         doing separate shrink-wrapping.
7512         (rs6000_get_separate_components): Enable the TOC component if
7513         saving the TOC register in the prologue.
7514         (rs6000_components_for_bb): Handle the TOC component.
7515         (rs6000_emit_prologue_components): Store the TOC register where needed.
7516         (rs6000_set_handled_components): Mark TOC as handled, if handled.
7517         (rs6000_emit_prologue): Don't save the TOC if that is already done.
7518
7519 2017-11-09  Martin Jambor  <mjambor@suse.cz>
7520
7521         * ipa-param-manipulation.c: New file.
7522         * ipa-param-manipulation.h: Likewise.
7523         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
7524         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
7525         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
7526         (ipa_parm_adjustment): Likewise.
7527         (ipa_parm_adjustment_vec): Likewise.
7528         (ipa_get_vector_of_formal_parms): Moved declaration to
7529         ipa-param-manipulation.h.
7530         (ipa_get_vector_of_formal_parm_types): Likewise.
7531         (ipa_modify_formal_parameters): Likewise.
7532         (ipa_modify_call_arguments): Likewise.
7533         (ipa_combine_adjustments): Likewise.
7534         (ipa_dump_param_adjustments): Likewise.
7535         (ipa_modify_expr): Likewise.
7536         (ipa_get_adjustment_candidate): Likewise.
7537         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
7538         ipa-param-manipulation.c.
7539         (ipa_get_vector_of_formal_parm_types): Likewise.
7540         (ipa_modify_formal_parameters): Likewise.
7541         (ipa_modify_call_arguments): Likewise.
7542         (ipa_modify_expr): Likewise.
7543         (get_ssa_base_param): Likewise.
7544         (ipa_get_adjustment_candidate): Likewise.
7545         (index_in_adjustments_multiple_times_p): Likewise.
7546         (ipa_combine_adjustments): Likewise.
7547         (ipa_dump_param_adjustments): Likewise.
7548         * tree-sra.c: Also include ipa-param-manipulation.h
7549         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
7550         ipa-param.h.
7551
7552 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7553             Alan Hayward  <alan.hayward@arm.com>
7554             David Sherwood  <david.sherwood@arm.com>
7555
7556         * doc/sourcebuild.texi (vect_masked_store): Document.
7557
7558 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7559             Alan Hayward  <alan.hayward@arm.com>
7560             David Sherwood  <david.sherwood@arm.com>
7561
7562         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
7563
7564 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7565             Alan Hayward  <alan.hayward@arm.com>
7566             David Sherwood  <david.sherwood@arm.com>
7567
7568         * doc/sourcebuild.texi (vect_variable_length): Document.
7569
7570 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7571             Alan Hayward  <alan.hayward@arm.com>
7572             David Sherwood  <david.sherwood@arm.com>
7573
7574         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
7575
7576 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7577             Alan Hayward  <alan.hayward@arm.com>
7578             David Sherwood  <david.sherwood@arm.com>
7579
7580         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
7581
7582 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7583             Alan Hayward  <alan.hayward@arm.com>
7584             David Sherwood  <david.sherwood@arm.com>
7585
7586         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
7587         previously undocumented selectors.
7588         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
7589
7590 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7591
7592         * doc/rtl.texi (const_vector): Say that elements can be
7593         const_wide_ints too.
7594         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
7595         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
7596         (gen_vec_duplicate): Use it instead of CONSTANT_P.
7597         * optabs.c (expand_vector_broadcast): Likewise.
7598
7599 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7600             Alan Hayward  <alan.hayward@arm.com>
7601             David Sherwood  <david.sherwood@arm.com>
7602
7603         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
7604         scaled index even if the unscaled address was invalid.
7605         Don't increase the complexity of using a scale in that case.
7606
7607 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7608             Alan Hayward  <alan.hayward@arm.com>
7609             David Sherwood  <david.sherwood@arm.com>
7610
7611         * doc/rtl.texi: Rewrite the subreg rules so that they partition
7612         the inner register into REGMODE_NATURAL_SIZE bytes rather than
7613         UNITS_PER_WORD bytes.
7614         * emit-rtl.c (validate_subreg): Divide subregs into blocks
7615         based on REGMODE_NATURAL_SIZE of the inner mode.
7616         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
7617         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
7618         * expmed.c (lowpart_bit_field_p): Divide the value up into
7619         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
7620         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
7621         whether something is likely to occupy more than one register.
7622
7623 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7624
7625         PR ipa/82879
7626         * ipa-inline-transform.c (update_noncloned_frequencies): Use
7627         profile_count::adjust_for_ipa_scaling.
7628         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
7629         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
7630         function.
7631         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
7632
7633 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7634
7635         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
7636         (split_group): Add total_orig and total_new arguments, estimate the
7637         number of statements related to the store group without store merging
7638         and with store merging.
7639         (imm_store_chain_info::output_merged_store): Adjust split_group
7640         callers, punt if estimated number of statements with store merging
7641         is not smaller than estimated number of statements without it.
7642         Formatting fix.
7643         (handled_load): Remove has_single_use checks.
7644         (pass_store_merging::process_store): Likewise.
7645
7646 2017-11-09  Richard Biener  <rguenther@suse.de>
7647
7648         PR tree-optimization/82902
7649         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
7650
7651 2017-11-09  Martin Liska  <mliska@suse.cz>
7652
7653         PR target/82863
7654         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
7655         uninitialized.
7656
7657 2017-11-09  Martin Liska  <mliska@suse.cz>
7658
7659         PR tree-optimization/82669
7660         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
7661
7662 2017-11-09  Martin Liska  <mliska@suse.cz>
7663
7664         PR gcov-profile/48463
7665         * coverage.c (coverage_begin_function): Output also end locus
7666         of a function and information whether the function is
7667         artificial.
7668         * gcov-dump.c (tag_function): Parse and print the information.
7669         * gcov.c (INCLUDE_MAP): Add include.
7670         (INCLUDE_SET): Likewise.
7671         (struct line_info): Move earlier in the source file because
7672         of vector<line_info> in function_info structure.
7673         (line_info::line_info): Likewise.
7674         (line_info::has_block): Likewise.
7675         (struct source_info): Add new member index.
7676         (source_info::get_functions_at_location): New function.
7677         (function_info::group_line_p): New function.
7678         (output_intermediate_line): New function.
7679         (output_intermediate_file): Use the mentioned function.
7680         (struct function_start): New.
7681         (struct function_start_pair_hash): Likewise.
7682         (process_file): Add code that identifies group functions.
7683         Assign lines either to global or function scope.
7684         (generate_results): Skip artificial functions.
7685         (find_source): Assign index for each source file.
7686         (read_graph_file): Read new flag artificial and end_line.
7687         (add_line_counts): Assign it either to global of function scope.
7688         (accumulate_line_counts): Isolate core of the function to
7689         accumulate_line_info and call it for both function and global
7690         scope lines.
7691         (accumulate_line_info): New function.
7692         (output_line_beginning): Fix GNU coding style.
7693         (print_source_line): New function.
7694         (output_line_details): Likewise.
7695         (output_function_details): Likewise.
7696         (output_lines): Iterate both source (global) scope and function
7697         scope.
7698         (struct function_line_start_cmp): New class.
7699         * doc/gcov.texi: Reflect changes in documentation.
7700
7701 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7702
7703         PR debug/82837
7704         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
7705         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
7706         and similarly for not instead of neg.
7707
7708 2017-11-08  Andi Kleen  <ak@linux.intel.com>
7709
7710         * config/i386/i386.opt: Add -mforce-indirect-call.
7711         * config/i386/predicates.md: Check for flag_force_indirect_call.
7712         * doc/invoke.texi: Document -mforce-indirect-call
7713
7714 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
7715
7716         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
7717         New extern.
7718         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
7719         config/riscv/riscv.c (predict.h): New include.
7720         (riscv_slow_unaligned_access_p): No longer static.
7721         (riscv_block_move_straight): Add require.
7722         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
7723
7724 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7725
7726         PR target/82855
7727         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
7728         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
7729         nonimmediate_operand predicate for operand 1 instead of
7730         register_operand.
7731
7732 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7733
7734         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
7735         New pattern.
7736         * config/aarch64/constraints.md (Uml): New constraint.
7737         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
7738         predicate.
7739
7740 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7741
7742         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
7743         of two vec_duplicates into a vec_concat.
7744
7745 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7746
7747         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7748         Simplify vec_merge of vec_duplicate and vec_concat.
7749         * config/aarch64/constraints.md (Utq): New constraint.
7750         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
7751         define_insn.
7752
7753 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7754
7755         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7756         Simplify vec_merge of vec_duplicate and const_vector.
7757         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
7758         New predicate.
7759         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
7760         mode iterator.  Update predicate on operand 1 to
7761         handle non-const_vec constants.  Delete constraints.
7762         (*aarch64_combinez_be<mode>): Likewise for operand 2.
7763
7764 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7765
7766         PR tree-optimization/78821
7767         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
7768         data member.
7769         (store_operand_info::store_operand_info): Initialize it to false.
7770         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
7771         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
7772         store in the group, and if chain_info is non-NULL, to ignore altogether
7773         that chain.
7774         (compatible_load_p): Fail if bit_not_p does not match.
7775         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
7776         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
7777         (pass_store_merging::process_store): Adjust
7778         terminate_all_aliasing_chains calls to pass NULL in all current spots,
7779         call terminate_all_aliasing_chains newly when adding a store into
7780         a chain with non-NULL chain_info.
7781
7782 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7783
7784         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
7785
7786 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7787
7788         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
7789         Remove.
7790         (aarch64_layout_frame): Initialise emit_frame_chain.
7791         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
7792         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
7793
7794 2017-11-08  Martin Liska  <mliska@suse.cz>
7795
7796         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
7797         of gimple_call_internal_p.
7798
7799 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7800
7801         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
7802
7803 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7804
7805         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
7806         "do {} while (0)".
7807
7808 2017-11-08  Martin Liska  <mliska@suse.cz>
7809
7810         PR sanitizer/82792
7811         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
7812
7813 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7814
7815         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
7816
7817 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR target/82855
7820         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
7821         (*cmp<mode>_ccz_1): New insn with $k alternative.
7822
7823         PR target/82855
7824         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
7825         RTX_COMM_COMPARE as commutative as well.
7826         (ix86_binary_operator_ok): Formatting fix.
7827         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
7828         *<code><mode>3<mask_name><round_saeonly_name>,
7829         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
7830         *<s>mul<mode>3_highpart<mask_name>,
7831         *vec_widen_umult_even_v16si<mask_name>,
7832         *vec_widen_umult_even_v8si<mask_name>,
7833         *vec_widen_umult_even_v4si<mask_name>,
7834         *vec_widen_smult_even_v16si<mask_name>,
7835         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
7836         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
7837         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
7838         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
7839         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
7840         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
7841         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
7842         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
7843         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
7844         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
7845         ix86_binary_operator_ok.  Formatting fixes.
7846         (*<plusminus_insn><mode>3<mask_name><round_name>,
7847         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
7848         fixes.
7849
7850 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
7851
7852         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
7853         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
7854         eq and ne if TARGET_ISEL.
7855         (cmp): New code_iterator.
7856         (UNS, UNSU_, UNSIK): New code_attrs.
7857         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
7858         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
7859         to...
7860         ("eq<mode>3"): ... this.
7861         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
7862         to...
7863         ("ne<mode>3"): ... this.
7864
7865 2017-11-07  Julia Koval  <julia.koval@intel.com>
7866
7867         PR target/82812
7868         * common/config/i386/i386-common.c
7869         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
7870         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
7871         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
7872         * config/i386/i386.opt: Ditto.
7873         * config/i386/i386.c (ix86_target_string): Ditto.
7874         (ix86_option_override_internal): Ditto.
7875         (ix86_init_mpx_builtins): Move MPX to args2.
7876         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
7877         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
7878         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
7879         __builtin_ia32_vgf2p8affineinvqb_v32qi,
7880         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
7881         __builtin_ia32_vgf2p8affineinvqb_v16qi,
7882         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
7883
7884 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
7885
7886         PR target/80425
7887         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
7888         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
7889         (zero-extendsidi peephole2): Remove peephole.
7890
7891 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7892
7893         PR c/53037
7894         * stor-layout.c: Include attribs.h.
7895         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
7896         explicit lookup of "aligned" attribute.
7897
7898 2017-11-07  Andrew Waterman  <andrew@sifive.com>
7899
7900         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
7901         (riscv_expand_block_move): Likewise.
7902         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
7903         implementation.
7904         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
7905         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
7906         * config/riscv/riscv.c (riscv_block_move_straight): New function.
7907         (riscv_adjust_block_mem): Likewise.
7908         (riscv_block_move_loop): Likewise.
7909         (riscv_expand_block_move): Likewise.
7910         * config/riscv/riscv.md (movmemsi): New pattern.
7911
7912 2017-11-07  Michael Clark  <michaeljclark@mac.com>
7913
7914         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
7915         (MUSL_DYNAMIC_LINKER): Likewise.
7916
7917 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
7918
7919         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
7920         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
7921         nonmmory_operand.
7922
7923 2017-11-07  Richard Biener  <rguenther@suse.de>
7924
7925         * match.pd: Fix build.
7926
7927 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
7928             Jackson Woodruff  <jackson.woodruff@arm.com>
7929
7930         PR tree-optimization/71026
7931         * match.pd: Canonicalize negate in division.
7932
7933 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
7934
7935         PR middle-end/80131
7936         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
7937
7938 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7939
7940         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
7941         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
7942
7943 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
7944
7945         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
7946         non-scalar integral types.
7947         * match.pd (negate_expr_p): Handle MINUS_EXPR.
7948         (-(A-B), -(~A)): New transformations.
7949
7950 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7951
7952         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7953         semicolon after "do {} while (0)".
7954         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7955         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7956         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7957         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7958         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7959
7960 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7961
7962         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
7963         after "do {} while (0)".
7964         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7965         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7966         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7967         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7968         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
7969
7970 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7971
7972         PR other/82784
7973         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
7974         "while {} do (0)".
7975         (arm_rtx_costs_internal): Add missing semicolon after
7976         HANDLE_NARROW_SHIFT_ARITH call.
7977
7978 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
7979
7980         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7981         disable isel if it was not set explicitly.
7982
7983 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
7984
7985         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
7986         (add_type_attribute) likewise.
7987
7988 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
7989
7990         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
7991         of struct ix86_frame.
7992         (ix86_initial_elimination_offset): Likewise.
7993         (ix86_expand_split_stack_prologue): Likewise.
7994
7995 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
7996
7997         * tree-vrp.h (enum value_range_type): Update stale comment.
7998
7999 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8000             Alan Hayward  <alan.hayward@arm.com>
8001             David Sherwood  <david.sherwood@arm.com>
8002
8003         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
8004         (aarch64_expand_vec_perm_const): Take the number of units too.
8005         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
8006         (aarch64_expand_vec_perm_const): Likewise.
8007         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
8008         (vec_perm<mode>): Update accordingly.
8009
8010 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8011             Alan Hayward  <alan.hayward@arm.com>
8012             David Sherwood  <david.sherwood@arm.com>
8013
8014         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
8015         Take the number of units too.
8016         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
8017         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
8018         but check for a vector mode before rather than after the call.
8019         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
8020         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
8021         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
8022         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
8023         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
8024         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
8025         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
8026         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
8027         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
8028         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
8029         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
8030         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
8031         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
8032         (aarch64_sqdmull2_n<mode>): Update accordingly.
8033
8034 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8035             Alan Hayward  <alan.hayward@arm.com>
8036             David Sherwood  <david.sherwood@arm.com>
8037
8038         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
8039         the number of units too.
8040         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
8041         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
8042         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
8043         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
8044         (vec_store_lanesxi<mode>): Update accordingly.
8045
8046 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8047             Alan Hayward  <alan.hayward@arm.com>
8048             David Sherwood  <david.sherwood@arm.com>
8049
8050         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
8051         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
8052         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
8053         of units rather than the mode.
8054         * config/aarch64/iterators.md (nunits): New mode attribute.
8055         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
8056         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
8057         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
8058         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
8059         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
8060         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
8061         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
8062         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
8063         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
8064         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
8065         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
8066         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
8067         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
8068         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
8069         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
8070         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
8071         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
8072         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
8073         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
8074         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
8075         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8076         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
8077         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
8078         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8079         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
8080         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
8081         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8082         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
8083         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
8084         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
8085         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
8086         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
8087         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
8088         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
8089         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
8090         (aarch64_simd_vec_setv2di): Likewise.
8091
8092 2017-11-06  Carl Love  <cel@us.ibm.com>
8093
8094         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
8095         definitions.
8096         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
8097         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
8098         to power 8.
8099         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
8100         extern declaration.
8101         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
8102         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
8103         Add power 8 macro expansions.
8104         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
8105         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
8106         power 8 instructions.  (VSX_XXBR): Add iterator.
8107
8108 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
8109
8110         * config/arm/arm.md (predicable_short_it): Change default to "no",
8111         improve documentation, remove uses that are identical to the default.
8112         (enabled_for_depr_it): Rename to enabled_for_short_it.
8113         * gcc/config/arm/arm-fixed.md (predicable_short_it):
8114         Remove default uses.
8115         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
8116         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
8117         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
8118         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
8119
8120 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8121
8122         PR target/82748
8123         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
8124         float128 helper macros, which are no longer used after deleting
8125         the old 'q' built-in functions, and moving the round to odd
8126         built-in functions to being special built-in functions.
8127         (BU_FLOAT128_2): Likewise.
8128         (BU_FLOAT128_1_HW): Likewise.
8129         (BU_FLOAT128_2_HW): Likewise.
8130         (BU_FLOAT128_3_HW): Likewise.
8131         (FABSQ): Delete old 'q' built-in functions.
8132         (COPYSIGNQ): Likewise.
8133         (SQRTF128_ODD): Move round to odd built-in functions to be
8134         special built-in functions, so that we can handle
8135         -mabi=ieeelongdouble.
8136         (TRUNCF128_ODD): Likewise.
8137         (ADDF128_ODD): Likewise.
8138         (SUBF128_ODD): Likewise.
8139         (MULF128_ODD): Likewise.
8140         (DIVF128_ODD): Likewise.
8141         (FMAF128_ODD): Likewise.
8142         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
8143         built-in names to 'f128'.
8144         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
8145         old 'q' built-in functions, as the machine independent code for
8146         'f128' built-in functions handles this.
8147         (rs6000_expand_builtin): Add expansion for float128 round to odd
8148         functions, keying off on -mabi=ieeelongdouble of whether to use
8149         the KFmode or TFmode variant.
8150         (rs6000_init_builtins): Initialize the _Float128 round to odd
8151         built-in functions.
8152         * doc/extend.texi (PowerPC Built-in Functions): Document the old
8153         _Float128 'q' built-in functions are now mapped into the new
8154         'f128' built-in functions.
8155
8156 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
8157
8158         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
8159         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
8160
8161 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
8162
8163         PR jit/82826
8164         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
8165         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
8166         * toplev.c: Include "ipa-fnsummary.h".
8167         (toplev::finalize): Call ipa_fnsummary_c_finalize.
8168
8169 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
8170
8171         PR tree-optimization/82838
8172         * gimple-ssa-store-merging.c
8173         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
8174         on a separate gimple_seq which is then appended to seq.
8175
8176 2017-11-06  Jeff Law  <law@redhat.com>
8177
8178         PR target/82788
8179         * config/i386/i386.c (PROBE_INTERVAL): Remove.
8180         (get_probe_interval): New functions.
8181         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
8182         (ix86_adjust_stack_and_probe): Likewise.
8183         (output_adjust_stack_and_probe): Likewise.
8184         (ix86_emit_probe_stack_range): Likewise.
8185         (ix86_expand_prologue): Likewise.
8186
8187 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8188
8189         PR tree-optimization/82816
8190         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
8191         if the modes of the two types are the same.
8192         (convert_plusminus_to_widen): Likewise.
8193
8194 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8195
8196         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
8197         p9_vadu<mode>3.
8198         (usadv16qi): New define_expand.
8199         (usadv8hi): New define_expand.
8200
8201 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
8202
8203         PR bootstrap/82832
8204         * ipa-inline-transform.c (update_noncloned_frequencies): Always
8205         scale.
8206         (inline_transform): Likewise.
8207         * predict.c (counts_to_freqs): Remove useless conditional.
8208         * profile-count.h (profile_count::apply_scale): Move sanity check.
8209         * tree-inline.c (copy_bb): Always scale.
8210         (copy_cfg_body): Likewise.
8211
8212 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
8213
8214         PR target/67591
8215         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
8216         attribute.
8217         (*cmp_ite0): Add enabled_for_depr_it attribute.
8218         (*cmp_ite1): Likewise.
8219
8220 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
8221
8222         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
8223         TYPE_MFCRF.
8224
8225 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8226
8227         * tree-vrp.c (vrp_int_const_binop): Return true on success and
8228         return the value by pointer.
8229         (extract_range_from_multiplicative_op_1): Update accordingly.
8230         Return as soon as an operation fails.
8231
8232 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8233
8234         PR other/82784
8235         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
8236         (DEF_SANITIZER_BUILTIN): ... here.
8237         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
8238         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
8239
8240 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8241
8242         PR other/82784
8243         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
8244         macro body.
8245         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
8246         ASM_OUTPUT_BEFORE_CASE_LABEL call.
8247         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
8248         after macro body.
8249         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8250         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8251         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8252
8253 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8254
8255         PR other/82784
8256         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
8257         "do {} while (0)".
8258
8259 2017-11-04  Michael Clark  <michaeljclark@mac.com>
8260
8261         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
8262         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
8263         (adddi3): Likewise.
8264         (*addsi3_extended): Likewise.
8265         (*addsi3_extended2): Likewise.
8266         (<optab>si3): Likewise.
8267         (<optab>di3): Likewise.
8268         (<optab><mode>3): Likewise.
8269         (<*optabe>si3_internal): Likewise.
8270         (zero_extendqi<SUPERQI:mode>2): Likewise.
8271         (*add<mode>hi3): Likewise.
8272         (*xor<mode>hi3): Likewise.
8273         (<optab>di3): Likewise.
8274         (*<optab>si3_extend): Likewise.
8275         (*sge<u>_<X:mode><GPR:mode>): Likewise.
8276         (*slt<u>_<X:mode><GPR:mode>): Likewise.
8277         (*sle<u>_<X:mode><GPR:mode>): Likewise.
8278
8279 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8280
8281         * config/riscv/riscv.c (riscv_option_override): Conditionally set
8282         TARGET_STRICT_ALIGN based upon -mtune argument.
8283
8284 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8285
8286         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
8287
8288 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
8289
8290         * config/i386/i386.c (choose_basereg): Use optional scratch
8291         register and add assertion.
8292         (x86_emit_outlined_ms2sysv_save): Use scratch register when
8293         needed, and don't allocate stack.
8294         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
8295         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
8296         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
8297
8298 2017-11-03  Jeff Law  <law@redhat.com>
8299
8300         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
8301         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
8302         to probe at the start of a noreturn function.
8303
8304 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
8305
8306         PR tree-optimization/78821
8307         * gimple-ssa-store-merging.c: Update the file comment.
8308         (MAX_STORE_ALIAS_CHECKS): Define.
8309         (struct store_operand_info): New type.
8310         (store_operand_info::store_operand_info): New constructor.
8311         (struct store_immediate_info): Add rhs_code and ops data members.
8312         (store_immediate_info::store_immediate_info): Add rhscode, op0r
8313         and op1r arguments to the ctor, initialize corresponding data members.
8314         (struct merged_store_group): Add load_align_base and load_align
8315         data members.
8316         (merged_store_group::merged_store_group): Initialize them.
8317         (merged_store_group::do_merge): Update them.
8318         (merged_store_group::apply_stores): Pick the constant for
8319         encode_tree_to_bitpos from one of the two operands, or skip
8320         encode_tree_to_bitpos if neither operand is a constant.
8321         (class pass_store_merging): Add process_store method decl.  Remove
8322         bool argument from terminate_all_aliasing_chains method decl.
8323         (pass_store_merging::terminate_all_aliasing_chains): Remove
8324         var_offset_p argument and corresponding handling.
8325         (stmts_may_clobber_ref_p): New function.
8326         (compatible_load_p): New function.
8327         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
8328         if there is overlap and rhs_code is not INTEGER_CST.  For
8329         non-overlapping stores terminate group if rhs is not mergeable.
8330         (get_alias_type_for_stmts): Change first argument from
8331         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
8332         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
8333         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
8334         alias type.
8335         (get_location_for_stmts): Change first argument from
8336         auto_vec<gimple *> & to vec<gimple *> &.
8337         (struct split_store): Remove orig_stmts data member, add orig_stores.
8338         (split_store::split_store): Create orig_stores rather than orig_stmts.
8339         (find_constituent_stmts): Renamed to ...
8340         (find_constituent_stores): ... this.  Change second argument from
8341         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
8342         to info structures rather than the statements.
8343         (split_group): Rename ALLOW_UNALIGNED argument to
8344         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
8345         it.  Adjust find_constituent_stores caller.
8346         (imm_store_chain_info::output_merged_store): Handle rhs_code other
8347         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
8348         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
8349         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
8350         (mem_valid_for_store_merging): New function.
8351         (handled_load): New function.
8352         (pass_store_merging::process_store): New method.
8353         (pass_store_merging::execute): Use process_store method.  Adjust
8354         terminate_all_aliasing_chains caller.
8355
8356 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8357
8358         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
8359         Return true for more constants, symbols and label references.
8360         (aarch64_valid_floating_const): Remove unused function.
8361
8362 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8363
8364         PR target/82786
8365         * config/aarch64/aarch64.c (aarch64_layout_frame):
8366         Undo forcing of LR at bottom of frame.
8367
8368 2017-11-03  Jeff Law  <law@redhat.com>
8369
8370         PR target/82823
8371         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
8372         for int_registers_saved.
8373
8374         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
8375         extracted from tree-ssa-dom.c.
8376         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
8377         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
8378         (record_equivalences_from_incoming_edge): Add additional argument
8379         to single_pred_edge_ignoring_loop_edges call.
8380         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
8381         (uncprop_dom_walker::before_dom_children): Add additional argument
8382         to single_pred_edge_ignoring_loop_edges call.
8383         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
8384         single_pred_edge_ignoring_loop_edges rather than open coding.
8385         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
8386
8387 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
8388
8389         * match.pd (-(-A)): Rewrite.
8390
8391 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8392
8393         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
8394         (rs6000_emit_int_cmove): New declaration.
8395         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
8396         (rs6000_emit_sISEL): Delete.
8397         (rs6000_emit_int_cmove): Make non-static.
8398         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
8399         instead of rs6000_emit_sISEL.
8400
8401 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
8402
8403         * asan.c (create_cond_insert_point): Maintain profile.
8404         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
8405         merged.
8406         * basic-block.h (struct basic_block_def): Remove frequency.
8407         (EDGE_FREQUENCY): Use to_frequency
8408         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
8409         heuristics.
8410         (find_traces): Update to use to_frequency.
8411         (find_traces_1_round): Likewise; use only IPA counts.
8412         (bb_to_key): Likewise.
8413         (connect_traces): Use IPA counts only.
8414         (copy_bb_p): Update to use to_frequency.
8415         (fix_up_crossing_landing_pad): Likewise.
8416         (sanitize_hot_paths): Likewise.
8417         * bt-load.c (basic_block_freq): Likewise.
8418         * cfg.c (init_flow): Set count_max to uninitialized.
8419         (check_bb_profile): Remove frequencies; check counts.
8420         (dump_bb_info): Do not dump frequencies.
8421         (update_bb_profile_for_threading): Update counts only.
8422         (scale_bbs_frequencies_int): Likewise.
8423         (MAX_SAFE_MULTIPLIER): Remove.
8424         (scale_bbs_frequencies_gcov_type): Update counts only.
8425         (scale_bbs_frequencies_profile_count): Update counts only.
8426         (scale_bbs_frequencies): Update counts only.
8427         * cfg.h (struct control_flow_graph): Add count-max.
8428         (update_bb_profile_for_threading): Update prototype.
8429         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
8430         (find_many_sub_basic_blocks): Likewise.
8431         * cfgcleanup.c (try_forward_edges): Likewise.
8432         (try_crossjump_to_edge): Likewise.
8433         * cfgexpand.c (expand_gimple_cond): Likewise.
8434         (expand_gimple_tailcall): Likewise.
8435         (construct_init_block): Likewise.
8436         (construct_exit_block): Likewise.
8437         * cfghooks.c (verify_flow_info): Check consistency of counts.
8438         (dump_bb_for_graph): Do not dump frequencies.
8439         (split_block_1): Do not update frequencies.
8440         (split_edge): Do not update frequencies.
8441         (make_forwarder_block): Do not update frequencies.
8442         (duplicate_block): Do not update frequencies.
8443         (account_profile_record): Do not update frequencies.
8444         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
8445         for global heuristics.
8446         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
8447         (expected_loop_iterations_unbounded): Use counts only.
8448         * cfgloopmanip.c (scale_loop_profile): Simplify.
8449         (create_empty_loop_on_edge): Simplify
8450         (loopify): Simplify
8451         (duplicate_loop_to_header_edge): Simplify
8452         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
8453         (update_br_prob_note): Take care of removing note when profile
8454         becomes undefined.
8455         (relink_block_chain): Do not dump frequency.
8456         (rtl_account_profile_record): Use to_frequency.
8457         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
8458         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
8459         (cgraph_update_edges_for_call_stmt_node): Likewise.
8460         (cgraph_edge::verify_count_and_frequency): Update.
8461         (cgraph_node::verify_node): Temporarily disable frequency verification.
8462         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8463         to_cgraph_frequency.
8464         (cgraph_edge::rebuild_edges): Convert to ipa counts.
8465         * cgraphunit.c (init_lowered_empty_function): Do not initialize
8466         frequencies.
8467         (cgraph_node::expand_thunk): Update profile.
8468         * except.c (dw2_build_landing_pads): Do not update frequency.
8469         * final.c (compute_alignments): Use to_frequency.
8470         (dump_basic_block_info): Do not dump frequency.
8471         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
8472         (dump_gimple_bb_header): Do not dump frequency.
8473         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
8474         do update count.
8475         * gimple-streamer-in.c (input_bb): Do not stream frequency.
8476         * gimple-streamer-out.c (output_bb): Do not stream frequency.
8477         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
8478         (init_before_recovery): Do not update frequency.
8479         (sched_create_recovery_edges): Do not update frequency.
8480         * hsa-gen.c (convert_switch_statements): Do not update frequency.
8481         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
8482         (ipa_cp_c_finalize): Set max_count to uninitialized.
8483         * ipa-fnsummary.c (get_minimal_bb): Use counts.
8484         (param_change_prob): Use counts.
8485         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
8486         local profiles.
8487         * ipa-split.c (consider_split): Use to_frequency.
8488         (split_function): Use to_frequency.
8489         * ira-build.c (loop_compare_func): Likewise.
8490         (mark_loops_for_removal): Likewise.
8491         (mark_all_loops_for_removal): Likewise.
8492         * loop-doloop.c (doloop_modify): Do not update frequency.
8493         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
8494         frequency.
8495         * lto-streamer-in.c (input_function): Update count_max.
8496         * omp-expand.c (expand_omp_taskreg): Update count_max.
8497         * omp-simd-clone.c (simd_clone_adjust): Update profile.
8498         * predict.c (maybe_hot_frequency_p): Use to_frequency.
8499         (maybe_hot_count_p): Use ipa counts only.
8500         (maybe_hot_bb_p): Simplify.
8501         (maybe_hot_edge_p): Simplify.
8502         (probably_never_executed): Do not take frequency argument.
8503         (probably_never_executed_bb_p): Do not pass frequency.
8504         (probably_never_executed_edge_p): Likewise.
8505         (combine_predictions_for_bb): Check that profile is nonzero.
8506         (propagate_freq): Do not set frequency.
8507         (drop_profile): Simplify.
8508         (counts_to_freqs): Simplify.
8509         (expensive_function_p): Use to_frequency.
8510         (propagate_unlikely_bbs_forward): Simplify.
8511         (determine_unlikely_bbs): Simplify.
8512         (estimate_bb_frequencies): Add hack to silence graphite issues.
8513         (compute_function_frequency): Use ipa counts.
8514         (pass_profile::execute): Update.
8515         (rebuild_frequencies): Use counts only.
8516         (force_edge_cold): Use counts only.
8517         * profile-count.c (profile_count::dump): Dump new count types.
8518         (profile_count::differs_from_p): Check compatiblity.
8519         (profile_count::to_frequency): New function.
8520         (profile_count::to_cgraph_frequency): New function.
8521         * profile-count.h (struct function): Declare.
8522         (enum profile_quality): Add profile_guessed_local and
8523         profile_guessed_global0.
8524         (class profile_proability): Decrease number of bits to 29;
8525         update from_reg_br_prob_note and to_reg_br_prob_note.
8526         (class profile_count: Update comment; decrease number of bits
8527         to 61. Check compatibility.
8528         (profile_count::compatible_p): New private member function.
8529         (profile_count::ipa_p): New member function.
8530         (profile_count::operator<): Handle global zero correctly.
8531         (profile_count::operator>): Handle global zero correctly.
8532         (profile_count::operator<=): Handle global zero correctly.
8533         (profile_count::operator>=): Handle global zero correctly.
8534         (profile_count::nonzero_p): New member function.
8535         (profile_count::force_nonzero): New member function.
8536         (profile_count::max): New member function.
8537         (profile_count::apply_scale): Handle IPA scalling.
8538         (profile_count::guessed_local): New member function.
8539         (profile_count::global0): New member function.
8540         (profile_count::ipa): New member function.
8541         (profile_count::to_frequency): Declare.
8542         (profile_count::to_cgraph_frequency): Declare.
8543         * profile.c (OVERLAP_BASE): Delete.
8544         (compute_frequency_overlap): Delete.
8545         (compute_branch_probabilities): Do not use compute_frequency_overlap.
8546         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
8547         * sched-ebb.c (rank): Use counts only.
8548         * shrink-wrap.c (handle_simple_exit): Use counts only.
8549         (try_shrink_wrapping): Use counts only.
8550         (place_prologue_for_one_component): Use counts only.
8551         * tracer.c (find_best_predecessor): Use to_frequency.
8552         (find_trace): Use to_frequency.
8553         (tail_duplicate): Use to_frequency.
8554         * trans-mem.c (expand_transaction): Do not update frequency.
8555         * tree-call-cdce.c: Do not update frequency.
8556         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
8557         (gimple_merge_blocks): Likewise.
8558         (gimple_split_edge): Likewise.
8559         (gimple_duplicate_sese_region): Likewise.
8560         (gimple_duplicate_sese_tail): Likewise.
8561         (move_sese_region_to_fn): Likewise.
8562         (gimple_account_profile_record): Likewise.
8563         (insert_cond_bb): Likewise.
8564         * tree-complex.c (expand_complex_div_wide): Likewise.
8565         * tree-eh.c (lower_resx): Update profile.
8566         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
8567         frequencies.
8568         (initialize_cfun): Do not initialize frequencies
8569         (freqs_to_counts): Delete.
8570         (copy_cfg_body): Ignore count parameter.
8571         (copy_body): Update.
8572         (expand_call_inline): Update count_max.
8573         (optimize_inline_calls): Update count_max.
8574         (tree_function_versioning): Update count_max.
8575         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
8576         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
8577         frequency.
8578         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
8579         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
8580         (try_peel_loop): Likewise.
8581         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
8582         to_frequency.
8583         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
8584         (tree_transform_and_unroll_loop): Do not use frequencies
8585         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
8586         Use reliable prediction only.
8587         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
8588         * tree-ssa-sink.c (select_best_block): Use to_frequency.
8589         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
8590         probability scaling.
8591         * tree-ssa-threadupdate.c (create_block_for_threading): Do
8592         not update frequency
8593         (any_remaining_duplicated_blocks): Likewise.
8594         (update_profile): Likewise.
8595         (estimated_freqs_path): Delete.
8596         (freqs_to_counts_path): Delete.
8597         (clear_counts_path): Delete.
8598         (ssa_fix_duplicate_block_edges): Likewise.
8599         (duplicate_thread_path): Likewise.
8600         * tree-switch-conversion.c (gen_inbound_check): Use counts.
8601         * tree-tailcall.c (decrease_profile): Do not update frequency.
8602         (eliminate_tail_call): Likewise.
8603         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
8604         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
8605         (optimize_mask_stores): Likewise.
8606         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
8607         * ubsan.c (ubsan_expand_null_ifn): Update profile.
8608         (ubsan_expand_ptr_ifn): Update profile.
8609         * value-prof.c (gimple_ic): Simplify.
8610         * value-prof.h (gimple_ic): Update prototype.
8611         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
8612         * ipa-inline.c (compute_uninlined_call_time): Be sure that
8613         counts are nonzero.
8614         (want_inline_self_recursive_call_p): Likewise.
8615         (resolve_noninline_speculation): Only cummulate defined counts.
8616         (inline_small_functions): Use nonzero_p.
8617         (ipa_inline): Do not access freed node.
8618
8619 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8620
8621         * config/aarch64/aarch64.c (aarch64_override_options_internal):
8622         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
8623
8624 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
8625
8626         * config/riscv/riscv.c (riscv_legitimize_move): Handle
8627         non-legitimate address.
8628
8629 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8630
8631         * config/rs6000/rs6000.md (*lt0_disi): Delete.
8632         (*lt0_<mode>di, *lt0_<mode>si): New.
8633
8634 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8635
8636         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
8637         TARGET_PAIRED_FLOAT.
8638
8639 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
8640             Jim Wilson  <jim.wilson@linaro.org>
8641
8642         * config/aarch64/aarch64-cores.def (saphira): New CPU.
8643         * config/aarch64/aarch64-tune.md: Regenerated.
8644         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
8645         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
8646
8647 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
8648
8649         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
8650         (arc_expand_prologue): Restore blink for millicode.
8651         * config/arc/linux.h (LINK_EH_SPEC): Defined.
8652
8653 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
8654
8655         PR target/82809
8656         * config/i386/i386.c (ix86_vector_duplicate_value): Use
8657         gen_vec_duplicate after forcing the scalar into a register.
8658
8659 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
8660
8661         * combine (try_combine): Print the insns input to try_combine to the
8662         dump file.
8663
8664 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
8665
8666         PR target/79868
8667         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8668         Remove second argument from aarch64_process_target_attr call.
8669         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
8670         Ditto.
8671         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
8672         field type.
8673         (aarch64_handle_attr_arch): Remove second argument.
8674         (aarch64_handle_attr_cpu): Ditto.
8675         (aarch64_handle_attr_tune): Ditto.
8676         (aarch64_handle_attr_isa_flags): Ditto.
8677         (aarch64_process_one_target_attr): Ditto.
8678         (aarch64_process_target_attr): Ditto.
8679         (aarch64_option_valid_attribute_p): Remove second argument.
8680         on aarch64_process_target_attr call.
8681
8682 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8683
8684         * diagnostic.c: Include "selftest-diagnostic.h".
8685         (selftest::assert_location_text): New function.
8686         (selftest::test_diagnostic_get_location_text): New function.
8687         (selftest::diagnostic_c_tests): Call it.
8688
8689 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8690
8691         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
8692         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
8693         (class selftest::test_diagnostic_context): Move to...
8694         * selftest-diagnostic.c: New file.
8695         * selftest-diagnostic.h: New file.
8696
8697 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
8698
8699         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
8700         offset range for FT32B.
8701         * config/ft32/ft32.h: option "mcompress" enables relaxation.
8702         * config/ft32/ft32.md: Add TARGET_NOPM.
8703         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
8704         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
8705
8706 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
8707
8708         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
8709
8710 2017-11-02  Jeff Law  <law@redhat.com>
8711
8712         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
8713         virtual keyword on FINAL OVERRIDE members.
8714
8715         * tree-ssa-propagate.h (ssa_propagation_engine): Group
8716         virtuals together.  Add virtual destructor.
8717         (substitute_and_fold_engine): Similarly.
8718
8719 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
8720
8721         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
8722
8723 2017-11-02  Richard Biener  <rguenther@suse.de>
8724
8725         PR tree-optimization/82795
8726         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
8727
8728 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8729
8730         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
8731         gcc_SUN_LD_VERSION.
8732         (gcc_GAS_CHECK_FEATURE): Remove.
8733         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
8734         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
8735         * configure: Regenerate.
8736
8737 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
8738
8739         * config/arc/arc.c (hwloop_optimize): Account for empty
8740         body loops.
8741
8742 2017-11-02  Richard Biener  <rguenther@suse.de>
8743
8744         PR middle-end/82765
8745         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
8746         Truncate ARRAY_REF index and element size.
8747
8748 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8749
8750         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
8751
8752 2017-11-01  Jeff Law  <law@redhat.com>
8753
8754         * tree-ssa-ccp.c (ccp_folder): New class derived from
8755         substitute_and_fold_engine.
8756         (ccp_folder::get_value): New member function.
8757         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
8758         (ccp_fold_stmt): Remove prototype.
8759         (ccp_finalize): Call substitute_and_fold from the ccp_class.
8760         * tree-ssa-copy.c (copy_folder): New class derived from
8761         substitute_and_fold_engine.
8762         (copy_folder::get_value): Renamed from get_value.
8763         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
8764         * tree-vrp.c (vrp_folder): New class derived from
8765         substitute_and_fold_engine.
8766         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
8767         (vrp_folder::get_value): New member function.
8768         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
8769         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
8770         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
8771         provide a class interface to folder/substitute routines.
8772         (ssa_prop_fold_stmt_fn): Remove typedef.
8773         (ssa_prop_get_value_fn): Likewise.
8774         (subsitute_and_fold): Remove prototype.
8775         (replace_uses_in): Likewise.
8776         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8777         Renamed from replace_uses_in.  Call the virtual member function
8778         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
8779         (substitute_and_fold_dom_walker): Remove initialization of
8780         data member entries for calbacks.  Add substitute_and_fold_engine
8781         member and initialize it.
8782         (substitute_and_fold_dom_walker::before_dom_children0: Use the
8783         member functions for get_value, replace_phi_args_in c
8784         replace_uses_in, and fold_stmt calls.
8785         (substitute_and_fold_engine::substitute_and_fold): Renamed from
8786         substitute_and_fold.  Remove assert.   Update ctor call.
8787
8788         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
8789         (ssa_prop_visit_phi_fn): Likewise.
8790         (class ssa_propagation_engine): New class to provide an interface
8791         into ssa_propagate.
8792         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
8793         variable.
8794         (ssa_prop_visit_phi): Likewise.
8795         (ssa_propagation_engine::simulate_stmt): Moved into class.
8796         Call visit_phi/visit_stmt from the class rather than via
8797         file scoped static variables.
8798         (ssa_propagation_engine::simulate_block): Moved into class.
8799         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
8800         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
8801         set file scoped statics for the visit_stmt/visit_phi callbacks.
8802         * tree-complex.c (complex_propagate): New class derived from
8803         ssa_propagation_engine.
8804         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
8805         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
8806         (tree_lower_complex): Call ssa_propagate via the complex_propagate
8807         class.
8808         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
8809         ssa_propagation_engine.
8810         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
8811         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
8812         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
8813         * tree-ssa-copy.c (copy_prop): New class derived from
8814         ssa_propagation_engine.
8815         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
8816         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
8817         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
8818         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
8819         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
8820         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
8821         (execute_vrp): Call ssa_propagate from the vrp_prop class.
8822
8823 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
8824
8825         PR rtl-optimization/82778
8826         PR rtl-optimization/82597
8827         * compare-elim.c (struct comparison): Add in_a_setter field.
8828         (find_comparison_dom_walker::before_dom_children): Remove killed
8829         bitmap and df_simulate_find_defs call, instead walk the defs.
8830         Compute last_setter and initialize in_a_setter.  Merge definitions
8831         with first initialization for a few variables.
8832         (try_validate_parallel): Use insn_invalid_p instead of
8833         recog_memoized.  Return insn rather than just the pattern.
8834         (try_merge_compare): Fix up comment.  Don't uselessly test if
8835         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
8836         chains.
8837         (execute_compare_elim_after_reload): Remove df_chain_add_problem
8838         call.
8839
8840 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8841             Alan Hayward  <alan.hayward@arm.com>
8842             David Sherwood  <david.sherwood@arm.com>
8843
8844         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8845         aarch64_hard_regno_nregs to get the number of registers
8846         in a mode.
8847
8848 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8849             Alan Hayward  <alan.hayward@arm.com>
8850             David Sherwood  <david.sherwood@arm.com>
8851
8852         * config/aarch64/constraints.md (Upl): Rename to...
8853         (Uaa): ...this.
8854         * config/aarch64/aarch64.md
8855         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
8856         Update accordingly.
8857
8858 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8859             Alan Hayward  <alan.hayward@arm.com>
8860             David Sherwood  <david.sherwood@arm.com>
8861
8862         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
8863         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
8864         earlier in file.
8865
8866 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8867             Alan Hayward  <alan.hayward@arm.com>
8868             David Sherwood  <david.sherwood@arm.com>
8869
8870         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
8871         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
8872         (aarch64_evpc_dup): Generate rtl direcly, rather than using
8873         named expanders.
8874         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
8875         of a single element.
8876         * config/aarch64/iterators.md: Add a comment above the permute
8877         unspecs to say that they are generated directly by
8878         aarch64_expand_vec_perm_const.
8879         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
8880
8881 2017-11-01  Nathan Sidwell  <nathan@acm.org>
8882
8883         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
8884
8885 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8886
8887         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
8888         and medany code models, and describe what they do.
8889
8890 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8891
8892         Revert accidental duplicate:
8893
8894         * combine.c (can_change_dest_mode): Reject changes in
8895         REGMODE_NATURAL_SIZE.
8896
8897 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
8898
8899         PR rtl-optimization/64682
8900         PR rtl-optimization/69567
8901         PR rtl-optimization/69737
8902         PR rtl-optimization/82683
8903         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
8904         register mentioned in the note, drop the note, unless it came from I3,
8905         in which case it should go to I3 again.
8906
8907 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8908
8909         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
8910         and return false if not.
8911         (clear_bytes_written_by, live_bytes_read): Update accordingly.
8912
8913 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8914
8915         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
8916         range is known to be empty.
8917
8918 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8919             Alan Hayward  <alan.hayward@arm.com>
8920             David Sherwood  <david.sherwood@arm.com>
8921
8922         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
8923         and CONST_VECTOR_NUNITS instead of computing the number of units from
8924         the byte sizes of the vector and element.
8925         (simplify_binary_operation_1): Likewise.
8926         (simplify_const_binary_operation): Likewise.
8927         (simplify_ternary_operation): Likewise.
8928
8929 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8930             Alan Hayward  <alan.hayward@arm.com>
8931             David Sherwood  <david.sherwood@arm.com>
8932
8933         * var-tracking.c (INT_MEM_OFFSET): Replace with...
8934         (int_mem_offset): ...this new function.
8935         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
8936         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
8937         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
8938         Update accordingly.
8939
8940 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8941             Alan Hayward  <alan.hayward@arm.com>
8942             David Sherwood  <david.sherwood@arm.com>
8943
8944         * lower-subreg.c (interesting_mode_p): New function.
8945         (compute_costs, find_decomposable_subregs, decompose_register)
8946         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
8947         (resolve_clobber, dump_choices): Use it.
8948
8949 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8950             Alan Hayward  <alan.hayward@arm.com>
8951             David Sherwood  <david.sherwood@arm.com>
8952
8953         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
8954
8955 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8956             Alan Hayward  <alan.hayward@arm.com>
8957             David Sherwood  <david.sherwood@arm.com>
8958
8959         * alias.c (find_base_value, find_base_term): Only process integer
8960         truncations.  Check the precision rather than the size.
8961
8962 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8963             Alan Hayward  <alan.hayward@arm.com>
8964             David Sherwood  <david.sherwood@arm.com>
8965
8966         * machmode.h (is_narrower_int_mode): New function
8967         * optabs.c (expand_float, expand_fix): Use it.
8968         * dwarf2out.c (rotate_loc_descriptor): Likewise.
8969
8970 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8971             Alan Hayward  <alan.hayward@arm.com>
8972             David Sherwood  <david.sherwood@arm.com>
8973
8974         * rtl.h (narrower_subreg_mode): New function.
8975         * ira-color.c (update_costs_from_allocno): Use it.
8976
8977 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8978             Alan Hayward  <alan.hayward@arm.com>
8979             David Sherwood  <david.sherwood@arm.com>
8980
8981         * optabs-query.h (convert_optab_p): New function, split out from...
8982         (convert_optab_handler): ...here.
8983         (widening_optab_handler): Delete.
8984         (find_widening_optab_handler): Remove permit_non_widening parameter.
8985         (find_widening_optab_handler_and_mode): Likewise.  Provide an
8986         override that operates on mode class wrappers.
8987         * optabs-query.c (widening_optab_handler): Delete.
8988         (find_widening_optab_handler_and_mode): Remove permit_non_widening
8989         parameter.  Assert that the two modes are the same class and that
8990         the "from" mode is narrower than the "to" mode.  Use
8991         convert_optab_handler instead of widening_optab_handler.
8992         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
8993         instead of widening_optab_handler.
8994         * expr.c (expand_expr_real_2): Update calls to
8995         find_widening_optab_handler.
8996         * optabs.c (expand_widen_pattern_expr): Likewise.
8997         (expand_binop_directly): Take the insn_code as a parameter.
8998         (expand_binop): Only call find_widening_optab_handler for
8999         conversion optabs; use optab_handler otherwise.  Update calls
9000         to find_widening_optab_handler and expand_binop_directly.
9001         Use convert_optab_handler instead of widening_optab_handler.
9002         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
9003         find_widening_optab_handler and use scalar_mode rather than
9004         machine_mode.
9005         (convert_plusminus_to_widen): Likewise.
9006
9007 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9008             Alan Hayward  <alan.hayward@arm.com>
9009             David Sherwood  <david.sherwood@arm.com>
9010
9011         * machmode.h (fixed_size_mode): New class.
9012         * rtl.h (get_pool_mode): Return fixed_size_mode.
9013         * gengtype.c (main): Add fixed_size_mode.
9014         * target.def (get_raw_result_mode): Return a fixed_size_mode.
9015         (get_raw_arg_mode): Likewise.
9016         * doc/tm.texi: Regenerate.
9017         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
9018         * targhooks.c (default_get_reg_raw_mode): Likewise.
9019         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
9020         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
9021         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
9022         (msp430_get_raw_result_mode): Likewise.
9023         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
9024         * dbxout.c (dbxout_parms): Require fixed-size modes.
9025         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
9026         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
9027         * omp-low.c (lower_oacc_reductions): Likewise.
9028         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
9029         (simplify_subreg): Update accordingly.
9030         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
9031         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
9032         that aren't fixed-size.
9033         (get_pool_mode): Return a fixed_size_mode.
9034         (output_constant_pool_2): Take a fixed_size_mode.
9035
9036 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9037             Alan Hayward  <alan.hayward@arm.com>
9038             David Sherwood  <david.sherwood@arm.com>
9039
9040         * doc/rtl.texi (vec_series): Document.
9041         (const): Say that the operand can be a vec_series.
9042         * rtl.def (VEC_SERIES): New rtx code.
9043         * rtl.h (const_vec_series_p_1): Declare.
9044         (const_vec_series_p): New function.
9045         * emit-rtl.h (gen_const_vec_series): Declare.
9046         (gen_vec_series): Likewise.
9047         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
9048         (gen_vec_series): Likewise.
9049         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
9050         * simplify-rtx.c (simplify_unary_operation): Handle negations
9051         of vector series.
9052         (simplify_binary_operation_series): New function.
9053         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
9054         (test_vector_ops_series): New function.
9055         (test_vector_ops): Call it.
9056         * config/powerpcspe/altivec.md (altivec_lvsl): Use
9057         gen_const_vec_series.
9058         (altivec_lvsr): Likewise.
9059         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
9060
9061 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9062             Alan Hayward  <alan.hayward@arm.com>
9063             David Sherwood  <david.sherwood@arm.com>
9064
9065         * doc/rtl.texi (const): Update description of address constants.
9066         Say that vector constants are allowed too.
9067         * common.md (E, F): Use CONSTANT_P instead of checking for
9068         CONST_VECTOR.
9069         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
9070         checking for CONST_VECTOR.
9071         * expmed.c (make_tree): Use build_vector_from_val for a CONST
9072         VEC_DUPLICATE.
9073         * expr.c (expand_expr_real_2): Check for vector modes instead
9074         of checking for CONST_VECTOR.
9075         * rtl.h (const_vec_p): New function.
9076         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
9077         (unwrap_const_vec_duplicate): Handle them here too.
9078
9079 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9080             David Malcolm  <dmalcolm@redhat.com>
9081             Alan Hayward  <alan.hayward@arm.com>
9082             David Sherwood  <david.sherwood@arm.com>
9083
9084         * rtl.h (vec_duplicate_p): New function.
9085         * selftest-rtl.c (assert_rtx_eq_at): New function.
9086         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
9087         (assert_rtx_eq_at): Declare.
9088         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
9089         * selftest-run-tests.c (selftest::run_tests): Call it.
9090         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
9091         (simplify_unary_operation_1): Recursively handle vector duplicates.
9092         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
9093         vector duplicates.
9094         (simplify_subreg): Handle subregs of vector duplicates.
9095         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
9096         (selftest::simplify_rtx_c_tests): New functions.
9097
9098 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9099             Alan Hayward  <alan.hayward@arm.com>
9100             David Sherwood  <david.sherwood@arm.com>
9101
9102         * emit-rtl.h (gen_const_vec_duplicate): Declare.
9103         (gen_vec_duplicate): Likewise.
9104         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
9105         out from...
9106         (gen_const_vector): ...here.
9107         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
9108         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
9109         whose elements are all equal.
9110         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
9111         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9112         (simplify_relational_operation): Likewise.
9113         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
9114         Likewise.
9115         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
9116         (aarch64_expand_vector_init): Likewise.
9117         * config/arm/arm.c (neon_vdup_constant): Likewise.
9118         (neon_expand_vector_init): Likewise.
9119         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
9120         (arm_block_set_unaligned_vect): Likewise.
9121         (arm_block_set_aligned_vect): Likewise.
9122         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
9123         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
9124         (expand_vec_perm_even_odd_pack): Likewise.
9125         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
9126         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
9127         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
9128         gen_const_vec_duplicate.
9129         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
9130         * config/mips/mips.c (mips_gen_const_int_vector): Use
9131         gen_const_vec_duplicate.
9132         (mips_expand_vector_init): Use CONST0_RTX.
9133         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
9134         (define_split): Use gen_const_vec_duplicate.
9135         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
9136         (define_split): Use gen_const_vec_duplicate.
9137         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
9138         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
9139         * config/spu/spu.c (spu_const): Likewise.
9140
9141 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9142             Alan Hayward  <alan.hayward@arm.com>
9143             David Sherwood  <david.sherwood@arm.com>
9144
9145         * combine.c (can_change_dest_mode): Reject changes in
9146         REGMODE_NATURAL_SIZE.
9147
9148 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
9149
9150         * configure.ac (--enable-libssp): New.
9151         (gcc_cv_libc_provides_ssp): Check for explicit setting before
9152         trying to determine target-specific default.  Adjust indentation.
9153         * configure: Regenerated.
9154         * doc/install.texi (Configuration): Expand --disable-libssp
9155         documentation.
9156
9157 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
9158
9159         config/i386/i386.c (ix86_expand_epilogue): Correct stack
9160         calculation.
9161
9162 2017-10-31  Martin Jambor  <mjambor@suse.cz>
9163
9164         PR c++/81702
9165         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
9166
9167 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
9168
9169         * auto-profile.c (autofdo_source_profile::read): Use
9170         UNKNOWN_LOCATION rather than 0.
9171         * diagnostic-core.h (warning_at_rich_loc): Rename to...
9172         (warning_at): ...this overload.
9173         (warning_at_rich_loc_n): Rename to...
9174         (warning_n): ...this overload.
9175         (error_at_rich_loc): Rename to...
9176         (error_at): ...this overload.
9177         (pedwarn_at_rich_loc): Rename to...
9178         (pedwarn): ...this overload.
9179         (permerror_at_rich_loc): Rename to...
9180         (permerror): ...this overload.
9181         (inform_at_rich_loc): Rename to...
9182         (inform): ...this overload.
9183         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
9184         (diagnostic_n_impl_richloc): Rename to...
9185         (diagnostic_n_impl): ...this rich_location *-based decl.
9186         (inform_at_rich_loc): Rename to...
9187         (inform): ...this, and add an assertion.
9188         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
9189         (warning_at_rich_loc): Rename to...
9190         (warning_at): ...this, and add an assertion.
9191         (warning_at_rich_loc_n): Rename to...
9192         (warning_n): ...this, and add an assertion.
9193         (warning_n): Update location_t-based implementation for removal of
9194         location_t-based diagnostic_n_impl.
9195         (pedwarn_at_rich_loc): Rename to...
9196         (pedwarn): ...this, and add an assertion.
9197         (permerror_at_rich_loc): Rename to...
9198         (permerror): ...this, and add an assertion.
9199         (error_n): Update for removal of location_t-based diagnostic_n_impl.
9200         (error_at_rich_loc): Rename to...
9201         (error_at): ...this, and add an assertion.
9202         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
9203         (driver::do_spec_on_infiles): Likewise.
9204         * substring-locations.c (format_warning_va): Update for renaming
9205         of inform_at_rich_loc.
9206
9207 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
9208
9209         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
9210         _Float<N>X built-in functions so that the variant without the
9211         "__builtin_" prefix is only enabled for the GNU C and Objective C
9212         languages when they are in non-strict ANSI/ISO mode.
9213         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
9214         * target.def (floatn_builtin_p): Add a target hook to control
9215         whether _Float<N> and _Float<N>X built-in functions without the
9216         "__builtin_" prefix are enabled, and return true for C and
9217         Objective C in the default hook.  Include langhooks.h in
9218         targhooks.c.
9219         * targhooks.h (default_floatn_builtin_p): Likewise.
9220         * targhooks.c (default_floatn_builtin_p): Likewise.
9221         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
9222         floatn_builtin_p target hook.
9223         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
9224
9225 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
9226             Eric Botcazou  <ebotcazou@adacore.com>
9227
9228         PR rtl-optimization/81803
9229         * lra-constraints.c (curr_insn_transform): Also reload the whole
9230         register for a strict subreg no wider than a word if this is for
9231         a WORD_REGISTER_OPERATIONS target.
9232
9233 2017-10-31  Jason Merrill  <jason@redhat.com>
9234
9235         * gdbinit.in: Skip over inlines from timevar.h.
9236
9237 2017-10-31  Martin Liska  <mliska@suse.cz>
9238
9239         * doc/gcov.texi: Document new option.
9240         * gcov.c (print_usage): Likewise print it.
9241         (process_args): Support the argument.
9242         (format_count): New function.
9243         (format_gcov): Use the function.
9244
9245 2017-10-31  Martin Liska  <mliska@suse.cz>
9246
9247         * gcov.c (struct name_map): do not use typedef.
9248         Define operator== and operator<.
9249         (name_search): Remove.
9250         (name_sort): Remove.
9251         (main): Do not allocate names.
9252         (process_file): Add vertical space.
9253         (generate_results): Use std::find.
9254         (release_structures): Do not release memory.
9255         (find_source): Use std::find.
9256
9257 2017-10-31  Martin Liska  <mliska@suse.cz>
9258
9259         * gcov.c (struct line_info): Remove it's typedef.
9260         (line_info::line_info): Add proper ctor.
9261         (line_info::has_block): Do not use a typedef.
9262         (struct source_info): Do not use typedef.
9263         (circuit): Likewise.
9264         (get_cycles_count): Likewise.
9265         (output_intermediate_file): Iterate via vector iterator.
9266         (add_line_counts): Use std::vector methods.
9267         (accumulate_line_counts): Likewise.
9268         (output_lines): Likewise.
9269
9270 2017-10-31  Martin Liska  <mliska@suse.cz>
9271
9272         * gcov.c (struct source_info): Remove typedef.
9273         (source_info::source_info): Add proper ctor.
9274         (accumulate_line_counts): Use struct, not it's typedef.
9275         (output_gcov_file): Likewise.
9276         (output_lines): Likewise.
9277         (main): Do not allocate an array.
9278         (output_intermediate_file): Use size of vector container.
9279         (process_file): Resize the vector.
9280         (generate_results): Do not preallocate, use newly added vector
9281         lines.
9282         (release_structures): Do not release sources.
9283         (find_source): Use vector methods.
9284         (add_line_counts): Do not use typedef.
9285
9286 2017-10-31  Martin Liska  <mliska@suse.cz>
9287
9288         * doc/gcov.texi: Document that.
9289         * gcov.c (add_line_counts): Mark lines with a non-executed
9290         statement.
9291         (output_line_beginning): Handle such lines.
9292         (output_lines): Pass new argument.
9293         (output_intermediate_file): Print it in intermediate format.
9294
9295 2017-10-31  Martin Liska  <mliska@suse.cz>
9296
9297         * color-macros.h: New file.
9298         * diagnostic-color.c: Factor out color related to macros to
9299         color-macros.h.
9300         * doc/gcov.texi: Document -k option.
9301         * gcov.c (INCLUDE_STRING): Include string.h.
9302         (print_usage): Add -k option.
9303         (process_args): Parse it.
9304         (pad_count_string): New function.
9305         (output_line_beginning): Likewise.
9306         (DEFAULT_LINE_START): New macro.
9307         (output_lines): Support color output.
9308
9309 2017-10-31  Martin Liska  <mliska@suse.cz>
9310
9311         PR gcov-profile/82633
9312         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
9313         their interaction with GCOV infrastructure.
9314         * configure.ac: Add -fkeep-{inline,static}-functions to
9315         coverage_flags.
9316         * configure: Regenerate.
9317
9318 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
9319
9320         PR target/82772
9321         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
9322
9323 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
9324
9325         PR target/82674
9326         * config/rs6000/rs6000.md (allocate_stack): Force update interval
9327         into a register if it does not fit into an immediate offset field.
9328
9329 2017-10-31  Olivier Hainque  <hainque@adacore.com>
9330
9331         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
9332
9333 2017-10-31  Julia Koval  <julia.koval@intel.com>
9334
9335         * config.gcc: Add gfniintrin.h.
9336         * config/i386/gfniintrin.h: New.
9337         * config/i386/i386-builtin-types.def
9338         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
9339         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
9340         __builtin_ia32_vgf2p8affineinvqb_v32qi,
9341         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
9342         __builtin_ia32_vgf2p8affineinvqb_v16qi,
9343         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
9344         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
9345         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
9346         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
9347         V64QI_FTYPE_V64QI_V64QI_INT): New types.
9348         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
9349         * config/i386/immintrin.h: Include gfniintrin.h.
9350         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
9351
9352 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
9353
9354         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
9355
9356 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9357
9358         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
9359         (arm_ashldi3_1bit): Remove pattern.
9360         (ashrdi3): Remove shift by 1 expansion.
9361         (arm_ashrdi3_1bit): Remove pattern.
9362         (lshrdi3): Remove shift by 1 expansion.
9363         (arm_lshrdi3_1bit): Remove pattern.
9364         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
9365         cost of ashldi3 by 1.
9366         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
9367         (<shift>di3_neon): Likewise.
9368
9369 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
9370
9371         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
9372         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
9373         and (*aarch64_simd_mov<VQ:mode>).
9374         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
9375         pattern alternative.
9376         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
9377         attributes to match pattern alternative.
9378
9379 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
9380
9381         * config.gcc (powerpc*-*-*): Add emmintrin.h.
9382         * config/rs6000/emmintrin.h: New file.
9383         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
9384
9385 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9386
9387         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
9388         * (movdi_vfp_cortexa8): Remove pattern.
9389
9390 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9391
9392         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
9393         etc. reference.
9394         (Specific, alpha*-dec-osf5.1): Remove.
9395         (Specific, mips-sgi-irix5): Remove.
9396         (Specific, mips-sgi-irix6): Remove.
9397
9398 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9399
9400         PR middle-end/22141
9401         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
9402         arguments to clear_bit_region_be.
9403
9404 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
9405
9406         * gimplify.c: Include memmodel.h.
9407
9408 2017-10-30  Martin Jambor  <mjambor@suse.cz>
9409
9410         * omp-grid.c (grid_attempt_target_gridification): Also insert a
9411         condition whether loop should be executed at all.
9412
9413 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
9414
9415         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
9416         gimple folding of vec_madd() intrinsics.
9417         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
9418         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
9419         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
9420
9421 2017-10-30  Richard Biener  <rguenther@suse.de>
9422
9423         PR tree-optimization/82762
9424         Revert
9425         2017-10-23  Richard Biener  <rguenther@suse.de>
9426
9427         PR tree-optimization/82129
9428         Revert
9429         2017-08-01  Richard Biener  <rguenther@suse.de>
9430
9431         PR tree-optimization/81181
9432         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9433         (compute_antic): ... end of iteration here.
9434
9435 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
9436
9437         * doc/invoke.texi (C Dialect Options): Document -std=c17,
9438         -std=iso9899:2017 and -std=gnu17.
9439         * doc/standards.texi (C Language): Document C17 support.
9440         * doc/cpp.texi (Overview): Mention -std=c17.
9441         (Standard Predefined Macros): Document C11 and C17 values of
9442         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
9443         * doc/extend.texi (Inline): Do not list individual options for
9444         standards newer than C99.
9445         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
9446         "GNU C17".
9447         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
9448         language name.
9449
9450 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9451
9452         * asan.c (asan_finish_file): Align asan globals array by shadow
9453         granularity.
9454
9455 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9456
9457         PR middle-end/22141
9458         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
9459         (struct store_immediate_info): Add bitregion_start and bitregion_end
9460         fields.
9461         (store_immediate_info::store_immediate_info): Add brs and bre
9462         arguments and initialize bitregion_{start,end} from those.
9463         (struct merged_store_group): Add bitregion_start, bitregion_end,
9464         align_base and mask fields.  Drop unnecessary struct keyword from
9465         struct store_immediate_info.  Add do_merge method.
9466         (clear_bit_region_be): Use memset instead of loop storing zeros.
9467         (merged_store_group::do_merge): New method.
9468         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
9469         stores as long as the surrounding bitregions have no gaps.
9470         (merged_store_group::merge_overlapping): Use do_merge.
9471         (merged_store_group::apply_stores): Test that bitregion_{start,end}
9472         is byte aligned, rather than requiring that start and width are
9473         byte aligned.  Drop unnecessary struct keyword from
9474         struct store_immediate_info.  Allocate and populate also mask array.
9475         Make start of the arrays relative to bitregion_start rather than
9476         start and size them according to bitregion_{end,start} difference.
9477         (struct imm_store_chain_info): Drop unnecessary struct keyword from
9478         struct store_immediate_info.
9479         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
9480         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
9481         struct keyword from struct store_immediate_info.
9482         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
9483         between stores as long as the surrounding bitregions have no gaps.
9484         Formatting fixes.
9485         (struct split_store): Add orig non-static data member.
9486         (split_store::split_store): Initialize orig to false.
9487         (find_constituent_stmts): Return store_immediate_info *, non-NULL
9488         if there is exactly a single original stmt.  Change stmts argument
9489         to pointer from reference, if NULL, don't push anything to it.  Add
9490         first argument, use it to optimize skipping over orig stmts that
9491         are known to be before bitpos already.  Simplify.
9492         (split_group): Return unsigned int count how many stores are or
9493         would be needed rather than a bool.  Add allow_unaligned argument.
9494         Change split_stores argument from reference to pointer, if NULL,
9495         only do a dry run computing how many stores would be produced.
9496         Rewritten algorithm to use both alignment and misalign if
9497         !allow_unaligned and handle bitfield stores with gaps.
9498         (imm_store_chain_info::output_merged_store): Set start_byte_pos
9499         from bitregion_start instead of start.  Compute allow_unaligned
9500         here, if true, do 2 split_group dry runs to compute which one
9501         produces fewer stores and prefer aligned if equal.  Punt if
9502         new count is bigger or equal than original before emitting any
9503         statements, rather than during that.  Remove no longer needed
9504         new_ssa_names tracking.  Replace num_stmts with
9505         split_stores.length ().  Use 32-bit stack allocated entries
9506         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
9507         if possible.  Handle bitfields with gaps.
9508         (pass_store_merging::execute): Ignore bitsize == 0 stores.
9509         Compute bitregion_{start,end} for the stores and construct
9510         store_immediate_info with that.  Formatting fixes.
9511
9512 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
9513
9514         PR target/82725
9515         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
9516         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
9517
9518 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
9519
9520         * gimplify.c: Include tm_p.h.
9521
9522         * common.opt (gcoff): Re-add as ignored option.
9523         (gcoff1, gcoff2, gcoff3): Likewise.
9524
9525         * Makefile.in (OBJS): Delete sdbout.o.
9526         (GTFILES): Delete $(srcdir)/sdbout.c.
9527         * debug.h: Delete sdb_debug_hooks.
9528         * final.c: Delete sdbout.h include.
9529         (final_scan_insn): Delete SDB_DEBUG check.
9530         (rest_of_clean_state): Likewise.
9531         * output.h: Delete sdb_begin_function_line.
9532         * sdbout.c: Delete.
9533         * sdbout.h: Delete.
9534         * toplev.c: Delete sdbout.h include.
9535         (process_options): Delete SDB_DEBUG check.
9536         * tree-core.h (tree_type_common): Delete pointer field of
9537         tree_type_symtab.
9538         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
9539         TYPE_SYMTAB_POINTER.
9540         * tree.h (TYPE_SYMTAB_POINTER): Delete.
9541         (TYPE_SYMTAB_IS_POINTER): Delete.
9542         (TYPE_SYMTAB_IS_DIE): Renumber.
9543         * xcoffout.c: Refer to former sdbout.c file.
9544         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
9545
9546         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
9547         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
9548         (Debugging Options): Delete -gcoff.
9549         (-gstabs): Delete SDB reference.
9550         (-gcoff): Delete.
9551         (-gcoff@var{level}): Delete.
9552         * doc/passes.texi (Debugging information output): Delete SDB and
9553         sdbout.c references.
9554         * doc/tm.texi: Regenerate.
9555         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
9556         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
9557         references.
9558         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
9559         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
9560         (SDB_DEBUGGING_INFO): Delete.
9561         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
9562         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
9563         * target.def (output_source_filename): Delete COFF reference.
9564
9565         * common.opt (gcoff): Delete.
9566         (gxcoff+): Update Negative chain.
9567         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
9568         SDB_DEBUG.
9569         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
9570         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
9571         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
9572         and SDB references.
9573         (expand_function_start): Change sdb reference to past tense.
9574         (expand_function_end): Change sdb reference to past tense.
9575         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
9576         * opts.c (debug_type_names): Delete coff entry.
9577         (common_handle_option): Delete OPT_gcoff case.
9578         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
9579
9580         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
9581         * config/cris/cris.h: Delete SDB reference in comment.
9582         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
9583         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
9584         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
9585         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
9586         to past tense.
9587         (ix86_expand_prologue): Likewise.
9588         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
9589         * config/ia64/ia64.h: Likewise.
9590         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
9591         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
9592         support.
9593         * config/mmix/mmix.h: Likewise.
9594         * config/nds32/nds32.c: Likewise.
9595         * config/stormy/storym16.h: Likewise.
9596         * config/visium/visium.h: Likewise.
9597         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
9598
9599 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
9600
9601         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
9602         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
9603         FRAME_POINTER_REGNUM point at high end of local var area.
9604
9605 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
9606
9607         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
9608         Move comment around.  Do not reset best_edge for a copiable
9609         destination if the copy would cause a partition change.
9610         (better_edge_p): Remove redundant check.
9611
9612 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9613
9614         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
9615
9616 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
9617
9618         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
9619         for math functions that have _Float<N> and _Float<N>X variants.
9620         (mathfn_built_in_2): Add support for math functions that have
9621         _Float<N> and _Float<N>X variants.
9622         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
9623         (expand_builtin_mathfn_ternary): Add support for fma with
9624         _Float<N> and _Float<N>X variants.
9625         (expand_builtin): Likewise.
9626         (fold_builtin_3): Likewise.
9627         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
9628         create math function _Float<N> and _Float<N>X variants as external
9629         library builtins.
9630         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
9631         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
9632         the __builtin_ prefix and if not strict ansi, without the prefix.
9633         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
9634         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
9635         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
9636         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
9637         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
9638         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
9639         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
9640         function signatures for fma _Float<N> and _Float<N>X variants.
9641         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
9642         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
9643         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
9644         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
9645         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
9646         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
9647         * gencfn-macros.c (print_case_cfn): Add support for math functions
9648         that have _Float<N> and _Float<N>X variants.
9649         (print_define_operator_list): Likewise.
9650         (fltfn_suffixes): Likewise.
9651         (main): Likewise.
9652         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
9653         for math functions that have _Float<N> and _Float<N>X variants.
9654         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
9655         and _Float<N>X variants.
9656         (COPYSIGN): Likewise.
9657         (FMIN): Likewise.
9658         (FMAX): Likewise.
9659         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
9660         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
9661         variants.
9662         (integer_valued_read_call_p): Likewise.
9663         * fold-const-call.c (fold_const_call_ss): Likewise.
9664         (fold_const_call_sss): Add support for copysign, fmin, and fmax
9665         _Float<N> and _Float<N>X variants.
9666         (fold_const_call_ssss): Add support for fma _Float<N> and
9667         _Float<N>X variants.
9668         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
9669         support for copysign and fma _Float<N> and _Float<N>X variants.
9670         (backprop::process_builtin_call_use): Likewise.
9671         * tree-call-cdce.c (can_test_argument_range); Add support for
9672         sqrt _Float<N> and _Float<N>X variants.
9673         (edom_only_function): Likewise.
9674         (get_no_error_domain): Likewise.
9675         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
9676         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
9677         copysign _Float<N> and _Float<N>X variants.
9678         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
9679         handled by machine independent code.
9680         (FMAF128): Likewise.
9681         * doc/cpp.texi (Common Predefined Macros): Document defining
9682         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
9683         fma _Float<N> and _Float<N>X variants.
9684
9685 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9686
9687         PR target/82692
9688         * config/i386/i386-modes.def (CCFPU): Remove definition.
9689         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
9690         (ix86_cc_modes_compatible): Ditto.
9691         (ix86_expand_carry_flag_compare): Ditto.
9692         (ix86_expand_int_movcc): Ditto.
9693         (ix86_expand_int_addcc): Ditto.
9694         (ix86_reverse_condition): Ditto.
9695         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
9696         Return true/false for unordered/ordered fp comparisons.
9697         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
9698         (ix86_prepare_fp_compare_args): Update for rename.
9699         (ix86_expand_fp_compare): Update for rename.  Generate unordered
9700         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
9701         (ix86_expand_sse_compare_and_jump): Ditto.
9702         * config/i386/predicates.md (fcmov_comparison_operator):
9703         Remove CCFPU mode handling.
9704         (ix86_comparison_operator): Ditto.
9705         (ix86_carry_flag_operator): Ditto.
9706         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
9707         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
9708         (*cmpu<mode>_cc_i387): Ditto.
9709         (FPCMP): Remove mode iterator.
9710         (unord): Remove mode attribute.
9711         (unord_subst): New define_subst transformation
9712         (unord): New define_subst attribute.
9713         (unordered): Ditto.
9714         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
9715         (*cmpi<unord>xf_i387): Ditto.
9716         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
9717         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
9718         using unord_subst transformation.
9719         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
9720         (round_saeonly): Also handle CCFP mode.
9721         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
9722         Remove UNSPEC_SAHF unspec handling.
9723
9724 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9725
9726         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
9727
9728 2017-10-27  Jeff Law  <law@redhat.com>
9729
9730         * gimple-ssa-sprintf.c: Include domwalk.h.
9731         (class sprintf_dom_walker): New class, derived from dom_walker.
9732         (sprintf_dom_walker::before_dom_children): New function.
9733         (struct call_info): Moved into sprintf_dom_walker class
9734         (compute_formath_length, handle_gimple_call): Likewise.
9735         (sprintf_length::execute): Call the dominator walker rather
9736         than walking the statements.
9737
9738         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
9739         gimple statement locations.
9740         (check_array_bounds): Corresponding changes.  Get the statement's
9741         location directly from wi->stmt.
9742
9743 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
9744
9745         PR target/82717
9746         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
9747
9748 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9749
9750         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
9751         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
9752
9753 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
9754
9755         PR target/82703
9756         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
9757         * config/i386/i386.c (maybe_get_pool_constant): Removed.
9758         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
9759         maybe_get_pool_constant.
9760         * config/i386/predicates.md (zero_extended_scalar_load_operand):
9761         Likewise.
9762
9763 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9764
9765         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
9766         2.26 caveat.  Update gas and gld versions.
9767         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
9768         reference.
9769
9770 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9771
9772         * cgraph.h (set_malloc_flag): Declare.
9773         * cgraph.c (set_malloc_flag_1): New function.
9774         (set_malloc_flag): Likewise.
9775         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
9776         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
9777         false.
9778         (read_ipa_call_summary): Add support for reading is_return_callee.
9779         (write_ipa_call_summary): Stream is_return_callee.
9780         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
9781         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
9782         ipa-prop.h, ipa-fnsummary.h.
9783         (pure_const_names): Change to static.
9784         (malloc_state_e): Define.
9785         (malloc_state_names): Define.
9786         (funct_state_d): Add field malloc_state.
9787         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
9788         (check_retval_uses): New function.
9789         (malloc_candidate_p): Likewise.
9790         (analyze_function): Add support for malloc attribute.
9791         (pure_const_write_summary): Stream malloc_state.
9792         (pure_const_read_summary): Add support for reading malloc_state.
9793         (dump_malloc_lattice): New function.
9794         (propagate_malloc): New function.
9795         (warn_function_malloc): New function.
9796         (ipa_pure_const::execute): Call propagate_malloc and
9797         ipa_free_fn_summary.
9798         (pass_local_pure_const::execute): Add support for malloc attribute.
9799         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
9800         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
9801
9802 2017-10-27  Martin Liska  <mliska@suse.cz>
9803
9804         PR gcov-profile/82457
9805         * doc/invoke.texi: Document that one needs a non-strict ISO mode
9806         for fork-like functions to be properly instrumented.
9807
9808 2017-10-27  Richard Biener  <rguenther@suse.de>
9809
9810         PR middle-end/81659
9811         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
9812         info when we redirected EH.
9813
9814 2017-10-26  Michael Collison  <michael.collison@arm.com>
9815
9816         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
9817         New pattern.
9818         (<optab>_trunchf<GPI:mode>2: New pattern.
9819         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
9820         * config/aarch64/iterators.md (wv): New mode attribute.
9821         (vf, VF): New mode attributes.
9822         (vgp, VGP): New mode attributes.
9823         (s): Update attribute with SImode and DImode prefixes.
9824
9825 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9826
9827         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
9828         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
9829         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
9830         (nios2_option_overide): Initialize it.  Don't allow R0-relative
9831         addressing with PIC.
9832         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
9833         (nios2_symbolic_constant_p): Likewise.
9834         (nios2_legitimate_address_p): Likewise.
9835         (nios2_r0rel_section_name_p): New.
9836         (nios2_symbol_ref_in_r0rel_data_p): New.
9837         (nios2_emit_move_sequence): Handle r0rel_constant_p.
9838         (r0rel_constant_p): New.
9839         (nios2_print_operand_address): Handle r0rel_constant_p.
9840         (nios2_cdx_narrow_form_p): Likewise.
9841         * config/nios2/nios2.opt (mr0rel-sec=): New option.
9842         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
9843         (Nios II Options): Document -mr0rel-sec.
9844
9845 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9846
9847         * config/nios2/nios2.c: Include xregex.h.
9848         (nios2_gprel_sec_regex): New.
9849         (nios2_option_overide): Initialize it.  Don't allow GP-relative
9850         addressing with PIC.
9851         (nios2_small_section_name_p): Check for regex match.
9852         * config/nios2/nios2.opt (mgprel-sec=): New option.
9853         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
9854         (Nios II Options): Document -mgprel-sec.
9855
9856 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
9857
9858         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
9859
9860 2017-10-26  Tom de Vries  <tom@codesourcery.com>
9861
9862         PR tree-optimization/82707
9863         * gimple.c (gimple_copy): Fix unsharing of
9864         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
9865
9866 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
9867
9868         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
9869         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
9870         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
9871         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
9872         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
9873         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
9874         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
9875         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
9876         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
9877         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
9878         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
9879         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
9880         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
9881         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
9882         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
9883         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
9884         _mm512_mask_cmpunord_ps_mask): New intrinsics.
9885
9886 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9887
9888         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
9889         default to IBM.
9890         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
9891         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
9892         warning to rs6000.c.  Remove the Undocumented flag, since it has
9893         been documented.
9894         (-mabi=ibmlongdouble): Likewise.
9895         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
9896         already set, set the default format for long double.
9897         (rs6000_debug_reg_global): Print whether long double is IBM or
9898         IEEE.
9899         (rs6000_option_override_internal): Rework setting long double
9900         format.  Only warn if the user is changing the long double default
9901         and they did not use -Wno-psabi.
9902         * doc/invoke.texi (PowerPC options): Update the documentation for
9903         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
9904
9905 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9906             Alan Hayward  <alan.hayward@arm.com>
9907             David Sherwood  <david.sherwood@arm.com>
9908
9909         * rtl.h (wider_subreg_mode): New function.
9910         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
9911         rather than an unsigned int *.
9912         * ira-color.c (regno_max_ref_width): Replace with...
9913         (regno_max_ref_mode): ...this new variable.
9914         (coalesced_pseudo_reg_slot_compare): Update accordingly.
9915         Use wider_subreg_mode.
9916         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
9917         rather than an unsigned int *.
9918         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
9919         (process_alt_operands): Likewise.
9920         (invariant_p): Likewise.
9921         * lra-spills.c (assign_mem_slot): Likewise.
9922         (add_pseudo_to_slot): Likewise.
9923         * lra.c (collect_non_operand_hard_regs): Likewise.
9924         (add_regs_to_insn_regno_info): Likewise.
9925         * reload1.c (regno_max_ref_width): Replace with...
9926         (regno_max_ref_mode): ...this new variable.
9927         (reload): Update accordingly.  Update call to
9928         ira_sort_regnos_for_alter_reg.
9929         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
9930         (init_eliminable_invariants): Update to use regno_max_ref_mode.
9931         (scan_paradoxical_subregs): Likewise.
9932
9933 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9934
9935         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
9936         (aarch64_frame): Add emit_frame_chain boolean.
9937         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
9938         Move eh_return case to aarch64_layout_frame.
9939         (aarch64_layout_frame): Initialize emit_frame_chain.
9940         (aarch64_expand_prologue): Use emit_frame_chain.
9941
9942 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9943
9944         * config/aarch64/aarch64.c (aarch64_layout_frame):
9945         Ensure LR is always stored at the bottom of the callee-saves.
9946         Remove rarely used frame layout which saves callee-saves at top of
9947         frame, so the store of LR can be used as a valid probe in all cases.
9948
9949 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
9950
9951         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
9952         Improve unaligned TImode/TFmode base/offset split.
9953
9954 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9955             Alan Hayward  <alan.hayward@arm.com>
9956             David Sherwood  <david.sherwood@arm.com>
9957
9958         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
9959         * combine.c (find_single_use_1): Likewise.
9960         (expand_field_assignment): Likewise.
9961         (move_deaths): Likewise.
9962         * lra-constraints.c (simplify_operand_subreg): Likewise.
9963         (curr_insn_transform): Likewise.
9964         * lra.c (collect_non_operand_hard_regs): Likewise.
9965         (add_regs_to_insn_regno_info): Likewise.
9966         * rtlanal.c (reg_referenced_p): Likewise.
9967         (covers_regno_no_parallel_p): Likewise.
9968
9969 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9970
9971         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
9972         Don't print any bits outside the precision of the value.
9973         * wide-int.cc (test_printing): Add some new tests.
9974
9975 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9976
9977         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
9978         supports -xbrace_comment option.
9979         * configure: Regenerate.
9980         * config.in: Regenerate.
9981         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
9982         (ASM_CPU_SPEC): Use it.
9983
9984 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
9985
9986         * target.def (static_rtx_alignment): New hook.
9987         * targhooks.h (default_static_rtx_alignment): Declare.
9988         * targhooks.c (default_static_rtx_alignment): New function.
9989         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
9990         * doc/tm.texi: Regenerate.
9991         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
9992         instead of targetm.constant_alignment.  Remove call to
9993         set_mem_attributes.
9994         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
9995         (cris_preferred_mininum_alignment): New function, split out from...
9996         (cris_constant_alignment): ...here.
9997         (cris_static_rtx_alignment): New function.
9998         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
9999         split out from...
10000         (ix86_constant_alignment): ...here.
10001         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10002         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10003         (mmix_static_rtx_alignment): New function.
10004         * config/spu/spu.c (spu_static_rtx_alignment): New function.
10005         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10006
10007 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
10008
10009         PR target/81800
10010         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
10011         Add flag_trapping_math and flag_fp_int_builtin_inexact.
10012
10013 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
10014
10015         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
10016         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
10017         mark as a sign-extending load.
10018         (local_pic_load_u): Define.
10019
10020 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
10021
10022         PR middle-end/82062
10023         * fold-const.c (operand_equal_for_comparison_p): Also return true
10024         if ARG0 is a simple variant of ARG1 with narrower precision.
10025         (fold_ternary_loc): Always pass unstripped operands to the predicate.
10026
10027 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
10028
10029         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
10030         cost correctly.
10031         * i386.h (processor_costs): Add gather_static, gather_per_elt,
10032         scatter_static, scatter_per_elt.
10033         * x86-tune-costs.h: Add new cost entries.
10034
10035 2017-10-25  Richard Biener  <rguenther@suse.de>
10036
10037         * tree-ssa-sccvn.h (vn_eliminate): Declare.
10038         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
10039         class pass_fre): Move to ...
10040         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
10041         class pass_fre): ... here and adjust for statistics.
10042
10043 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
10044
10045         PR libstdc++/81706
10046         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
10047         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
10048         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
10049         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
10050         declarations.
10051
10052 2017-10-25  Richard Biener  <rguenther@suse.de>
10053
10054         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
10055         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
10056         eliminate_push_avail, eliminate_insert): Move inside...
10057         (class eliminate_dom_walker): ... this class in preparation
10058         of move.
10059         (fini_eliminate): Remove by merging with ...
10060         (eliminate): ... this function.  Adjust for class changes.
10061         (pass_pre::execute): Remove fini_eliminate call.
10062         (pass_fre::execute): Likewise.
10063
10064 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10065
10066         PR target/82460
10067         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
10068         (VPERMI2, VPERMI2I): New mode iterators.
10069         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
10070         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
10071         patterns.
10072         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
10073         mode iterator.  Remove 3 old define_insn patterns.
10074         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
10075         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
10076         VPERMI2 mode iterator, remove the other two expanders.
10077         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
10078         to use VPERMI2 mode iterator, add another alternative for vpermi2*
10079         instructions, remove the other two patterns.
10080         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
10081         mode iterator, remove the other two patterns.
10082         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
10083         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
10084         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
10085         and adjust argument order accordingly.
10086         (ix86_expand_vec_perm): Adjust caller.
10087         (expand_vec_perm_1): Likewise.
10088         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
10089         (expand_vec_perm_vpermt2_vpshub2): ... this.
10090         (ix86_expand_vec_perm_const_1): Adjust caller.
10091         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
10092
10093         PR target/82370
10094         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
10095         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
10096         (vec_shl_<mode>): Remove unused expander.
10097         (avx512bw_<shift_insn><mode>3): New define_insn.
10098         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
10099         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
10100
10101 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
10102
10103         PR c++/82466
10104         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
10105         description.
10106
10107 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10108
10109         PR rtl-optimization/82396
10110         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
10111         (autopref_multipass_init): Simplify initialization.
10112         (autopref_rank_data): Simplify sort order.
10113         * gcc/sched-int.h (autopref_multipass_data_): Remove
10114         multi_mem_insn_p, min_offset and max_offset.
10115
10116 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10117
10118         PR middle-end/60580
10119         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
10120         Check special value of flag_omit_frame_pointer.
10121         (aarch64_can_eliminate): Likewise.
10122         (aarch64_override_options_after_change_1): Simplify handling of
10123         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
10124
10125 2017-10-24  Richard Biener  <rguenther@suse.de>
10126
10127         PR tree-optimization/82697
10128         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
10129         zero for conditional load and unconditional store.
10130
10131 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10132
10133         * doc/install.texi: Document bootstrap-cet.
10134
10135 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10136
10137         PR target/82659
10138         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
10139         ENDBR instruction at function entrance if function is only
10140         called directly.
10141
10142 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10143
10144         PR target/82628
10145         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
10146         patterns to better describe from which operation the CF is computed.
10147         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
10148         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
10149         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
10150         is 0, use _0 suffixed expanders instead of emitting a comparison
10151         before it.
10152
10153 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
10154
10155         * config/i386/i386.md(*movsf_internal, *movdf_internal):
10156         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
10157
10158 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
10159
10160         PR middle-end/82569
10161         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
10162         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
10163         * loop-iv.c (iv_get_reaching_def): Likewise.
10164         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
10165         variable is promoted and the partition contains undefined values.
10166
10167 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10168
10169         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
10170         reflect reality.
10171         (nios2_address_cost): Define.
10172         (nios2_legitimize_address): Recognize (exp + constant) directly.
10173         (TARGET_ADDRESS_COST): Define.
10174
10175 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10176
10177         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
10178         (nios2_symbolic_memory_operand_p): Declare.
10179         (nios2_split_large_constant): Declare.
10180         (nios2_split_symbolic_memory_operand): Declare.
10181         * config/nios2/nios2.c: Adjust includes.
10182         (nios2_symbolic_constant_allowed): New.
10183         (nios2_symbolic_constant_p): New.
10184         (nios2_plus_symbolic_constant_p): New.
10185         (nios2_valid_addr_expr_p): Recognize addresses involving
10186         symbolic constants.
10187         (nios2_legitimate_address_p): Likewise, also LO_SUM.
10188         (nios2_symbolic_memory_operand_p): New.
10189         (nios2_large_constant_p): New.
10190         (nios2_split_large_constant): New.
10191         (nios2_split_plus_large_constant): New.
10192         (nios2_split_symbolic_memory_operand): New.
10193         (nios2_legitimize_address): Code refactoring.  Handle addresses
10194         involving symbolic constants.
10195         (nios2_emit_move_sequence): Likewise.
10196         (nios2_print_operand): Improve error output.
10197         (nios2_print_operand_address): Handle LO_SUM.
10198         (nios2_cdx_narrow_form_p): Likewise.
10199         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
10200         operands involving symbolic constants.
10201         (movhi_internal, movsi_internal): Likewise.
10202         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
10203         (extendhisi2, extendqi<mode>2): Likewise.
10204
10205 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10206
10207         * tree-pass.h (PROP_rtl_split_insns): Define.
10208         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
10209
10210 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10211
10212         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
10213
10214 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10215
10216         PR debug/82630
10217         * target.def (const_not_ok_for_debug_p): Default to
10218         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
10219         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
10220         * targhooks.c (default_const_not_ok_for_debug_p): New function.
10221         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
10222         which targetm.const_not_ok_for_debug_p returned true.
10223         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
10224         for UNSPECs.
10225         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
10226         Likewise.
10227         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
10228         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
10229         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
10230         if !base_term_p.
10231         (ix86_const_not_ok_for_debug_p): New function.
10232         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
10233         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
10234
10235 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
10236
10237         PR bootstrap/82610
10238         * system.h: Conditionally include "unique-ptr.h" if
10239         INCLUDE_UNIQUE_PTR is defined.
10240         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
10241         of defining INCLUDE_UNIQUE_PTR before including "system.h".
10242
10243 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
10244
10245         * config/rl78/rl78.md: New define_expand "subdi3".
10246
10247 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
10248
10249         PR target/82673
10250         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
10251         DF_REF_INSN if DF_REF_INSN_INFO is false.
10252
10253 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
10254
10255         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
10256         xmm_move instead of sse_move.
10257         (sse_store_index): New function.
10258         (ix86_register_move_cost): Be more sensible about mismatch stall;
10259         model AVX moves correctly; make difference between sse->integer and
10260         integer->sse.
10261         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
10262         moves; make difference between SSE and AVX.
10263         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
10264         and zmm_move. Increase size of sse load and store tables;
10265         add unaligned load and store tables; add ssemmx_to_integer.
10266         * x86-tune-costs.h: Update all entries according to real
10267         move latencies from Agner Fog's manual and chip documentation.
10268
10269 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10270
10271         PR target/82628
10272         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
10273         * config/i386/constraints.md (Wf): New constraint.
10274         * config/i386/i386.md (UNSPEC_SBB): New unspec.
10275         (cmp<dwi>_doubleword): Removed.
10276         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
10277         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
10278         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
10279         expand with cmp<dwi>_doubleword.  For LTU and GEU use
10280         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
10281
10282         * common.opt (gcolumn-info): Enable by default.
10283         * doc/invoke.texi (gcolumn-info): Document new default.
10284
10285 2017-10-23  Richard Biener  <rguenther@suse.de>
10286
10287         PR tree-optimization/82672
10288         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
10289         Fold the stmt if we propagated into it.
10290
10291 2017-10-23  Richard Biener  <rguenther@suse.de>
10292
10293         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
10294         (bitmap_remove_expr_from_set): ... this.  All callers call this
10295         for non-constant values.
10296         (bitmap_set_subtract): Rename to...
10297         (bitmap_set_subtract_expressions): ... this.  Adjust and
10298         optimize.
10299         (bitmap_set_contains_value): Remove superfluous check.
10300         (bitmap_set_replace_value): Inline into single caller ...
10301         (bitmap_value_replace_in_set): ... here and simplify.
10302         (dependent_clean): Merge into ...
10303         (clean): ... this using an overload.  Adjust.
10304         (prune_clobbered_mems): Adjust.
10305         (compute_antic_aux): Likewise.
10306         (compute_partial_antic_aux): Likewise.
10307
10308 2017-10-23  Richard Biener  <rguenther@suse.de>
10309
10310         PR tree-optimization/82129
10311         Revert
10312         2017-08-01  Richard Biener  <rguenther@suse.de>
10313
10314         PR tree-optimization/81181
10315         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10316         (compute_antic): ... end of iteration here.
10317
10318 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10319
10320         * target.def (starting_frame_offset): New hook.
10321         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
10322         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
10323         * doc/tm.texi.in: Regenerate.
10324         * hooks.h (hook_hwi_void_0): Declare.
10325         * hooks.c (hook_hwi_void_0): New function.
10326         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
10327         STARTING_FRAME_OFFSET.
10328         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
10329         * reload1.c (reload): Likewise.
10330         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
10331         instead of STARTING_FRAME_OFFSET.
10332         * function.c (try_fit_stack_local): Likewise.
10333         (assign_stack_local_1): Likewise
10334         (instantiate_virtual_regs): Likewise.
10335         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
10336         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
10337         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
10338         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
10339         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
10340         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
10341         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
10342         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
10343         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
10344         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
10345         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
10346         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
10347         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
10348         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
10349         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
10350         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
10351         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
10352         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
10353         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
10354         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
10355         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
10356         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
10357         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
10358         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
10359         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
10360         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
10361         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
10362         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
10363         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
10364         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
10365         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
10366         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
10367         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
10368         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
10369         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
10370         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
10371         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
10372         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
10373         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
10374         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
10375         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
10376         * config/avr/avr.c (avr_starting_frame_offset): Make static and
10377         return a HOST_WIDE_INT.
10378         (avr_builtin_setjmp_frame_value): Use it instead of
10379         STARTING_FRAME_OFFSET.
10380         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10381         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
10382         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
10383         New function.
10384         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10385         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
10386         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
10387         (TARGET_CONSTANT_ALIGNMENT): Redefine.
10388         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
10389         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
10390         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10391         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
10392         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
10393         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10394         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
10395         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
10396         New function.
10397         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10398         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
10399         * config/mips/mips.c (mips_compute_frame_info): Refer to
10400         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10401         (mips_starting_frame_offset): New function.
10402         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10403         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
10404         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
10405         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
10406         and return a HOST_WIDE_INT.
10407         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10408         (mmix_initial_elimination_offset): Refer to
10409         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10410         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
10411         * config/pa/pa.c (pa_starting_frame_offset): New function.
10412         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
10413         (pa_expand_prologue): Likewise.
10414         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10415         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
10416         !FRAME_GROWS_DOWNWARD handling to...
10417         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10418         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
10419         !FRAME_GROWS_DOWNWARD handling to...
10420         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10421         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
10422         !FRAME_GROWS_DOWNWARD handling to...
10423         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10424         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
10425         Redefine.
10426         (rs6000_starting_frame_offset): New function.
10427         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
10428         !FRAME_GROWS_DOWNWARD handling to...
10429         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10430         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
10431         !FRAME_GROWS_DOWNWARD handling to...
10432         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10433         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
10434         !FRAME_GROWS_DOWNWARD handling to...
10435         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10436         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
10437         (rs6000_starting_frame_offset): New function.
10438         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
10439         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
10440         * config/vax/vax.c (vax_starting_frame_offset): New function.
10441         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
10442         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10443         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
10444         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
10445         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10446         * system.h (STARTING_FRAME_OFFSET): Poison.
10447
10448 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10449
10450         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
10451         SCALAR_TYPE_MODE instead of TYPE_MODE.
10452
10453 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10454             Alan Hayward  <alan.hayward@arm.com>
10455             David Sherwood  <david.sherwood@arm.com>
10456
10457         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
10458
10459 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10460             Alan Hayward  <alan.hayward@arm.com>
10461             David Sherwood  <david.sherwood@arm.com>
10462
10463         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
10464
10465 2017-10-23  Richard Biener  <rguenther@suse.de>
10466
10467         PR tree-optimization/82129
10468         * tree-ssa-pre.c (bitmap_set_and): Remove.
10469         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
10470         canonicalizing expressions in the set to those with lowest
10471         ID rather than taking that from the first edge.
10472
10473 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10474
10475         * combine.c (rtx_equal_for_field_assignment_p): Use
10476         byte_lowpart_offset.
10477
10478 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10479             Alan Hayward  <alan.hayward@arm.com>
10480             David Sherwood  <david.sherwood@arm.com>
10481
10482         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
10483         to a SUBREG_PROMOTED_VAR.
10484
10485 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10486             Alan Hayward  <alan.hayward@arm.com>
10487             David Sherwood  <david.sherwood@arm.com>
10488
10489         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
10490         (expand_debug_source_expr): Likewise.
10491         * combine.c (combine_simplify_rtx): Likewise.
10492         * cse.c (fold_rtx): Likewise.
10493         * optabs.c (expand_float): Likewise.
10494         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10495         (simplify_binary_operation_1): Likewise.
10496
10497 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10498             Alan Hayward  <alan.hayward@arm.com>
10499             David Sherwood  <david.sherwood@arm.com>
10500
10501         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
10502         (record_promoted_value): Likewise.
10503         * expr.c (expand_expr_real_2): Likewise.
10504         * ree.c (update_reg_equal_equiv_notes): Likewise.
10505         (combine_set_extension): Likewise.
10506         * rtlanal.c (low_bitmask_len): Likewise.
10507         * simplify-rtx.c (neg_const_int): Likewise.
10508         (simplify_binary_operation_1): Likewise.
10509
10510 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10511             Alan Hayward  <alan.hayward@arm.com>
10512             David Sherwood  <david.sherwood@arm.com>
10513
10514         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
10515         * regcprop.c (maybe_mode_change): Likewise.
10516         * reload1.c (alter_reg): Likewise.
10517
10518 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10519
10520         * inchash.h (inchash::hash::add_wide_int): New function.
10521         * lto-streamer-out.c (hash_tree): Use it.
10522
10523 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10524
10525         * inchash.h (inchash::hash::add_wide_int): Rename to...
10526         (inchash::hash::add_hwi): ...this.
10527         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
10528         (polymorphic_call_target_hasher::hash): Likewise.
10529         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
10530         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
10531         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10532         * lto-streamer-out.c (hash_tree): Likewise.
10533         * optc-save-gen.awk: Likewise.
10534         * tree.c (add_expr): Likewise.
10535
10536 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10537
10538         PR target/52451
10539         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
10540         for ordered inequality comparisons even with TARGET_IEEE_FP.
10541
10542 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10543
10544         PR target/82628
10545         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
10546         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10547         Expand with cmp<dwi>_doubleword.
10548
10549 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10550
10551         * extend.texi: Add x86 specific to 'nocf_check' attribute.
10552         List CET intrinsics.
10553         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
10554         specific to -fcf-protection option.
10555
10556 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10557
10558         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
10559         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
10560         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
10561         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
10562         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
10563         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
10564         (extra_objs): Add cet.o for Linux/x86 targets.
10565         (tmake_file): Add i386/t-cet for Linux/x86 targets.
10566         * config/i386/cet.c: New file.
10567         * config/i386/cetintrin.h: Likewise.
10568         * config/i386/t-cet: Likewise.
10569         * config/i386/cpuid.h (bit_SHSTK): New.
10570         (bit_IBT): Likewise.
10571         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
10572         pass IBT and SHSTK bits.
10573         * config/i386/i386-builtin-types.def
10574         (VOID_FTYPE_UNSIGNED_PVOID): New.
10575         (VOID_FTYPE_UINT64_PVOID): Likewise.
10576         * config/i386/i386-builtin.def: Add CET intrinsics.
10577         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10578         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
10579         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
10580         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
10581         prototype.
10582         * config/i386/i386.c (rest_of_insert_endbranch): New.
10583         (pass_data_insert_endbranch): Likewise.
10584         (pass_insert_endbranch): Likewise.
10585         (make_pass_insert_endbranch): Likewise.
10586         (ix86_notrack_prefixed_insn_p): Likewise.
10587         (ix86_target_string): Add -mibt, -mshstk flags.
10588         (ix86_option_override_internal): Add flag_cf_protection
10589         processing.
10590         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
10591         (ix86_print_operand): Add 'notrack' prefix output.
10592         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
10593         (ix86_expand_builtin): Expand CET intrinsics.
10594         (x86_output_mi_thunk): Add 'endbranch' instruction.
10595         * config/i386/i386.h (TARGET_IBT): New.
10596         (TARGET_IBT_P): Likewise.
10597         (TARGET_SHSTK): Likewise.
10598         (TARGET_SHSTK_P): Likewise.
10599         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
10600         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
10601         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
10602         (builtin_setjmp_setup): New pattern.
10603         (builtin_longjmp): Likewise.
10604         (rdssp<mode>): Likewise.
10605         (incssp<mode>): Likewise.
10606         (saveprevssp): Likewise.
10607         (rstorssp): Likewise.
10608         (wrss<mode>): Likewise.
10609         (wruss<mode>): Likewise.
10610         (setssbsy): Likewise.
10611         (clrssbsy): Likewise.
10612         (nop_endbr): Likewise.
10613         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
10614         options.
10615         * config/i386/immintrin.h: Include <cetintrin.h>.
10616         * config/i386/linux-common.h
10617         (file_end_indicate_exec_stack_and_cet): New prototype.
10618         (TARGET_ASM_FILE_END): New.
10619
10620 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10621
10622         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
10623         latencies instead of having separate table; make difference between
10624         integer and float costs.
10625         * i386.h (processor_costs): Remove scalar_stmt_cost,
10626         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
10627         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
10628         vec_store_cost.
10629         * x86-tune-costs.h: Remove entries which has been removed in
10630         procesor_costs from all tables; make cond_taken_branch_cost
10631         and cond_not_taken_branch_cost COST_N_INSNS based.
10632
10633 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10634
10635         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
10636
10637 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10638
10639         * config/i386/i386.md (isa): Remove fma_avx512f.
10640         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
10641         <avx512>_fmadd_<mode>_mask3<round_name>,
10642         <avx512>_fmsub_<mode>_mask<round_name>,
10643         <avx512>_fmsub_<mode>_mask3<round_name>,
10644         <avx512>_fnmadd_<mode>_mask<round_name>,
10645         <avx512>_fnmadd_<mode>_mask3<round_name>,
10646         <avx512>_fnmsub_<mode>_mask<round_name>,
10647         <avx512>_fnmsub_<mode>_mask3<round_name>,
10648         <avx512>_fmaddsub_<mode>_mask<round_name>,
10649         <avx512>_fmaddsub_<mode>_mask3<round_name>,
10650         <avx512>_fmsubadd_<mode>_mask<round_name>,
10651         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
10652         (*vec_widen_umult_even_v16si<mask_name>,
10653         *vec_widen_smult_even_v16si<mask_name>): Likewise.
10654         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
10655
10656 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10657
10658         * extend.texi: Add 'nocf_check' documentation.
10659         * gimple.texi: Add second parameter to
10660         gimple_build_call_from_tree.
10661         * invoke.texi: Add -fcf-protection documentation.
10662         * rtl.texi: Add REG_CALL_NOTRACK documenation.
10663
10664 2017-10-20  Richard Biener  <rguenther@suse.de>
10665
10666         PR tree-optimization/82473
10667         * tree-vect-loop.c (vectorizable_reduction): Properly get at
10668         the largest input type.
10669
10670 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10671
10672         * c-attribs.c (handle_nocf_check_attribute): New function.
10673         (c_common_attribute_table): Add 'nocf_check' handling.
10674         * gimple-parser.c: Add second argument NULL to
10675         gimple_build_call_from_tree.
10676         * attrib.c (comp_type_attributes): Check nocf_check attribute.
10677         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
10678         call insn.
10679         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
10680         * common.opt: Add fcf-protection flag.
10681         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
10682         * flag-types.h: Add enum cf_protection_level.
10683         * gimple.c (gimple_build_call_from_tree): Add second parameter.
10684         Add 'nocf_check' attribute propagation to gimple call.
10685         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
10686         (gimple_build_call_from_tree): Update prototype.
10687         (gimple_call_nocf_check_p): New function.
10688         (gimple_call_set_nocf_check): Likewise.
10689         * gimplify.c: Add second argument to gimple_build_call_from_tree.
10690         * ipa-icf.c: Add nocf_check attribute in statement hash.
10691         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
10692         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
10693         * toplev.c (process_options): Add flag_cf_protection handling.
10694
10695 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10696
10697         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
10698
10699 2017-10-20  Richard Biener  <rguenther@suse.de>
10700
10701         PR tree-optimization/82603
10702         * tree-if-conv.c (predicate_mem_writes): Make sure to only
10703         remove false predicated stores.
10704
10705 2017-10-20  Richard Biener  <rguenther@suse.de>
10706
10707         * graphite-isl-ast-to-gimple.c
10708         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
10709         Remove return value and simplify, dump copied stmt after lhs
10710         adjustment.
10711         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
10712         Reduce dump verbosity.
10713         (gsi_insert_earliest): Likewise.
10714         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
10715         * graphite.c (print_global_statistics): Adjust dumping.
10716         (print_graphite_scop_statistics): Likewise.
10717         (print_graphite_statistics): Do not dump loops here.
10718         (graphite_transform_loops): But here.
10719
10720 2017-10-20  Nicolas Roche  <roche@adacore.com>
10721
10722         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
10723         * configure: Regenerate.
10724
10725 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10726
10727         PR target/82158
10728         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
10729         functions when optimizing replace GIMPLE_RETURN stmts with
10730         calls to __builtin_unreachable ().
10731
10732         PR sanitizer/82595
10733         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
10734         for -fsanitize=thread link of executables.
10735         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
10736         link of executables.
10737
10738         PR target/82370
10739         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
10740         New mode iterators.
10741         (<shift_insn><mode>3<mask_name>): Change the last of the 3
10742         define_insns for logical vector shifts to use VI248_AVX512BW
10743         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
10744         condition, useless isa and prefix attributes.  Change the first
10745         2 of these define_insns to ...
10746         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
10747         define_insn for avx512vl.
10748         (<shift_insn><mode>3): ... and this, new define_insn without
10749         masking for non-avx512vl.
10750
10751         PR target/82370
10752         * config/i386/sse.md (*andnot<mode>3,
10753         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
10754         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
10755         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
10756         not applied use empty suffix even for TARGET_AVX512VL.
10757         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
10758         is applied, supply evex,evex or evex,evex,evex instead of just
10759         evex.
10760
10761 2017-10-20  Julia Koval  <julia.koval@intel.com>
10762
10763         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
10764         (OPTION_MASK_ISA_GFNI_UNSET): New.
10765         (ix86_handle_option): Handle OPT_mgfni.
10766         * config/i386/cpuid.h (bit_GFNI): New.
10767         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
10768         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
10769         * config/i386/i386.c (ix86_target_string): Add -mgfni.
10770         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
10771         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
10772         * config/i386/i386.opt: Add mgfni.
10773
10774 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
10775
10776         * config/msp430/msp430.c (msp430_option_override): Disable
10777         -fdelete-null-pointer-checks.
10778         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
10779
10780 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10781
10782         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
10783         of x87 and SSE instructions.
10784
10785 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10786
10787         * asan.c (create_cond_insert_point): Do not update edge count.
10788         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
10789         (afdo_propagate_circuit): Likewise.
10790         (afdo_calculate_branch_prob): Likewise.
10791         (afdo_annotate_cfg): Likewise.
10792         * basic-block.h (struct edge_def): Remove count.
10793         (edge_def::count): New accessor.
10794         * bb-reorder.c (rotate_loop): Update.
10795         (find_traces_1_round): Update.
10796         (connect_traces): Update.
10797         (sanitize_hot_paths): Update.
10798         * cfg.c (unchecked_make_edge): Update.
10799         (make_single_succ_edge): Update.
10800         (check_bb_profile): Update.
10801         (dump_edge_info): Update.
10802         (update_bb_profile_for_threading): Update.
10803         (scale_bbs_frequencies_int): Update.
10804         (scale_bbs_frequencies_gcov_type): Update.
10805         (scale_bbs_frequencies_profile_count): Update.
10806         (scale_bbs_frequencies): Update.
10807         * cfganal.c (connect_infinite_loops_to_exit): Update.
10808         * cfgbuild.c (compute_outgoing_frequencies): Update.
10809         (find_many_sub_basic_blocks): Update.
10810         * cfgcleanup.c (try_forward_edges): Update.
10811         (try_crossjump_to_edge): Update
10812         * cfgexpand.c (expand_gimple_cond): Update
10813         (expand_gimple_tailcall): Update
10814         (construct_exit_block): Update
10815         * cfghooks.c (verify_flow_info): Update
10816         (redirect_edge_succ_nodup): Update
10817         (split_edge): Update
10818         (make_forwarder_block): Update
10819         (duplicate_block): Update
10820         (account_profile_record): Update
10821         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
10822         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
10823         * cfgloopmanip.c (scale_loop_profile): Update.
10824         (loopify): Update.
10825         (lv_adjust_loop_entry_edge): Update.
10826         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10827         (force_nonfallthru_and_redirect): Update.
10828         (purge_dead_edges): Update.
10829         (rtl_flow_call_edges_add): Update.
10830         * cgraphunit.c (init_lowered_empty_function): Update.
10831         (cgraph_node::expand_thunk): Update.
10832         * gimple-pretty-print.c (dump_probability): Update.
10833         (dump_edge_probability): Update.
10834         * gimple-ssa-isolate-paths.c (isolate_path): Update.
10835         * haifa-sched.c (sched_create_recovery_edges): Update.
10836         * hsa-gen.c (convert_switch_statements): Update.
10837         * ifcvt.c (dead_or_predicable): Update.
10838         * ipa-inline-transform.c (inline_transform): Update.
10839         * ipa-split.c (split_function): Update.
10840         * ipa-utils.c (ipa_merge_profiles): Update.
10841         * loop-doloop.c (add_test): Update.
10842         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
10843         * lto-streamer-in.c (input_cfg): Update.
10844         (input_function): Update.
10845         * lto-streamer-out.c (output_cfg): Update.
10846         * modulo-sched.c (sms_schedule): Update.
10847         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10848         * predict.c (maybe_hot_edge_p): Update.
10849         (unlikely_executed_edge_p): Update.
10850         (probably_never_executed_edge_p): Update.
10851         (dump_prediction): Update.
10852         (drop_profile): Update.
10853         (propagate_unlikely_bbs_forward): Update.
10854         (determine_unlikely_bbs): Update.
10855         (force_edge_cold): Update.
10856         * profile.c (compute_branch_probabilities): Update.
10857         * reg-stack.c (better_edge): Update.
10858         * shrink-wrap.c (handle_simple_exit): Update.
10859         * tracer.c (better_p): Update.
10860         * trans-mem.c (expand_transaction): Update.
10861         (split_bb_make_tm_edge): Update.
10862         * tree-call-cdce.c: Update.
10863         * tree-cfg.c (gimple_find_sub_bbs): Update.
10864         (gimple_split_edge): Update.
10865         (gimple_duplicate_sese_region): Update.
10866         (gimple_duplicate_sese_tail): Update.
10867         (gimple_flow_call_edges_add): Update.
10868         (insert_cond_bb): Update.
10869         (execute_fixup_cfg): Update.
10870         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
10871         * tree-complex.c (expand_complex_div_wide): Update.
10872         * tree-eh.c (lower_resx): Update.
10873         (unsplit_eh): Update.
10874         (cleanup_empty_eh_move_lp): Update.
10875         * tree-inline.c (copy_edges_for_bb): Update.
10876         (freqs_to_counts): Update.
10877         (copy_cfg_body): Update.
10878         * tree-ssa-dce.c (remove_dead_stmt): Update.
10879         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10880         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
10881         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
10882         (unloop_loops): Update.
10883         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10884         * tree-ssa-loop-split.c (connect_loops): Update.
10885         (split_loop): Update.
10886         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
10887         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
10888         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
10889         * tree-ssa-reassoc.c (branch_fixup): Update.
10890         * tree-ssa-tail-merge.c (replace_block_by): Update.
10891         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
10892         (compute_path_counts): Update.
10893         (update_profile): Update.
10894         (recompute_probabilities): Update.
10895         (update_joiner_offpath_counts): Update.
10896         (estimated_freqs_path): Update.
10897         (freqs_to_counts_path): Update.
10898         (clear_counts_path): Update.
10899         (ssa_fix_duplicate_block_edges): Update.
10900         (duplicate_thread_path): Update.
10901         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
10902         (case_bit_test_cmp): Update.
10903         (collect_switch_conv_info): Update.
10904         (gen_inbound_check): Update.
10905         (do_jump_if_equal): Update.
10906         (emit_cmp_and_jump_insns): Update.
10907         * tree-tailcall.c (decrease_profile): Update.
10908         (eliminate_tail_call): Update.
10909         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10910         (vect_do_peeling): Update.
10911         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10912         * ubsan.c (ubsan_expand_null_ifn): Update.
10913         (ubsan_expand_ptr_ifn): Update.
10914         * value-prof.c (gimple_divmod_fixed_value): Update.
10915         (gimple_mod_pow2): Update.
10916         (gimple_mod_subtract): Update.
10917         (gimple_ic): Update.
10918         (gimple_stringop_fixed_value): Update.
10919
10920 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10921
10922         PR target/82618
10923         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
10924
10925 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
10926
10927         PR rtl-optimization/82395
10928         * ira-color.c (allocno_priority_compare_func): Fix comparison step
10929         based on non_spilled_static_chain_regno_p.
10930
10931 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
10932
10933         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
10934         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
10935         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
10936
10937 2017-10-19  Martin Sebor  <msebor@redhat.com>
10938
10939         PR tree-optimization/82596
10940         * tree.c (array_at_struct_end_p): Handle STRING_CST.
10941
10942 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10943
10944         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
10945         (get_mem_refs_of_builtin_call): Likewise.
10946         * builtins.c (expand_builtin_apply): Adjust call to
10947         allocate_dynamic_stack_space.
10948         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
10949         the third argument to allocate_dynamic_stack_space, otherwise -1.
10950         (expand_builtin): Deal with all alloca variants.
10951         (is_inexpensive_builtin): Likewise.
10952         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
10953         * calls.c (special_function_p): Deal with all alloca variants.
10954         (initialize_argument_information): Adjust call to
10955         allocate_dynamic_stack_space.
10956         (expand_call): Likewise.
10957         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
10958         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
10959         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
10960         use it for the stack usage computation.
10961         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
10962         * function.c (gimplify_parameters): Call build_alloca_call_expr.
10963         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
10964         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
10965         (in_loop_p): Remove first argument and useless check.
10966         (pass_walloca::execute): Remove useless test and adjust call to above.
10967         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
10968         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
10969         (gimplify_call_expr): Deal with all alloca variants.
10970         * hsa-gen.c (gen_hsa_alloca): Likewise.
10971         (gen_hsa_insns_for_call): Likewise.
10972         * ipa-pure-const.c (special_builtin_state): Likewise.
10973         * tree-chkp.c (chkp_build_returned_bound): Likewise.
10974         * tree-object-size.c (alloc_object_size): Likewise.
10975         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
10976         (call_may_clobber_ref_p_1): Likewise.
10977         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
10978         (ccp_fold_stmt): Likewise.
10979         (optimize_stack_restore): Likewise.
10980         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10981         (mark_all_reaching_defs_necessary_1): Likewise.
10982         (propagate_necessity): Likewise.
10983         (eliminate_unnecessary_stmts): Likewise.
10984         * tree.c (build_common_builtin_nodes): Build
10985         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
10986         (build_alloca_call_expr): New function.
10987         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
10988         (CASE_BUILT_IN_ALLOCA): Likewise.
10989         (build_alloca_call_expr): Declare.
10990         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
10991
10992 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
10993
10994         PR debug/82509
10995         * dwarf2out.c (new_die_raw): New static inline function.
10996         (new_die): Use it to create the DIE.
10997         (add_AT_external_die_ref): Likewise.
10998         (clone_die): Likewise.
10999         (clone_as_declaration): Likewise.
11000         (dwarf2out_vms_debug_main_pointer): Likewise.
11001         (base_type_die): Likewise.  Remove early return for corner cases.
11002         Do not call add_pubtype on the DIE here.
11003         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
11004         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
11005         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
11006         native order exists for base types, attach the DIE manually and call
11007         add_pubtype on it.  Do not equate a reverse order DIE to the type.
11008
11009 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
11010
11011         * config/arm/arm.c (align_ok_ldrd_strd): New function.
11012         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
11013         the mem into it.
11014         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
11015
11016 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
11017
11018         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
11019         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
11020         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
11021         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
11022         * opts.c (sanitizer_opts): Add builtin.
11023         * ubsan.c (instrument_builtin): New function.
11024         (pass_ubsan::execute): Call it.
11025         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
11026         * doc/invoke.texi: Document -fsanitize=builtin.
11027
11028         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
11029         builtins, store max (log2 (align), 0) into uchar field instead of
11030         align into uptr field.
11031         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
11032         store uchar 0 field instead of uptr 0 field.
11033         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
11034         instead of passing one address of struct with 2 locations pass
11035         two addresses of structs with 1 location each.
11036         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
11037         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
11038         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
11039         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
11040         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
11041         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
11042         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
11043         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
11044
11045 2017-10-19  Martin Liska  <mliska@suse.cz>
11046
11047         PR driver/81829
11048         * file-find.c (remove_prefix): Remove.
11049         * file-find.h (remove_prefix): Likewise.
11050         * gcc-ar.c: Remove smartness of lookup.
11051
11052 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
11053
11054         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
11055         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
11056         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
11057
11058 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
11059
11060         PR target/82580
11061         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
11062         (setcc + and to xor + setcc): New peephole2.
11063
11064 2017-10-19  Tom de Vries  <tom@codesourcery.com>
11065
11066         * doc/sourcebuild.texi (Test Directives, Variants of
11067         dg-require-support): Add dg-require-stack-size.
11068
11069 2017-10-19  Martin Liska  <mliska@suse.cz>
11070
11071         PR sanitizer/82517
11072         * gimplify.c (gimplify_decl_expr): Do not instrument variables
11073         that have a large alignment.
11074         (gimplify_target_expr): Likewise.
11075
11076 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
11077
11078         PR rtl-optimization/82602
11079         * ira.c (rtx_moveable_p): Return false for volatile asm.
11080
11081 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
11082
11083         PR target/82580
11084         * config/i386/i386-modes.def (CCGZ): New CC mode.
11085         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
11086         * config/i386/predicates.md (ix86_comparison_operator):
11087         Handle CCGZmode.
11088         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
11089         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
11090         with double-word subtraction.
11091         (put_condition_code): Handle CCGZmode.
11092
11093 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
11094
11095         * wide-int.cc (debug (const wide_int &)): New.
11096         (debug (const wide_int *)): New.
11097         (debug (const widest_int &)): New.
11098         (debug (const widest_int *)): New.
11099
11100 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
11101
11102         PR middle-end/82556
11103         * lra-constraints.c (curr_insn_transform): Use non-input operand
11104         instead of output one for matched reload.
11105
11106 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11107
11108         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
11109         (tree-ssa-loop-ivopts.h): New header file.
11110         (struct builtin_info): New fields.
11111         (classify_builtin_1): Compute and record base and offset parts for
11112         memset builtin partition by calling strip_offset.
11113         (offset_cmp, fuse_memset_builtins): New functions.
11114         (finalize_partitions): Fuse adjacent memset partitions by calling
11115         above function.
11116         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
11117         Expose the interface.
11118         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
11119
11120 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11121
11122         PR tree-optimization/82574
11123         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
11124         that data reference must be executed exactly once per iteration
11125         against the outermost loop in nest.
11126         (classify_partition): Update call to above function.
11127
11128 2017-10-18  Richard Biener  <rguenther@suse.de>
11129
11130         PR tree-optimization/82591
11131         * graphite.c (graphite_transform_loops): Move code gen message
11132         printing ...
11133         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11134         Here.  Handle scop_to_isl_ast failing.
11135         (scop_to_isl_ast): Limit the number of ISL operations.
11136
11137 2017-10-18  Richard Biener  <rguenther@suse.de>
11138
11139         * graphite-isl-ast-to-gimple.c
11140         (translate_isl_ast_to_gimple::set_rename): Simplify.
11141         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
11142         (graphite_copy_stmts_from_block): ... here.
11143         (copy_bb_and_scalar_dependences): Simplify.
11144         (add_parameters_to_ivs_params): Canonicalize.
11145         (generate_entry_out_of_ssa_copies): Simplify.
11146         * graphite-sese-to-poly.c (extract_affine_name): Simplify
11147         by passing in ISL dimension.
11148         (parameter_index_in_region_1): Rename to ...
11149         (parameter_index_in_region): ... this.
11150         (extract_affine): Adjust assert, pass down parameter index.
11151         (add_param_constraints): Use range-info when available.
11152         (build_scop_context): Adjust.
11153         * sese.c (new_sese_info): Adjust.
11154         (free_sese_info): Likewise.
11155         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
11156         Remove unused typedefs.
11157         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
11158
11159 2017-10-18  Martin Liska  <mliska@suse.cz>
11160
11161         * combine.c (simplify_compare_const): Add gcc_fallthrough.
11162
11163 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11164
11165         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
11166         (s390_sched_init): Do not reset s390_sched_state if we entered the
11167         current basic block via a fallthru edge and all others are unlikely.
11168
11169 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11170
11171         * config/s390/s390.c (NUM_SIDES): New variable.
11172         (LONGRUNNING_THRESHOLD): New variable.
11173         (LATENCY_FACTOR): New variable.
11174         (s390_sched_score): Decrease score for long-running instructions on
11175         wrong side.
11176         (s390_sched_variable_issue): Perform bookkeeping for long-running
11177         instructions.
11178
11179 2017-10-18  Richard Biener  <rguenther@suse.de>
11180
11181         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11182         Simplify with removal of the parameter rename map.
11183         (set_rename): Likewise.
11184         (should_copy_to_new_region): Likewise.
11185         (graphite_copy_stmts_from_block): Likewise.
11186         (copy_bb_and_scalar_dependences): Remove initialization of
11187         unused copied_bb_map.
11188         (copy_def): Remove.
11189         (copy_internal_parameters): Likewise.
11190         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
11191         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
11192         Use INTEGRAL_TYPE_P.
11193         (parameter_index_in_region_1): Rename to ...
11194         (assign_parameter_index_in_region): ... this.  Assert we have
11195         a parameter we handle.
11196         (scan_tree_for_params): Adjust.
11197         * sese.h (parameter_rename_map_t): Remove.
11198         (struct sese_info_t): Remove unused parameter_rename_map and
11199         copied_bb_map members.
11200         * sese.c (new_sese_info): Adjust.
11201         (free_sese_info): Likewise.
11202
11203 2017-10-18  Martin Liska  <mliska@suse.cz>
11204
11205         PR sanitizer/82545
11206         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
11207         on an abnormal edge.
11208
11209 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11210
11211         * doc/invoke.texi (ffunction-sections and fdata-sections):
11212         Update.
11213
11214 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11215
11216         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
11217         the use statement can throw internally.
11218
11219 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11220
11221         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
11222         any RTX present on the RHS of a SET.
11223         * compare-elim.c (try_eliminate_compare): Restore comment.
11224
11225 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11226
11227         * langhooks.h (struct lang_hooks): Document that tree_size langhook
11228         may be also called on tcc_type nodes.
11229         * langhooks.c (lhd_tree_size): Likewise.
11230
11231 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
11232
11233         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
11234         format_warning_at_substring.
11235         (maybe_warn): Convert source_range * param to a location_t.  Pass
11236         UNKNOWN_LOCATION rather than NULL to fmtwarn.
11237         (format_directive): Remove code to extract source_ranges and
11238         source_range * in favor of just a location_t.
11239         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
11240         fmtwarn.
11241         * substring-locations.c (format_warning_va): Convert
11242         source_range * param to a location_t.
11243         (format_warning_at_substring): Likewise.
11244         * substring-locations.h (format_warning_va): Likewise.
11245         (format_warning_at_substring): Likewise.
11246
11247 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
11248
11249         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
11250         vec_scatter_store
11251         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
11252         and scatter/gather ops.
11253
11254         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
11255         vec_gather_load and vec_scatter_store.
11256         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
11257         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
11258         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
11259         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
11260         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
11261         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
11262
11263 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
11264
11265         * reg-stack.c (compare_for_stack_reg): Add bool argument.
11266         Detect FTST instruction and handle its register pops.  Only pop
11267         second operand if can_pop_second_op is true.
11268         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
11269         set can_pop_second_op to false in the compare_for_stack_reg call.
11270
11271         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
11272         output_fp_compare for stack register operands.
11273         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
11274         instructions here.  Do not emit stack register pops here.  Assert
11275         that FCOMPP pops next to top stack register.  Rewrite function.
11276
11277 2017-10-17  Nathan Sidwell  <nathan@acm.org>
11278
11279         PR middle-end/82577
11280         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
11281         use DECL_ASSEMBLER_NAME_RAW.
11282
11283         PR middle-end/82546
11284         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
11285         TYPE nodes.
11286
11287 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
11288             Wilco Dijkstra <wilco.dijkstra@arm.com>
11289
11290         * builtins.c (expand_builtin_update_setjmp_buf): Add a
11291         converstion to Pmode from the buf_addr.
11292
11293 2017-10-17  Richard Biener  <rguenther@suse.de>
11294
11295         * graphite-dependences.c (scop_get_reads_and_writes): Change
11296         output parameters to references.
11297
11298 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
11299
11300         PR 71026/tree-optimization
11301         * fold-const.c (distribute_real_division): Removed.
11302         (fold_binary_loc): Remove calls to distribute_real_divison.
11303
11304 2017-10-17  Richard Biener  <rguenther@suse.de>
11305
11306         * graphite-scop-detection.c
11307         (scop_detection::stmt_has_simple_data_refs_p): Always use
11308         the full nest as region.
11309         (try_generate_gimple_bb): Likewise.
11310         * sese.c (scalar_evolution_in_region): Simplify now that
11311         SCEV can handle instantiation in regions.
11312         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
11313         in the non-loop part of a function if requested.
11314
11315 2017-10-17  Richard Biener  <rguenther@suse.de>
11316
11317         PR tree-optimization/82563
11318         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
11319         New function.
11320         (graphite_regenerate_ast_isl): Call it.
11321         * graphite-scop-detection.c (build_scops): Remove entry edge split.
11322
11323 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11324
11325         PR tree-optimization/82549
11326         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
11327         Formatting fixes.  Instead of calling make_bit_field_ref with negative
11328         bitpos return 0.
11329
11330 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
11331
11332         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
11333         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
11334         _mm_maskz_reduce_ss): New.
11335         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
11336         __builtin_ia32_reducess_mask): Ditto..
11337         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
11338         * config/i386/sse.md (reduces<mode>): Renamed to ...
11339         (reduces<mode><mask_scalar_name>): ... this.
11340         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
11341         Changed to ...
11342         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
11343         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
11344
11345 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
11346
11347         * Makefile.in (OBJS): Add unique-ptr-tests.o.
11348         * selftest-run-tests.c (selftest::run_tests): Call
11349         selftest::unique_ptr_tests_cc_tests.
11350         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
11351         * unique-ptr-tests.cc: New file.
11352
11353 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
11354
11355         PR sanitizer/82353
11356         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11357         locations.
11358         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11359         (make_hard_regno_born, make_hard_regno_dead): Update
11360         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
11361
11362 2017-10-16  Jeff Law  <law@redhat.com>
11363
11364         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11365
11366 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
11367
11368         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
11369
11370 2017-10-16  Olivier Hainque  <hainque@adacore.com>
11371
11372         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
11373         with_cpu if we were configured for an e500v2 target cpu name.
11374
11375 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11376
11377         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
11378         * doc/invoke.texi: Document +nodsp as a valid extension for
11379         -mcpu=cortex-m33.
11380
11381 2017-10-16  Martin Liska  <mliska@suse.cz>
11382
11383         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
11384         (test_set_range): Likewise.
11385         (test_range_functions): Rename to ...
11386         (test_bit_in_range): ... this.
11387         (sbitmap_c_tests): Add new test.
11388
11389 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11390
11391         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
11392         New.
11393         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
11394         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
11395
11396 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11397
11398         * config/aarch64/aarch64-builtins.c
11399         (aarch64_types_quadopu_lane_qualifiers): New.
11400         (TYPES_QUADOPU_LANE): New.
11401         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
11402         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
11403         (aarch64_<sur>dot_laneq<vsi2qi>): New.
11404         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
11405         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
11406         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
11407         (Vdottype, DOTPROD): New.
11408         (sur): Add SDOT and UDOT.
11409
11410 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11411
11412         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
11413         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
11414         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
11415         Add TARGET_DOTPROD.
11416         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
11417         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
11418         Enable TARGET_DOTPROD.
11419         (cortex-a75.cortex-a55): Likewise.
11420         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
11421
11422 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11423
11424         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
11425         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
11426         New.
11427         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
11428         New.
11429         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
11430         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
11431         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
11432         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
11433         * config/arm/types.md (neon_dot, neon_dot_q): New.
11434         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
11435
11436 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11437
11438         * config/arm/arm.h (TARGET_DOTPROD): New.
11439         * config/arm/arm.c (arm_arch_dotprod): New.
11440         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
11441         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
11442         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
11443         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
11444         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
11445         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
11446         * doc/invoke.texi (armv8.2-a): Document dotprod
11447
11448 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11449
11450         * i386.c (ix86_vec_cost): New function.
11451         (ix86_rtx_costs): Handle vector operations better.
11452         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
11453         * x86-tune-costs.h: Add new costs to all tables.
11454
11455 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11456
11457         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
11458         operations.
11459         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
11460         divsd, sqrtss and sqrtsd
11461         * x86-tune-costs.h: Add new entries to all costs.
11462         (znver1_cost): Fix to match real instruction latencies.
11463
11464 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11465             Michael Collison <michael.collison@arm.com>
11466
11467         * compare-elim.c: Include emit-rtl.h.
11468         (can_merge_compare_into_arith): New function.
11469         (try_validate_parallel): Likewise.
11470         (try_merge_compare): Likewise.
11471         (try_eliminate_compare): Call the above when no previous clobber
11472         is available.
11473         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
11474         dataflow problems.
11475
11476 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR middle-end/62263
11479         PR middle-end/82498
11480         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
11481         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
11482
11483         PR middle-end/62263
11484         PR middle-end/82498
11485         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
11486         to be any operand_equal_p operands.  For & (B - 1) require
11487         B to be power of 2.  Recognize
11488         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
11489
11490 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11491
11492         PR bootstrap/82553
11493         * optabs.c (expand_memory_blockage): Fix call of
11494         targetm.have_memory_blockage.
11495
11496 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11497
11498         PR bootstrap/82548
11499         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
11500         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
11501         objects to extra_objs instead of overwriting it.
11502
11503 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11504
11505         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
11506         Use any_fp_register_operand as operand[3] predicate.  Simplify
11507         equality test for operands[2] and operands[4] memory location.
11508         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
11509         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
11510         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
11511         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
11512         any_fp_register_operand as operand[1] predicate.  Simplify
11513         equality test for operands[0] and operands[3] memory location.
11514         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
11515         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
11516         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
11517
11518 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11519
11520         * target-insns.def: Add memory_blockage.
11521         * optabs.c (expand_memory_blockage): New function.
11522         (expand_asm_memory_barrier): Rename ...
11523         (expand_asm_memory_blockage): ... to this.
11524         (expand_mem_thread_fence): Call expand_memory_blockage
11525         instead of expand_asm_memory_barrier.
11526         (expand_mem_singnal_fence): Ditto.
11527         (expand_atomic_load): Ditto.
11528         (expand_atomic_store): Ditto.
11529         * doc/md.texi (Standard Pattern Names For Generation):
11530         Document memory_blockage instruction pattern.
11531
11532 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
11533
11534         * config/rl78/rl78.c (rl78_emit_libcall): New function.
11535         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
11536         * config/rl78/rl78.md: New define_expand "adddi3".
11537
11538 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11539
11540         * cfghooks.c (verify_flow_info): Disable check that all probabilities
11541         are set correctly.
11542
11543 2017-10-13  Jeff Law  <law@redhat.com>
11544
11545         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
11546
11547 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11548
11549         PR target/82274
11550         * internal-fn.c (expand_mul_overflow): If both operands have
11551         the same highpart of -1 or 0 and the topmost bit of lowpart
11552         is different, overflow is if res <= 0 rather than res < 0.
11553
11554 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
11555
11556         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
11557         TARGET_P9_VECTOR code for unaligned_load case.
11558
11559 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11560
11561         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
11562
11563 2017-10-13  Nathan Sidwell  <nathan@acm.org>
11564
11565         * tree-core.h (tree_contains_struct): Make bool.
11566         * tree.c (tree_contains_struct): Likewise.
11567         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
11568         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
11569         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
11570         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
11571         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
11572
11573 2017-10-13  Richard Biener  <rguenther@suse.de>
11574
11575         * graphite-isl-ast-to-gimple.c
11576         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
11577         parameters and dominance check.
11578         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
11579         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
11580         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
11581         Do not update SSA form here or do intermediate IL verification.
11582         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
11583         (graphite_initialize): Remove check on the number of loops in
11584         the function and inline into graphite_transform_loops.
11585         (graphite_finalize): Inline into graphite_transform_loops.
11586         (graphite_transform_loops): Perform SSA update and IL verification
11587         here.
11588         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
11589
11590 2017-10-13  Richard Biener  <rguenther@suse.de>
11591
11592         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
11593         graphite_expression_type_precision): Avoid global constructor
11594         by moving ...
11595         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
11596         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
11597         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
11598         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
11599         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
11600         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
11601
11602 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
11603
11604         PR target/82499
11605         * config/i386/i386.h (ix86_red_zone_size): New.
11606         * config/i386/i386.md (push peephole2s): Replace
11607         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
11608
11609 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11610             Alan Hayward  <alan.hayward@arm.com>
11611             David Sherwood  <david.sherwood@arm.com>
11612
11613         * combine.c (can_change_dest_mode): Reject changes in
11614         REGMODE_NATURAL_SIZE.
11615
11616 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11617             Alan Hayward  <alan.hayward@arm.com>
11618             David Sherwood  <david.sherwood@arm.com>
11619
11620         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
11621         (expand_debug_source_expr): Likewise.
11622         * combine.c (combine_simplify_rtx): Likewise.
11623         * cse.c (fold_rtx): Likewise.
11624         * fwprop.c (canonicalize_address): Likewise.
11625         * targhooks.c (default_shift_truncation_mask): Likewise.
11626
11627 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11628             Alan Hayward  <alan.hayward@arm.com>
11629             David Sherwood  <david.sherwood@arm.com>
11630
11631         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
11632         (widened_mode): Likewise.
11633         (expand_unop): Likewise.
11634         * ree.c (transform_ifelse): Likewise.
11635         (merge_def_and_ext): Likewise.
11636         (combine_reaching_defs): Likewise.
11637         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11638
11639 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11640             Alan Hayward  <alan.hayward@arm.com>
11641             David Sherwood  <david.sherwood@arm.com>
11642
11643         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
11644         * combine.c (gen_lowpart_for_combine): Likewise.
11645         * dwarf2out.c (rtl_for_decl_location): Likewise.
11646         * final.c (alter_subreg): Likewise.
11647         * rtlhooks.c (gen_lowpart_general): Likewise.
11648         (gen_lowpart_if_possible): Likewise.
11649
11650 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11651             Alan Hayward  <alan.hayward@arm.com>
11652             David Sherwood  <david.sherwood@arm.com>
11653
11654         * calls.c (expand_call): Use subreg_lowpart_offset.
11655         * cse.c (cse_insn): Likewise.
11656         * regcprop.c (copy_value): Likewise.
11657         (copyprop_hardreg_forward_1): Likewise.
11658
11659 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11660
11661         PR target/82524
11662         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
11663         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
11664         =Q constraints to +Q and into insn condition add check
11665         that operands[0] and operands[1] are equal.
11666         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
11667         =Q constraints to +Q and into insn condition add check
11668         that operands[0] is equal to either operands[1] or operands[2].
11669
11670         PR target/82498
11671         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
11672         instead of handling MINUS_EXPR twice (once for each argument),
11673         canonicalize operand order and handle just once, use rtype where
11674         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
11675
11676         PR target/82498
11677         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
11678         any values of __C while still being pattern recognizable as a simple
11679         rotate instruction.
11680
11681 2017-10-13  Richard Biener  <rguenther@suse.de>
11682
11683         PR tree-optimization/82451
11684         Revert
11685         2017-10-02  Richard Biener  <rguenther@suse.de>
11686
11687         PR tree-optimization/82355
11688         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11689         a mapping for the enclosing loop but avoid generating one for
11690         the loop tree root.
11691         (copy_bb_and_scalar_dependences): Remove premature codegen
11692         error on PHIs in blocks duplicated into multiple places.
11693         * graphite-scop-detection.c
11694         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11695         in the region use it as loop and nest to analyze the DR in.
11696         (try_generate_gimple_bb): Likewise.
11697         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11698         (add_loop_constraints): For blocks in a loop not in the region
11699         create a dimension with a single iteration.
11700         * sese.h (gbb_loop_at_index): Remove assert.
11701
11702         * cfgloop.c (loop_preheader_edge): For the loop tree root
11703         return the single successor of the entry block.
11704         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11705         Reset the SCEV hashtable and niters.
11706         * graphite-scop-detection.c
11707         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
11708         assert that we only have POLYNOMIAL_CHREC that vary in loops
11709         contained in the region.
11710         (scop_detection::graphite_can_represent_expr): Adjust.
11711         (scop_detection::stmt_has_simple_data_refs_p): For loops
11712         not in the region set loop to NULL.  The nest is now the
11713         entry edge to the region.
11714         (try_generate_gimple_bb): Likewise.
11715         * sese.c (scalar_evolution_in_region): Adjust for
11716         instantiate_scev change.
11717         * tree-data-ref.h (graphite_find_data_references_in_stmt):
11718         Make nest parameter the edge into the region.
11719         (create_data_ref): Likewise.
11720         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
11721         entry edge into a region and adjust instantiate_scev calls.
11722         (create_data_ref): Likewise.
11723         (graphite_find_data_references_in_stmt): Likewise.
11724         (find_data_references_in_stmt): Pass the loop preheader edge
11725         from the nest argument.
11726         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
11727         parameter the edge into the region.
11728         (instantiate_parameters): Use the loop preheader edge as entry.
11729         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
11730         NULL loop.
11731         (get_instantiated_value_entry): Make instantiate_below parameter
11732         the edge into the region.
11733         (instantiate_scev_name): Likewise.  Adjust dominance checks,
11734         when we cannot use loop-based instantiation instantiate by
11735         walking use-def chains.
11736         (instantiate_scev_poly): Adjust.
11737         (instantiate_scev_binary): Likewise.
11738         (instantiate_scev_convert): Likewise.
11739         (instantiate_scev_not): Likewise.
11740         (instantiate_array_ref): Remove.
11741         (instantiate_scev_3): Likewise.
11742         (instantiate_scev_2): Likewise.
11743         (instantiate_scev_1): Likewise.
11744         (instantiate_scev_r): Do not blindly handle N-operand trees.
11745         Do not instantiate array-refs.  Handle all constants and invariants.
11746         (instantiate_scev): Make instantiate_below parameter
11747         the edge into the region.
11748         (resolve_mixers): Use the loop preheader edge for the region
11749         parameter to instantiate_scev_r.
11750         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
11751
11752 2017-10-13  Richard Biener  <rguenther@suse.de>
11753
11754         PR tree-optimization/82525
11755         * graphite-isl-ast-to-gimple.c
11756         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
11757         out from ...
11758         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
11759         Fail code generation when we cannot represent the isl integer.
11760         (binary_op_to_tree): Elide modulo operations that are no-ops
11761         in the type we code generate.  Remove now superfluous code
11762         generation errors.
11763
11764 2017-10-13  Richard Biener  <rguenther@suse.de>
11765
11766         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
11767         (scop_detection::harmful_loop_in_region): Remove premature
11768         IV type restriction.
11769         (scop_detection::graphite_can_represent_scev): We can handle
11770         pointer IVs just fine.
11771
11772 2017-10-13  Alan Modra  <amodra@gmail.com>
11773
11774         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
11775         "Clobbers and Scratch Registers".  Add paragraph on
11776         alternative to clobbers for scratch registers and OpenBLAS
11777         example.
11778
11779 2017-10-13  Alan Modra  <amodra@gmail.com>
11780
11781         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
11782         example of a memory input for a string of known length.  Move
11783         commentary out of table.  Add a number of new examples
11784         covering array memory inputs.
11785
11786 2017-10-12  Martin Liska  <mliska@suse.cz>
11787
11788         PR tree-optimization/82493
11789         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
11790         (test_range_functions): New function.
11791         (sbitmap_c_tests): Likewise.
11792         * selftest-run-tests.c (selftest::run_tests): Run new tests.
11793         * selftest.h (sbitmap_c_tests): New function.
11794
11795         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11796
11797 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11798
11799         * config/rs6000/amo.h: Fix spacing issue.
11800
11801 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11802
11803         PR target/82498
11804         * config/i386/i386.md (*ashl<mode>3_mask_1,
11805         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
11806         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
11807         patterns.
11808
11809 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11810
11811         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
11812         (profile_probability): Set max_probability
11813         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
11814         in temporaries.
11815         * profile-count.c (profile_probability::differs_from_p): Do not
11816         rely on max_probaiblity == 10000
11817
11818 2017-10-12  Jeff Law  <law@redhat.com>
11819
11820         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
11821         negative offsets.
11822
11823 2017-10-12  Martin Sebor  <msebor@redhat.com>
11824
11825         PR other/82301
11826         PR c/82435
11827         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
11828         (handle_alias_pairs): Call it.
11829         * common.opt (-Wattribute-alias): New option.
11830         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
11831         * doc/invoke.texi (-Wattribute-alias): Document.
11832
11833 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
11834
11835         Revert
11836         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11837         PR sanitizer/82353
11838         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11839         locations.
11840         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11841         (make_hard_regno_born, make_hard_regno_dead): Update
11842         bb_killed_pseudos and bb_gen_pseudos.
11843
11844 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11845
11846         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
11847
11848 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
11849
11850         * config/alpha/alpha.c (alpha_split_conditional_move):
11851         Use std::swap instead of manually swapping.
11852         (alpha_stdarg_optimize_hook): Ditto.
11853         (alpha_canonicalize_comparison): Ditto.
11854
11855 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11856
11857         * tree-loop-distribution.c (struct builtin_info): New struct.
11858         (struct partition): Refactor fields into struct builtin_info.
11859         (partition_free): Free struct builtin_info.
11860         (build_size_arg_loc, build_addr_arg_loc): Delete.
11861         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
11862         information from struct builtin_info.
11863         (find_single_drs): New function refactored from classify_partition.
11864         Also moved builtin validity checks to this function.
11865         (compute_access_range, alloc_builtin): New functions.
11866         (classify_builtin_st, classify_builtin_ldst): New functions.
11867         (classify_partition): Refactor code into functions find_single_drs,
11868         classify_builtin_st and classify_builtin_ldst.
11869         (distribute_loop): Don't do runtime alias check when distributing
11870         loop nest.
11871         (find_seed_stmts_for_distribution): New function.
11872         (pass_loop_distribution::execute): Refactor code finding seed
11873         stmts into above function.  Support distribution for the innermost
11874         two-level loop nest.  Adjust dump information.
11875
11876 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11877
11878         * tree-loop-distribution.c: Adjust the general comment.
11879         (NUM_PARTITION_THRESHOLD): New macro.
11880         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
11881         (classify_partition): Skip builtin pattern of loop nest's inner loop.
11882         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
11883         in call to build_partition_graph.
11884         (finalize_partitions): New parameter.  Make loop distribution more
11885         conservative by fusing more partitions.
11886         (distribute_loop): Don't do runtime alias check in case of loop nest
11887         distribution.
11888         (find_seed_stmts_for_distribution): New function.
11889         (prepare_perfect_loop_nest): New function.
11890         (pass_loop_distribution::execute): Refactor code finding seed stmts
11891         and loop nest into above functions.  Support loop nest distribution.
11892         Adjust dump information accordingly.
11893
11894 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11895
11896         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
11897         and set PTYPE_SEQUENTIAL for merged partition.
11898
11899 2017-10-12  Richard Biener  <rguenther@suse.de>
11900
11901         PR tree-optimization/69728
11902         Revert
11903         2017-09-19  Richard Biener  <rguenther@suse.de>
11904
11905         PR tree-optimization/69728
11906         * graphite-sese-to-poly.c (schedule_error): New global.
11907         (add_loop_schedule): Handle empty domain by failing the
11908         schedule.
11909         (build_original_schedule): Handle schedule_error.
11910
11911         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
11912         domain by returning an unchanged schedule.
11913
11914 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11915
11916         * genrecog.c (validate_pattern): For VEC_SELECT verify that
11917         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
11918
11919 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
11920
11921         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
11922         Handle params.def.
11923
11924 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11925
11926         PR c++/82159
11927         * expr.c (store_field): Don't optimize away bitsize == 0 store
11928         from CALL_EXPR with addressable return type.
11929
11930 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11931
11932         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
11933         * config/rs6000/rs6000.md (sel): Delete mode attribute.
11934         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
11935         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
11936         TARGET_ISEL instead of TARGET_ISEL<sel>.
11937
11938 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
11939
11940         * config/rs6000/rs6000.c
11941         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
11942
11943 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
11944
11945         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
11946         Move up in file.
11947         (reg_or_cint_operand): Fix comment.
11948         (reg_or_zero_operand): New predicate.
11949         * config/rs6000/rs6000-protos.h (output_isel): Delete.
11950         * config/rs6000/rs6000.c (output_isel): Delete.
11951         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
11952         instead of reg_or_cint_operand.  Output instruction directly (not via
11953         output_isel).
11954         (isel_unsigned_<mode>): Ditto.
11955         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
11956         gpc_reg_operand.  Add an instruction alternative for this.  Output
11957         instruction directly.
11958         (*isel_reversed_unsigned_<mode>): Ditto.
11959
11960 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11961
11962         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
11963         (TARGET_CANONICALIZE_COMPARISON): Define.
11964
11965 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
11966
11967         PR target/81422
11968         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11969         Check whether the dest is REG before adding REG_EQUIV note.
11970
11971 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11972
11973         PR sanitizer/82353
11974         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11975         locations.
11976         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11977         (make_hard_regno_born, make_hard_regno_dead): Update
11978         bb_killed_pseudos and bb_gen_pseudos.
11979
11980 2017-10-11  Nathan Sidwell  <nathan@acm.org>
11981
11982         * incpath.h (enum incpath_kind): Name enum, prefix values.
11983         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
11984         * incpath.c (heads, tails): Use INC_MAX.
11985         (add_env_var_paths, add_standard_paths): Use incpath_kind.
11986         (merge_include_chains, split_quote_chain,
11987         register_include_chains): Update incpath_kind names.
11988         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
11989         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
11990         names.
11991         (add_framework_path, darwin_register_objc_includes): Likewise.
11992         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
11993
11994 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
11995
11996         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
11997         Do not use float_operator operator predicate.
11998         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
11999         * config/i386/predicates.md (float_operator): Remove predicate.
12000
12001 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
12002
12003         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
12004         (*jccxf_i387): Ditto.
12005         (*jcc<mode>_i387): Ditto.
12006         (*jccu<mode>_i387): Ditto.
12007         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
12008         (*jcc_*_i387 splitters): Remove.
12009         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
12010         * config/i386/i386.c (ix86_split_fp_branch): Remove.
12011         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
12012         Remove predicate.
12013
12014 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
12015
12016         * profile-count.h (slow_safe_scale_64bit): New function.
12017         (safe_scale_64bit): New inline.
12018         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
12019         * profile-count.c: Include wide-int.h
12020         (slow_safe_scale_64bit): New.
12021
12022 2017-10-11  Nathan Sidwell  <nathan@acm.org>
12023
12024         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
12025         HAS_DECL_ASSEMBLER_NAME_P.
12026         * gimple-expr.c (gimple_decl_printable_name: Check
12027         HAS_DECL_ASSEMBLER_NAME_P too.
12028         * ipa-utils.h (type_in_anonymous_namespace_p): Check
12029         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
12030         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
12031         * passes.c (rest_of_decl_compilation): Check
12032         HAS_DECL_ASSEMBLER_NAME_P too.
12033         * recog.c (verify_changes): Likewise.
12034         * tree-pretty-print.c (dump_decl_name): Likewise.
12035         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
12036
12037         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
12038         (SET_DECL_ASSEMBLER_NAME): Use it.
12039         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
12040         (COPY_DECL_ASSEMBLER_NAME): Likewise.
12041         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
12042
12043 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
12044
12045         * config.gcc (i386, x86_64): Add extra objects.
12046         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
12047         (ix86_min_insn_size): Declare.
12048         (ix86_issue_rate): Declare.
12049         (ix86_adjust_cost): Declare.
12050         (ia32_multipass_dfa_lookahead): Declare.
12051         (ix86_macro_fusion_p): Declare.
12052         (ix86_macro_fusion_pair_p): Declare.
12053         (ix86_bd_has_dispatch): Declare.
12054         (ix86_bd_do_dispatch): Declare.
12055         (ix86_core2i7_init_hooks): Declare.
12056         (ix86_atom_sched_reorder): Declare.
12057         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
12058         (COSTS_N_BYTES): Move to x86-tune-costs.h.
12059         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
12060         (rip_relative_addr_p): Rename to ...
12061         (ix86_rip_relative_addr_p): ... this one; export.
12062         (memory_address_length): Update.
12063         (ix86_issue_rate): Move to x86-tune-sched.c.
12064         (ix86_flags_dependent): Move to x86-tune-sched.c.
12065         (ix86_agi_dependent): Move to x86-tune-sched.c.
12066         (exact_dependency_1): Move to x86-tune-sched.c.
12067         (exact_store_load_dependency): Move to x86-tune-sched.c.
12068         (ix86_adjust_cost): Move to x86-tune-sched.c.
12069         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
12070         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
12071         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
12072         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
12073         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
12074         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
12075         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
12076         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
12077         (min_insn_size): Rename to ...
12078         (ix86_min_insn_size): ... this one; export.
12079         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
12080         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
12081         (core2i7_first_cycle_multipass_backtrack): Move to
12082         x86-tune-sched-core.c.
12083         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
12084         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
12085         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
12086         (ix86_avoid_jump_mispredicts): Update.
12087         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
12088         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
12089         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
12090         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
12091         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
12092         (MAX_INSN): Move to ix86-tune-sched-bd.c.
12093         (MAX_IMM): Move to ix86-tune-sched-bd.c.
12094         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
12095         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
12096         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
12097         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
12098         (MAX_STORE): Move to ix86-tune-sched-bd.c.
12099         (BIG): Move to ix86-tune-sched-bd.c.
12100         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
12101         (enum insn_path): Move to ix86-tune-sched-bd.c.
12102         (get_mem_group): Move to ix86-tune-sched-bd.c.
12103         (is_cmp): Move to ix86-tune-sched-bd.c.
12104         (dispatch_violation): Move to ix86-tune-sched-bd.c.
12105         (is_branch): Move to ix86-tune-sched-bd.c.
12106         (is_prefetch): Move to ix86-tune-sched-bd.c.
12107         (init_window): Move to ix86-tune-sched-bd.c.
12108         (allocate_window): Move to ix86-tune-sched-bd.c.
12109         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
12110         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
12111         (process_end_window): Move to ix86-tune-sched-bd.c.
12112         (allocate_next_window): Move to ix86-tune-sched-bd.c.
12113         (find_constant): Move to ix86-tune-sched-bd.c.
12114         (get_num_immediates): Move to ix86-tune-sched-bd.c.
12115         (has_immediate): Move to ix86-tune-sched-bd.c.
12116         (get_insn_path): Move to ix86-tune-sched-bd.c.
12117         (get_insn_group): Move to ix86-tune-sched-bd.c.
12118         (count_num_restricted): Move to ix86-tune-sched-bd.c.
12119         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
12120         (add_insn_window): Move to ix86-tune-sched-bd.c.
12121         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
12122         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
12123         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
12124         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
12125         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
12126         (do_dispatch): Move to ix86-tune-sched-bd.c.
12127         (has_dispatch): Move to ix86-tune-sched-bd.c.
12128         * config/i386/t-i386: Add new object files.
12129         * config/i386/x86-tune-costs.h: New file.
12130         * config/i386/x86-tune-sched-atom.c: New file.
12131         * config/i386/x86-tune-sched-bd.c: New file.
12132         * config/i386/x86-tune-sched-core.c: New file.
12133         * config/i386/x86-tune-sched.c: New file.
12134
12135 2017-10-11  Liu Hao  <lh_mouse@126.com>
12136
12137         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
12138         the generic version below instead.
12139         (should_colorize): Recognize Windows consoles as terminals
12140         for MinGW targets.
12141         * pretty-print.c [__MINGW32__] (write_all): New function.
12142         [__MINGW32__] (find_esc_head): Likewise.
12143         [__MINGW32__] (find_esc_terminator): Likewise.
12144         [__MINGW32__] (eat_esc_sequence): Likewise.
12145         [__MINGW32__] (mingw_ansi_fputs): New function that handles
12146         ANSI escape codes.
12147         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
12148         for MinGW targets.
12149
12150 2017-10-11  Richard Biener  <rguenther@suse.de>
12151
12152         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12153         Properly call analyze_scalar_evolution with the loop of the stmt.
12154
12155 2017-10-11  Richard Biener  <rguenther@suse.de>
12156
12157         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
12158         * tree-core.h (tree_base): Add chrec_var union member.
12159         * tree.h (CHREC_VAR): Remove.
12160         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
12161         * tree-chrec.h (build_polynomial_chrec): Adjust.
12162         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
12163         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
12164
12165 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
12166
12167         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
12168         * match.pd: ... here.
12169         ((T) X == (T) Y): Relax condition.
12170
12171 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
12172
12173         PR tree-optimization/82472
12174         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
12175         comment.
12176         (break_alias_scc_partitions): Update postorder number.
12177
12178 2017-10-11  Martin Liska  <mliska@suse.cz>
12179
12180         PR sanitizer/82490
12181         * opts.c (parse_no_sanitize_attribute): Do not use error_value
12182         variable.
12183         * opts.h (parse_no_sanitize_attribute): Remove last argument.
12184
12185 2017-10-11  Martin Liska  <mliska@suse.cz>
12186
12187         * print-rtl.c (print_insn): Move declaration of idbuf
12188         to same scope as name.
12189
12190 2017-10-11  Martin Liska  <mliska@suse.cz>
12191
12192         Revert r253637:
12193
12194         PR sanitizer/82484
12195         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12196         volatile arguments.
12197
12198 2017-10-11  Martin Liska  <mliska@suse.cz>
12199
12200         PR sanitizer/82484
12201         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12202         volatile arguments.
12203
12204 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
12205
12206         * config.gcc (default_gnu_indirect_function): Default to yes for
12207         arm*-*-linux* with glibc.
12208
12209 2017-10-11  Richard Biener  <rguenther@suse.de>
12210
12211         * tree-scalar-evolution.c (get_scalar_evolution): Handle
12212         default-defs and types we do not want to analyze.
12213         (interpret_loop_phi): Replace unreachable code with an assert.
12214         (compute_scalar_evolution_in_loop): Remove and inline ...
12215         (analyze_scalar_evolution_1): ... here, replacing condition with
12216         what makes the intent clearer.  Remove handling of cases
12217         get_scalar_evolution now handles.
12218
12219 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
12220
12221         PR rtl-optimization/81434
12222         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
12223         comment for main loop.  In sched_group_found if, also add checks for
12224         pass and min_cost_group.
12225
12226 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
12227
12228         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
12229         (rs6000_insn_cost): New function.
12230         * config/rs6000/rs6000.md (cost): New attribute.
12231
12232 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
12233             H.J. Lu  <hongjiu.lu@intel.com>
12234
12235         PR target/79565
12236         PR target/82483
12237         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
12238         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
12239         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
12240         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
12241         to OPTION_MASK_ISA_AVX512VL - builtins that have both
12242         OPTION_MASK_ISA_MMX and some other bit set require both
12243         mmx and the ISAs without the mmx bit.
12244         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
12245         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
12246         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
12247         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
12248         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
12249         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
12250         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
12251         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
12252         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
12253         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
12254         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
12255         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
12256         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
12257         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
12258         Add OPTION_MASK_ISA_MMX.
12259
12260 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
12261
12262         * config.gcc (armv7*-*-freebsd*): New target.
12263         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
12264
12265 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
12266
12267         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
12268         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
12269         spot in the file.
12270
12271 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
12272
12273         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
12274         a template parameter.
12275         (WIDE_INT_REF_FOR): Update accordingly.
12276         * tree.h (wi::int_traits <const_tree>): Delete.
12277         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
12278         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
12279         (wi::tree_to_wide_ref): New typedef.
12280         (wi::to_wide): New function.
12281         * calls.c (get_size_range): Use wi::to_wide when operating on
12282         trees as wide_ints.
12283         * cgraph.c (cgraph_node::create_thunk): Likewise.
12284         * config/i386/i386.c (ix86_data_alignment): Likewise.
12285         (ix86_local_alignment): Likewise.
12286         * dbxout.c (stabstr_O): Likewise.
12287         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
12288         * expr.c (const_vector_from_tree): Likewise.
12289         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
12290         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
12291         (fold_negate_expr_1, int_const_binop_1, const_binop)
12292         (fold_convert_const_int_from_real, optimize_bit_field_compare)
12293         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
12294         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
12295         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
12296         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
12297         (fold_not_const, round_up_loc): Likewise.
12298         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
12299         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
12300         (alloca_call_type): Likewise.
12301         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
12302         * godump.c (go_output_typedef): Likewise.
12303         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
12304         * internal-fn.c (get_min_precision): Likewise.
12305         * ipa-cp.c (ipcp_store_vr_results): Likewise.
12306         * ipa-polymorphic-call.c
12307         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
12308         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
12309         (ipa_modify_call_arguments): Likewise.
12310         * match.pd: Likewise.
12311         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
12312         * print-tree.c (print_node_brief, print_node): Likewise.
12313         * stmt.c (expand_case): Likewise.
12314         * stor-layout.c (layout_type): Likewise.
12315         * tree-affine.c (tree_to_aff_combination): Likewise.
12316         * tree-cfg.c (group_case_labels_stmt): Likewise.
12317         * tree-data-ref.c (dr_analyze_indices): Likewise.
12318         (prune_runtime_alias_test_list): Likewise.
12319         * tree-dump.c (dequeue_and_dump): Likewise.
12320         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
12321         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
12322         * tree-pretty-print.c (dump_generic_node): Likewise.
12323         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
12324         (simple_iv_with_niters): Likewise.
12325         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12326         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
12327         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
12328         * tree-ssa-loop-niter.c (split_to_var_and_offset)
12329         (refine_value_range_using_guard, number_of_iterations_ne_max)
12330         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
12331         (get_cst_init_from_scev, record_nonwrapping_iv)
12332         (scev_var_range_cant_overflow): Likewise.
12333         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
12334         * tree-ssa-pre.c (compute_avail): Likewise.
12335         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
12336         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
12337         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
12338         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
12339         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
12340         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
12341         (dump_case_nodes, try_switch_expansion): Likewise.
12342         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
12343         (vect_do_peeling): Likewise.
12344         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
12345         * tree-vect-stmts.c (vectorizable_load): Likewise.
12346         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
12347         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
12348         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
12349         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
12350         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
12351         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
12352         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
12353         (evrp_dom_walker::before_dom_children): Likewise.
12354         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
12355         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
12356         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
12357         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
12358         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
12359         (get_range_pos_neg): Likewise.
12360         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
12361         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
12362         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
12363         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
12364         * config/avr/avr.c (avr_fold_builtin): Likewise.
12365         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
12366         * config/msp430/msp430.c (msp430_attr): Likewise.
12367         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
12368         * config/powerpcspe/powerpcspe-c.c
12369         (altivec_resolve_overloaded_builtin): Likewise.
12370         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
12371         (rs6000_expand_ternop_builtin): Likewise.
12372         * config/rs6000/rs6000-c.c
12373         (altivec_resolve_overloaded_builtin): Likewise.
12374         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
12375         (rs6000_expand_ternop_builtin): Likewise.
12376         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
12377
12378 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12379
12380         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
12381         when copying loop nest with only one inner loop.
12382
12383 2017-10-10  Richard Biener  <rguenther@suse.de>
12384
12385         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
12386         blocks if SCEV is active.
12387         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
12388         dead code.
12389         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
12390         (scev_initialize): Assert we are not yet initialized.
12391
12392 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12393
12394         * tree-loop-distribution.c (generate_loops_for_partition): Remove
12395         inner loop's exit stmt by making it always exit the loop, otherwise
12396         we would generate an infinite empty loop.
12397
12398 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12399
12400         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
12401         renaming variables in new preheader if it's deleted.
12402
12403 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12404
12405         * tree-loop-distribution.c (struct partition): Remove unused field
12406         loops of the structure.
12407         (partition_alloc, partition_free): Ditto.
12408         (build_rdg_partition_for_vertex): Ditto.
12409
12410 2017-10-09  Jeff Law  <law@redhat.com>
12411
12412         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
12413         return type to match prototype and documentation.
12414
12415 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12416
12417         * config/rs6000/rs6000.c (processor_costs): Move to ...
12418         * config/rs6000/rs6000.h: ... here.
12419         (rs6000_cost): Declare.
12420
12421 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
12422
12423         * except.c (setjmp_fn): New global variable.
12424         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
12425         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
12426         if DONT_USE_BUILTIN_SETJMP is defined.
12427
12428 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12429
12430         * target.def (insn_cost): New hook.
12431         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
12432         * doc/tm.texi: Regenerate.
12433         * rtlanal.c (insn_cost): Use the new hook.
12434
12435 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12436
12437         * combine.c (combine_validate_cost): Compute the new insn_cost,
12438         not just pattern_cost.
12439         (try_combine): Adjust comment.
12440
12441 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12442
12443         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
12444         insn_cost.
12445         * combine.c (uid_insn_cost): Adjust comment.
12446         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
12447         of insn_rtx_cost
12448         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
12449         * dse.c (find_shift_sequence): Ditto.
12450         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
12451         (bb_valid_for_noce_process_p): Use pattern_cost.
12452         * rtl.h (insn_rtx_cost): Delete.
12453         (pattern_cost): New prototype.
12454         (insn_cost): New prototype.
12455         * rtlanal.c (insn_rtx_cost): Rename to...
12456         (pattern_cost): ... this.
12457         (insn_cost): New.
12458
12459 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
12460
12461         * config/i386/i386.md (*jcc_2): Remove insn pattern.
12462         (*jcc<mode>_0_r_i387): Ditto.
12463         (*jccxf_r_i387): Ditto.
12464         (*jcc<mode>_r_i387): Ditto.
12465         (*jccu<mode>_r_i387): Ditto.
12466         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
12467         (*jcc): Rename from *jcc_1.
12468
12469 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12470
12471         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
12472         deferred rescans after the lvx/stvx recombination pre-pass.
12473
12474 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12475
12476         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
12477         memory operation instruction support.
12478         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
12479         (rs6000-ibm-aix[789]*): Likewise.
12480         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
12481         Document new functions.
12482
12483 2017-10-09  Richard Biener  <rguenther@suse.de>
12484
12485         PR tree-optimization/82397
12486         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
12487         equality only for semantically equal trees.
12488
12489 2017-10-09  Richard Biener  <rguenther@suse.de>
12490
12491         PR tree-optimization/82449
12492         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
12493         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
12494         allow constant addresses.
12495         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
12496         are linear.
12497
12498 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12499
12500         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
12501         flags.
12502
12503 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12504
12505         PR target/82463
12506         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
12507         definitions.
12508
12509 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12510
12511         PR target/82465
12512         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
12513
12514 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
12515
12516         PR target/82464
12517         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
12518         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
12519
12520 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
12521
12522         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
12523         (WI_BINARY_PREDICATE_RESULT): Likewise.
12524         (wi::binary_traits::operator_result): New type.
12525         (wi::binary_traits::predicate_result): Likewise.
12526         (generic_wide_int::operator~, unary generic_wide_int::operator-)
12527         (generic_wide_int::operator==, generic_wide_int::operator!=)
12528         (generic_wide_int::operator&, generic_wide_int::and_not)
12529         (generic_wide_int::operator|, generic_wide_int::or_not)
12530         (generic_wide_int::operator^, generic_wide_int::operator+
12531         (binary generic_wide_int::operator-, generic_wide_int::operator*):
12532         Delete.
12533         (operator~, unary operator-, operator==, operator!=, operator&)
12534         (operator|, operator^, operator+, binary operator-, operator*): New
12535         functions.
12536         * expr.c (get_inner_reference): Use wi::bit_and_not.
12537         * fold-const.c (fold_binary_loc): Likewise.
12538         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12539         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12540         (bit_value_binop): Likewise.
12541         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
12542         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
12543         (extract_range_from_binary_expr_1): Likewise.
12544         (masked_increment): Likewise.
12545         (simplify_bit_ops_using_ranges): Likewise.
12546
12547 2017-10-09  Martin Jambor  <mjambor@suse.cz>
12548
12549         PR hsa/82416
12550         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
12551         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
12552         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
12553         COMPLEX types.
12554         (hsa_fixup_mov_insn_type): New function.
12555         (hsa_op_with_type::get_in_type): Use it.
12556         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
12557         immediates in an assert.
12558         (hsa_op_with_type::extend_int_to_32bit): New method.
12559         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
12560         types.  Convert to dest type if necessary.
12561         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
12562         (reg_for_gimple_ssa): Pass false as min32int to
12563         hsa_type_for_scalar_tree_type.
12564         (gen_hsa_addr): Fixup type when creating addresable temporary.
12565         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
12566         (gen_hsa_unary_operation): Extend operands and convert to dest type if
12567         necessary.  Call hsa_fixup_mov_insn_type.
12568         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
12569         extend operands and convert to dest type if necessary.
12570         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
12571         to dest type if necessary.
12572         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
12573         if conversion nt necessary and size matches.
12574         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
12575         to dest type if necessary.
12576         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
12577         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
12578         necessary.
12579         (gen_hsa_clrsb): Likewise.
12580         (gen_hsa_ffs): Likewise.
12581         (gen_hsa_divmod): Extend operands and convert to dest type if
12582         necessary.
12583         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
12584
12585 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12586
12587         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
12588         Remove empty default arguments.  Use a brace block as output
12589         statement.
12590         (conditional return): Ditto.
12591         (jump): Ditto.
12592         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
12593         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
12594         Ditto.
12595         (group_ending_nop): Ditto.
12596         (doloop_end): Ditto.
12597         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
12598         (splitters for those): Ditto.
12599
12600 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12601
12602         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
12603         a conditional jump (and the compare for it) so that pc_rtx is the
12604         last operand.
12605         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
12606         for the deleted and renamed ctr<mode>_internal[234] patterns.
12607         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
12608         Delete second conditional return pattern.
12609         (ctr<mode>_internal2): Delete this second bdnz pattern.
12610         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
12611         (ctr<mode>_internal4): Delete this second bdz pattern.
12612
12613 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12614
12615         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
12616         (always_initialized_rtx_for_ssa_name_p): New predicate.
12617         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
12618         (finish_out_of_ssa): Free new field of SA.
12619         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
12620         * tree-ssa-coalesce.c: Include tree-ssa.h.
12621         (get_parm_default_def_partitions): Remove extern keyword.
12622         (get_undefined_value_partitions): New function.
12623         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
12624         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
12625         uninitialized bits.
12626         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
12627
12628 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12629
12630         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
12631
12632 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12633
12634         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
12635         for targets that preffer 128bit.
12636
12637 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12638
12639         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
12640
12641 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12642
12643         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
12644         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
12645         prevent DSE.
12646         (thumb_set_return_address): Likewise.
12647
12648 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12649
12650         * common/config/arm/arm-common.c (arm_except_unwind_info):
12651         Handle DWARF2_UNWIND_INFO.
12652
12653 2017-10-07  Michael Collison <michael.collison@arm.com>
12654
12655         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
12656         New pattern.
12657
12658 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
12659
12660         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
12661         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
12662         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
12663         defined, force the creation of a new block for a dispatch label.
12664
12665 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
12666
12667         * invoke.texi (Wsuggest-attribute=cold): Document.
12668         * common.opt (Wsuggest-attribute=cold): New
12669         * ipa-pure-const.c (warn_function_cold): New function.
12670         * predict.c (compute_function_frequency): Use it.
12671         * predict.h (warn_function_cold): Declare.
12672
12673 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
12674
12675         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
12676         Update profile.
12677
12678 2017-10-06  Martin Liska  <mliska@suse.cz>
12679
12680         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
12681         keyword for member functions.
12682         (struct sanopt_tree_couple): New struct.
12683         (struct sanopt_tree_couple_hash): New function.
12684         (struct sanopt_ctx): Add new hash_map.
12685         (has_dominating_ubsan_ptr_check): New function.
12686         (record_ubsan_ptr_check_stmt): Likewise.
12687         (maybe_optimize_ubsan_ptr_ifn): Likewise.
12688         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
12689         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
12690
12691 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
12692
12693         PR target/82440
12694         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
12695         aarch64_simd_valid_immediate on CONST_VECTORs.
12696         (aarch64_reg_or_bic_imm): Likewise.
12697
12698 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
12699
12700         PR rtl-optimization/82396
12701         * haifa-sched.c (ready_sort_real): Disable qsort checking.
12702
12703 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
12704
12705         * graphite-dependences.c (scop_get_reads): Move code to...
12706         (scop_get_must_writes): Move code to...
12707         (scop_get_may_writes): Move code to...
12708         (scop_get_reads_and_writes): ... here.
12709         (scop_get_dependences): Call scop_get_reads_and_writes.
12710
12711 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
12712
12713         PR tree-optimization/82434
12714         * fold-const.h (can_native_encode_type_p,
12715         can_native_encode_string_p): Remove.
12716         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
12717         don't encode anything, just return what would be otherwise returned.
12718         (native_encode_fixed, native_encode_complex, native_encode_vector):
12719         Likewise.
12720         (native_encode_string): Likewise.  Inline by hand
12721         can_native_encode_string_p.
12722         (can_native_encode_type_p): Remove.
12723         (can_native_encode_string_p): Remove.
12724         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
12725         STRING_CSTs using can_native_encode_string_p, test all
12726         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
12727         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
12728         argument from native_encode_expr.
12729         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
12730         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
12731         but just 2.
12732
12733 2017-10-06  Richard Biener  <rguenther@suse.de>
12734
12735         PR tree-optimization/82397
12736         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
12737         operand_equal_p but rely on data_ref_compare_tree for detecting
12738         equalities.
12739         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
12740         to match up with dr_group_sort_cmp.
12741
12742 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12743
12744         PR target/82322
12745         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
12746         builtin.
12747         * config/s390/s390-builtin-types.def: Regenerate.
12748
12749 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12750
12751         PR target/82317
12752         * config/s390/s390-builtin-types.def: Regenerate.
12753         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
12754         Change flag from B_VXE to B_VX.
12755         (s390_vec_min_dbl): Remove B_VXE flag.
12756
12757 2017-10-06  Richard Biener  <rguenther@suse.de>
12758
12759         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
12760         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
12761         translate_isl_ast_to_gimple::is_valid_rename,
12762         translate_isl_ast_to_gimple::get_rename,
12763         translate_isl_ast_to_gimple::get_def_bb_for_const,
12764         translate_isl_ast_to_gimple::get_new_name,
12765         translate_isl_ast_to_gimple::collect_all_ssa_names,
12766         translate_isl_ast_to_gimple::copy_loop_phi_args,
12767         translate_isl_ast_to_gimple::collect_all_ssa_names,
12768         translate_isl_ast_to_gimple::copy_loop_phi_args,
12769         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
12770         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
12771         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
12772         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
12773         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
12774         translate_isl_ast_to_gimple::copy_cond_phi_args,
12775         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
12776         translate_isl_ast_to_gimple::edge_for_new_close_phis,
12777         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
12778         translate_isl_ast_to_gimple::rename_uses,
12779         translate_isl_ast_to_gimple::rename_all_uses): Remove.
12780         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
12781         (set_rename_for_each_def): Likewise.
12782         (graphite_copy_stmts_from_block): Handle debug stmt resetting
12783         here.  Handle rewriting SCEV analyzable uses here.
12784         (copy_bb_and_scalar_dependences): Generate code for PHI
12785         copy-in/outs.
12786         (graphite_regenerate_ast_isl): Adjust.
12787         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
12788         (add_write, add_read): New functions.
12789         (build_cross_bb_scalars_def): Use it and simplify.
12790         (build_cross_bb_scalars_use): Likewise.
12791         (graphite_find_cross_bb_scalar_vars): Inline into...
12792         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
12793         simulating out-of-SSA.  Compute liveout and add dependencies.
12794         (build_scops): Force an empty entry block.
12795         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
12796         members.
12797         (sese_build_liveouts): Declare.
12798         (sese_trivially_empty_bb_p): Likewise.
12799         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
12800         compute liveout and debug_liveout.
12801         (sese_bad_liveouts_use): Remove.
12802         (sese_reset_debug_liveouts_bb): Likewise.
12803         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
12804         (sese_build_liveouts): Build liveout and debug_liveout and store
12805         it in region.
12806         (new_sese_info): Adjust.
12807         (free_sese_info): Likewise.
12808         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
12809         do not build liveout here.
12810         (move_sese_in_condition): Adjust region entry.
12811         (scev_analyzable_p): Match up with chrec_apply requirements.
12812         (sese_trivially_empty_bb_p): New.
12813         * tree-into-ssa.c (get_reaching_def): Properly support generating
12814         default-defs for incremental rewrite of anonymous names.
12815
12816 2017-10-06  Richard Biener  <rguenther@suse.de>
12817
12818         * graphite-sese-to-poly.c (extract_affine): For casts increasing
12819         precision do not perform modulo reduction.
12820
12821 2017-10-06  Richard Biener  <rguenther@suse.de>
12822
12823         PR tree-optimization/82436
12824         * tree-vect-slp.c (vect_supported_load_permutation_p): More
12825         conservatively choose the vectorization factor when checking
12826         whether we can perform the required load permutation.
12827         (vect_transform_slp_perm_load): Assert when we may not fail.
12828
12829 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
12830
12831         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
12832         message for incompatible -msdata=* and -mcall-* options.
12833
12834 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12835
12836         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
12837         rate for post-reload scheduling.
12838
12839 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12840
12841         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
12842
12843 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12844
12845         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
12846         to improve monte carlo in scimark.
12847
12848 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12849
12850         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
12851         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
12852         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
12853         pentium4_cost, nocona_cost): Set reassociation width to 1.
12854         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
12855         width to 2 for fp operations and 1 otherwise.
12856         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
12857         for int and fp.
12858         (atom_cost): Set reassociation width to 2.
12859         (slm_cost, generic_cost): Set fp reassociation width
12860         to 2 and 1 otherwise.
12861         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
12862         (core_cost): Set fp reassociation width to 4 and vector to 2.
12863         (ix86_reassociation_width): Rewrite using cost table; special case
12864         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
12865         and TARGET_AVX128_OPTIMAL.
12866         * config/i386/i386.h (processor_costs): Add
12867         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
12868         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
12869         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
12870         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
12871         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
12872         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
12873
12874 2017-10-05  Nathan Sidwell  <nathan@acm.org>
12875
12876         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
12877
12878 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12879
12880         * config/arm/arm.c (arm_test_fpu_data): New.
12881         (arm_run_selftests): Call arm_test_fpu_data.
12882
12883 2017-10-04  Nathan Sidwell  <nathan@acm.org>
12884
12885         * toplev.c (toplev::main): Remove excess parens on pretty_printer
12886         decl.
12887         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
12888
12889 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
12890
12891         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
12892         check type for aarch64_simd_valid_immediate.
12893         (aarch64_output_simd_mov_immediate): Update prototype.
12894         (aarch64_simd_valid_immediate): Update prototype.
12895         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
12896         support for ORR-immediate.
12897         (and<mode>3): modified pattern to add support for BIC-immediate.
12898         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
12899         now checks for valid immediate for BIC and ORR based on new enum
12900         argument.
12901         (aarch64_output_simd_mov_immediate): Function now used to output
12902         BIC/ORR imm as well based on new enum argument.
12903         * config/aarch64/constraints.md (Do): New vector immediate constraint.
12904         (Db) : Likewise.
12905         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
12906         (aarch64_reg_or_bic_imm): Likewise.
12907
12908 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12909
12910         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
12911         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
12912
12913 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12914
12915         Revert r253399:
12916
12917         PR rtl-optimization/82396
12918         * haifa-sched.c (autopref_multipass_init): Simplify
12919         initialization.
12920         (autopref_rank_data): Simplify sort order.
12921         * sched-int.h (autopref_multipass_data_): Remove
12922         multi_mem_insn_p, min_offset and max_offset.
12923
12924 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12925
12926         * doc/sourcebuild.texi: Document vect_peeling_profitable.
12927
12928 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12929
12930         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
12931         vect_doubleint_cvt.
12932
12933 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12934
12935         * doc/sourcebuild.texi: Document vect_long_mult.
12936
12937 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
12938
12939         PR tree-optimization/82413
12940         * fold-const.c (build_range_check): Use widest_int when comparing
12941         the maximum ETYPE value with HIGH.
12942
12943 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
12944
12945         PR rtl-optimization/82396
12946         * haifa-sched.c (autopref_multipass_init): Simplify
12947         initialization.
12948         (autopref_rank_data): Simplify sort order.
12949         * sched-int.h (autopref_multipass_data_): Remove
12950         multi_mem_insn_p, min_offset and max_offset.
12951
12952 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
12953
12954         PR tree-optimization/82381
12955         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
12956         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
12957         is not.
12958
12959         PR tree-optimization/82374
12960         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
12961         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
12962         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
12963         current_function_decl to the new decl.
12964
12965 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12966
12967         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
12968         helper macro for IEEE float128 hardware built-in functions.
12969         (SQRTF128_ODD): Add built-in functions with the round-to-odd
12970         semantics.
12971         (TRUNCF128_ODD): Likewise.
12972         (ADDF128_ODD): Likewise.
12973         (SUBF128_ODD): Likewise.
12974         (MULF128_ODD): Likewise.
12975         (DIVF128_ODD): Likewise.
12976         (FMAF128_ODD): Likewise.
12977         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
12978         UNSPEC_TRUNC_ROUND_TO_ODD.
12979         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
12980         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
12981         floating point round to odd instructions.
12982         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
12983         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
12984         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
12985         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
12986         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
12987         (trunc<mode>sf2_hw): Change the truncate with round to odd
12988         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
12989         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
12990         to odd hardware instructions.
12991         (sub<mode>3_odd): Likewise.
12992         (mul<mode>3_odd): Likewise.
12993         (div<mode>3_odd): Likewise.
12994         (sqrt<mode>2_odd): Likewise.
12995         (fma<mode>4_odd): Likewise.
12996         (fms<mode>4_odd): Likewise.
12997         (nfma<mode>4_odd): Likewise.
12998         (nfms<mode>4_odd): Likewise.
12999         (trunc<mode>df2_odd): Change the truncate with round to odd
13000         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
13001         function.
13002         * doc/extend.texi (PowerPC built-in functions): Update documentation
13003         for existing IEEE float128-bit built-in functions.  Add built-in
13004         functions that generate the IEEE 128-bit floating point round to
13005         odd instructions.
13006
13007 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
13008
13009         PR rtl-optimization/77729
13010         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
13011         to (X&(C1&~C2))|C2 transformations.
13012
13013 2017-10-03  Martin Jambor  <mjambor@suse.cz>
13014
13015         PR tree-optimization/82363
13016         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
13017         mismatch, mark lacc written regardless of racc.
13018
13019 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
13020
13021         PR tree-optimization/82381
13022         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
13023         stmt_to_insert nor wheather SSA_NAMEs are default defs.
13024         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
13025         fallthrough into reassoc_stmt_dominates_stmt_p.
13026
13027         PR target/82386
13028         * combine.c (combine_instructions): Don't combine in unreachable
13029         basic blocks.
13030
13031 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
13032
13033         PR target/80210
13034         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
13035         function to not use the have_cpu variable.  Do not set cpu_index,
13036         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
13037         or the default cpu.
13038         (rs6000_valid_attribute_p): Remove duplicate initializations of
13039         old_optimize and func_optimize.
13040         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
13041         (rs6000_activate_target_options): Make global.
13042         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
13043         prototype.
13044
13045 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
13046
13047         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
13048         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
13049         Set *poffset to 0 and *psize and *pmax_size to -1 if
13050         *poffset + *psize overflows in HOST_WIDE_INT.
13051
13052         PR tree-optimization/82387
13053         PR tree-optimization/82388
13054         PR tree-optimization/82389
13055         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
13056         instead of live_bytes non-NULL.
13057
13058 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
13059
13060         PR target/41076
13061         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
13062         alternative.
13063
13064 2017-10-02  Richard Biener  <rguenther@suse.de>
13065
13066         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
13067         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
13068         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
13069
13070 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13071
13072         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
13073         requested precision matches the type's.
13074         * calls.c (alloc_max_size): Calculate the new candidate size as
13075         a widest_int and use wi::to_widest when comparing it with the
13076         current candidate size.
13077         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
13078         zero rather than integer_zero_node.
13079         * match.pd: Check for a no-op conversion before using wi::add
13080         rather than after.  Use tree_to_uhwi when summing small shift
13081         counts into an unsigned int.
13082
13083 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13084             Alan Hayward  <alan.hayward@arm.com>
13085             David Sherwood  <david.sherwood@arm.com>
13086
13087         PR target/71307
13088         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
13089         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13090         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
13091         POINTER_AND_FP_REGS.
13092
13093 2017-10-02  Richard Biener  <rguenther@suse.de>
13094
13095         PR tree-optimization/82355
13096         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
13097         a mapping for the enclosing loop but avoid generating one for
13098         the loop tree root.
13099         (copy_bb_and_scalar_dependences): Remove premature codegen
13100         error on PHIs in blocks duplicated into multiple places.
13101         * graphite-scop-detection.c
13102         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
13103         in the region use it as loop and nest to analyze the DR in.
13104         (try_generate_gimple_bb): Likewise.
13105         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
13106         (add_loop_constraints): For blocks in a loop not in the region
13107         create a dimension with a single iteration.
13108         * sese.h (gbb_loop_at_index): Remove assert.
13109
13110 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
13111
13112         * omp-expand.c (adjust_context_scope): New function.
13113         (expand_parallel_call): Call adjust_context_scope.
13114
13115 2017-10-01  Jeff Law  <law@redhat.com>
13116
13117         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
13118         dom_opt_dom_walker class with direct access to private members.
13119         Add comments.  Call test_for_singularity.
13120         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
13121         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
13122         m_dummy_cond anymore.
13123         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
13124         class ctor.
13125         (pass_dominator:execute): Build the dummy_cond here and pass it
13126         to the dom_opt_dom_walker ctor.
13127         (test_for_singularity): New function.
13128
13129 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
13130             Maya Rashish  <coypu@sdf.org>
13131
13132         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
13133         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
13134         (alpha*-*-netbsd*) Use nbsd_tm_file.
13135         (arm*-*-netbsdelf*) Likewise.
13136         (i[34567]86-*-netbsdelf*) Likewise.
13137         (x86_64-*-netbsd*) Likewise.
13138         (mips*-*-netbsd*) Likewise.
13139         (powerpc-*-netbsd*) Likewise.
13140         (sh*-*-netbsd*) Likewise.
13141         (sparc-*-netbsdelf*) Likewise.
13142         (sparc64-*-netbsd*) Likewise.
13143         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
13144         to tm_defines.
13145         (vax-*-netbsdelf*) Likewise.
13146         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
13147         (UINT_FAST8_TYPE) Likewise.
13148         (INT_FAST16_TYPE) Check CHAR_FAST16.
13149         (UINT_FAST16_TYPE) Likewise.
13150
13151 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
13152
13153         PR target/82361
13154         * config/i386/i386.md
13155         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
13156         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
13157         *divmodsi4_zext_2): New define_insn_and_split.
13158         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
13159         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
13160         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
13161         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
13162         New define_insn_and_split.
13163         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
13164         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
13165         operands[1] having DImode when mode is SImode.
13166
13167         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
13168         always SImode for DIV and MOD in REG_EQUAL notes.
13169
13170 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
13171
13172         PR middle-end/82319
13173         * match.pd: Fix handling of NaNs in pattern.
13174
13175 2017-09-29  Jeff Law  <law@redhat.com>
13176
13177         * sbitmap.c (bitmap_bit_in_range_p): New function.
13178         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
13179         * tree-ssa-dse.c (live_bytes_read): New function.
13180         (dse_classify_store): Ignore reads of dead bytes.
13181
13182         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
13183         typos and whitespace errors.
13184         * config/i386/predicates.md (address_no_seg_operand): Likewise.
13185         * config/s390/s390.c (s390_emit_prologue): Likewise.
13186
13187 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13188
13189         PR target/81481
13190         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
13191         with a symbol for LRA.
13192
13193 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13194
13195         PR rtl-optimization/82338
13196         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
13197
13198 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
13199
13200         * genmodes.c (calc_wider_mode): Suppress qsort macro.
13201         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
13202         (qsort_chk): Declare.
13203         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
13204         (qsort_chk): New function.
13205
13206 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13207
13208         PR tree-optimization/82337
13209         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13210         phi definition if the PHI result appears in an abnormal PHI.
13211         (find_basis_for_base_expr): Don't record a basis if the LHS of the
13212         basis appears in an abnormal PHI.
13213
13214 2017-09-29  Richard Biener  <rguenther@suse.de>
13215
13216         * graphite-isl-ast-to-gimple.c
13217         (translate_isl_ast_to_gimple::set_codegen_error): New function.
13218         (binary_op_to_tree): Use it.
13219         (get_rename_from_scev): Likewise.
13220         (copy_loop_phi_nodes): Likewise.
13221         (copy_bb_and_scalar_dependences): Likewise.
13222         (translate_pending_phi_nodes): Likewise.
13223
13224 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
13225
13226         PR target/82339
13227         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
13228         for movabsq $(i32 << shift), r64.
13229
13230 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
13231
13232         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
13233         index when encoding %esp as %rsp to avoid 0x67 prefix.
13234
13235 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
13236
13237         * config/i386/i386.md (*movsf_internal, *movdf_internal):
13238         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
13239
13240 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13241
13242         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
13243         Extensions with more than 16 double VFP registers.
13244         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
13245         to_clear_mask and all code related to it.  Replace the remaining
13246         entry by a sbitmap and adapt code accordingly.
13247
13248 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
13249
13250         * brig-builtins.def: Change pure attributes to const.
13251
13252 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13253
13254         * config.gcc (default_gnu_indirect_function): Default to yes for
13255         sparc*-*-linux* with glibc.
13256
13257 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13258
13259         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
13260         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
13261         when creating .init_array and .fini_array sections with priority
13262         specified.
13263
13264 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
13265
13266         PR target/71727
13267         * config/aarch64/aarch64.c
13268         (aarch64_builtin_support_vector_misalignment): Always return false
13269         when misalignment is unknown.
13270
13271 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13272
13273         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
13274         this function to return false if the definition used by the swap
13275         instruction is artificial, or if the memory address from which the
13276         constant value is loaded is not represented by a base address held
13277         in a register or if the base address register is a frame or stack
13278         pointer.  Additionally, return false if the base address of the
13279         loaded constant is a SYMBOL_REF but is not considered to be a
13280         constant.
13281         (replace_swapped_load_constant): New function.
13282         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
13283         loaded constant vector with a load of a swapped constant vector.
13284
13285 2017-09-27  Carl Love  <cel@us.ibm.com>
13286
13287         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
13288         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
13289         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
13290         fctiw instruction.
13291
13292 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
13293
13294         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
13295         first, always call autopref_rank_data otherwise.
13296
13297 2017-09-27  Richard Biener  <rguenther@suse.de>
13298
13299         * graphite-scop-detection.c (find_scop_parameters): Move
13300         loop bound handling ...
13301         (gather_bbs::before_dom_children): ... here, avoiding the need
13302         to build scop_info->loop_nest.
13303         (record_loop_in_sese): Remove.
13304         * sese.h (sese_info_t::loop_nest): Remove.
13305         * sese.c (new_sese_info): Do not allocate loop_nest.
13306         (free_sese_info): Do not free loop_nest.
13307
13308 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
13309
13310         PR c++/82159
13311         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
13312         lhs from calls if the lhs has addressable type.
13313
13314 2017-09-27  Richard Biener  <rguenther@suse.de>
13315
13316         * graphite.h (scop::max_alias_set): New member.
13317         * graphite-scop-detection.c: Remove references to non-existing
13318         --param in comments.
13319         (build_alias_sets): Record the maximum alias set used for drs.
13320         (build_scops): Support zero as unlimited for
13321         --param graphite-max-arrays-per-scop.
13322         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
13323         and inline into ...
13324         (build_poly_sr_1): ... here.  Compute alias set based on the
13325         maximum alias set used for drs rather than
13326         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
13327
13328 2017-09-27  Richard Biener  <rguenther@suse.de>
13329
13330         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
13331         --param loop-block-tile-size=0 to disable tiling.
13332
13333 2017-09-27  Richard Biener  <rguenther@suse.de>
13334
13335         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
13336         (graphite-max-nb-scop-params): Document special value zero.
13337         * domwalk.h (dom_walker::STOP): New symbolical constant.
13338         (dom_walker::dom_walker): Add optional parameter for bb to
13339         RPO mapping.
13340         (dom_walker::~dom_walker): Declare.
13341         (dom_walker::before_dom_children): Document STOP return value.
13342         (dom_walker::m_user_bb_to_rpo): New member.
13343         (dom_walker::m_bb_to_rpo): Likewise.
13344         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
13345         mapping here if not provided by the user.
13346         (dom_walker::~dom_walker): Free bb to RPO mapping if not
13347         provided by the user.
13348         (dom_walker::STOP): Define.
13349         (dom_walker::walk): Do not compute bb to RPO mapping here.
13350         Support STOP return value from before_dom_children to stop
13351         walking.
13352         * graphite-optimize-isl.c (optimize_isl): If the schedule
13353         is the same still generate code if -fgraphite-identity
13354         or -floop-parallelize-all are given.
13355         * graphite-scop-detection.c: Include cfganal.h.
13356         (gather_bbs::gather_bbs): Get and pass through bb to RPO
13357         mapping.
13358         (gather_bbs::before_dom_children): Return STOP for BBs
13359         not in the region.
13360         (build_scops): Compute bb to RPO mapping and pass it to
13361         the domwalk.  Treat --param graphite-max-nb-scop-params=0
13362         as not limiting the number of params.
13363         * graphite.c (graphite_initialize): Remove limit on the
13364         number of basic-blocks in a function.
13365         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
13366         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
13367         default value of 10.
13368
13369 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13370
13371         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
13372         Adjust code to eliminate needing to do the shift right 32-bits
13373         operation after XSCVDPSPN.
13374
13375 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13376
13377         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
13378         ((X / Y) != 0 -> X >= Y): Likewise.
13379
13380 2017-09-26  Carl Love  <cel@us.ibm.com>
13381
13382         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
13383         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
13384         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
13385         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
13386         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
13387         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
13388         definitions and overloading.
13389         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
13390         statement for P9V_BUILTIN_XST_LEN_R.
13391         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
13392         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
13393         define_expand and define_insn for the instructions and builtins.
13394         * doc/extend.texi: Update the built-in documentation file for the new
13395         built-in functions.
13396         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
13397         define_insn for the instructions
13398
13399 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
13400
13401         PR target/39570
13402         * gcc/config/netbsd-protos.h: New file.
13403         * gcc/config/netbsd.c: New file.
13404         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
13405         * gcc/config/t-netbsd: New file.
13406         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
13407         (tmake_file) Add t-netbsd.
13408         (extra_objs) Add netbsd.o.
13409
13410 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
13411
13412         PR fortran/82143
13413         PR fortran/82324
13414         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
13415
13416 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13417
13418         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
13419         sign extension from a vector register to a GPR by doing a 32-bit
13420         direct move and then an EXTSW.
13421         (extendsi<mode>2 splitter): Likewise.
13422         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
13423         right or vector extract after doing XSCVDPSPN.  Use
13424         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
13425         the GPRs.
13426         (movdi_from_sf_zero_ext): Likewise.
13427         (reload_gpr_from_vsxsf): Likewise.
13428         (p8_mfvsrd_4_disf): Delete, no longer used.
13429         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
13430         then needing to move the SFmode to a GPR to use the XSCVDPSP
13431         instruction instead of FRSP and XSCVDPSPN.
13432         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
13433         it is adjacent to the other XSCVSPDP insns.
13434         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
13435         SFmode to be in traditional Altivec registers.
13436         (vsx_xscvdpspn): Eliminate useless alternative constraint.
13437         (vsx_xscvspdpn): Likewise.
13438         (vsx_xscvspdpn_scalar): Likewise.
13439
13440 2017-09-26  Martin Jambor  <mjambor@suse.cz>
13441
13442         * tree-sra.c (compare_access_positions): Put integral types first,
13443         stabilize sorting of integral types, remove conditions putting
13444         non-full-precision integers last.
13445         (sort_and_splice_var_accesses): Disable scalarization if a
13446         non-integert would be represented by a non-full-precision integer.
13447
13448 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
13449
13450         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
13451         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
13452         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
13453         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
13454         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
13455         conditionals inside the function instead of around it.  Call
13456         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
13457         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
13458
13459 2017-09-26  Richard Biener  <rguenther@suse.de>
13460
13461         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
13462         fold in ...
13463         (scop_detection::build_scop_breadth): ... this.  Removed.
13464         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
13465         (scop_detection::harmful_stmt_in_bb): Likewise.
13466         (scop_detection::graphite_can_represent_stmt): Likewise.
13467         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
13468         (scop_detection::can_represent_loop): Remove recursion, fold in ...
13469         (scop_detection::can_represent_loop_1): ... this.  Removed.
13470         (scop_detection::harmful_loop_in_region): Simplify after inlining
13471         the above and remove more quadraticness.
13472         (build_scops): Adjust.
13473         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
13474         quadraticness.
13475
13476 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
13477
13478         PR target/82267
13479         * config/i386/i386.c (ix86_print_operand_address_as): Only test
13480         REGNO (base) == SP_REG if base is a REG.
13481
13482         PR middle-end/35691
13483         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
13484         if it is different SSA_NAME.
13485         (optimize_range_tests_cmp_bitwise): New function.
13486         (optimize_range_tests): Call it.
13487
13488 2017-09-26  Richard Biener  <rguenther@suse.de>
13489
13490         PR tree-optimization/82321
13491         * graphite.c (canonicalize_loop_closed_ssa): Properly check
13492         for the def being inside the loop.
13493
13494 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13495
13496         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
13497         assembler output.
13498         * config/s390/s390-builtins.def: Fix constraint on op4.
13499
13500 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13501
13502         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
13503         independent expanders.
13504         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
13505         ("vec_ordered", "vec_unordered"): New expanders.
13506
13507 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13508
13509         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
13510         for SFmode.
13511
13512 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13513
13514         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
13515         vec_unpacks_lo_v16qi.
13516         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
13517
13518 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13519
13520         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
13521         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
13522         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
13523
13524 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13525
13526         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
13527         predicate.
13528         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
13529         and V16QI.
13530         ("*vec_slb<mode>"): New insn pattern.
13531         ("vec_shr_<mode>"): New expander.
13532         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
13533         and force the shift count operand to V16QImode.
13534         ("vec_srb<mode>"): Set shift count mode to V16QI.
13535
13536 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13537
13538         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
13539         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
13540         ("vec_widen_smult_hi_<mode>"): New expander definitions.
13541
13542 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
13543
13544         PR target/82175
13545         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
13546
13547 2017-09-26  Richard Biener  <rguenther@suse.de>
13548
13549         PR tree-optimization/82320
13550         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
13551         isn't a change.
13552
13553 2017-09-25  Jeff Law  <law@redhat.com>
13554
13555         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
13556         prototype for new argument.
13557         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
13558         mostly extracted from rs6000_emit_allocate_stack.
13559         (rs6000_emit_probe_stack_range_stack_clash): New function.
13560         (rs6000_emit_allocate_stack): Call
13561         rs6000_emit_probe_stack_range_stack_clash as needed.
13562         (rs6000_emit_probe_stack_range): Add additional argument
13563         to call to gen_probe_stack_range{si,di}.
13564         (output_probe_stack_range): New.
13565         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
13566         (output_probe_stack_range_stack_clash): New.
13567         (rs6000_emit_prologue): Emit notes into dump file as requested.
13568         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
13569         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
13570         Add additional operand and pass it to output_probe_stack_range.
13571
13572 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
13573
13574         PR tree-optimization/82163
13575         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
13576         (checking_verify_loop_closed_ssa): New parameter.
13577         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
13578         (check_loop_closed_ssa_stmt): Delete.
13579         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
13580         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
13581         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
13582         changed loops.
13583
13584 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
13585
13586         * brig-builtins.def: Treat HSAIL barrier builtins as
13587         setjmp/longjump style functions.
13588
13589 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13590
13591         * target.def (constant_alignment): New hook.
13592         * defaults.h (CONSTANT_ALIGNMENT): Delete.
13593         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
13594         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
13595         * doc/tm.texi: Regenerate.
13596         * targhooks.h (default_constant_alignment): Declare.
13597         (constant_alignment_word_strings): Likewise.
13598         * targhooks.c (default_constant_alignment): New function.
13599         (constant_alignment_word_strings): Likewise.
13600         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
13601         instead of CONSTANT_ALIGNMENT.
13602         * varasm.c (align_variable, get_variable_align, build_constant_desc)
13603         (force_const_mem): Likewise.
13604         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
13605         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
13606         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
13607         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13608         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
13609         definition.
13610         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
13611         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13612         constant_alignment_word_strings.
13613         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
13614         (CONSTANT_ALIGNMENT): Likewise.
13615         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13616         (arm_constant_alignment): New function.
13617         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
13618         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13619         constant_alignment_word_strings.
13620         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
13621         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13622         constant_alignment_word_strings.
13623         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
13624         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13625         (cris_constant_alignment): New function.
13626         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
13627         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13628         (epiphany_constant_alignment): New function.
13629         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
13630         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13631         constant_alignment_word_strings.
13632         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
13633         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13634         constant_alignment_word_strings.
13635         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
13636         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13637         constant_alignment_word_strings.
13638         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
13639         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
13640         * config/i386/i386.c (ix86_constant_alignment): Make static.
13641         Use the same interface as the target hook.
13642         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13643         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
13644         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13645         constant_alignment_word_strings.
13646         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
13647         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
13648         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13649         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
13650         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13651         constant_alignment_word_strings.
13652         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
13653         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13654         constant_alignment_word_strings.
13655         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
13656         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13657         constant_alignment_word_strings.
13658         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
13659         * config/microblaze/microblaze.c (microblaze_constant_alignment):
13660         New function.
13661         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13662         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
13663         * config/mips/mips.c (mips_constant_alignment): New function.
13664         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13665         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
13666         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
13667         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13668         (mmix_constant_alignment): Make static.  Use the same interface
13669         as the target hook.
13670         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
13671         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13672         constant_alignment_word_strings.
13673         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
13674         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13675         constant_alignment_word_strings.
13676         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
13677         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13678         constant_alignment_word_strings.
13679         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
13680         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13681         (rs6000_constant_alignment): New function.
13682         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
13683         * config/riscv/riscv.c (riscv_constant_alignment): New function.
13684         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13685         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
13686         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13687         (rs6000_constant_alignment): New function.
13688         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
13689         * config/s390/s390.c (s390_constant_alignment): New function.
13690         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13691         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
13692         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13693         constant_alignment_word_strings.
13694         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
13695         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13696         (sparc_constant_alignment): New function.
13697         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
13698         * config/spu/spu.c (spu_constant_alignment): New function.
13699         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13700         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
13701         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13702         constant_alignment_word_strings.
13703         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
13704         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13705         constant_alignment_word_strings.
13706         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
13707         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13708         constant_alignment_word_strings.
13709         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
13710         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13711         (visium_constant_alignment): New function.
13712         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
13713         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13714         (xtensa_constant_alignment): New function.
13715         * system.h (CONSTANT_ALIGNMENT): Poison.
13716
13717 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
13718
13719         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13720         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
13721         (rs6000_builtin_valid_without_lhs): New helper function.
13722         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13723         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
13724
13725 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13726
13727         * target.h (vec_perm_indices): Use unsigned short rather than
13728         unsigned char.
13729         (auto_vec_perm_indices): Likewise.
13730         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
13731         Use unsigned int rather than unsigned char.
13732         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
13733
13734 2017-09-25  Richard Biener  <rguenther@suse.de>
13735
13736         * cfgloop.h (sort_sibling_loops): Declare.
13737         * cfgloop.c (sort_sibling_loops_cmp): New helper.
13738         (sort_sibling_loops): New function sorting the sibling loop list
13739         in RPO order.
13740         * graphite.c (graphite_transform_loops): Sort sibling loops.
13741
13742 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
13743
13744         * target.def (vec_perm_const_ok): Change sel parameter to
13745         vec_perm_indices.
13746         * optabs-query.c (can_vec_perm_p): Update accordingly.
13747         * doc/tm.texi: Regenerate.
13748         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
13749         auto_vec_perm_indices and remove separate nelt field.
13750         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
13751         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
13752         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
13753         (aarch64_expand_vec_perm_const): Update accordingly.
13754         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
13755         to vec_perm_indices.
13756         * config/arm/arm.c (expand_vec_perm_d): Change perm to
13757         auto_vec_perm_indices and remove separate nelt field.
13758         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
13759         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
13760         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
13761         accordingly.
13762         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
13763         to vec_perm_indices.
13764         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
13765         sel to vec_perm_indices.
13766         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
13767         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
13768         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
13769         Likewise.
13770         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
13771         Likewise.
13772
13773 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
13774
13775         PR debug/82155
13776         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
13777         on the FUNCTION_DECL function context if it has a DIE that is a
13778         declaration.
13779
13780 2017-09-25  Richard Biener  <rguenther@suse.de>
13781
13782         PR tree-optimization/82285
13783         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
13784         enumeral types.
13785
13786 2017-09-25  Tom de Vries  <tom@codesourcery.com>
13787
13788         PR target/80035
13789         PR target/81069
13790         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
13791         noreturn function.
13792
13793 2017-09-25  Richard Biener  <rguenther@suse.de>
13794
13795         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
13796         ISL errors other than isl_error_quota happen.  Dump if the
13797         schedule is the same.
13798         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
13799         errors instead of aborting inside ISL.
13800
13801 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
13802
13803         PR target/80556
13804         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
13805         of libgcc_eh for m64.
13806         * config/i386/darwin64.h: Likewise.
13807
13808 2017-09-25  Richard Biener  <rguenther@suse.de>
13809
13810         PR middle-end/82144
13811         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
13812         attribute for incomplete types nor twice for complete ones.
13813
13814 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
13815
13816         PR target/82267
13817         * config/i386/i386.c (ix86_print_operand_address_as): Encode
13818         %esp as %rsp to avoid 0x67 prefix if there is no index or base
13819         register.
13820
13821 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
13822
13823         PR bootstrap/82306
13824         * config/i386/i386.opt (mprefer-avx256): Use
13825         ix86_target_flags variable.
13826         * config/i386/i386.c (ix86_target_string): Move
13827         -mprefer-avx256 to flag2_opts.
13828
13829 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
13830
13831         PR middle-end/35691
13832         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
13833         and x != -1 | y != -1 into (x & y) != -1.
13834
13835 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
13836
13837         * config.gcc: Add new case statement to set
13838         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
13839         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
13840         s390x-*-linux* case statements.   Added aarch64 to the list of
13841         supported architectures.
13842
13843 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13844
13845         PR tree-optimization/82289
13846         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
13847         STMT_VINFO_RELEVANT_P.
13848
13849 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13850             Alan Hayward  <alan.hayward@arm.com>
13851             David Sherwood  <david.sherwood@arm.com>
13852
13853         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
13854         for VR_RANGE only; don't allow VR_ANTI_RANGE.
13855         (extract_range_from_binary_expr_1): Don't call
13856         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
13857
13858 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13859             Alan Hayward  <alan.hayward@arm.com>
13860             David Sherwood  <david.sherwood@arm.com>
13861
13862         * target.def (preferred_vector_alignment): New hook.
13863         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
13864         hook.
13865         * doc/tm.texi: Regenerate.
13866         * targhooks.h (default_preferred_vector_alignment): Declare.
13867         * targhooks.c (default_preferred_vector_alignment): New function.
13868         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
13869         Expand commentary.
13870         (DR_TARGET_ALIGNMENT): New macro.
13871         (aligned_access_p): Update commentary.
13872         (vect_known_alignment_in_bytes): New function.
13873         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
13874         function.
13875         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
13876         Calculate the misalignment based on the target alignment rather than
13877         the vector size.
13878         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
13879         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
13880         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
13881         the target alignment, rather than masking the element misalignment
13882         with the number of elements in a vector.  Also use the target
13883         alignment when calculating the maximum number of peels.
13884         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
13885         instead of TYPE_ALIGN_UNIT.
13886         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
13887         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
13888         (vect_create_addr_base_for_vector_ref): Update call accordingly.
13889         (vect_create_data_ref_ptr): Likewise.
13890         (vect_setup_realignment): Realign by ANDing with
13891         -DR_TARGET_MISALIGNMENT.
13892         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
13893         the number of peels based on DR_TARGET_ALIGNMENT.
13894         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
13895         with the guaranteed alignment boundary when deciding whether
13896         overrun is OK.
13897         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
13898         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
13899         (ensure_base_align): Remove stmt_info parameter.  Get the
13900         target base alignment from DR_TARGET_ALIGNMENT.
13901         (vectorizable_store): Update call accordingly.   Interpret
13902         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
13903         TYPE_ALIGN_UNIT.
13904         (vectorizable_load): Likewise.
13905
13906 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13907             Alan Hayward  <alan.hayward@arm.com>
13908             David Sherwood  <david.sherwood@arm.com>
13909
13910         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
13911         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
13912         (vect_enhance_data_refs_alignment): Likewise.
13913
13914 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13915
13916         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
13917         error.  Only quit immediately if parsing is complete.
13918         (BEGIN): Initialize fatal_err and parse_done.
13919         (begin fpu, end fpu): Check number of arguments.
13920         (begin arch, end arch): Likewise.
13921         (begin cpu, end cpu): Likewise.
13922         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
13923         (optalias): Likewise.
13924
13925 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
13926
13927         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
13928         * config/arm/arm-isa.h: Delete.  Move definitions to ...
13929         * arm-cpus.in: ... here.  Use new feature and fgroup values.
13930         * config/arm/arm.c (arm_option_override): Use lower case for feature
13931         bit names.
13932         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
13933         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
13934         * config/arm/parsecpu.awk (END): Add new command 'isa'.
13935         (isa_pfx): Delete.
13936         (print_isa_bits_for): New function.
13937         (gen_isa): New function.
13938         (gen_comm_data): Use print_isa_bits_for.
13939         (define feature): New keyword.
13940         (define fgroup): New keyword.
13941         * config/arm/t-arm (TM_H): Remove.
13942         (GTM_H): Add arm-isa.h.
13943         (arm-isa.h): Add rule to generate file.
13944         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
13945         case for feature bit names.
13946
13947 2017-09-22  Richard Biener  <rguenther@suse.de>
13948
13949         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
13950         single caller.
13951         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
13952         print of no dependency loops ...
13953         * graphite.c (graphite_transform_loops): ... here.
13954         (canonicalize_loop_closed_ssa_form): Work from inner to outer
13955         loops.
13956         (same_close_phi_node, remove_duplicate_close_phi,
13957         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
13958         (canonicalize_loop_closed_ssa): ... here and simplify.
13959         * graphite-optimize-isl.c: Include tree-vectorizer.h.
13960         (optimize_isl): Use dump_printf_loc to tell when we stopped
13961         optimizing because of an ISL timeout.
13962
13963 2017-09-22  Richard Biener  <rguenther@suse.de>
13964
13965         PR tree-optimization/82291
13966         * tree-if-conv.c (predicate_mem_writes): Make sure to
13967         remove writes in blocks predicated with false.
13968
13969 2017-09-22  Richard Biener  <rguenther@suse.de>
13970
13971         * sese.c: Include cfganal.h.
13972         (if_region_set_false_region): Remove.
13973         (create_if_region_on_edge): Likewise.
13974         (move_sese_in_condition): Re-implement without destroying
13975         dominators.
13976
13977 2017-09-22  Richard Biener  <rguenther@suse.de>
13978
13979         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
13980         Verify both BBs contain loop PHI nodes before dispatching to
13981         copy_loop_phi_args.
13982         (graphite_regenerate_ast_isl): Do not recompute dominators,
13983         do not verify three times.  Restructure for clarity.
13984         * graphite-scop-detection.c (same_close_phi_node,
13985         remove_duplicate_close_phi, make_close_phi_nodes_unique,
13986         defined_in_loop_p, canonicalize_loop_closed_ssa,
13987         canonicalize_loop_closed_ssa_form): Simplify, remove excess
13988         checking and SSA rewrite, move to ...
13989         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
13990         (graphite_initialize): Do not pass in ctx, do not reset the
13991         SCEV cache, compute only dominators.
13992         (graphite_transform_loops): Allocate ISL ctx after
13993         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
13994         Maintain post-dominators only around build_scops.
13995         * sese.c (if_region_set_false_region): Make static.  Free
13996         and recompute dominators.
13997         (move_sese_in_condition): Assert we don't get called with
13998         post-dominators computed.
13999         * sese.h (if_region_set_false_region): Remove.
14000
14001 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
14002
14003         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
14004         mode attribute for TARGET_AVX512VL.
14005
14006 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
14007
14008         * config/i386/i386.opt (mprefer-avx256): New option.
14009         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
14010         to flag_opts.
14011         (ix86_preferred_simd_mode): Return 256-bit AVX modes
14012         for TARGET_PREFER_AVX256.
14013         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
14014
14015 2017-09-21  Jeff Law  <law@redhat.com>
14016
14017         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
14018         Fix dump output if the only stack space is for pushed registers.
14019
14020 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14021
14022         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
14023         of insn_cost.
14024
14025 2017-09-21  Martin Sebor  <msebor@redhat.com>
14026
14027         PR c/81882
14028         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
14029         code (in C++) or code that triggers warnings.
14030
14031 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
14032
14033         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
14034
14035 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14036
14037         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
14038         * sched-rgn.c: Ditto.
14039         * sel-sched-ir.c: Ditto.
14040
14041 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
14042
14043         * toplev.h (set_random_seed): Adjust return type.
14044         * toplev.c (init_local_tick): Move eager initialization of random_seed
14045         to get_random_seed.  Adjust comment.
14046         (init_random_seed): Inline to get_random_seed, delete.
14047         (get_random_seed): Initialize random_seed lazily.
14048         (set_random_seed): Do not return previous value.
14049         (print_switch_value): Do not call get_random_seed.
14050
14051 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
14052
14053         * cgraph.c (delete_function_version): New, broken out from...
14054         (cgraph_node::delete_function_version): ...here.  Rename to
14055         cgraph_node::delete_function_version_by_decl.  Update all uses.
14056         (cgraph_node::remove): Call delete_function_version.
14057
14058 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14059
14060         PR sanitizer/81715
14061         * tree-inline.c (expand_call_inline): Emit clobber stmts for
14062         VAR_DECLs to which addressable non-volatile parameters are mapped
14063         and for id->retvar after the return value assignment.  Clear
14064         id->retval and id->retbnd after inlining.
14065
14066 2017-09-21  Richard Biener  <rguenther@suse.de>
14067
14068         PR tree-optimization/82276
14069         PR tree-optimization/82244
14070         * tree-vrp.c (build_assert_expr_for): Set
14071         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
14072         has it set.
14073         (remove_range_assertions): Revert earlier change.
14074
14075 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
14076
14077         PR target/71951
14078         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
14079
14080 2017-09-21  Richard Biener  <rguenther@suse.de>
14081
14082         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
14083         Restore valid IL after code generation errors.
14084         * graphite.c (graphite_transform_loops): Diagnose code
14085         generation issues as MSG_MISSED_OPTIMIZATION and continue
14086         with processing SCOPs.
14087
14088 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14089             Alan Hayward  <alan.hayward@arm.com>
14090             David Sherwood  <david.sherwood@arm.com>
14091
14092         * calls.c (compute_argument_addresses): Use simplify_gen_binary
14093         rather than choosing between plus_constant and gen_rtx_<CODE>.
14094         * expr.c (emit_push_insn): Likewise.
14095         (expand_expr_real_2): Likewise.
14096
14097 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14098             Alan Hayward  <alan.hayward@arm.com>
14099             David Sherwood  <david.sherwood@arm.com>
14100
14101         * loop-unroll.c (split_iv): Call copy_rtx on the step.
14102
14103 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14104             Alan Hayward  <alan.hayward@arm.com>
14105             David Sherwood  <david.sherwood@arm.com>
14106
14107         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
14108         calling tree_to_uhwi.
14109
14110 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14111             Alan Hayward  <alan.hayward@arm.com>
14112             David Sherwood  <david.sherwood@arm.com>
14113
14114         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
14115         INTEGER_CST rather than a negative test for ADDR_EXPR.
14116
14117 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14118             Alan Hayward  <alan.hayward@arm.com>
14119             David Sherwood  <david.sherwood@arm.com>
14120
14121         * tree-vrp.c (extract_range_from_binary_expr_1): Check
14122         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
14123
14124 2017-09-21  Richard Biener  <rguenther@suse.de>
14125
14126         PR tree-optimization/71351
14127         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
14128         graphite_create_new_loop_guard): Remove, fold remaining parts
14129         into caller ...
14130         (translate_isl_ast_node_for): ... here and simplify.
14131
14132 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14133
14134         PR target/82260
14135         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
14136         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
14137         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
14138         alternative always use QI mode, for -Os imov (=R,R) alternative
14139         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
14140         ignore -Os.
14141
14142 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14143             Jeff Law  <law@redhat.com>
14144
14145         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
14146         (allocate_stack_space): New function, partially extracted from
14147         s390_emit_prologue.
14148         (s390_emit_prologue): Track offset to most recent stack probe.
14149         Code to allocate space moved into allocate_stack_space.
14150         Dump actions when no stack is allocated.
14151         (s390_prologue_plus_offset): New function.
14152         (s390_emit_stack_probe): Likewise.
14153
14154 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
14155
14156         * common.opt (Wa, Wl, Wp, g, gz=): Add
14157         RejectNegative.
14158         (gno-column-info): Remove.
14159         (gcolumn-info): Drop RejectNegative.
14160         (gno-): New prefix.
14161         (gno-record-gcc-switches): Remove.
14162         (grecord-gcc-switches): Drop RejectNegative.
14163         (gno-split-dwarf): Remove.
14164         (gsplit-dwarf): Drop RejectNegative.
14165         (gno-strict-dwarf): Remove.
14166         (gstrict-dwarf): Drop RejectNegative.
14167         * config/darwin.opt (gfull, gused): Add RejectNegative.
14168         * dwarf2out.c (gen_producer_string): Drop
14169         gno-record-gcc-switches handler.
14170         * optc-gen.awk: Add g to prefixes with negative forms.
14171         * opts-common.c (remapping_prefix_p): New.
14172         (find_opt): Check it.
14173         (generate_canonical_option): Test g prefix.
14174         (option_map): Add -gno- mapping.
14175         (add_misspelling_candidates): Check remapping_prefix_p.
14176
14177 2017-09-20  Jeff Law  <law@redhat.com>
14178
14179         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
14180         thinko in stack clash protection support.
14181
14182         * explow.c (compute_stack_clash_protection_loop_data): Use
14183         CONST_INT_P instead of explicit test.  Verify object is a
14184         CONST_INT_P before looking at INTVAL.
14185         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
14186         instead of explicit test.
14187
14188 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
14189
14190         PR target/77687
14191         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
14192         address instead of to r1 and r11.
14193
14194 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
14195
14196         * config.gcc: Support "knm".
14197         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
14198         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14199         PROCESSOR_KNM.
14200         * config/i386/i386.c (m_KNM): Define.
14201         (processor_target_table): Add "knm".
14202         (PTA_KNM): Define.
14203         (ix86_option_override_internal): Add "knm".
14204         (ix86_issue_rate): Add PROCESSOR_KNM.
14205         (ix86_adjust_cost): Ditto.
14206         (ia32_multipass_dfa_lookahead): Ditto.
14207         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
14208         (fold_builtin_cpu): Add M_INTEL_KNM.
14209         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
14210         (processor_type): Add PROCESSOR_KNM.
14211         * config/i386/x86-tune.def: Add m_KNM.
14212         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
14213
14214 2017-09-20  Richard Biener  <rguenther@suse.de>
14215
14216         PR tree-optimization/80213
14217         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
14218         are allowed in empty BBs as well.
14219         (canonicalize_loop_closed_ssa): Also look for other complex
14220         edges.
14221         (scop_detection::get_sese): Include the loop-closed PHI block
14222         in loop SESEs.
14223         (scop_detection::merge_sese): Remove code adding extra blocks.
14224         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
14225         (build_scops): Assert the final returned scop is invalid.
14226
14227 2017-09-20  Richard Biener  <rguenther@suse.de>
14228
14229         PR tree-optimization/82264
14230         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
14231         for GIMPLE_CONDs.
14232         (vn_phi_lookup): Likewise.
14233         (vn_phi_insert): Likewise.
14234
14235 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
14236
14237         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
14238         that fits into uhwi or shwi, add DW_AT_const_value regardless
14239         of early_dwarf without going through RTL, using add_AT_unsigned
14240         or add_AT_int.
14241
14242         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
14243         (DEBUG_LTO_ABBREV_SECTION): Likewise.
14244         (DEBUG_LTO_MACINFO_SECTION): Likewise.
14245         (DEBUG_MACRO_SECTION): Likewise.
14246         (DEBUG_LTO_MACRO_SECTION): Likewise.
14247         (DEBUG_STR_DWO_SECTION): Likewise.
14248         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
14249         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
14250         (DEBUG_LTO_DWO_LINE_SECTION): Define.
14251         (DEBUG_LTO_LINE_STR_SECTION): Define.
14252         (init_sections_and_labels): Initialize debug_line_str_section
14253         variable.  Initialize debug_loc_section for -gdwarf-5 to
14254         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
14255
14256 2017-09-20  Richard Biener  <rguenther@suse.de>
14257
14258         * graphite-sese-to-poly.c (extract_affine): Properly handle
14259         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
14260
14261 2017-09-20  Richard Biener  <rguenther@suse.de>
14262
14263         PR tree-optimization/81373
14264         * graphite-scop-detection.c (build_cross_bb_scalars_def):
14265         Force SESE live-out defs to be handled even if they are
14266         scev_analyzable_p.
14267
14268 2017-09-19  Jeff Law  <law@redhat.com>
14269
14270         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
14271         nothing for stack adjustments with REG_STACK_CHECK.
14272         * sched-deps.c (parse_add_or_inc): Reject insns with
14273         REG_STACK_CHECK from dependency breaking.
14274         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
14275         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
14276         * reg-notes.def (STACK_CHECK): New note.
14277
14278         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
14279         (ix86_expand_prologue): Dump stack clash info as needed.
14280         Call ix86_adjust_stack_and_probe_stack_clash as needed.
14281
14282         * function.c (dump_stack_clash_frame_info): New function.
14283         * function.h (dump_stack_clash_frame_info): Prototype.
14284         (enum stack_clash_probes): New enum.
14285
14286         * config/alpha/alpha.c (alpha_expand_prologue): Also check
14287         flag_stack_clash_protection.
14288         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
14289         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
14290         (arm_frame_pointer_required): Likewise.
14291         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
14292         (ia64_expand_prologue): Likewise.
14293         * config/mips/mips.c (mips_expand_prologue): Likewise.
14294         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
14295         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14296         (sparc_flat_expand_prologue): Likewise.
14297         * config/spu/spu.c (spu_expand_prologue): Likewise.
14298
14299         * explow.c: Include "params.h".
14300         (anti_adjust_stack_and_probe_stack_clash): New function.
14301         (get_stack_check_protect): Likewise.
14302         (compute_stack_clash_protection_loop_data): Likewise.
14303         (emit_stack_clash_protection_loop_start): Likewise.
14304         (emit_stack_clash_protection_loop_end): Likewise.
14305         (allocate_dynamic_stack_space): Use get_stack_check_protect.
14306         Use anti_adjust_stack_and_probe_stack_clash.
14307         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
14308         (emit_stack_clash_protection_loop_start): Likewise.
14309         (emit_stack_clash_protection_loop_end): Likewise.
14310         * rtl.h (get_stack_check_protect): Prototype.
14311         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
14312         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
14313         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
14314         Prototype.
14315         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
14316         Add @hook.
14317         * doc/tm.texi: Rebuilt.
14318         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
14319         get_stack_check_protect.
14320         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
14321         * config/arm/arm.c (arm_expand_prologue): Likewise.
14322         (arm_frame_pointer_required): Likewise.
14323         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14324         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14325         * config/mips/mips.c (mips_expand_prologue): Likewise.
14326         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
14327         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14328         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14329         (sparc_flat_expand_prologue): Likewise.
14330
14331         * common.opt (-fstack-clash-protection): New option.
14332         * flag-types.h (enum stack_check_type): Note difference between
14333         -fstack-check= and -fstack-clash-protection.
14334         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
14335         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
14336         * toplev.c (process_options): Issue warnings/errors for cases
14337         not handled with -fstack-clash-protection.
14338         * doc/invoke.texi (-fstack-clash-protection): Document new option.
14339         (-fstack-check): Note additional problem with -fstack-check=generic.
14340         Note that -fstack-check is primarily for Ada and refer users
14341         to -fstack-clash-protection for stack-clash-protection.
14342         Document new params for stack clash protection.
14343
14344 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
14345
14346         * config/i386/i386.c (ix86_split_long_move): Do not handle
14347         address used for LEA in a special way.
14348
14349 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
14350
14351         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
14352
14353 2017-09-19  Martin Sebor  <msebor@redhat.com>
14354
14355         PR c/81854
14356         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
14357         of incompatible types.
14358
14359 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
14360
14361         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
14362         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
14363         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14364         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
14365
14366 2017-09-19  Richard Biener  <rguenther@suse.de>
14367
14368         PR tree-optimization/82244
14369         * tree-vrp.c (remove_range_assertions): Do not propagate
14370         a constant to abnormals but replace the assert with a copy.
14371
14372 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
14373
14374         PR rtl-optimization/57878
14375         PR rtl-optimization/68988
14376         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
14377         avoidance test involving non_reload_pseudos.  Move frequency test
14378         below the general fragmentation avoidance test.
14379
14380 2017-09-19  Richard Biener  <rguenther@suse.de>
14381
14382         PR tree-optimization/69728
14383         * graphite-sese-to-poly.c (schedule_error): New global.
14384         (add_loop_schedule): Handle empty domain by failing the
14385         schedule.
14386         (build_original_schedule): Handle schedule_error.
14387
14388 2017-09-19  Richard Biener  <rguenther@suse.de>
14389
14390         * graphite-scop-detection.c (scop_detection::can_represent_loop):
14391         Do not iterate to sibling loops but only to siblings of inner
14392         loops.
14393
14394 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
14395
14396         PR target/81613
14397         * config/m68k/m68k.md (moveq feeding equality comparison): Check
14398         that the registers are different.
14399
14400 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
14401
14402         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
14403         to processor_model and "amdfam17h" to arch_names_table.
14404         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
14405
14406 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14407
14408         PR c/82234
14409         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
14410
14411 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14412             Alan Hayward  <alan.hayward@arm.com>
14413             David Sherwood  <david.sherwood@arm.com>
14414
14415         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
14416         with a vec_info *.
14417         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
14418         accordingly.
14419         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
14420         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
14421         vect_schedule_slp_instance.
14422         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
14423         Update call to vect_slp_analyze_node_operations.  Simplify return
14424         value.
14425         (vect_slp_analyze_bb_1): Update call accordingly.
14426         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
14427         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
14428         (vect_schedule_slp): Update call accordingly.
14429
14430 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14431             Alan Hayward  <alan.hayward@arm.com>
14432             David Sherwood  <david.sherwood@arm.com>
14433
14434         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
14435         with types that aren't in fact scalar.
14436
14437 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14438
14439         * tree-vect-slp.c (vect_record_max_nunits): New function,
14440         split out from...
14441         (vect_build_slp_tree_1): ...here.
14442         (vect_build_slp_tree_2): Call it for phis too.
14443
14444 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14445
14446         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
14447         to vect_get_vec_def_for_operand when getting the mask operand.
14448
14449 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14450             Alan Hayward  <alan.hayward@arm.com>
14451             David Sherwood  <david.sherwood@arm.com>
14452
14453         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
14454         bitstart.
14455
14456 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14457             Alan Hayward  <alan.hayward@arm.com>
14458             David Sherwood  <david.sherwood@arm.com>
14459
14460         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
14461         calculation for vector booleans.
14462
14463 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14464             Alan Hayward  <alan.hayward@arm.com>
14465             David Sherwood  <david.sherwood@arm.com>
14466
14467         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
14468         split out from...
14469         (vect_transform_stmt): ...here.
14470         (vect_analyze_stmt): Use it instead of calling
14471         vectorizable_live_operation directly.
14472
14473 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
14474
14475         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
14476         non-SIMT targets in acc vector loops.
14477
14478 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
14479
14480         * configure.ac: Add arc and check if assembler supports gdwarf2.
14481         * configure: Regenerate.
14482
14483 2017-09-18  Richard Biener  <rguenther@suse.de>
14484
14485         PR tree-optimization/82220
14486         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
14487         epilogue niters from the min_profitable_iters compute.
14488
14489 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14490
14491         PR target/82145
14492         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
14493         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
14494         (ix86_init_pic_reg): Revert 2017-09-01 changes.
14495
14496 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
14497
14498         PR target/81361
14499         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
14500         switching to a new text section.
14501
14502 2017-09-18  Richard Biener  <rguenther@suse.de>
14503
14504         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
14505         Simplify.
14506         (build_alias_set): Reject aliases with no access function.
14507
14508 2017-09-18  Richard Biener  <rguenther@suse.de>
14509
14510         PR tree-optimization/79622
14511         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
14512         handle PHIs.
14513         (build_cross_bb_scalars_use): Likewise.
14514
14515 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
14516
14517         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
14518
14519 2017-09-18  Alan Modra  <amodra@gmail.com>
14520
14521         PR target/81996
14522         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
14523         stack_pointer_rtx for count 0.  Update comments.  Break up
14524         large rtl expression.
14525
14526 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
14527
14528         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
14529         Increase to 20 bytes.
14530         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
14531         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
14532         or avx version of the stub.
14533
14534 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
14535
14536         PR target/82166
14537         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
14538         compute the minimum stack alignment.  Also update preferred stack
14539         boundary for leaf functions.
14540
14541 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
14542
14543         PR tree-optimization/82228
14544         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
14545         of ncopies.
14546
14547 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14548
14549         * common/config/nds32/nds32-common.c
14550         (nds32_option_optimization_table): Refine formatting.
14551         (nds32_option_optimization_table): Use -fsched-pressure and
14552         -fomit-frame-pointer for specific optimization level.
14553
14554 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14555
14556         * config/nds32/nds32.c: Refine formatting and comments.
14557         * config/nds32/nds32.h: Likewise.
14558         * config/nds32/nds32.md: Likewise.
14559         * config/nds32/nds32-cost.c: Likewise.
14560         * config/nds32/nds32-isr.c: Likewise.
14561         * config/nds32/nds32-md-auxiliary.c: Likewise.
14562         * config/nds32/nds32-multiple.md: Likewise.
14563         * config/nds32/nds32-predicates.c: Likewise.
14564
14565 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
14566             Jakub Jelinek  <jakub@redhat.com>
14567
14568         Add support for -std=c++2a.
14569         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
14570         or -std=gnu+2a.
14571         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
14572
14573 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
14574
14575         PR target/82066
14576         * doc/extend.texi (Common Function Attributes): Add 
14577         references to ARM, AArch64, and S/390 specific attributes.
14578         (Function Specific Option Pragmas): Add AArch64 and S/390
14579         to list of back ends that support the target pragma.
14580
14581 2017-09-15  Nathan Sidwell  <nathan@acm.org>
14582
14583         * doc/standards.texi: Fix C++17 description.  Update URLs for
14584         C++11 & 14.
14585
14586 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14587
14588         * common.opt (Wcast-align=strict): New warning option.
14589         * doc/invoke.texi: Document -Wcast-align=strict. 
14590
14591 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
14592
14593         * cgraph.h (cgraph_thunk_info): Add comments.
14594         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
14595         assert for VIRTUAL_* arguments stricter.
14596
14597 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
14598
14599         PR tree-optimization/71026
14600         * match.pd: Move RDIV patterns from fold-const.c
14601         * fold-const.c (distribute_real_division): Removed.
14602         (fold_binary_loc): Remove calls to distribute_real_divison.
14603
14604 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14605
14606         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
14607         c++1z and gnu++1z as deprecated.  Change other references to
14608         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
14609         Change -Wc++1z-compat to -Wc++17-compat.
14610         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
14611         * dwarf2out.c (highest_c_language): Handle C++17.
14612         (gen_compile_unit_die): Likewise.
14613
14614 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14615
14616         PR rtl-optimization/82192
14617         * combine.c (make_extraction): Don't look through non-paradoxical
14618         SUBREGs or TRUNCATE if pos + len is or might be bigger than
14619         inner's mode.
14620
14621 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14622             Alan Hayward  <alan.hayward@arm.com>
14623             David Sherwood  <david.sherwood@arm.com>
14624
14625         * target.def (function_arg_offset): New hook.
14626         * targhooks.h (default_function_arg_offset): Declare.
14627         * targhooks.c (default_function_arg_offset): New function.
14628         * function.c (locate_and_pad_parm): Use
14629         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
14630         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
14631         (TARGET_FUNCTION_ARG_OFFSET): ...this.
14632         * doc/tm.texi: Regenerate.
14633         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
14634         * config/spu/spu.c (spu_function_arg_offset): New function.
14635         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
14636         * system.h (FUNCTION_ARG_OFFSET): Poison.
14637
14638 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14639             Alan Hayard  <alan.hayward@arm.com>
14640             David Sherwood  <david.sherwood@arm.com>
14641
14642         * target.def (truly_noop_truncation): New hook.
14643         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
14644         than TRULY_NOOP_TRUNCATION.
14645         * hooks.h (hook_bool_uint_uint_true): Declare.
14646         * hooks.c (hook_bool_uint_uint_true): New function.
14647         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
14648         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
14649         * doc/tm.texi: Regenerate.
14650         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
14651         rather than TRULY_NOOP_TRUNCATION in comments.
14652         (simplify_comparison): Likewise.
14653         (record_truncated_value): Likewise.
14654         * expmed.c (extract_bit_field_1): Likewise.
14655         (extract_split_bit_field): Likewise.
14656         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
14657         instead of TRULY_NOOP_TRUNCATION.
14658         * function.c (assign_parm_setup_block): Likewise.
14659         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
14660         * rtlhooks.c: Include target.h.
14661         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
14662         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
14663         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
14664         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
14665         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
14666         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
14667         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
14668         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
14669         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
14670         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
14671         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
14672         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
14673         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
14674         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
14675         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
14676         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
14677         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
14678         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
14679         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
14680         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
14681         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
14682         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
14683         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
14684         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
14685         * config/mips/mips.c (mips_truly_noop_truncation): New function.
14686         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14687         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14688         rather than TRULY_NOOP_TRUNCATION in comments.
14689         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
14690         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
14691         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
14692         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
14693         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
14694         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
14695         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
14696         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
14697         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
14698         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
14699         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
14700         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14701         rather than TRULY_NOOP_TRUNCATION in comments.
14702         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
14703         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
14704         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
14705         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
14706         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
14707         TRULY_NOOP_TRUNCATION condition.
14708         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
14709         (TRULY_NOOP_TRUNCATION): Delete.
14710         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
14711         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
14712         * config/spu/spu.c (spu_truly_noop_truncation): New function.
14713         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14714         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
14715         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
14716         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
14717         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14718         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14719         rather than TRULY_NOOP_TRUNCATION in comments.
14720         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
14721         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
14722         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
14723         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
14724         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
14725         * system.h (TRULY_NOOP_TRUNCATION): Poison.
14726
14727 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
14728
14729         PR target/67591
14730         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
14731         (*cmp_ior): Likewise.
14732         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
14733         (*ior_scc_scc_cmp): Likewise.
14734         (*and_scc_scc): Likewise.
14735         (*and_scc_scc_cmp): Likewise.
14736
14737 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14738             Alan Hayard  <alan.hayward@arm.com>
14739             David Sherwood  <david.sherwood@arm.com>
14740
14741         * target.def (can_change_mode_class): New hook.
14742         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
14743         (hard_regno_nregs): Likewise.
14744         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
14745         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
14746         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
14747         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
14748         (LOAD_EXTEND_OP): Update accordingly.
14749         * doc/tm.texi: Regenerate.
14750         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
14751         CANNOT_CHANGE_MODE_CLASS.
14752         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
14753         (REG_CAN_CHANGE_MODE_P): ...this new macro.
14754         * combine.c (simplify_set): Update accordingly.
14755         * emit-rtl.c (validate_subreg): Likewise.
14756         * recog.c (general_operand): Likewise.
14757         * regcprop.c (mode_change_ok): Likewise.
14758         * reload1.c (choose_reload_regs): Likewise.
14759         (inherit_piecemeal_p): Likewise.
14760         * rtlanal.c (simplify_subreg_regno): Likewise.
14761         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
14762         instead of CANNOT_CHANGE_MODE_CLASS.
14763         (reload_cse_simplify_operands): Likewise.
14764         * reload.c (push_reload): Use targetm.can_change_mode_class
14765         instead of CANNOT_CHANGE_MODE_CLASS.
14766         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
14767         REG_CANNOT_CHANGE_MODE_P.
14768         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14769         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
14770         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14771         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14772         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14773         (arm_can_change_mode_class): New function.
14774         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14775         than CANNOT_CHANGE_MODE_CLASS in comments.
14776         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14777         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
14778         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
14779         (ix86_can_change_mode_class): ...this new function, inverting the
14780         sense of the return value.
14781         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14782         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14783         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14784         (ia64_can_change_mode_class): New function.
14785         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14786         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
14787         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
14788         (m32c_can_change_mode_class): ...this new function, inverting the
14789         sense of the return value.
14790         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14791         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14792         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
14793         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
14794         (mips_can_change_mode_class): ...this new function, inverting the
14795         sense of the return value.
14796         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14797         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14798         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14799         (msp430_can_change_mode_class): New function.
14800         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14801         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
14802         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14803         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14804         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14805         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
14806         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14807         (pa_cannot_change_mode_class): Replace with...
14808         (pa_can_change_mode_class): ...this new function, inverting the
14809         sense of the return value.
14810         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14811         than CANNOT_CHANGE_MODE_CLASS in comments.
14812         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14813         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
14814         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14815         (pdp11_cannot_change_mode_class): Replace with...
14816         (pdp11_can_change_mode_class): ...this new function, inverting the
14817         sense of the return value.
14818         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14819         * config/powerpcspe/powerpcspe-protos.h
14820         (rs6000_cannot_change_mode_class_ptr): Delete.
14821         * config/powerpcspe/powerpcspe.c
14822         (rs6000_cannot_change_mode_class_ptr): Delete.
14823         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14824         (rs6000_option_override_internal): Assign to
14825         targetm.can_change_mode_class instead of
14826         rs6000_cannot_change_mode_class_ptr.
14827         (rs6000_cannot_change_mode_class): Replace with...
14828         (rs6000_can_change_mode_class): ...this new function, inverting the
14829         sense of the return value.
14830         (rs6000_debug_cannot_change_mode_class): Replace with...
14831         (rs6000_debug_can_change_mode_class): ...this new function.
14832         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14833         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
14834         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14835         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14836         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
14837         Delete.
14838         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
14839         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14840         (rs6000_option_override_internal): Assign to
14841         targetm.can_change_mode_class instead of
14842         rs6000_cannot_change_mode_class_ptr.
14843         (rs6000_cannot_change_mode_class): Replace with...
14844         (rs6000_can_change_mode_class): ...this new function, inverting the
14845         sense of the return value.
14846         (rs6000_debug_cannot_change_mode_class): Replace with...
14847         (rs6000_debug_can_change_mode_class): ...this new function.
14848         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14849         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
14850         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
14851         (s390_can_change_mode_class): ...this new function, inverting the
14852         sense of the return value.
14853         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14854         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14855         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
14856         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14857         (sh_cannot_change_mode_class): Replace with...
14858         (sh_can_change_mode_class): ...this new function, inverting the
14859         sense of the return value.
14860         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14861         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14862         (sparc_can_change_mode_class): New function.
14863         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14864         * config/spu/spu.c (spu_can_change_mode_class): New function.
14865         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14866         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14867         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14868         (visium_can_change_mode_class): New function.
14869         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
14870
14871 2017-09-15  Richard Biener  <rguenther@suse.de>
14872
14873         PR tree-optimization/82217
14874         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
14875         but not undefined case.
14876
14877 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14878
14879         PR target/82145
14880         * postreload.c (reload_cse_simplify_operands): Skip
14881         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
14882
14883 2017-09-15  Richard Biener  <rguenther@suse.de>
14884
14885         PR tree-optimization/68823
14886         * graphite-scop-detection.c (build_alias_set): If we have a
14887         possible dependence check whether we can handle them by just
14888         looking at the DRs DR_ACCESS_FNs.
14889         (build_scops): If build_alias_set fails, fail the SCOP.
14890
14891 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14892
14893         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
14894         to support float128 built-in functions that require the ISA 3.0
14895         hardware.
14896         (BU_FLOAT128_3_HW): Likewise.
14897         (SQRTF128): Add support for the IEEE 128-bit square root and fma
14898         built-in functions.
14899         (FMAF128): Likewise.
14900         (FMAQ): Likewise.
14901         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14902         support for built-in functions that need the ISA 3.0 IEEE 128-bit
14903         floating point instructions.
14904         (rs6000_invalid_builtin): Likewise.
14905         (rs6000_builtin_mask_names): Likewise.
14906         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
14907         (RS6000_BTM_FLOAT128_HW): Likewise.
14908         (RS6000_BTM_COMMON): Likewise.
14909         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
14910         function.
14911         * doc/extend.texi (RS/6000 built-in functions): Document the
14912         IEEE 128-bit floating point square root and fused multiply-add
14913         built-in functions.
14914
14915 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
14916
14917         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
14918         reg (r2) isn't in the set of registers defined in the prologue.
14919
14920 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14921             Alan Hayward  <alan.hayward@arm.com>
14922             David Sherwood  <david.sherwood@arm.com>
14923
14924         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
14925         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
14926         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
14927         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
14928         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
14929         accordingly.
14930         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
14931         max_vectorization_factor.
14932         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
14933
14934 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14935             Alan Hayward  <alan.hayward@arm.com>
14936             David Sherwood  <david.sherwood@arm.com>
14937
14938         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
14939         (vect_worthwhile_without_simd_p): Declare.
14940         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
14941         (vectorizable_reduction): Use it.
14942         * tree-vect-stmts.c (vectorizable_shift): Likewise.
14943         (vectorizable_operation): Likewise.
14944
14945 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14946             Alan Hayward  <alan.hayward@arm.com>
14947             David Sherwood  <david.sherwood@arm.com>
14948
14949         * tree-vectorizer.h (vect_get_num_copies): New function.
14950         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
14951         * tree-vect-loop.c (vectorizable_reduction): Likewise.
14952         (vectorizable_induction): Likewise.
14953         (vectorizable_live_operation): Likewise.
14954         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
14955         (vectorizable_bswap): Likewise.
14956         (vectorizable_call): Likewise.
14957         (vectorizable_conversion): Likewise.
14958         (vectorizable_assignment): Likewise.
14959         (vectorizable_shift): Likewise.
14960         (vectorizable_operation): Likewise.
14961         (vectorizable_store): Likewise.
14962         (vectorizable_load): Likewise.
14963         (vectorizable_condition): Likewise.
14964         (vectorizable_comparison): Likewise.
14965         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
14966
14967 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14968             Alan Hayward  <alan.hayward@arm.com>
14969             David Sherwood  <david.sherwood@arm.com>
14970
14971         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
14972         of vect_init_vector.
14973
14974 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14975             Alan Hayward  <alan.hayward@arm.com>
14976             David Sherwood  <david.sherwood@arm.com>
14977
14978         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
14979         an inline wrapper that provides a location.
14980         (gimple_build_vector): Likewise.
14981         * gimple-fold.c (gimple_build_vector_from_val): New function.
14982         (gimple_build_vector): Likewise.
14983         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
14984         functions to build the initial value.  Always return a gimple value.
14985         (get_initial_defs_for_reduction): Likewise.  Only compute
14986         neutral_vec once.
14987         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
14988         vect_init_vector on the results from get_initial_def(s)_for_reduction.
14989         (vectorizable_induction): Use gimple_build_vector rather than
14990         vect_init_vector.
14991
14992 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
14993             Alan Hayward  <alan.hayward@arm.com>
14994             David Sherwood  <david.sherwood@arm.com>
14995
14996         * target.h (vec_perm_indices): New typedef.
14997         (auto_vec_perm_indices): Likewise.
14998         * optabs-query.h: Include target.h
14999         (can_vec_perm_p): Take a vec_perm_indices *.
15000         * optabs-query.c (can_vec_perm_p): Likewise.
15001         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
15002         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
15003         * tree-vect-generic.c (lower_vec_perm): Likewise.
15004         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
15005         (vect_grouped_load_supported): Likewise.
15006         (vect_shift_permute_load_chain): Likewise.
15007         (vect_permute_store_chain): Use auto_vec_perm_indices.
15008         (vect_permute_load_chain): Likewise.
15009         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
15010         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
15011         Update uses of can_vec_perm_p.
15012         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
15013         mode with a number of elements.  Take a vec_perm_indices *.
15014         (vect_create_epilog_for_reduction): Update accordingly.
15015         Use auto_vec_perm_indices.
15016         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
15017         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
15018         (vect_transform_slp_perm_load): Likewise.
15019         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
15020         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
15021         (vect_gen_perm_mask_checked): Likewise.
15022         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
15023         (vect_gen_perm_mask_checked): Likewise.
15024         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
15025         (vectorizable_store): Likewise.
15026         (vectorizable_load): Likewise.
15027         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
15028         (vectorizable_bswap): Likewise.
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.h (build_vector): Take a vec<tree> instead of a tree *.
15035         * tree.c (build_vector): Likewise.
15036         (build_vector_from_ctor): Update accordingly.
15037         (build_vector_from_val): Likewise.
15038         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
15039         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
15040         * tree-vect-generic.c (add_rshift): Likewise.
15041         (expand_vector_divmod): Likewise.
15042         (optimize_vector_constructor): Likewise.
15043         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
15044         (vect_transform_slp_perm_load): Likewise.
15045         (vect_schedule_slp_instance): Likewise.
15046         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
15047         (vectorizable_call): Likewise.
15048         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
15049         * expmed.c (make_tree): Likewise.
15050         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
15051         a vector passed to build_vector.
15052         (fold_convert_const): Likewise.
15053         (exact_inverse): Likewise.
15054         (fold_ternary_loc): Likewise.
15055         (fold_relational_const): Likewise.
15056         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
15057         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
15058         (const_unop): Likewise.  Store the reduction accumulator in a
15059         variable rather than an array.
15060         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
15061         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
15062         the new vector, rather than constructing it after the input arrays.
15063         (native_interpret_vector): Use auto_vec<tree> when building
15064         a vector passed to build_vector.  Add elements in order.
15065         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
15066         auto_vec<tree> when building a vector passed to build_vector.
15067         (vect_create_epilog_for_reduction): Likewise.
15068         (vectorizable_induction): Likewise.
15069         (get_initial_def_for_reduction): Likewise.  Fix indentation of
15070         case statements.
15071         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
15072         to a vec<tree> *.
15073         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
15074         passed to build_vector.
15075
15076 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15077             Alan Hayward  <alan.hayward@arm.com>
15078             David Sherwood  <david.sherwood@arm.com>
15079
15080         * tree-core.h (tree_base::u): Add an "nelts" field.
15081         (tree_vector): Use VECTOR_CST_NELTS as the length.
15082         * tree.c (tree_size): Likewise.
15083         (make_vector): Initialize VECTOR_CST_NELTS.
15084         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
15085         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
15086         TYPE_VECTOR_SUBPARTS.
15087         * expr.c (const_vector_mask_from_tree): Consistently use "units"
15088         as the number of units, setting it from VECTOR_CST_NELTS.
15089         (const_vector_from_tree): Likewise.
15090         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
15091         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
15092         (fold_negate_expr_1): Likewise.
15093         (fold_convert_const): Likewise.
15094         (const_binop): Likewise.  Differentiate the number of output and
15095         input elements.
15096         (const_unop): Likewise.
15097         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
15098         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
15099         in cases that did the opposite.
15100
15101 2017-09-14  Richard Biener  <rguenther@suse.de>
15102
15103         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
15104         to VN_TOP.
15105
15106 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
15107
15108         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
15109
15110 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
15111
15112         PR target/81325
15113         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
15114         if and where to split a bb, except for splitting before debug insn
15115         sequences followed by non-label real insn.  Delete debug insns
15116         in between basic blocks.
15117
15118         * combine.c (make_compound_operation_int): Formatting fixes.
15119
15120         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
15121         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15122         * config/netbsd.h (LINK_EH_SPEC): Likewise.
15123         * config/sol2.h (LINK_EH_SPEC): Likewise.
15124         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15125         * config/s390/linux.h (LINK_SPEC): Likewise.
15126         * config/freebsd.h (LINK_EH_SPEC): Likewise.
15127         * config/openbsd.h (LINK_EH_SPEC): Likewise.
15128         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15129         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
15130         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
15131         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15132         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
15133         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
15134
15135 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
15136
15137         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
15138         support.
15139         (ENDFILE_LINUX_SPEC): Likewise.
15140         (LINK_EH_SPEC): Likewise.
15141         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
15142         (LINK_OS_LINUX_SPEC32): Likewise.
15143         (LINK_OS_LINUX_SPEC64): Likewise.
15144         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
15145         (LINK_OS_LINUX_SPEC): Likewise.
15146
15147 2017-09-13  Martin Liska  <mliska@suse.cz>
15148
15149         PR middle-end/82154
15150         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
15151         CASE_HIGH is NULL_TREE.
15152
15153 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15154             Alan Hayward  <alan.hayward@arm.com>
15155             David Sherwood  <david.sherwood@arm.com>
15156
15157         * target.def (secondary_memory_needed): New hook.
15158         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
15159         instead of SECONDARY_MEMORY_NEEDED.
15160         (secondary_memory_needed_mode): Likewise.
15161         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
15162         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
15163         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
15164         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
15165         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
15166         * doc/tm.texi: Regenerate.
15167         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
15168         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
15169         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15170         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
15171         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
15172         * config/i386/i386.c (inline_secondary_memory_needed): Put the
15173         mode argument first and change the reg_class arguments to reg_class_t.
15174         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
15175         Make static.  Update the call to inline_secondary_memory_needed.
15176         (ix86_register_move_cost): Update the call to
15177         inline_secondary_memory_needed.
15178         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15179         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
15180         definition.
15181         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
15182         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15183         in comment.
15184         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
15185         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
15186         * config/mips/mips.c (mips_secondary_memory_needed): Make static
15187         and match hook interface.  Add comment from mips.h.
15188         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15189         * config/mmix/mmix.md (truncdfsf2): Refer to
15190         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15191         in comment.
15192         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
15193         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
15194         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15195         (pa_secondary_memory_needed): New function.
15196         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
15197         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
15198         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15199         (pdp11_secondary_memory_needed): Make static and match hook interface.
15200         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
15201         * config/powerpcspe/powerpcspe-protos.h
15202         (rs6000_secondary_memory_needed_ptr): Delete.
15203         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
15204         Delete.
15205         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15206         (rs6000_option_override_internal): Assign to
15207         targetm.secondary_memory_needed rather than
15208         rs6000_secondary_memory_needed_ptr.
15209         (rs6000_secondary_memory_needed): Match hook interface.
15210         (rs6000_debug_secondary_memory_needed): Likewise.
15211         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
15212         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
15213         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
15214         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15215         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
15216         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
15217         Delete.
15218         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
15219         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15220         (rs6000_option_override_internal): Assign to
15221         targetm.secondary_memory_needed rather than
15222         rs6000_secondary_memory_needed_ptr.
15223         (rs6000_secondary_memory_needed): Match hook interface.
15224         (rs6000_debug_secondary_memory_needed): Likewise.
15225         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
15226         * config/s390/s390.c (s390_secondary_memory_needed): New function.
15227         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15228         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
15229         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15230         (sparc_secondary_memory_needed): New function.
15231         * lra-constraints.c (check_and_process_move): Refer to
15232         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15233         in comment.
15234         (curr_insn_transform): Likewise.
15235         (process_alt_operands): Use targetm.secondary_memory_needed
15236         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15237         (check_secondary_memory_needed_p): Likewise.
15238         (choose_split_class): Likewise.
15239         * reload.c: Unconditionally include code that was previously
15240         conditional on SECONDARY_MEMORY_NEEDED.
15241         (push_secondary_reload): Use targetm.secondary_memory_needed
15242         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15243         (push_reload): Likewise.
15244         * reload1.c: Unconditionally include code that was previously
15245         conditional on SECONDARY_MEMORY_NEEDED.
15246         (choose_reload_regs): Use targetm.secondary_memory_needed
15247         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15248         (gen_reload): Likewise.
15249         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
15250
15251 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15252             Alan Hayward  <alan.hayward@arm.com>
15253             David Sherwood  <david.sherwood@arm.com>
15254
15255         * target.def (secondary_memory_needed_mode): New hook:
15256         * targhooks.c (default_secondary_memory_needed_mode): Declare.
15257         * targhooks.h (default_secondary_memory_needed_mode): New function.
15258         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
15259         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
15260         * doc/tm.texi: Regenerate.
15261         * lra-constraints.c (check_and_process_move): Use
15262         targetm.secondary_memory_needed_mode instead of
15263         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
15264         (curr_insn_transform): Likewise.
15265         * reload.c (get_secondary_mem): Likewise.
15266         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15267         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
15268         function.
15269         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15270         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15271         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
15272         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15273         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
15274         Delete.
15275         * config/powerpcspe/powerpcspe-protos.h
15276         (rs6000_secondary_memory_needed_mode): Delete.
15277         * config/powerpcspe/powerpcspe.c
15278         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15279         (rs6000_secondary_memory_needed_mode): Make static.
15280         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15281         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
15282         Delete.
15283         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15284         Redefine.
15285         (rs6000_secondary_memory_needed_mode): Make static.
15286         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15287         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
15288         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15289         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15290         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15291         Redefine.
15292         (sparc_secondary_memory_needed_mode): New function.
15293         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
15294
15295 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
15296
15297         * config/aarch64/constraints.md (Umq): New constraint.
15298         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15299         Change to use Umq.
15300         (mov<mode>): Update condition.
15301
15302 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15303
15304         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
15305         when bitposition is the same.
15306
15307 2017-09-13  Richard Biener  <rguenther@suse.de>
15308
15309         * dwarf2out.c (output_die_symbol): Remove.
15310         (output_die): Do not output a DIEs symbol.
15311
15312 2017-09-13  Richard Biener  <rguenther@suse.de>
15313
15314         PR middle-end/82128
15315         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
15316         default-def to avoid breaking iterator update with the weird
15317         interaction with cgraph_update_edges_for_call_stmt_node.
15318
15319 2017-09-13  Richard Biener  <rguenther@suse.de>
15320
15321         * tree-cfg.c (verify_gimple_assign_binary): Add verification
15322         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
15323         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
15324         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
15325
15326 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
15327
15328         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
15329         Disable pc relative literal load irrespective of
15330         TARGET_FIX_ERR_A53_84341 for default.
15331
15332 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
15333
15334         * config/sparc/sparc.c (output_return): Output the source location of
15335         the insn in the delay slot, if any.
15336         (output_sibcall): Likewise.
15337
15338 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
15339
15340         PR driver/81498
15341         * common.opt (-static-pie): New alias.
15342         (shared): Negate static-pie.
15343         (-no-pie): Update help text.
15344         (-pie): Likewise.
15345         (static-pie): New option.
15346         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
15347         -static-pie support.
15348         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
15349         (LINK_EH_SPEC): Likewise.
15350         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15351         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15352         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15353         * gcc.c (LINK_COMMAND_SPEC): Likewise.
15354         (init_gcc_specs): Likewise.
15355         (init_spec): Likewise.
15356         (display_help): Update help message for -pie.
15357         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
15358         -static-pie.
15359
15360 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
15361
15362         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
15363         (movdi_aarch64): Likewise.
15364         (movti_aarch64): Likewise.
15365
15366 2017-09-12 Simon Wright <simon@pushface.org>
15367
15368         PR target/80204
15369         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
15370         calculation of the minor version, always output as 0.
15371
15372 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15373
15374         PR target/82112
15375         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
15376         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
15377         on it early, rather than manual conversion late.  For
15378         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
15379         instead of performing manual conversion.
15380
15381 2017-09-12  Carl Love  <cel@us.ibm.com>
15382
15383         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
15384         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
15385         vmulouw, vmulosw.
15386         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
15387         VMULOSW): Add definitions.
15388         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15389         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
15390         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
15391         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
15392         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
15393
15394 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15395
15396         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
15397         types correctly.
15398         (movti_aarch64): Likewise.
15399         (movdf_aarch64): Likewise.
15400         (movtf_aarch64): Likewise.
15401         (load_pairdi): Likewise.
15402         (store_pairdi): Likewise.
15403         (load_pairdf): Likewise.
15404         (store_pairdf): Likewise.
15405         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
15406         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
15407         (ldr_got_small_<mode>): Likewise.
15408         (ldr_got_small_28k_<mode>): Likewise.
15409         (ldr_got_tiny): Likewise.
15410         * config/aarch64/iterators.md (ldst_sz): New.
15411         (ldpstp_sz): Likewise.
15412         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
15413         to store_16.
15414         (thunderx_load): Split load_8 to load_16.
15415         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
15416         load_8 to load_16.
15417         (thunderx2t99_storepair_basic): Split store_8 to store_16.
15418         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
15419         (xgene1_store_pair): Split store_8 to store_16.
15420         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
15421         (falkor_st_0_st_sd): Split store_8 to store_16.
15422
15423 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15424
15425         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
15426         and store1/2/3/4 to store_4/8/12/16.
15427         * config/aarch64/aarch64.md: Update for rename.
15428         * config/arm/arm.md: Likewise.: Likewise.
15429         * config/arm/arm.c: Likewise.
15430         * config/arm/thumb1.md: Likewise.
15431         * config/arm/thumb2.md: Likewise.
15432         * config/arm/vfp.md: Likewise.
15433         * config/arm/arm-generic.md: Likewise.
15434         * config/arm/arm1020e.md: Likewise.
15435         * config/arm/arm1026ejs.md: Likewise.
15436         * config/arm/arm1136jfs.md: Likewise.
15437         * config/arm/arm926ejs.md: Likewise.
15438         * config/arm/cortex-a15.md: Likewise.
15439         * config/arm/cortex-a17.md: Likewise.
15440         * config/arm/cortex-a5.md: Likewise.
15441         * config/arm/cortex-a53.md: Likewise.
15442         * config/arm/cortex-a57.md: Likewise.
15443         * config/arm/cortex-a7.md: Likewise.
15444         * config/arm/cortex-a8.md: Likewise.
15445         * config/arm/cortex-a9.md: Likewise.
15446         * config/arm/cortex-m4.md: Likewise.
15447         * config/arm/cortex-m7.md: Likewise.
15448         * config/arm/cortex-r4.md: Likewise.
15449         * config/arm/exynos-m1.md: Likewise.
15450         * config/arm/fa526.md: Likewise.
15451         * config/arm/fa606te.md: Likewise.
15452         * config/arm/fa626te.md: Likewise.
15453         * config/arm/fa726te.md: Likewise.
15454         * config/arm/fmp626.md: Likewise.
15455         * config/arm/iwmmxt.md: Likewise.
15456         * config/arm/ldmstm.md: Likewise.
15457         * config/arm/marvell-pj4.md: Likewise.
15458         * config/arm/xgene1.md: Likewise.
15459         * config/aarch64/thunderx.md: Likewise.
15460         * config/aarch64/thunderx2t99.md: Likewise.
15461         * config/aarch64/falkor.md: Likewise.
15462
15463 2017-09-12  Martin Liska  <mliska@suse.cz>
15464
15465         * attribs.c (private_lookup_attribute): New function.
15466         * attribs.h (private_lookup_attribute): Declared here.
15467         (lookup_attribute): Called from this place.
15468
15469 2017-09-12  Richard Biener  <rguenther@suse.de>
15470
15471         PR tree-optimization/82157
15472         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
15473         stmts with side-effects.
15474
15475 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15476             Alan Hayward  <alan.hayward@arm.com>
15477             David Sherwood <david.sherwood@arm.com>
15478
15479         * target.def (hard_regno_nregs): New hook.
15480         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
15481         * targhooks.h (default_hard_regno_nregs): Declare.
15482         * targhooks.c (default_hard_regno_nregs): New function.
15483         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
15484         (TARGET_HARD_REGNO_NREGS): ...this hook.
15485         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
15486         (CLASS_MAX_NREGS): Likewise.
15487         * doc/tm.texi: Regenerate.
15488         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
15489         instead of HARD_REGNO_NREGS.
15490         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
15491         HARD_REGNO_NREGS in the comment.
15492         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
15493         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
15494         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
15495         Return an unsigned int.
15496         (TARGET_HARD_REGNO_NREGS): Redefine.
15497         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
15498         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
15499         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15500         (arc_hard_regno_nregs): New function.
15501         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
15502         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
15503         (arm_hard_regno_nregs): New function.
15504         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
15505         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
15506         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
15507         (TARGET_HARD_REGNO_NREGS): Redefine.
15508         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
15509         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
15510         (HARD_REGNO_NREGS): Delete.
15511         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
15512         (cr16_hard_regno_nregs): New function.
15513         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
15514         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
15515         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
15516         (cris_hard_regno_nregs): New function.
15517         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
15518         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
15519         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15520         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
15521         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
15522         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
15523         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
15524         (frv_hard_regno_nregs): Make static.  Take and return an
15525         unsigned int.
15526         (frv_class_max_nregs): Remove outdated copy of documentation.
15527         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
15528         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
15529         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
15530         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
15531         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
15532         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
15533         (TARGET_HARD_REGNO_NREGS): Redefine.
15534         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
15535         (CLASS_MAX_NREGS): Update comment.
15536         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
15537         (ia64_hard_regno_nregs): New function.
15538         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
15539         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
15540         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
15541         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
15542         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
15543         an unsigned int.
15544         (m32c_hard_regno_nregs): Likewise.  Make static.
15545         (TARGET_HARD_REGNO_NREGS): Redefine.
15546         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
15547         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
15548         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
15549         (m68k_hard_regno_nregs): New function.
15550         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
15551         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
15552         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
15553         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
15554         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
15555         Take and return an unsigned int.
15556         (TARGET_HARD_REGNO_NREGS): Redefine.
15557         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
15558         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15559         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
15560         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
15561         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
15562         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
15563         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
15564         (msp430_hard_regno_nregs): Make static.  Take and return an
15565         unsigned int.
15566         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
15567         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
15568         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
15569         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
15570         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
15571         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
15572         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
15573         (TARGET_HARD_REGNO_NREGS): Redefine.
15574         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
15575         (PA_HARD_REGNO_NREGS): ...this.
15576         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
15577         (PA_HARD_REGNO_NREGS): ...this.
15578         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15579         (pa_hard_regno_nregs): New function.
15580         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
15581         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
15582         (pdp11_hard_regno_nregs): New function.
15583         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
15584         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
15585         (rs6000_hard_regno_nregs_hook): New function.
15586         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
15587         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
15588         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
15589         Take and return an unsigned int.  Move earlier in file.
15590         (TARGET_HARD_REGNO_NREGS): Redefine.
15591         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
15592         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
15593         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
15594         (rl78_hard_regno_nregs): Make static.  Take and return an
15595         unsigned int.
15596         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
15597         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
15598         (rs6000_hard_regno_nregs_hook): New function.
15599         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
15600         * config/rx/rx.c (rx_hard_regno_nregs): New function.
15601         (TARGET_HARD_REGNO_NREGS): Redefine.
15602         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
15603         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
15604         instead of HARD_REGNO_NREGS.
15605         (s390_hard_regno_nregs): New function.
15606         (s390_hard_regno_mode_ok): Add comment from s390.h.
15607         (TARGET_HARD_REGNO_NREGS): Redefine.
15608         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
15609         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
15610         (sh_hard_regno_nregs): New function.
15611         (sh_pass_in_reg_p): Use it.
15612         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
15613         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15614         (sparc_hard_regno_nregs): New function.
15615         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
15616         * config/spu/spu.c (spu_hard_regno_nregs): New function.
15617         (spu_function_arg_advance): Use it, supplying a valid register number.
15618         (TARGET_HARD_REGNO_NREGS): Redefine.
15619         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
15620         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
15621         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
15622         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
15623         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
15624         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
15625         (CLASS_MAX_NREGS): Remove copy of old documentation.
15626         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
15627         (visium_hard_regno_nregs): New function.
15628         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
15629         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
15630         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15631         xtensa_hard_regno_nregs): New function.
15632         * system.h (HARD_REGNO_NREGS): Poison.
15633
15634 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15635
15636         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
15637         hard_regno_nregs instead of HARD_REGNO_NREGS.
15638         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15639         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
15640         (c6x_expand_epilogue): Likewise.
15641         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15642         (frv_read_iacc_argument): Likewise.
15643         * config/sh/sh.c: Include regs.h.
15644         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15645         (regs_used): Likewise.
15646         (output_stack_adjust): Likewise.
15647         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
15648         * expmed.c: Include regs.h.
15649         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15650         * ree.c: Include regs.h.
15651         (combine_reaching_defs): Use hard_regno_nregs instead of
15652         HARD_REGNO_NREGS.
15653         (add_removable_extension): Likewise.
15654
15655 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15656
15657         * regs.h (hard_regno_nregs): Turn into a function.
15658         (end_hard_regno): Update accordingly.
15659         * caller-save.c (setup_save_areas): Likewise.
15660         (save_call_clobbered_regs): Likewise.
15661         (replace_reg_with_saved_mem): Likewise.
15662         (insert_restore): Likewise.
15663         (insert_save): Likewise.
15664         * combine.c (can_change_dest_mode): Likewise.
15665         (move_deaths): Likewise.
15666         (distribute_notes): Likewise.
15667         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
15668         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
15669         (rs6000_split_multireg_move): Likewise.
15670         (rs6000_register_move_cost): Likewise.
15671         (rs6000_memory_move_cost): Likewise.
15672         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
15673         (rs6000_split_multireg_move): Likewise.
15674         (rs6000_register_move_cost): Likewise.
15675         (rs6000_memory_move_cost): Likewise.
15676         * cselib.c (cselib_reset_table): Likewise.
15677         (cselib_lookup_1): Likewise.
15678         * emit-rtl.c (set_mode_and_regno): Likewise.
15679         * function.c (aggregate_value_p): Likewise.
15680         * ira-color.c (setup_profitable_hard_regs): Likewise.
15681         (check_hard_reg_p): Likewise.
15682         (calculate_saved_nregs): Likewise.
15683         (assign_hard_reg): Likewise.
15684         (improve_allocation): Likewise.
15685         (calculate_spill_cost): Likewise.
15686         * ira-emit.c (modify_move_list): Likewise.
15687         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
15688         (ira_hard_reg_in_set_p): Likewise.
15689         * ira.c (setup_reg_mode_hard_regset): Likewise.
15690         (clarify_prohibited_class_mode_regs): Likewise.
15691         (check_allocation): Likewise.
15692         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15693         (lra_setup_reg_renumber): Likewise.
15694         (setup_try_hard_regno_pseudos): Likewise.
15695         (spill_for): Likewise.
15696         (assign_hard_regno): Likewise.
15697         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
15698         * lra-constraints.c (in_class_p): Likewise.
15699         (lra_constraint_offset): Likewise.
15700         (simplify_operand_subreg): Likewise.
15701         (lra_constraints): Likewise.
15702         (split_reg): Likewise.
15703         (split_if_necessary): Likewise.
15704         (invariant_p): Likewise.
15705         (inherit_in_ebb): Likewise.
15706         * lra-lives.c (process_bb_lives): Likewise.
15707         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
15708         (get_hard_regs): Likewise.
15709         (do_remat): Likewise.
15710         * lra-spills.c (assign_spill_hard_regs): Likewise.
15711         * mode-switching.c (create_pre_exit): Likewise.
15712         * postreload.c (reload_combine_recognize_pattern): Likewise.
15713         * recog.c (peep2_find_free_register): Likewise.
15714         * regcprop.c (kill_value_regno): Likewise.
15715         (set_value_regno): Likewise.
15716         (copy_value): Likewise.
15717         (maybe_mode_change): Likewise.
15718         (find_oldest_value_reg): Likewise.
15719         (copyprop_hardreg_forward_1): Likewise.
15720         * regrename.c (check_new_reg_p): Likewise.
15721         (regrename_do_replace): Likewise.
15722         * reload.c (push_reload): Likewise.
15723         (combine_reloads): Likewise.
15724         (find_dummy_reload): Likewise.
15725         (operands_match_p): Likewise.
15726         (find_reloads): Likewise.
15727         (find_equiv_reg): Likewise.
15728         (reload_adjust_reg_for_mode): Likewise.
15729         * reload1.c (count_pseudo): Likewise.
15730         (count_spilled_pseudo): Likewise.
15731         (find_reg): Likewise.
15732         (clear_reload_reg_in_use): Likewise.
15733         (free_for_value_p): Likewise.
15734         (allocate_reload_reg): Likewise.
15735         (choose_reload_regs): Likewise.
15736         (reload_adjust_reg_for_temp): Likewise.
15737         (emit_reload_insns): Likewise.
15738         (delete_output_reload): Likewise.
15739         * rtlanal.c (subreg_get_info): Likewise.
15740         * sched-deps.c (sched_analyze_reg): Likewise.
15741         * sel-sched.c (init_regs_for_mode): Likewise.
15742         (mark_unavailable_hard_regs): Likewise.
15743         (choose_best_reg_1): Likewise.
15744         (verify_target_availability): Likewise.
15745         * valtrack.c (dead_debug_insert_temp): Likewise.
15746         * var-tracking.c (track_loc_p): Likewise.
15747         (emit_note_insn_var_location): Likewise.
15748         * varasm.c (make_decl_rtl): Likewise.
15749         * reginfo.c (choose_hard_reg_mode): Likewise.
15750         (init_reg_modes_target): Refer directly to
15751         this_target_regs->x_hard_regno_nregs.
15752
15753 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15754
15755         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
15756         instead of hard_regno_nregs.
15757
15758 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15759
15760         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
15761         end_hard_regno instead of hard_regno_nregs.
15762         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
15763         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
15764         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
15765         * ira-color.c (improve_allocation): Likewise.
15766         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15767         * lra-lives.c (mark_regno_live): Likewise.
15768         (mark_regno_dead): Likewise.
15769         * lra-remat.c (operand_to_remat): Likewise.
15770         * lra.c (collect_non_operand_hard_regs): Likewise.
15771         * postreload.c (reload_combine_note_store): Likewise.
15772         (move2add_valid_value_p): Likewise.
15773         * reload.c (regno_clobbered_p): Likewise.
15774
15775 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15776
15777         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
15778         hard_regno_nregs.
15779         * config/v850/v850.c (v850_reorg): Likewise.
15780         * reload.c (refers_to_regno_for_reload_p): Likewise.
15781         (find_equiv_reg): Likewise.
15782         * reload1.c (reload_reg_reaches_end_p): Likewise.
15783
15784 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15785
15786         * caller-save.c (add_used_regs): Use REG_NREGS instead of
15787         hard_regno_nregs.
15788         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
15789         * config/arm/arm.c (output_move_neon): Likewise.
15790         (arm_attr_length_move_neon): Likewise.
15791         (neon_split_vcombine): Likewise.
15792         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
15793         (c6x_mark_reg_written): Likewise.
15794         (c6x_dwarf_register_span): Likewise.
15795         * config/i386/i386.c (ix86_save_reg): Likewise.
15796         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
15797         (rws_access_reg): Likewise.
15798         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15799         * mode-switching.c (create_pre_exit): Likewise.
15800         * ree.c (combine_reaching_defs): Likewise.
15801         (add_removable_extension): Likewise.
15802         * regcprop.c (find_oldest_value_reg): Likewise.
15803         (copyprop_hardreg_forward_1): Likewise.
15804         * reload.c (reload_inner_reg_of_subreg): Likewise.
15805         (push_reload): Likewise.
15806         (combine_reloads): Likewise.
15807         (find_dummy_reload): Likewise.
15808         (reload_adjust_reg_for_mode): Likewise.
15809         * reload1.c (find_reload_regs): Likewise.
15810         (forget_old_reloads_1): Likewise.
15811         (reload_reg_free_for_value_p): Likewise.
15812         (reload_adjust_reg_for_temp): Likewise.
15813         (emit_reload_insns): Likewise.
15814         (delete_output_reload): Likewise.
15815         * sel-sched.c (choose_best_reg_1): Likewise.
15816         (choose_best_pseudo_reg): Likewise.
15817
15818 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15819             Alan Hayward  <alan.hayward@arm.com>
15820             David Sherwood <david.sherwood@arm.com>
15821
15822         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
15823         * target.def (slow_unaligned_access): New hook.
15824         * targhooks.h (default_slow_unaligned_access): Declare.
15825         * targhooks.c (default_slow_unaligned_access): New function.
15826         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
15827         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
15828         * doc/tm.texi: Regenerate.
15829         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
15830         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
15831         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
15832         definition.
15833         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
15834         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
15835         Redefine.
15836         (rs6000_slow_unaligned_access): New function.
15837         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15838         (expand_block_compare): Likewise.
15839         (expand_strn_compare): Likewise.
15840         (rs6000_rtx_costs): Likewise.
15841         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
15842         (riscv_slow_unaligned_access): Likewise.
15843         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
15844         (riscv_slow_unaligned_access_p): ...this and make static.
15845         (riscv_option_override): Update accordingly.
15846         (riscv_slow_unaligned_access): New function.
15847         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15848         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
15849         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15850         (rs6000_slow_unaligned_access): New function.
15851         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15852         (rs6000_rtx_costs): Likewise.
15853         * config/rs6000/rs6000-string.c (expand_block_compare)
15854         (expand_strn_compare): Use targetm.slow_unaligned_access instead
15855         of SLOW_UNALIGNED_ACCESS.
15856         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
15857         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
15858         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
15859         of SLOW_UNALIGNED_ACCESS.
15860         * expmed.c (simple_mem_bitfield_p): Likewise.
15861         * expr.c (alignment_for_piecewise_move): Likewise.
15862         (emit_group_load_1): Likewise.
15863         (emit_group_store): Likewise.
15864         (copy_blkmode_from_reg): Likewise.
15865         (emit_push_insn): Likewise.
15866         (expand_assignment): Likewise.
15867         (store_field): Likewise.
15868         (expand_expr_real_1): Likewise.
15869         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
15870         * lra-constraints.c (simplify_operand_subreg): Likewise.
15871         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
15872         * gimple-ssa-store-merging.c: Likewise in block comment at start
15873         of file.
15874         * tree-ssa-strlen.c: Include target.h.
15875         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
15876         of SLOW_UNALIGNED_ACCESS.
15877         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
15878
15879 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15880
15881         PR rtl-optimization/82185
15882         * expmed.c (emit_store_flag_int): Only test tem if it has been
15883         initialized.
15884
15885 2017-09-12  Richard Biener  <rguenther@suse.de>
15886
15887         PR middle-end/82149
15888         * match.pd ((FTYPE) N CMP CST): Fix typo.
15889
15890 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
15891
15892         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
15893         attribute.
15894         (mips_near_type_p): Add 'short_call' attribute as a synonym
15895         for 'near'.
15896         * doc/extend.texi (short_call): Document new function attribute.
15897
15898 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15899
15900         PR target/82112
15901         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
15902         assertion check that in the condition.
15903         (get_atomic_generic_size): Likewise.  Before testing if parameter
15904         has pointer type, if it has array type, call for C++
15905         default_conversion to perform array-to-pointer conversion.
15906
15907 2017-09-12  Richard Biener  <rguenther@suse.de>
15908
15909         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
15910         for operations we cannot scalarize.
15911
15912 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
15913
15914         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
15915         vectors heap vectors.  Clean up comments.
15916         Make visited_bbs a reference.
15917         (profitable_jump_thread_path): Make GC
15918         vectors heap vectors.  Clean up comments.
15919         Misc cleanups.
15920         (convert_and_register_jump_thread_path): Make GC vectors heap
15921         vectors.
15922         (check_subpath_and_update_thread_path): Same.  Clean up comments.
15923         Make visited_bbs a reference.
15924         (handle_phi): Abstract common code to to
15925         register_jump_thread_path_if_profitable.
15926         Rename VAR_BB to DEF_BB.
15927         Update comments.
15928         Make GC vectors heap vectors.
15929         Make visited_bbs a reference.
15930         (handle_assignment): Same.
15931         (register_jump_thread_path_if_profitable): New.
15932         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
15933         DEF_BB.
15934         Make GC vectors heap vectors.  Clean up comments.
15935         Make visited_bbs a reference.
15936         (find_jump_threads_backwards): Make visited_bbs live in the stack.
15937         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
15938         comment.
15939
15940 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
15941
15942         PR target/82181
15943         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
15944         words of E_DImode object are reachable by xtensa_uimm8x4 access.
15945
15946 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
15947
15948         Revert r251800 and r251799.
15949
15950 2017-09-11  Martin Jambor  <mjambor@suse.cz>
15951
15952         PR hsa/82119
15953         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
15954         arguments in advance.
15955         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
15956         use it to find predecessor edges.
15957         (naive_outof_ssa): Collect vector of predecessors.
15958
15959 2017-09-08  Jason Merrill  <jason@redhat.com>
15960
15961         PR c++/70029 - ICE with ref-qualifier and -flto
15962         * langhooks.h (struct lang_hooks_for_types): Add
15963         copy_lang_qualifiers.
15964         * attribs.c (build_type_attribute_qual_variant): Use it.
15965         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
15966         NULL.
15967         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
15968         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
15969
15970 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
15971
15972         PR target/81988
15973         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
15974         (*mulsi3_sp64): New instruction.
15975         (mulsi3): New expander.
15976
15977 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
15978
15979         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
15980
15981 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15982
15983         * sancov.c: Include memmodel.h.
15984
15985 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
15986
15987         PR target/80897
15988         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
15989         large offsets.
15990
15991 2017-09-07  Carl Love  <cel@us.ibm.com>
15992
15993         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
15994         the sldi instruction.
15995
15996 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
15997
15998         * sancov.c: Include tm_p.h.
15999
16000 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
16001
16002         PR target/81979
16003         * output.h (switch_to_other_text_partition): New declaration.
16004         * varasm.c (switch_to_other_text_partition): New function.
16005         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
16006         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
16007         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
16008         to the other text partition before emitting LCL label and switch back
16009         after emitting the word after it.
16010
16011 2017-09-07  Richard Biener  <rguenther@suse.de>
16012
16013         * passes.def (pass_split_crit_edges): Remove instance before PRE.
16014         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
16015         critical edges here, after loop init.
16016         (pass_data_pre): Remove PROP_no_crit_edges flags.
16017         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
16018         for valueization of call args to avoid leaking VN_TOP.
16019         (visit_use): Assert we do not visit default defs.
16020         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
16021         Use error_mark_node to more easily detect leaking VN_TOP.
16022         All default-defs are varying, not VN_TOP.  Mark them visited.
16023         (run_scc_vn): Make code match comment.
16024
16025 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
16026
16027         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
16028         OPTION_MASK_FLOAT128_KEYWORD.
16029         (POWERPC_MASKS): Likewise.
16030         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
16031         support for the -mfloat128-type option, and make -mfloat128
16032         default on PowerPC Linux systems.  Define or undefine
16033         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
16034         Define __float128 to be __ieee128 if IEEE 128-bit support is
16035         enabled, or undefine it.
16036         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
16037         Delete defining __FLOAT128_TYPE__.
16038         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
16039         -mfloat128-type option and make -mfloat128 default on PowerPC
16040         Linux systems.
16041         (TARGET_FLOAT128_TYPE): Likewise.
16042         (-mfloat128-type): Likewise.
16043         * config/rs6000/rs6000.c (rs6000_option_override_internal):
16044         Delete the -mfloat128-type option and make -mfloat128 default on
16045         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
16046         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
16047         128-bit floating point is enabled.  Change tests from using
16048         -mfloat128-type to -mfloat128.
16049         (rs6000_mangle_type): Use the correct mangling for the __float128
16050         type even if normal long double is restricted to 64-bits.
16051         (floatn_mode): Enable the _Float128 type by default on VSX Linux
16052         systems.
16053         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
16054         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
16055         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
16056         -mfloat128-type.
16057         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
16058         documentation for -mfloat128.
16059
16060 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16061
16062         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
16063
16064 2017-09-06  Wish Wu  <wishwu007@gmail.com>
16065             Jakub Jelinek  <jakub@redhat.com>
16066
16067         * asan.c (initialize_sanitizer_builtins): Add
16068         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
16069         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
16070         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
16071         BT_FN_VOID_UINT64_PTR variables.
16072         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
16073         (BT_FN_VOID_UINT16_UINT16): Likewise.
16074         (BT_FN_VOID_UINT32_UINT32): Likewise.
16075         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
16076         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
16077         (BT_FN_VOID_UINT64_PTR): Likewise.
16078         * common.opt (flag_sanitize_coverage): New variable.
16079         (fsanitize-coverage=trace-pc): Remove.
16080         (fsanitize-coverage=): Add.
16081         * flag-types.h (enum sanitize_coverage_code): New enum.
16082         * fold-const.c (fold_range_test): Disable non-short-circuit
16083         optimization if flag_sanitize_coverage.
16084         (fold_truth_andor): Likewise.
16085         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
16086         * opts.c (COVERAGE_SANITIZER_OPT): Define.
16087         (coverage_sanitizer_opts): New array.
16088         (get_closest_sanitizer_option): Add OPTS argument, handle also
16089         OPT_fsanitize_coverage_.
16090         (parse_sanitizer_options): Adjusted to also handle
16091         OPT_fsanitize_coverage_.
16092         (common_handle_option): Add OPT_fsanitize_coverage_.
16093         * sancov.c (instrument_comparison, instrument_switch): New function.
16094         (sancov_pass): Add trace-cmp support.
16095         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
16096         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
16097         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
16098         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
16099         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
16100         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
16101         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
16102         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
16103         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
16104         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
16105
16106 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16107
16108         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
16109         error.  Only quit immediately if parsing is complete.
16110         (BEGIN): Initialize fatal_err and parse_done.
16111         (begin fpu, end fpu): Check number of arguments.
16112         (begin arch, end arch): Likewise.
16113         (begin cpu, end cpu): Likewise.
16114         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
16115         (optalias): Likewise.
16116
16117 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16118
16119         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
16120         * config/arm/arm-isa.h: Delete.  Move definitions to ...
16121         * arm-cpus.in: ... here.  Use new feature and fgroup values.
16122         * config/arm/arm.c (arm_option_override): Use lower case for feature
16123         bit names.
16124         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
16125         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
16126         * config/arm/parsecpu.awk (END): Add new command 'isa'.
16127         (isa_pfx): Delete.
16128         (print_isa_bits_for): New function.
16129         (gen_isa): New function.
16130         (gen_comm_data): Use print_isa_bits_for.
16131         (define feature): New keyword.
16132         (define fgroup): New keyword.
16133         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
16134         (arm-isa.h): Add rule to generate file.
16135         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
16136         case for feature bit names.
16137
16138 2017-09-06  Richard Biener  <rguenther@suse.de>
16139
16140         * tree-ssa-pre.c (NECESSARY): Remove.
16141         (create_expression_by_pieces): Do not touch pass-local flags.
16142         (insert_into_preds_of_block): Likewise.
16143         (do_pre_regular_insertion): Likewise.
16144         (eliminate_insert): Likewise.
16145         (eliminate_dom_walker::before_dom_children): Likewise.
16146         (fini_eliminate): Do not look at inserted_exprs.
16147         (mark_operand_necessary): Remove.
16148         (remove_dead_inserted_code): Replace with simple work-list
16149         algorithm based on inserted_exprs and SSA uses.
16150         (pass_pre::execute): Re-order fini_eliminate and
16151         remove_dead_inserted_code.
16152
16153 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16154
16155         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
16156         for VxWorks 7.  Adjust surrounding comments.
16157
16158 2017-09-06  Richard Biener  <rguenther@suse.de>
16159
16160         * gimple-ssa-strength-reduction.c
16161         (find_candidates_dom_walker::before_dom_children): Also allow
16162         pointer types.
16163
16164 2017-09-06  Richard Biener  <rguenther@suse.de>
16165
16166         PR tree-optimization/82108
16167         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
16168         for gap in the non-permutation SLP case.
16169
16170 2017-09-06  Martin Jambor  <mjambor@suse.cz>
16171
16172         PR tree-optimization/82078
16173         * tree-sra.c (sort_and_splice_var_accesses): Move call to
16174         add_access_to_work_queue...
16175         (build_accesses_from_assign): ...here.
16176         (propagate_all_subaccesses): Make sure racc is the group
16177         representative, if there is one.
16178
16179 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
16180
16181         PR middle-end/82095
16182         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
16183         NULL DECL_INITIAL.
16184
16185 2017-09-06  Richard Biener  <rguenther@suse.de>
16186
16187         * gimple-ssa-strength-reduction.c
16188         (find_candidates_dom_walker::before_doom_children): Use a
16189         type and not a mode check.
16190
16191 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16192
16193         PR target/77308
16194         * config/arm/predicates.md (arm_general_adddi_operand): Create new
16195         non-vfp predicate.
16196         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
16197
16198 2017-09-05  Jeff Law  <law@redhat.com>
16199
16200         PR tree-optimization/64910
16201         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
16202         cases where we have 3 or more operands.
16203
16204 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
16205
16206         PR middle-end/81768
16207         * omp-low.c (lower_omp_for): Recompute tree invariant if
16208         gimple_omp_for_initial/final is ADDR_EXPR.
16209
16210         PR middle-end/81768
16211         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
16212         into gimple val before gimplification fo the COND_EXPR.
16213
16214 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
16215
16216         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
16217         REGION_COPY argument.
16218         (thread_through_all_blocks): Remove unused argument to
16219         duplicate_thread_path.
16220
16221 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16222             Alan Hayward  <alan.hayward@arm.com>
16223             David Sherwood  <david.sherwood@arm.com>
16224
16225         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
16226         Take a scalar_mode rather than a machine_mode.
16227         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16228         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
16229         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16230         (aarch64_gen_adjusted_ldpstp): Likewise.
16231         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
16232
16233 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16234             Alan Hayward  <alan.hayward@arm.com>
16235             David Sherwood  <david.sherwood@arm.com>
16236
16237         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
16238         Take a scalar_int_mode instead of a machine_mode.
16239         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16240         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16241         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16242         (aarch64_simd_attr_length_rglist): Delete.
16243         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
16244         a scalar_int_mode instead of a machine_mode.
16245         (aarch64_add_offset): Likewise.
16246         (aarch64_internal_mov_immediate): Likewise
16247         (aarch64_add_constant_internal): Likewise.
16248         (aarch64_add_constant): Likewise.
16249         (aarch64_movw_imm): Likewise.
16250         (aarch64_rtx_arith_op_extract_p): Likewise.
16251         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16252         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16253         Remove assert that the mode isn't a vector.
16254         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16255         (aarch64_expand_mov_immediate): Update calls after above changes.
16256         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
16257         (aarch64_and_bitmask_imm): Check for scalar integer modes.
16258         (aarch64_move_imm): Likewise.
16259         (aarch64_can_const_movi_rtx_p): Likewise.
16260         (aarch64_strip_extend): Likewise.
16261         (aarch64_extr_rtx_p): Likewise.
16262         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
16263         a CONST_INT when the mode parameter is VOIDmode.
16264         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
16265
16266 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16267
16268         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
16269         * stor-layout.c (bitwise_mode_for_mode): Likewise.
16270         (bitwise_type_for_mode): Update accordingly.
16271
16272 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16273
16274         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
16275         * stor-layout.c (mode_for_size_tree): Likewise.
16276         (mode_for_array): Update accordingly.
16277         (layout_decl): Likewise.
16278         (compute_record_mode): Likewise.  Only set the mode once.
16279
16280 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16281
16282         * target.def (get_mask_mode): Change return type to opt_mode.
16283         Expand commentary.
16284         * doc/tm.texi: Regenerate.
16285         * targhooks.h (default_get_mask_mode): Return an opt_mode.
16286         * targhooks.c (default_get_mask_mode): Likewise.
16287         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
16288         * optabs-query.c (can_vec_mask_load_store_p): Update use of
16289         targetm.get_mask_mode.
16290         * tree.c (build_truth_vector_type): Likewise.
16291
16292 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16293
16294         * machmode.h (mode_for_vector): Return an opt_mode.
16295         * stor-layout.c (mode_for_vector): Likewise.
16296         (mode_for_int_vector): Update accordingly.
16297         (layout_type): Likewise.
16298         * config/i386/i386.c (emit_memmov): Likewise.
16299         (ix86_expand_set_or_movmem): Likewise.
16300         (ix86_expand_vector_init): Likewise.
16301         (ix86_get_mask_mode): Likewise.
16302         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
16303         Likewise.
16304         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
16305         * expmed.c (extract_bit_field_1): Likewise.
16306         * expr.c (expand_expr_real_2): Likewise.
16307         * optabs-query.c (can_vec_perm_p): Likewise.
16308         (can_vec_mask_load_store_p): Likewise.
16309         * optabs.c (expand_vec_perm): Likewise.
16310         * targhooks.c (default_get_mask_mode): Likewise.
16311         * tree-vect-stmts.c (vectorizable_store): Likewise.
16312         (vectorizable_load): Likewise.
16313         (get_vectype_for_scalar_type_and_size): Likewise.
16314
16315 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16316
16317         * machmode.h (mode_for_int_vector): New function.
16318         * stor-layout.c (mode_for_int_vector): Likewise.
16319         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
16320         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
16321         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
16322         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
16323         (s390_expand_vcond): Likewise.
16324
16325 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16326
16327         * machmode.h (opt_machine_mode): New type.
16328         (opt_mode<T>): Allow construction from anything that can be
16329         converted to a T.
16330         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
16331         (mode_for_size): Return an opt_machine_mode.
16332         * stor-layout.c (mode_for_size): Likewise.
16333         (mode_for_size_tree): Update call accordingly.
16334         (bitwise_mode_for_mode): Likewise.
16335         (make_fract_type): Likewise.
16336         (make_accum_type): Likewise.
16337         * caller-save.c (replace_reg_with_saved_mem): Update call
16338         accordingly.
16339         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16340         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16341         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16342         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16343         * expmed.c (extract_bit_field_1): Likewise.
16344         * reload.c (get_secondary_mem): Likewise.
16345         * varasm.c (assemble_integer): Likewise.
16346         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
16347         early-out.
16348
16349 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16350
16351         * machmode.h (decimal_float_mode_for_size): New function.
16352         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
16353         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
16354         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
16355         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
16356         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
16357         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
16358
16359 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16360
16361         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
16362         (get_builtin_sync_mode): Likewise.
16363         (expand_ifn_atomic_compare_exchange): Likewise.
16364         (expand_builtin_atomic_clear): Likewise.
16365         (expand_builtin_atomic_test_and_set): Likewise.
16366         (fold_builtin_atomic_always_lock_free): Likewise.
16367         * calls.c (compute_argument_addresses): Likewise.
16368         (emit_library_call_value_1): Likewise.
16369         (store_one_arg): Likewise.
16370         * combine.c (combine_instructions): Likewise.
16371         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
16372         * config/arm/arm.c (arm_function_value): Likewise.
16373         (aapcs_allocate_return_reg): Likewise.
16374         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
16375         * config/i386/i386.c (construct_container): Likewise.
16376         (ix86_gimplify_va_arg): Likewise.
16377         (ix86_expand_sse_cmp): Likewise.
16378         (emit_memmov): Likewise.
16379         (emit_memset): Likewise.
16380         (expand_small_movmem_or_setmem): Likewise.
16381         (ix86_expand_pextr): Likewise.
16382         (ix86_expand_pinsr): Likewise.
16383         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
16384         * config/microblaze/microblaze.c (microblaze_block_move_straight):
16385         Likewise.
16386         * config/mips/mips.c (mips_function_value_1) Likewise.
16387         (mips_block_move_straight): Likewise.
16388         (mips_expand_ins_as_unaligned_store): Likewise.
16389         * config/powerpcspe/powerpcspe.c
16390         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16391         (rs6000_darwin64_record_arg_flush): Likewise.
16392         * config/rs6000/rs6000.c
16393         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16394         (rs6000_darwin64_record_arg_flush): Likewise.
16395         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
16396         (sparc_function_value_1): Likewise.
16397         * config/spu/spu.c (adjust_operand): Likewise.
16398         (spu_emit_branch_or_set): Likewise.
16399         (arith_immediate_p): Likewise.
16400         * emit-rtl.c (gen_lowpart_common): Likewise.
16401         * expr.c (expand_expr_real_1): Likewise.
16402         * function.c (assign_parm_setup_block): Likewise.
16403         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
16404         * reload1.c (alter_reg): Likewise.
16405         * stor-layout.c (mode_for_vector): Likewise.
16406         (layout_type): Likewise.
16407
16408 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16409
16410         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
16411         (spu_convert_move): Likewise.
16412         * lower-subreg.c (resolve_simple_move): Likewise.
16413
16414 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16415
16416         PR target/81833
16417         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
16418         define_insn to a define_expand.
16419         (altivec_vsum2sws_direct): New define_insn.
16420         (altivec_vsumsws): Convert from a define_insn to a define_expand.
16421
16422 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16423
16424         * config/arm/arm.c (arm_option_params_internal): Improve setting of
16425         max_insns_skipped.
16426
16427 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
16428
16429         PR target/59501
16430         PR target/81624
16431         PR target/81769
16432         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
16433         realign stack if stack alignment needed is less than incoming
16434         stack boundary.
16435
16436 2017-09-05  Marek Polacek  <polacek@redhat.com>
16437
16438         PR sanitizer/82072
16439         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
16440         check earlier.
16441
16442 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16443
16444         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
16445
16446 2017-09-05  Richard Biener  <rguenther@suse.de>
16447
16448         PR tree-optimization/82084
16449         * fold-const.c (can_native_encode_string_p): Handle wide characters.
16450
16451 2017-09-05  Richard Biener  <rguenther@suse.de>
16452
16453         PR tree-optimization/82102
16454         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
16455
16456 2017-09-05  Martin Liska  <mliska@suse.cz>
16457
16458         PR tree-optimization/82032
16459         * tree-cfg.c (generate_range_test): New function.
16460         * tree-cfg.h (generate_range_test): Declared here.
16461         * tree-cfgcleanup.c (convert_single_case_switch): New function.
16462         (cleanup_control_expr_graph): Use it.
16463         * tree-switch-conversion.c (try_switch_expansion): Remove
16464         assert.
16465         (emit_case_nodes): Use generate_range_test.
16466
16467 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16468
16469         PR target/82098
16470         * config/i386/i386.md (*<btsc><mode>_mask): Add
16471         TARGET_USE_BT to insn constraint.
16472         (*btr<mode>_mask): Ditto.
16473
16474 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
16475
16476         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
16477         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
16478
16479 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16480
16481         PR target/77308
16482         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
16483         TARGET_NEON and TARGET_IWMMXT.
16484         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
16485         TARGET_NEON and TARGET_IWMMXT.
16486         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
16487
16488 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16489
16490         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
16491         (ix86_rewrite_tls_address): Ditto.
16492         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
16493         (ix86_rewrite_tls_address_1): Ditto.
16494         (ix86_rewrite_tls_address): Ditto.
16495         * config/i386/predicates.md (tls_address_pattern): New predicate.
16496         * config/i386/i386.md (TLS address splitter): New splitter.
16497
16498 2017-09-04  Richard Biener  <rguenther@suse.de>
16499
16500         PR tree-optimization/82084
16501         * fold-const.h (can_native_encode_string_p): Declare.
16502         * fold-const.c (can_native_encode_string_p): Factor out from ...
16503         (native_encode_string): ... here.
16504         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
16505         vectorizing stores from constants we later cannot handle.
16506
16507 2017-09-04  Marek Polacek  <polacek@redhat.com>
16508
16509         PR c/81783
16510         * doc/invoke.texi: Update -Wtautological-compare documentation.
16511
16512 2017-09-04  Jeff Law  <law@redhat.com>
16513
16514         PR tree-optimization/64910
16515         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
16516         swap the first and last operand if the last is a constant.
16517
16518 2017-09-04  Marek Polacek  <polacek@redhat.com>
16519
16520         PR sanitizer/82072
16521         * convert.c (do_narrow): When sanitizing signed integer overflows,
16522         bail out for signed types.
16523         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
16524
16525 2017-09-04  Richard Biener  <rguenther@suse.de>
16526
16527         PR tree-optimization/82060
16528         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16529         Move devirtualization after stmt folding and before EH/AB/noreturn
16530         cleanup to get the stmt refs canonicalized.  Use a bool instead
16531         of gimple_modified_p since that doesn't work for NOPs.  Schedule
16532         NOPs generated by folding for removal.
16533
16534 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16535             Alan Hayward  <alan.hayward@arm.com>
16536             David Sherwood  <david.sherwood@arm.com>
16537
16538         * coretypes.h (pad_direction): New enum.
16539         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
16540         (FUNCTION_ARG_PADDING): Likewise.
16541         * target.def (function_arg_padding): New hook.
16542         * targhooks.h (default_function_arg_padding): Declare.
16543         * targhooks.c (default_function_arg_padding): New function.
16544         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
16545         (TARGET_FUNCTION_ARG_PADDING): ...this.
16546         * doc/tm.texi: Regenerate.
16547         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
16548         instead of direction.
16549         (compute_argument_addresses): Likewise.
16550         (load_register_parameters): Likewise.
16551         (emit_library_call_value_1): Likewise.
16552         (store_one_arg): Use targetm.calls.function_arg_padding instead
16553         of FUNCTION_ARG_PADDING.
16554         (must_pass_in_stack_var_size_or_pad): Likewise.
16555         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
16556         (emit_group_store): Likewise.
16557         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
16558         instead of FUNCTION_ARG_PADDING.
16559         (emit_push_insn): Likewise, and propagate enum change throughout
16560         function.
16561         * function.h (direction): Delete.
16562         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
16563         of direction.
16564         * function.c (assign_parm_find_stack_rtl): Likewise.
16565         (assign_parm_setup_block_p): Likewise.
16566         (assign_parm_setup_block): Likewise.
16567         (gimplify_parameters): Likewise.
16568         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
16569         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
16570         function.
16571         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
16572         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16573         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
16574         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
16575         (aarch64_function_arg_padding): ...this new function.
16576         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
16577         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16578         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
16579         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16580         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
16581         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16582         (arm_pad_arg_upward): Replace with...
16583         (arm_function_arg_padding): ...this new function.
16584         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
16585         of direction.
16586         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
16587         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
16588         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16589         (ia64_hpux_function_arg_padding): Replace with...
16590         (ia64_function_arg_padding): ...this new function.  Use pad_direction
16591         instead of direction.  Check for TARGET_HPUX.
16592         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
16593         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16594         (iq2000_function_arg_padding): New function.
16595         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
16596         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
16597         (mips_function_arg_padding): ...this new function.
16598         (mips_pad_reg_upward): Update accordingly.
16599         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16600         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
16601         targetm.calls.function_arg_padding.
16602         (FUNCTION_ARG_PADDING): Delete.
16603         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16604         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
16605         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16606         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
16607         (nios2_block_reg_padding): Return pad_direction instead of direction.
16608         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
16609         instead of direction.
16610         (nios2_function_arg_padding): Likewise.  Make static.
16611         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16612         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
16613         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
16614         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
16615         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16616         (pa_function_arg_padding): Make static.  Return pad_direction instead
16617         of direction.
16618         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
16619         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16620         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
16621         instead of direction.  Use targetm.calls.function_arg_padding.
16622         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
16623         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16624         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
16625         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
16626         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
16627         Redefine.
16628         (function_arg_padding): Rename to...
16629         (rs6000_function_arg_padding): ...this.  Make static.  Return
16630         pad_direction instead of direction.
16631         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16632         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
16633         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16634         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
16635         instead of direction.  Use targetm.calls.function_arg_padding.
16636         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
16637         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16638         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
16639         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
16640         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16641         (function_arg_padding): Rename to...
16642         (rs6000_function_arg_padding): ...this.  Make static.  Return
16643         pad_direction instead of direction.
16644         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16645         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
16646         * config/s390/s390.c (s390_function_arg_padding): New function.
16647         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16648         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
16649         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
16650         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16651         (function_arg_padding): Rename to...
16652         (sparc_function_arg_padding): ...this.  Make static.  Return
16653         pad_direction instead of direction.
16654         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
16655         * config/spu/spu.c (spu_function_arg_padding): New function.
16656         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16657         * system.h (FUNCTION_ARG_PADDING): Poison.
16658
16659 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16660             Alan Hayward  <alan.hayward@arm.com>
16661             David Sherwood  <david.sherwood@arm.com>
16662
16663         * target.def (modes_tieable_p): New hook.
16664         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
16665         (TARGET_MODES_TIEABLE_P): ...this.
16666         * doc/tm.texi.in: Regenerate.
16667         * hooks.h (hook_bool_mode_mode_true): Declare.
16668         * hooks.c (hook_bool_mode_mode_true): New function.
16669         * combine.c (subst): Use targetm.modes_tieable_p instead of
16670         MODES_TIEABLE_P.
16671         * dse.c (find_shift_sequence): Likewise.
16672         * expmed.c (extract_low_bits): Likewise.
16673         * lower-subreg.c: Include target.h.
16674         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
16675         MODES_TIEABLE_P.
16676         * rtlanal.c (rtx_cost): Likewise.
16677         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
16678         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
16679         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
16680         (TARGET_MODES_TIEABLE_P): Redefine.
16681         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
16682         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
16683         (TARGET_MODES_TIEABLE_P): Redefine.
16684         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
16685         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
16686         (arc_modes_tieable_p): New function.
16687         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
16688         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
16689         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
16690         (arm_modes_tieable_p): Make static.
16691         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
16692         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
16693         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
16694         (TARGET_MODES_TIEABLE_P): Redefine.
16695         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
16696         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
16697         (TARGET_MODES_TIEABLE_P): Redefine.
16698         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
16699         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
16700         (cr16_modes_tieable_p): New function.
16701         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
16702         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
16703         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
16704         (TRULY_NOOP_TRUNCATION): Update comment.
16705         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
16706         (TRULY_NOOP_TRUNCATION): Update comment.
16707         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
16708         (frv_modes_tieable_p): New function.
16709         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
16710         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
16711         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
16712         (TARGET_MODES_TIEABLE_P): Redefine.
16713         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
16714         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
16715         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
16716         (TARGET_MODES_TIEABLE_P): Redefine.
16717         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
16718         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
16719         (ia64_modes_tieable_p): New function.
16720         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
16721         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
16722         (iq2000_modes_tieable_p): New function.
16723         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
16724         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
16725         (lm32_modes_tieable_p): New function.
16726         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
16727         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
16728         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
16729         (TARGET_MODES_TIEABLE_P): Redefine.
16730         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
16731         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
16732         (m32r_modes_tieable_p): New function.
16733         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
16734         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
16735         (m68k_modes_tieable_p): New function.
16736         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
16737         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
16738         (mcore_modes_tieable_p): New function.
16739         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
16740         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
16741         function.
16742         (TARGET_MODES_TIEABLE_P): Redefine.
16743         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
16744         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
16745         * config/mips/mips.c (mips_modes_tieable_p): Make static.
16746         (TARGET_MODES_TIEABLE_P): Redefine.
16747         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
16748         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
16749         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
16750         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
16751         (mn10300_modes_tieable_p): ...this and make static.
16752         (TARGET_MODES_TIEABLE_P): Redefine.
16753         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
16754         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
16755         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
16756         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
16757         (msp430_modes_tieable_p): Make static.
16758         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
16759         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
16760         (TARGET_MODES_TIEABLE_P): Redefine.
16761         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
16762         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
16763         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
16764         (TARGET_MODES_TIEABLE_P): Redefine.
16765         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
16766         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
16767         * config/pa/pa.c (pa_modes_tieable_p): Make static.
16768         (TARGET_MODES_TIEABLE_P): Redefine.
16769         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
16770         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
16771         (pdp11_modes_tieable_p): New function.
16772         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
16773         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
16774         (rs6000_modes_tieable_p): New function.
16775         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16776         * config/powerpcspe/powerpcspe.md: Update comment.
16777         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
16778         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
16779         (TARGET_MODES_TIEABLE_P): Redefine.
16780         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
16781         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
16782         (rl78_modes_tieable_p): New function.
16783         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
16784         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
16785         (rs6000_modes_tieable_p): New function.
16786         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16787         * config/rs6000/rs6000.md: Update comment.
16788         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
16789         * config/rx/rx.c (rx_modes_tieable_p): New function.
16790         (TARGET_MODES_TIEABLE_P): Redefine.
16791         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
16792         * config/s390/s390.c (s390_modes_tieable_p): New function.
16793         (TARGET_MODES_TIEABLE_P): Redefine.
16794         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
16795         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
16796         (sh_modes_tieable_p): New function.
16797         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
16798         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
16799         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
16800         (sparc_modes_tieable_p): Make static.
16801         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
16802         * config/spu/spu.c (spu_modes_tieable_p): New function.
16803         (TARGET_MODES_TIEABLE_P): Redefine.
16804         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
16805         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
16806         (TARGET_MODES_TIEABLE_P): Redefine.
16807         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
16808         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
16809         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
16810         * config/v850/v850.c (v850_modes_tieable_p): New function.
16811         (TARGET_MODES_TIEABLE_P): Redefine.
16812         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
16813         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
16814         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
16815         (visium_modes_tieable_p): New function.
16816         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
16817         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
16818         (xtensa_modes_tieable_p): New function.
16819         * system.h (MODES_TIEABLE_P): Poison.
16820
16821 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16822             Alan Hayward  <alan.hayward@arm.com>
16823             David Sherwood  <david.sherwood@arm.com>
16824
16825         * target.def (hard_regno_mode_ok): New hook.
16826         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
16827         (TARGET_HARD_REGNO_MODE_OK): ...this.
16828         * doc/tm.texi.in: Regenerate.
16829         * hooks.h (hook_bool_uint_mode_true): Declare.
16830         * hooks.c (hook_bool_uint_mode_true): New function.
16831         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
16832         HARD_REGNO_MODE_OK.
16833         * genpreds.c (write_insn_preds_c): Add an include of target.h.
16834         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
16835         instead of HARD_REGNO_MODE_OK.
16836         * caller-save.c: Include target.h.
16837         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
16838         HARD_REGNO_MODE_OK.
16839         * combine.c (can_combine_p): Likewise.
16840         (combinable_i3pat): Likewise.
16841         (can_change_dest_mode): Likewise.
16842         * expr.c (init_expr_target): Likewise.
16843         (convert_move): Likewise.
16844         (convert_modes): Likewise.
16845         * ira.c (setup_prohibited_class_mode_regs): Likewise.
16846         (setup_prohibited_mode_move_regs): Likewise.
16847         * ira.h (target_ira): Likewise.
16848         * lra-assigns.c (find_hard_regno_for_1): Likewise.
16849         * lra-constraints.c (process_alt_operands): Likewise.
16850         (split_reg): Likewise.
16851         * recog.c (peep2_find_free_register): Likewise.
16852         * ree.c (combine_reaching_defs): Likewise.
16853         * regcprop.c (maybe_mode_change): Likewise.
16854         * reginfo.c (init_reg_sets_1): Likewise.
16855         (choose_hard_reg_mode): Likewise.
16856         (simplifiable_subregs): Likewise.
16857         * regrename.c (check_new_reg_p): Likewise.
16858         * reload.c (find_valid_class): Likewise.
16859         (find_valid_class_1): Likewise.
16860         (reload_inner_reg_of_subreg): Likewise.
16861         (push_reload): Likewise.
16862         (combine_reloads): Likewise.
16863         (find_dummy_reload): Likewise.
16864         (find_reloads): Likewise.
16865         * reload1.c (find_reg): Likewise.
16866         (set_reload_reg): Likewise.
16867         (allocate_reload_reg): Likewise.
16868         (choose_reload_regs): Likewise.
16869         (reload_adjust_reg_for_temp): Likewise.
16870         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
16871         (simplify_subreg_regno): Likewise.
16872         * sel-sched.c (init_regs_for_mode): Likewise.
16873         * varasm.c (make_decl_rtl): Likewise.
16874         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
16875         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
16876         HARD_REGNO_MODE_OK.
16877         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
16878         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
16879         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16880         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
16881         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
16882         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16883         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
16884         (arc_mode_class): Delete.
16885         (HARD_REGNO_MODE_OK): Delete.
16886         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16887         (arc_hard_regno_mode_ok): Rename old array to...
16888         (arc_hard_regno_mode_ok_modes): ...this.
16889         (arc_conditional_register_usage): Update accordingly.
16890         (arc_mode_class): Make static.
16891         (arc_hard_regno_mode_ok): New function.
16892         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
16893         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
16894         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16895         (arm_hard_regno_mode_ok): Make static.
16896         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
16897         HARD_REGNO_MODE_OK.
16898         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
16899         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
16900         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
16901         return a bool.
16902         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16903         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
16904         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
16905         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
16906         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
16907         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16908         * config/bfin/predicates.md (valid_reg_operand): Use
16909         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
16910         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
16911         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
16912         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16913         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
16914         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
16915         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16916         (cr16_hard_regno_mode_ok): Make static and return a bool.
16917         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
16918         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16919         (cris_hard_regno_mode_ok): New function.
16920         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
16921         (epiphany_mode_class): Delete.
16922         (HARD_REGNO_MODE_OK): Delete.
16923         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
16924         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16925         (hard_regno_mode_ok): Rename to...
16926         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
16927         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
16928         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
16929         HARD_REGNO_MODE_OK.
16930         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
16931         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
16932         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16933         (frv_hard_regno_mode_ok): Make static and return a bool.
16934         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
16935         HARD_REGNO_MODE_OK.
16936         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
16937         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
16938         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
16939         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
16940         and return a bool.
16941         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16942         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
16943         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
16944         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
16945         return a bool.
16946         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16947         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
16948         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16949         (ia64_hard_regno_mode_ok): New function.
16950         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
16951         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16952         (iq2000_hard_regno_mode_ok): New function.
16953         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
16954         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16955         (lm32_hard_regno_mode_ok): New function.
16956         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
16957         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
16958         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
16959         instead of HARD_REGNO_MODE_OK.
16960         (m32c_hard_regno_ok): Rename to...
16961         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
16962         (m32c_cannot_change_mode_class): Update accordingly.
16963         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16964         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
16965         (m32r_mode_class): Delete.
16966         (HARD_REGNO_MODE_OK): Delete.
16967         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16968         (m32r_hard_regno_mode_ok): Rename to...
16969         (m32r_hard_regno_modes): ...this.
16970         (m32r_mode_class): Make static.
16971         (m32r_hard_regno_mode_ok): New function.
16972         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
16973         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
16974         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16975         (m68k_hard_regno_mode_ok): Make static.
16976         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
16977         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
16978         (mcore_hard_regno_mode_ok): New function.
16979         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
16980         (HARD_REGNO_MODE_OK): Delete.
16981         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
16982         Rename to...
16983         (microblaze_hard_regno_mode_ok_p): ...this and make static.
16984         (microblaze_hard_regno_mode_ok): New function.
16985         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16986         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
16987         (mips_hard_regno_mode_ok): Delete.
16988         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
16989         (mips_hard_regno_mode_ok_p): ...this and make static.
16990         (mips_hard_regno_mode_ok_p): Rename to...
16991         (mips_hard_regno_mode_ok_uncached): ...this.
16992         (mips_hard_regno_mode_ok): New function.
16993         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
16994         of HARD_REGNO_MODE_OK.
16995         (mips_option_override): Update after above name changes.
16996         (TARGET_HARD_REGNO_MODE_OK): Redefine.
16997         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
16998         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
16999         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
17000         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
17001         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17002         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
17003         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
17004         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
17005         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17006         (msp430_hard_regno_mode_ok): Make static and return a bool.
17007         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
17008         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
17009         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
17010         and return a bool.
17011         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17012         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
17013         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
17014         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
17015         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
17016         (PA_HARD_REGNO_MODE_OK): ...this
17017         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
17018         (PA_HARD_REGNO_MODE_OK): ...this.
17019         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17020         (pa_hard_regno_mode_ok): New function.
17021         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
17022         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17023         (pdp11_hard_regno_mode_ok): New function.
17024         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
17025         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
17026         Delete.
17027         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
17028         Make static.
17029         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17030         (rs6000_hard_regno_mode_ok): Rename to...
17031         (rs6000_hard_regno_mode_ok_uncached): ...this.
17032         (rs6000_init_hard_regno_mode_ok): Update accordingly.
17033         (rs6000_hard_regno_mode_ok): New function.
17034         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
17035         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
17036         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
17037         (riscv_hard_regno_mode_ok): ...this and make static.
17038         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17039         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
17040         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
17041         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17042         (rl78_hard_regno_mode_ok): Make static and return bool.
17043         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
17044         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
17045         Delete.
17046         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
17047         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17048         (rs6000_hard_regno_mode_ok): Rename to...
17049         (rs6000_hard_regno_mode_ok_uncached): ...this.
17050         (rs6000_init_hard_regno_mode_ok): Update accordingly.
17051         (rs6000_hard_regno_mode_ok): New function.
17052         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
17053         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
17054         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17055         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
17056         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
17057         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
17058         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17059         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
17060         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
17061         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17062         (sh_hard_regno_mode_ok): Make static.
17063         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
17064         instead of HARD_REGNO_MODE_OK.
17065         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
17066         (sparc_mode_class): Delete.
17067         (HARD_REGNO_MODE_OK): Delete.
17068         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17069         (hard_regno_mode_classes): Make static.
17070         (sparc_mode_class): Likewise.
17071         (sparc_hard_regno_mode_ok): New function.
17072         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
17073         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
17074         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
17075         function.
17076         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17077         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
17078         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
17079         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
17080         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
17081         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17082         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
17083         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
17084         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17085         (visium_hard_regno_mode_ok): New function.
17086         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
17087         instead of HARD_REGNO_MODE_OK.
17088         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
17089         (HARD_REGNO_MODE_OK): Delete.
17090         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
17091         (xtensa_hard_regno_mode_ok_p): ...this and make static.
17092         (xtensa_option_override): Update accordingly.
17093         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17094         (xtensa_hard_regno_mode_ok): New function.
17095         * system.h (HARD_REGNO_MODE_OK): Poison.
17096
17097 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17098             Alan Hayward  <alan.hayward@arm.com>
17099             David Sherwood  <david.sherwood@arm.com>
17100
17101         * target.def (hard_regno_call_part_clobbered): New hook.
17102         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
17103         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
17104         * doc/tm.texi: Regenerate.
17105         * hooks.h (hook_bool_uint_mode_false): Declare.
17106         * hooks.c (hook_bool_uint_mode_false): New function.
17107         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17108         * cselib.c (cselib_process_insn): Use
17109         targetm.hard_regno_call_part_clobbered instead of
17110         HARD_REGNO_CALL_PART_CLOBBERED.
17111         * ira-conflicts.c (ira_build_conflicts): Likewise.
17112         * ira-costs.c (ira_tune_allocno_costs): Likewise.
17113         * lra-constraints.c (need_for_call_save_p): Likewise.
17114         * lra-lives.c: Include target.h.
17115         (check_pseudos_live_through_calls): Use
17116         targetm.hard_regno_call_part_clobbered instead of
17117         HARD_REGNO_CALL_PART_CLOBBERED.
17118         * regcprop.c: Include target.h.
17119         (copyprop_hardreg_forward_1): Use
17120         targetm.hard_regno_call_part_clobbered instead of
17121         HARD_REGNO_CALL_PART_CLOBBERED.
17122         * reginfo.c (choose_hard_reg_mode): Likewise.
17123         * regrename.c (check_new_reg_p): Likewise.
17124         * reload.c (find_equiv_reg): Likewise.
17125         * reload1.c (emit_reload_insns): Likewise.
17126         * sched-deps.c (deps_analyze_insn): Likewise.
17127         * sel-sched.c (init_regs_for_mode): Likewise.
17128         (mark_unavailable_hard_regs): Likewise.
17129         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
17130         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17131         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
17132         New function.
17133         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17134         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17135         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
17136         Delete.
17137         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
17138         and return a bool.
17139         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17140         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17141         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
17142         function.
17143         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17144         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17145         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
17146         function.
17147         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17148         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
17149         Delete.
17150         * config/powerpcspe/powerpcspe.c
17151         (rs6000_hard_regno_call_part_clobbered): New function.
17152         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17153         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17154         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
17155         New function.
17156         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17157         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17158         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
17159         function.
17160         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17161         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17162         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
17163
17164 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17165             Alan Hayward  <alan.hayward@arm.com>
17166             David Sherwood  <david.sherwood@arm.com>
17167
17168         * rtl.h (subreg_memory_offset): Declare.
17169         * emit-rtl.c (subreg_memory_offset): New function.
17170         * expmed.c (store_bit_field_1): Use it.
17171         * expr.c (undefined_operand_subword_p): Likewise.
17172         * simplify-rtx.c (simplify_subreg): Likewise.
17173
17174 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
17175
17176         PR rtl-optimization/57448
17177         PR target/67458
17178         PR target/81316
17179         * optabs.c (expand_atomic_load): Place compiler memory barriers if
17180         using atomic_load pattern.
17181         (expand_atomic_store): Likewise.
17182
17183 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
17184
17185         PR sanitizer/81981
17186         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
17187         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
17188         handling.  Use replace_call_with_value with NULL instead of
17189         gsi_replace, unlink_stmt_vdef and release_defs.
17190
17191         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
17192         instead of tab.
17193
17194         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
17195
17196 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17197
17198         PR bootstrap/82045
17199         * rtl.h (emit_library_call_value_1): Declare.
17200         (emit_library_call): Replace declaration with a series of overloads.
17201         Remove the parameter count argument.
17202         (emit_library_call_value): Likewise.
17203         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
17204         with an "rtx_mode_t *".
17205         (emit_library_call_value): Delete.
17206         (emit_library_call): Likewise.
17207         * asan.c (asan_emit_stack_protection): Update calls accordingly.
17208         (asan_emit_allocas_unpoison): Likewise.
17209         * builtins.c (expand_builtin_powi): Likewise.
17210         (expand_asan_emit_allocas_unpoison): Likewise.
17211         * cfgexpand.c (expand_main_function): Likewise.
17212         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
17213         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
17214         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
17215         * config/arm/arm.c (arm_trampoline_init): Likewise.
17216         (arm_call_tls_get_addr): Likewise.
17217         (arm_expand_divmod_libfunc): Likewise.
17218         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
17219         (smulsi3_highpart): Likewise.
17220         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
17221         (c6x_expand_compare): Likewise.
17222         (c6x_expand_movmem): Likewise.
17223         * config/frv/frv.c (frv_trampoline_init): Likewise.
17224         * config/i386/i386.c (ix86_trampoline_init): Likewise.
17225         (ix86_expand_divmod_libfunc): Likewise.
17226         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17227         (ia64_expand_compare): Likewise.
17228         (ia64_profile_hook): Likewise.
17229         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
17230         (nonlocal_goto): Likewise.
17231         (restore_stack_nonlocal): Likewise.
17232         * config/m32r/m32r.c (block_move_call): Likewise.
17233         (m32r_trampoline_init): Likewise.
17234         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
17235         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
17236         (m68k_call_m68k_read_tp): Likewise.
17237         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
17238         (microblaze_expand_divide): Likewise.
17239         * config/mips/mips.h (mips_args): Likewise.
17240         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
17241         (MIPS_ICACHE_SYNC): Likewise.
17242         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
17243         (nios2_trampoline_init): Likewise.
17244         * config/pa/pa.c (hppa_tls_call): Likewise.
17245         (pa_trampoline_init): Likewise.
17246         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
17247         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
17248         (expand_strn_compare): Likewise.
17249         (rs6000_generate_compare): Likewise.
17250         (rs6000_expand_float128_convert): Likewise.
17251         (output_profile_hook): Likewise.
17252         (rs6000_trampoline_init): Likewise.
17253         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
17254         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
17255         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
17256         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17257         (rs6000_generate_compare): Likewise.
17258         (rs6000_expand_float128_convert): Likewise.
17259         (output_profile_hook): Likewise.
17260         (rs6000_trampoline_init): Likewise.
17261         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
17262         * config/sh/sh.c (sh_trampoline_init): Likewise.
17263         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
17264         (sparc_emit_float_lib_cmp): Likewise.
17265         (sparc32_initialize_trampoline): Likewise.
17266         (sparc64_initialize_trampoline): Likewise.
17267         (sparc_profile_hook): Likewise.
17268         * config/spu/spu.c (ea_load_store): Likewise.
17269         * config/spu/spu.md (floatunssidf2): Likewise.
17270         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
17271         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
17272         * config/visium/visium.c (expand_block_move_4): Likewise.
17273         (expand_block_move_2): Likewise.
17274         (expand_block_move_1): Likewise.
17275         (expand_block_set_4): Likewise.
17276         (expand_block_set_2): Likewise.
17277         (expand_block_set_1): Likewise.
17278         (visium_trampoline_init): Likewise.
17279         (visium_profile_hook): Likewise.
17280         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
17281         (xtensa_setup_frame_addresses): Likewise.
17282         (xtensa_trampoline_init): Likewise.
17283         * except.c (sjlj_emit_function_enter): Likewise.
17284         (sjlj_emit_function_exit): Likewise.
17285         * explow.c (allocate_dynamic_stack_space): Likewise.
17286         (probe_stack_range): Likewise.
17287         * expr.c (convert_mode_scalar): Likewise.
17288         * optabs.c (expand_binop): Likewise.
17289         (expand_twoval_binop_libfunc): Likewise.
17290         (expand_unop): Likewise.
17291         (prepare_cmp_insn): Likewise.
17292         (prepare_float_lib_cmp): Likewise.
17293         (expand_float): Likewise.
17294         (expand_fix): Likewise.
17295         (expand_fixed_convert): Likewise.
17296         (maybe_emit_sync_lock_test_and_set): Likewise.
17297         (expand_atomic_compare_and_swap): Likewise.
17298         (expand_mem_thread_fence): Likewise.
17299         (expand_atomic_fetch_op): Likewise.
17300
17301 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
17302
17303         * doc/generic.texi (OpenACC): Adjust URL.
17304         * doc/invoke.texi (C Dialect Options): Ditto.
17305
17306 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
17307
17308         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
17309         predicate for operand 1.  Add (m,<S>) constraint.
17310         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
17311         Prevent memory operand 1 with register operand 2.
17312
17313 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
17314
17315         PR rtl-optimization/82024
17316         * combine.c (try_combine): If the combination result is a PARALLEL,
17317         and we only need to retain the SET in there that would be placed
17318         at I2, check that we can place that at I3 instead, before doing so.
17319
17320 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17321
17322         PR target/81766
17323         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
17324         instead of void.
17325         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
17326         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
17327         and label.
17328
17329 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
17330             Jeff Law  <law@redhat.com>
17331
17332         * varasm.c (bss_initializer_p): Do not put constants into .bss
17333         (categorize_decl_for_section): Handle bss_initializer_p returning
17334         false when DECL_INITIAL is NULL.
17335
17336 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17337
17338         PR target/82012
17339         * config/s390/s390.c (s390_can_inline_p): New function.
17340
17341 2017-09-01  Jeff Law  <law@redhat.com>
17342
17343         PR tree-optimization/82052
17344         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
17345         Always initialize the returned slot after a hash table miss
17346         when INSERT is true.
17347
17348 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
17349
17350         * config/s390/s390.md (mem_signal_fence): Remove.
17351         * doc/md.texi (mem_signal_fence): Remove.
17352         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
17353         Update comments.
17354         * target-insns.def (mem_signal_fence): Remove.
17355
17356 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17357
17358         PR sanitizer/81902
17359         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
17360
17361         PR sanitizer/81923
17362         * asan.c (create_odr_indicator): Strip name encoding from assembler
17363         name before appending it after __odr_asan_.
17364
17365 2017-09-01  Martin Liska  <mliska@suse.cz>
17366
17367         PR tree-optimization/82059
17368         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
17369         frequency only when an edge is redirected.
17370
17371 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17372
17373         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
17374         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
17375         (arc_conditional_register_usage): Remove ARC600 lp_count
17376         exception.
17377         (arc_file_start): Emit Tag_ARC_CPU_variation.
17378         (arc_can_use_doloop_p): New conditions to use ZOLs.
17379         (hwloop_fail): New function.
17380         (hwloop_optimize): Likewise.
17381         (hwloop_pattern_reg): Likewise.
17382         (arc_doloop_hooks): New struct, to be used with reorg_loops.
17383         (arc_reorg_loops): New function, calls reorg_loops.
17384         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
17385         (arc600_corereg_hazard): Remove ZOL checking, case handled by
17386         hwloop_optimize.
17387         (arc_loop_hazard): Remove function, functionality moved into
17388         hwloop_optimize.
17389         (arc_hazard): Remove arc_loop_hazard call.
17390         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
17391         into hwloop_optimize.
17392         (arc_label_align): Remove ZOL handling.
17393         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
17394         * config/arc/arc.md (doloop_begin): Remove pattern.
17395         (doloop_begin_i): Likewise.
17396         (doloop_end_i): Likewise.
17397         (doloop_fallback): Likewise.
17398         (doloop_fallback_m): Likewise.
17399         (doloop_end): Reimplement expand.
17400         (arc_lp): New pattern for LP instruction.
17401         (loop_end): New pattern.
17402         (loop_fail): Likewise.
17403         (decrement_and_branch_until_zero): Likewise.
17404         * config/arc/arc.opt (mlpc-width): New option.
17405         * doc/invoke.texi (mlpc-width): Document option.
17406
17407 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17408
17409         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
17410         (arc_ccfsm_advance): Fix checking for delay slots.
17411         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
17412
17413 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17414
17415         * config/arc/arc.md (movqi_insn): Add stores to save constant long
17416         immediates.
17417         (movhi_insn): Update store instruction constraint which are saving
17418         6-bit short immediates.
17419         (movsi_insn): Consider also short scaled load operations.
17420         (zero_extendhisi2_i): Use Usd constraint instead of T.
17421         (extendhisi2_i): Add q constraint.
17422         (arc_clzsi2): Add type and length attributes.
17423         (arc_ctzsi2): Likewise.
17424         * config/arc/constraints.md (Usc): Update constraint, the
17425         assembler can parse two relocations for a single instruction.
17426
17427 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17428
17429         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
17430         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
17431
17432 2017-08-31  Olivier Hainque  <hainque@adacore.com>
17433
17434         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
17435         match as powerpc-wrs-vxworks*.
17436
17437 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
17438
17439         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
17440         register constraint for by-element operand.
17441         (aarch64_mls_elt_merge<mode>): Likewise.
17442
17443 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17444
17445         * config/arc/arc.c (arc_can_follow_jump): Check for short
17446         branches.
17447
17448 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17449
17450         * config.gcc: Use g.opt for arc.
17451         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
17452         functionality moved to ...
17453         (legitimate_scaled_address_p): New function, ...here.
17454         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
17455         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
17456         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
17457         condition.
17458         (arc_override_options): Handle G option.
17459         (arc_output_pic_addr_const): Correct function definition.
17460         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
17461         (arc_decl_anon_ns_mem_p): Delete.
17462         (arc_in_small_data_p): Overhaul this function to take into
17463         consideration the value given via G option.
17464         (arc_rewrite_small_data_1): Renamed and corrected old
17465         arc_rewrite_small_data function.
17466         (arc_rewrite_small_data): New function.
17467         (small_data_pattern): Don't use pic_offset_table_rtx.
17468         * config/arc/arc.h (CC1_SPEC): Recognize G option.
17469         * config/arc/simdext.md (movmisalignv2hi): Use
17470         prepare_move_operands function.
17471         (mov*): Likewise.
17472         (movmisalign*): Likewise.
17473         * doc/invoke.texi (ARC options): Document -G option.
17474
17475 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17476
17477         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
17478         prototype.
17479         * config/arc/arc.c (arc_print_operand): Output scalled address for
17480         sdata whenever is possible.
17481         (arc_in_small_data_p): Allow sdata for 64bit datum when double
17482         load/stores are available.
17483         (compact_sda_memory_operand): Check for the alignment required by
17484         code density instructions.
17485         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
17486         constraint.
17487         * config/arc/constraints.md (Usd): Update constraint.
17488         (Us0): New constraint.
17489         (Usc): Update constraint.
17490
17491 2017-08-31  Richard Biener  <rguenther@suse.de>
17492
17493         PR middle-end/82054
17494         * dwarf2out.c (dwarf2out_early_global_decl): Process each
17495         function only once.
17496
17497 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
17498
17499         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17500         Resize type_signature.
17501
17502 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17503             Alan Hayward  <alan.hayward@arm.com>
17504             David Sherwood  <david.sherwood@arm.com>
17505
17506         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
17507         subregs whose inner modes can be stored in GPRs.
17508         (aarch64_classify_index): Likewise.
17509
17510 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17511             Alan Hayward  <alan.hayward@arm.com>
17512             David Sherwood  <david.sherwood@arm.com>
17513
17514         * config/aarch64/iterators.md (V_cmp_result): Rename to...
17515         (V_INT_EQUIV): ...this.
17516         (v_cmp_result): Rename to...
17517         (v_int_equiv): ...this.
17518         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
17519         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
17520         (copysign<mode>3): Likewise.
17521         (aarch64_simd_bsl<mode>_internal): Likewise.
17522         (aarch64_simd_bsl<mode>): Likewise.
17523         (vec_cmp<mode><mode>): Likewise.
17524         (vcond<mode><mode>): Likewise.
17525         (vcond<v_cmp_mixed><mode>): Likewise.
17526         (vcondu<mode><v_cmp_mixed>): Likewise.
17527         (aarch64_cm<optab><mode>): Likewise.
17528         (aarch64_cmtst<mode>): Likewise.
17529         (aarch64_fac<optab><mode>): Likewise.
17530         (vec_perm_const<mode>): Likewise.
17531         (vcond_mask_<mode><v_cmp_result>): Rename to...
17532         (vcond_mask_<mode><v_int_equiv>): ...this.
17533         (vec_cmp<mode><v_cmp_result>): Rename to...
17534         (vec_cmp<mode><v_int_equiv>): ...this.
17535
17536 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17537             Alan Hayward  <alan.hayward@arm.com>
17538             David Sherwood  <david.sherwood@arm.com>
17539
17540         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
17541         vector modes.
17542         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
17543         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
17544         (UNSPEC_LD4_DREG): New unspecs.
17545         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
17546         (aarch64_ld2<mode>_dreg_be): Replace with...
17547         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
17548         unspec.
17549         (aarch64_ld3<mode>_dreg_le)
17550         (aarch64_ld3<mode>_dreg_be): Replace with...
17551         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
17552         unspec.
17553         (aarch64_ld4<mode>_dreg_le)
17554         (aarch64_ld4<mode>_dreg_be): Replace with...
17555         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
17556         unspec.
17557
17558 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17559
17560         PR tree-optimization/81987
17561         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
17562         insert an initializer in a location not dominated by the stride
17563         definition.
17564
17565 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17566
17567         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
17568         on the entire header of the finally block in the fallthru case.
17569
17570 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17571
17572         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
17573
17574 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
17575
17576         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
17577         rs6000_emit_move_from_cr and call renamed function.
17578         (rs6000_emit_prologue): Call renamed functions.
17579         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
17580         movesi_from_cr, remove volatile CRs.
17581
17582 2017-08-30  Jon Beniston  <jon@beniston.com>
17583             Richard Biener  <rguenther@suse.de>
17584
17585         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
17586         of VECTOR_MODE_P check.
17587         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
17588         element vector types.
17589
17590 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17591
17592         * df.h (df_read_modify_subreg_p): Remove in favor of...
17593         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
17594         const_rtx instead of an rtx.
17595         * cprop.c (local_cprop_find_used_regs): Update accordingly.
17596         * df-problems.c (df_word_lr_mark_ref): Likewise.
17597         * ira-lives.c (mark_pseudo_reg_live): Likewise.
17598         (mark_pseudo_reg_dead): Likewise.
17599         (mark_ref_dead): Likewise.
17600         * reginfo.c (init_subregs_of_mode): Likewise.
17601         * sched-deps.c (sched_analyze_1): Likewise.
17602         * df-scan.c (df_def_record_1): Likewise.
17603         (df_uses_record): Likewise.
17604         (df_read_modify_subreg_p): Remove in favor of...
17605         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
17606         const_rtx instead of an rtx.
17607
17608 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17609             Alan Hayward  <alan.hayward@arm.com>
17610             David Sherwood  <david.sherwood@arm.com>
17611
17612         * rtl.h (partial_subreg_p): New function.
17613         * caller-save.c (save_call_clobbered_regs): Use it.
17614         * calls.c (expand_call): Likewise.
17615         * combine.c (combinable_i3pat): Likewise.
17616         (simplify_set): Likewise.
17617         (make_extraction): Likewise.
17618         (make_compound_operation_int): Likewise.
17619         (gen_lowpart_or_truncate): Likewise.
17620         (force_to_mode): Likewise.
17621         (make_field_assignment): Likewise.
17622         (reg_truncated_to_mode): Likewise.
17623         (record_truncated_value): Likewise.
17624         (move_deaths): Likewise.
17625         * cse.c (record_jump_cond): Likewise.
17626         (cse_insn): Likewise.
17627         * cselib.c (cselib_lookup_1): Likewise.
17628         * expmed.c (extract_bit_field_using_extv): Likewise.
17629         * function.c (assign_parm_setup_reg): Likewise.
17630         * ifcvt.c (noce_convert_multiple_sets): Likewise.
17631         * ira-build.c (create_insn_allocnos): Likewise.
17632         * lra-coalesce.c (merge_pseudos): Likewise.
17633         * lra-constraints.c (match_reload): Likewise.
17634         (simplify_operand_subreg): Likewise.
17635         (curr_insn_transform): Likewise.
17636         * lra-lives.c (process_bb_lives): Likewise.
17637         * lra.c (new_insn_reg): Likewise.
17638         (lra_substitute_pseudo): Likewise.
17639         * regcprop.c (mode_change_ok): Likewise.
17640         (maybe_mode_change): Likewise.
17641         (copyprop_hardreg_forward_1): Likewise.
17642         * reload.c (push_reload): Likewise.
17643         (find_reloads): Likewise.
17644         (find_reloads_subreg_address): Likewise.
17645         * reload1.c (alter_reg): Likewise.
17646         (eliminate_regs_1): Likewise.
17647         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17648
17649 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
17650
17651         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
17652         back to if statements, including unpack.
17653
17654 2017-08-30  Martin Liska  <mliska@suse.cz>
17655
17656         PR inline-asm/82001
17657         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
17658         Rename to ...
17659         (func_checker::compare_asm_inputs_outputs): ... this function.
17660         (func_checker::compare_gimple_asm): Use the function to compare
17661         also ASM constrains.
17662         * ipa-icf-gimple.h: Rename the function.
17663
17664 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17665             Alan Hayward  <alan.hayward@arm.com>
17666             David Sherwood  <david.sherwood@arm.com>
17667
17668         * coretypes.h (complex_mode): New type.
17669         * gdbhooks.py (build_pretty_printer): Handle it.
17670         * machmode.h (complex_mode): New class.
17671         (complex_mode::includes_p): New function.
17672         (is_complex_int_mode): Likewise.
17673         (is_complex_float_mode): Likewise.
17674         * genmodes.c (get_mode_class): Handle complex mode classes.
17675         * function.c (expand_function_end): Use is_complex_int_mode.
17676
17677 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17678             Alan Hayward  <alan.hayward@arm.com>
17679             David Sherwood  <david.sherwood@arm.com>
17680
17681         * coretypes.h (scalar_mode_pod): New typedef.
17682         * gdbhooks.py (build_pretty_printer): Handle it.
17683         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
17684         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
17685         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
17686         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
17687         as_a <scalar_mode>.
17688
17689 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17690             Alan Hayward  <alan.hayward@arm.com>
17691             David Sherwood  <david.sherwood@arm.com>
17692
17693         * machmode.h (mode_for_vector): Take a scalar_mode instead
17694         of a machine_mode.
17695         * stor-layout.c (mode_for_vector): Likewise.
17696         * explow.c (promote_mode): Use as_a <scalar_mode>.
17697         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
17698
17699 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17700             Alan Hayward  <alan.hayward@arm.com>
17701             David Sherwood  <david.sherwood@arm.com>
17702
17703         * target.def (preferred_simd_mode): Take a scalar_mode
17704         instead of a machine_mode.
17705         * targhooks.h (default_preferred_simd_mode): Likewise.
17706         * targhooks.c (default_preferred_simd_mode): Likewise.
17707         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
17708         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
17709         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
17710         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
17711         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
17712         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
17713         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
17714         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
17715         Likewise.
17716         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
17717         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
17718         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
17719         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
17720         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
17721         * doc/tm.texi: Regenerate.
17722         * optabs-query.c (can_vec_mask_load_store_p): Return false for
17723         non-scalar modes.
17724
17725 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17726             Alan Hayward  <alan.hayward@arm.com>
17727             David Sherwood  <david.sherwood@arm.com>
17728
17729         * target.def (scalar_mode_supported_p): Take a scalar_mode
17730         instead of a machine_mode.
17731         * targhooks.h (default_scalar_mode_supported_p): Likewise.
17732         * targhooks.c (default_scalar_mode_supported_p): Likewise.
17733         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
17734         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17735         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
17736         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
17737         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
17738         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
17739         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
17740         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
17741         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
17742         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
17743         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
17744         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
17745         Likewise.
17746         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
17747         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
17748         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17749         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
17750         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
17751         Likewise.
17752         * doc/tm.texi: Regenerate.
17753
17754 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17755             Alan Hayward  <alan.hayward@arm.com>
17756             David Sherwood  <david.sherwood@arm.com>
17757
17758         * coretypes.h (opt_scalar_mode): New typedef.
17759         * gdbhooks.py (build_pretty_printers): Handle it.
17760         * machmode.h (mode_iterator::get_2xwider): Add overload for
17761         opt_mode<T>.
17762         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
17763         over scalar modes.
17764         * expr.c (convert_mode_scalar): Likewise.
17765         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17766         * optabs.c (expand_float): Likewise.
17767         (expand_fix): Likewise.
17768         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17769
17770 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17771             Alan Hayward  <alan.hayward@arm.com>
17772             David Sherwood  <david.sherwood@arm.com>
17773
17774         * optabs.c (expand_float): Explicitly check for scalars before
17775         using a branching expansion.
17776         (expand_fix): Likewise.
17777
17778 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17779             Alan Hayward  <alan.hayward@arm.com>
17780             David Sherwood  <david.sherwood@arm.com>
17781
17782         * expr.c (convert_mode): Split scalar handling out into...
17783         (convert_mode_scalar): ...this new function.  Treat the modes
17784         as scalar_modes.
17785
17786 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17787             Alan Hayward  <alan.hayward@arm.com>
17788             David Sherwood  <david.sherwood@arm.com>
17789
17790         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
17791         and scalar_mode.
17792         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
17793
17794 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17795             Alan Hayward  <alan.hayward@arm.com>
17796             David Sherwood  <david.sherwood@arm.com>
17797
17798         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
17799         rather than a machine_mode.
17800         (fixed_from_string): Likewise.
17801         (fixed_convert): Likewise.
17802         (fixed_convert_from_int): Likewise.
17803         (fixed_convert_from_real): Likewise.
17804         (real_convert_from_fixed): Likewise.
17805         * fixed-value.c (fixed_from_double_int): Likewise.
17806         (fixed_from_string): Likewise.
17807         (fixed_convert): Likewise.
17808         (fixed_convert_from_int): Likewise.
17809         (fixed_convert_from_real): Likewise.
17810         (real_convert_from_fixed): Likewise.
17811         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
17812
17813 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17814             Alan Hayward  <alan.hayward@arm.com>
17815             David Sherwood  <david.sherwood@arm.com>
17816
17817         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
17818         of separate mode class checks.  Do not allow vector modes here.
17819         (immed_wide_int_const): Use as_a <scalar_mode>.
17820         * explow.c (trunc_int_for_mode): Likewise.
17821         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
17822         (wi::shwi): Likewise.
17823         (wi::min_value): Likewise.
17824         (wi::max_value): Likewise.
17825         * dwarf2out.c (loc_descriptor): Likewise.
17826         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
17827         for CONST_WIDE_INT.
17828
17829 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17830             Alan Hayward  <alan.hayward@arm.com>
17831             David Sherwood  <david.sherwood@arm.com>
17832
17833         * tree.h (SCALAR_TYPE_MODE): New macro.
17834         * expr.c (expand_expr_addr_expr_1): Use it.
17835         (expand_expr_real_2): Likewise.
17836         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
17837         (fold_convert_const_fixed_from_int): Likewise.
17838         (fold_convert_const_fixed_from_real): Likewise.
17839         (native_encode_fixed): Likewise
17840         (native_encode_complex): Likewise
17841         (native_encode_vector): Likewise.
17842         (native_interpret_fixed): Likewise.
17843         (native_interpret_real): Likewise.
17844         (native_interpret_complex): Likewise.
17845         (native_interpret_vector): Likewise.
17846         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
17847         (simd_clone_adjust_argument_types): Likewise.
17848         (simd_clone_init_simd_arrays): Likewise.
17849         (simd_clone_adjust): Likewise.
17850         * stor-layout.c (layout_type): Likewise.
17851         * tree.c (build_minus_one_cst): Likewise.
17852         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17853         * tree-inline.c (estimate_move_cost): Likewise.
17854         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
17855         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17856         (vectorizable_reduction): Likewise.
17857         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17858         (vect_recog_mixed_size_cond_pattern): Likewise.
17859         (check_bool_pattern): Likewise.
17860         (adjust_bool_pattern): Likewise.
17861         (search_type_for_mask_1): Likewise.
17862         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
17863         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17864         (vectorizable_load): Likewise.
17865         (vectorizable_store): Likewise.
17866         * ubsan.c (ubsan_encode_value): Likewise.
17867         * varasm.c (output_constant): Likewise.
17868
17869 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17870             Alan Hayward  <alan.hayward@arm.com>
17871             David Sherwood  <david.sherwood@arm.com>
17872
17873         * coretypes.h (scalar_mode): New class.
17874         * machmode.h (scalar_mode): Likewise.
17875         (scalar_mode::includes_p): New function.
17876         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
17877         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
17878         * genmodes.c (get_mode_class): Handle remaining scalar modes.
17879         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
17880         * expmed.c (store_bit_field_1): Likewise.
17881         (extract_bit_field_1): Likewise.
17882         * expr.c (write_complex_part): Likewise.
17883         (read_complex_part): Likewise.
17884         (emit_move_complex_push): Likewise.
17885         (expand_expr_real_2): Likewise.
17886         * function.c (assign_parm_setup_reg): Likewise.
17887         (assign_parms_unsplit_complex): Likewise.
17888         * optabs.c (expand_binop): Likewise.
17889         * rtlanal.c (subreg_get_info): Likewise.
17890         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17891         * varasm.c (output_constant_pool_2): Likewise.
17892
17893 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17894             Alan Hayward  <alan.hayward@arm.com>
17895             David Sherwood  <david.sherwood@arm.com>
17896
17897         * expmed.c (extract_high_half): Use scalar_int_mode and remove
17898         assertion.
17899         (expmed_mult_highpart_optab): Likewise.
17900         (expmed_mult_highpart): Likewise.
17901
17902 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17903             Alan Hayward  <alan.hayward@arm.com>
17904             David Sherwood  <david.sherwood@arm.com>
17905
17906         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
17907         instead of a machine_mode.
17908         (builtin_memset_read_str): Likewise.
17909         * builtins.c (c_readstr): Likewise.
17910         (builtin_memcpy_read_str): Likewise.
17911         (builtin_strncpy_read_str): Likewise.
17912         (builtin_memset_read_str): Likewise.
17913         (builtin_memset_gen_str): Likewise.
17914         (expand_builtin_signbit): Use scalar_int_mode for local variables.
17915         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
17916         instead of a machine_mode.
17917         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
17918         variables.
17919         (make_extraction): Likewise.
17920         (try_widen_shift_mode): Take and return scalar_int_modes instead
17921         of machine_modes.
17922         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
17923         a scalar_int_mode instead of a machine_mode.
17924         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
17925         (avr_addr_space_pointer_mode): Likewise.
17926         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
17927         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
17928         (msp430_unwind_word_mode): Likewise.
17929         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
17930         (spu_addr_space_pointer_mode): Likewise.
17931         (spu_addr_space_address_mode): Likewise.
17932         (spu_libgcc_cmp_return_mode): Likewise.
17933         (spu_libgcc_shift_count_mode): Likewise.
17934         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
17935         (rl78_addr_space_pointer_mode): Likewise.
17936         (fl78_unwind_word_mode): Likewise.
17937         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
17938         machine_mode.
17939         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
17940         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
17941         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
17942         (mips_valid_pointer_mode): Likewise.
17943         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
17944         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
17945         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
17946         of a machine_mode.
17947         (ft32_addr_space_address_mode): Likewise.
17948         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
17949         scalar_int_mode instead of a machine_mode.
17950         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
17951         of a machine_mode.
17952         (m32c_addr_space_address_mode): Likewise.
17953         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
17954         (rs6000_eh_return_filter_mode): Likewise.
17955         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
17956         (rs6000_eh_return_filter_mode): Likewise.
17957         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
17958         (s390_libgcc_shift_count_mode): Likewise.
17959         (s390_unwind_word_mode): Likewise.
17960         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
17961         machine_mode.
17962         * target.def (mode_rep_extended): Likewise.
17963         (valid_pointer_mode): Likewise.
17964         (addr_space.valid_pointer_mode): Likewise.
17965         (eh_return_filter_mode): Return a scalar_int_mode rather than
17966         a machine_mode.
17967         (libgcc_cmp_return_mode): Likewise.
17968         (libgcc_shift_count_mode): Likewise.
17969         (unwind_word_mode): Likewise.
17970         (addr_space.pointer_mode): Likewise.
17971         (addr_space.address_mode): Likewise.
17972         * doc/tm.texi: Regenerate.
17973         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
17974         a machine_mode.
17975         (do_jump): Use scalar_int_mode for local variables.
17976         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
17977         rather than a machine_mode.
17978         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
17979         (scompare_loc_descriptor_wide): Likewise.
17980         (scompare_loc_descriptor_narrow): Likewise.
17981         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
17982         variables.
17983         * except.c (sjlj_emit_dispatch_table): Likewise.
17984         (expand_builtin_eh_copy_values): Likewise.
17985         * explow.c (convert_memory_address_addr_space_1): Likewise.
17986         Take a scalar_int_mode rather than a machine_mode.
17987         (convert_memory_address_addr_space): Take a scalar_int_mode rather
17988         than a machine_mode.
17989         (memory_address_addr_space): Use scalar_int_mode for local variables.
17990         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
17991         rather than a machine_mode.
17992         * expmed.c (mask_rtx): Likewise.
17993         (init_expmed_one_conv): Likewise.
17994         (expand_mult_highpart_adjust): Likewise.
17995         (extract_high_half): Likewise.
17996         (expmed_mult_highpart_optab): Likewise.
17997         (expmed_mult_highpart): Likewise.
17998         (expand_smod_pow2): Likewise.
17999         (expand_sdiv_pow2): Likewise.
18000         (emit_store_flag_int): Likewise.
18001         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
18002         variables.
18003         (extract_low_bits): Likewise.
18004         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
18005         a machine_mode.
18006         * expr.c (pieces_addr::adjust):  Likewise.
18007         (can_store_by_pieces): Likewise.
18008         (store_by_pieces): Likewise.
18009         (clear_by_pieces_1): Likewise.
18010         (expand_expr_addr_expr_1): Likewise.
18011         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
18012         (expand_expr_real_1): Likewise.
18013         (try_casesi): Likewise.
18014         * final.c (shorten_branches): Likewise.
18015         * fold-const.c (fold_convert_const_int_from_fixed): Change the
18016         type of "mode" to machine_mode.
18017         * internal-fn.c (expand_arith_overflow_result_store): Take a
18018         scalar_int_mode rather than a machine_mode.
18019         (expand_mul_overflow): Use scalar_int_mode for local variables.
18020         * loop-doloop.c (doloop_modify): Likewise.
18021         (doloop_optimize): Likewise.
18022         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
18023         than a machine_mode.
18024         (expand_doubleword_shift_condmove): Likewise.
18025         (expand_doubleword_shift): Likewise.
18026         (expand_doubleword_clz): Likewise.
18027         (expand_doubleword_popcount): Likewise.
18028         (expand_doubleword_parity): Likewise.
18029         (expand_absneg_bit): Use scalar_int_mode for local variables.
18030         (prepare_float_lib_cmp): Likewise.
18031         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
18032         rather than a machine_mode.
18033         (convert_memory_address_addr_space): Likewise.
18034         (get_mode_bounds): Likewise.
18035         (get_address_mode): Return a scalar_int_mode rather than a
18036         machine_mode.
18037         * rtlanal.c (get_address_mode): Likewise.
18038         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
18039         than a machine_mode.
18040         * targhooks.c (default_mode_rep_extended): Likewise.
18041         (default_valid_pointer_mode): Likewise.
18042         (default_addr_space_valid_pointer_mode): Likewise.
18043         (default_eh_return_filter_mode): Return a scalar_int_mode rather
18044         than a machine_mode.
18045         (default_libgcc_cmp_return_mode): Likewise.
18046         (default_libgcc_shift_count_mode): Likewise.
18047         (default_unwind_word_mode): Likewise.
18048         (default_addr_space_pointer_mode): Likewise.
18049         (default_addr_space_address_mode): Likewise.
18050         * targhooks.h (default_eh_return_filter_mode): Likewise.
18051         (default_libgcc_cmp_return_mode): Likewise.
18052         (default_libgcc_shift_count_mode): Likewise.
18053         (default_unwind_word_mode): Likewise.
18054         (default_addr_space_pointer_mode): Likewise.
18055         (default_addr_space_address_mode): Likewise.
18056         (default_mode_rep_extended): Take a scalar_int_mode rather than
18057         a machine_mode.
18058         (default_valid_pointer_mode): Likewise.
18059         (default_addr_space_valid_pointer_mode): Likewise.
18060         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
18061         local variables.
18062         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
18063         rather than a machine_mode.
18064         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
18065         for local variables.
18066         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18067         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
18068         than a machine_mode.
18069
18070 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18071             Alan Hayward  <alan.hayward@arm.com>
18072             David Sherwood  <david.sherwood@arm.com>
18073
18074         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
18075         the mode argument to scalar_int_mode.
18076         (do_jump_by_parts_zero_rtx): Likewise.
18077         (do_jump_by_parts_equality_rtx): Likewise.
18078         (do_jump_by_parts_greater): Take a mode argument.
18079         (do_jump_by_parts_equality): Likewise.
18080         (do_jump_1): Update calls accordingly.
18081
18082 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18083             Alan Hayward  <alan.hayward@arm.com>
18084             David Sherwood  <david.sherwood@arm.com>
18085
18086         * is-a.h (safe_dyn_cast): New function.
18087         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
18088         (jump_table_for_label): Likewise.
18089         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
18090         instead of an rtx_insn *.
18091         (shorten_branches): Use dyn_cast instead of LABEL_P and
18092         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
18093         rtx_jump_table_data::get_data_mode.
18094         (final_scan_insn): Likewise.
18095
18096 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18097             Alan Hayward  <alan.hayward@arm.com>
18098             David Sherwood  <david.sherwood@arm.com>
18099
18100         * combine.c (try_combine): Use is_a <scalar_int_mode> when
18101         trying to combine a full-register integer set with a subreg
18102         integer set.
18103
18104 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18105             Alan Hayward  <alan.hayward@arm.com>
18106             David Sherwood  <david.sherwood@arm.com>
18107
18108         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
18109         that is always either address_mode or pointer_mode.
18110
18111 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18112             Alan Hayward  <alan.hayward@arm.com>
18113             David Sherwood  <david.sherwood@arm.com>
18114
18115         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
18116         when the two are known to be equal.
18117
18118 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18119             Alan Hayward  <alan.hayward@arm.com>
18120             David Sherwood  <david.sherwood@arm.com>
18121
18122         * simplify-rtx.c (simplify_const_unary_operation): Use
18123         is_a <scalar_int_mode> instead of checking for a nonzero
18124         precision.  Forcibly convert op_mode to a scalar_int_mode
18125         in that case.  More clearly differentiate the operand and
18126         result modes and use the former when deciding what the value
18127         of a count-bits operation should be.  Use is_int_mode instead
18128         of checking for a MODE_INT.  Remove redundant check for whether
18129         this mode has a zero precision.
18130
18131 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18132             Alan Hayward  <alan.hayward@arm.com>
18133             David Sherwood  <david.sherwood@arm.com>
18134
18135         * optabs.c (widen_leading): Change the type of the mode argument
18136         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
18137         (widen_bswap): Likewise.
18138         (expand_parity): Likewise.
18139         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
18140         (expand_ffs): Likewise.
18141         (epand_unop): Check for scalar integer modes before calling the
18142         above routines.
18143
18144 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18145             Alan Hayward  <alan.hayward@arm.com>
18146             David Sherwood  <david.sherwood@arm.com>
18147
18148         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
18149         Expand commentary.
18150         (expand_expr_real_1): Update call accordingly.
18151
18152 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18153             Alan Hayward  <alan.hayward@arm.com>
18154             David Sherwood  <david.sherwood@arm.com>
18155
18156         * expmed.c (store_bit_field_using_insv): Add op0_mode and
18157         value_mode arguments.  Use scalar_int_mode internally.
18158         (store_bit_field_1): Rename the new integer mode from imode
18159         to op0_mode and use it instead of GET_MODE (op0).  Update calls
18160         to store_split_bit_field, store_bit_field_using_insv and
18161         store_fixed_bit_field.
18162         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
18163         Use scalar_int_mode internally.  Use a bit count rather than a mode
18164         when calculating the largest bit size for get_best_mode.
18165         Update calls to store_split_bit_field and store_fixed_bit_field_1.
18166         (store_fixed_bit_field_1): Add mode and value_mode arguments.
18167         Remove assertion that OP0 has a scalar integer mode.
18168         (store_split_bit_field): Add op0_mode and value_mode arguments.
18169         Update calls to extract_fixed_bit_field.
18170         (extract_bit_field_using_extv): Add an op0_mode argument.
18171         Use scalar_int_mode internally.
18172         (extract_bit_field_1): Rename the new integer mode from imode to
18173         op0_mode and use it instead of GET_MODE (op0).  Update calls to
18174         extract_split_bit_field, extract_bit_field_using_extv and
18175         extract_fixed_bit_field.
18176         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
18177         to extract_split_bit_field and extract_fixed_bit_field_1.
18178         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
18179         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
18180         on the target mode.
18181         (extract_split_bit_field): Add an op0_mode argument.  Update call
18182         to extract_fixed_bit_field.
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         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
18189         * explow.c (hard_function_value): Likewise.
18190         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
18191         convert_to_mode call outside the loop.
18192         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
18193         for the mode iterator.  Require the mode specified by max_pieces
18194         to exist.
18195         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
18196         mode iterator.
18197         (copy_blkmode_to_reg): Likewise.
18198         (set_storage_via_setmem): Likewise.
18199         * optabs.c (prepare_cmp_insn): Likewise.
18200         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18201         * stor-layout.c (finish_bitfield_representative): Likewise.
18202
18203 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18204             Alan Hayward  <alan.hayward@arm.com>
18205             David Sherwood  <david.sherwood@arm.com>
18206
18207         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
18208         * expr.c (convert_move): Use them.
18209         (convert_modes): Likewise.
18210         (store_expr_with_bounds): Likewise.
18211
18212 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18213             Alan Hayward  <alan.hayward@arm.com>
18214             David Sherwood  <david.sherwood@arm.com>
18215
18216         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
18217         parameter for the mode of "x".  Remove the "known_x", "known_mode"
18218         and "known_ret" arguments.  Change the type of the mode argument
18219         to scalar_int_mode.
18220         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
18221         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
18222         (reg_num_sign_bit_copies_for_combine): Likewise.
18223         * rtlanal.c (nonzero_bits1): Likewise.
18224         (num_sign_bit_copies1): Likewise.
18225         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
18226         (reg_num_sign_bit_copies_general): Likewise.
18227         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
18228         (reg_nonzero_bits_general): Likewise.
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         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
18235         than in subroutines.  Return 1 for non-integer modes.
18236         (cached_num_sign_bit_copies): Change the type of the mode parameter
18237         to scalar_int_mode.
18238         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
18239         classes.  Handle CONST_INT_P first and then check whether X also
18240         has a scalar integer mode.  Check the same thing for inner registers
18241         of a SUBREG and for values that are being extended or truncated.
18242
18243 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18244             Alan Hayward  <alan.hayward@arm.com>
18245             David Sherwood  <david.sherwood@arm.com>
18246
18247         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
18248         in subroutines.  Return the mode mask for non-integer modes.
18249         (cached_nonzero_bits): Change the type of the mode parameter
18250         to scalar_int_mode.
18251         (nonzero_bits1): Likewise.  Remove early exit for other mode
18252         classes.  Handle CONST_INT_P first and then check whether X
18253         also has a scalar integer mode.
18254
18255 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18256             Alan Hayward  <alan.hayward@arm.com>
18257             David Sherwood  <david.sherwood@arm.com>
18258
18259         * expr.c (widest_int_mode_for_size): Make the comment match the code.
18260         Return a scalar_int_mode and assert that the size is greater than
18261         one byte.
18262         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
18263         (op_by_pieces_d::op_by_pieces_d): Likewise.
18264         (op_by_pieces_d::run): Likewise.
18265         (can_store_by_pieces): Likewise.
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         * combine.c (extract_left_shift): Add a mode argument and update
18272         recursive calls.
18273         (make_compound_operation_int): Change the type of the mode parameter
18274         to scalar_int_mode and update the call to extract_left_shift.
18275
18276 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18277             Alan Hayward  <alan.hayward@arm.com>
18278             David Sherwood  <david.sherwood@arm.com>
18279
18280         * combine.c (simplify_and_const_int): Change the type of the mode
18281         parameter to scalar_int_mode.
18282         (simplify_and_const_int_1): Likewise.  Update recursive call.
18283
18284 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18285             Alan Hayward  <alan.hayward@arm.com>
18286             David Sherwood  <david.sherwood@arm.com>
18287
18288         * combine.c (simplify_compare_const): Check that the mode is a
18289         scalar_int_mode (rather than VOIDmode) before testing its
18290         precision.
18291         (simplify_comparison): Move COMPARISON_P handling out of the
18292         loop and restrict the latter part of the loop to scalar_int_modes.
18293         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
18294         and when considering SUBREG_REGs.  Use is_int_mode instead of
18295         checking GET_MODE_CLASS against MODE_INT.
18296
18297 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18298             Alan Hayward  <alan.hayward@arm.com>
18299             David Sherwood  <david.sherwood@arm.com>
18300
18301         * combine.c (try_widen_shift_mode): Move check for equal modes to...
18302         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
18303         shift_unit_mode and for modes involved in scalar shifts.
18304
18305 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18306             Alan Hayward  <alan.hayward@arm.com>
18307             David Sherwood  <david.sherwood@arm.com>
18308
18309         * combine.c (force_int_to_mode): New function, split out from...
18310         (force_to_mode): ...here.  Keep xmode up-to-date and use it
18311         instead of GET_MODE (x).
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         * optabs-query.h (extraction_insn::struct_mode): Change type to
18318         opt_scalar_int_mode and update comment.
18319         (extraction_insn::field_mode): Change type to scalar_int_mode.
18320         (extraction_insn::pos_mode): Likewise.
18321         * combine.c (make_extraction): Update accordingly.
18322         * optabs-query.c (get_traditional_extraction_insn): Likewise.
18323         (get_optab_extraction_insn): Likewise.
18324         * recog.c (simplify_while_replacing): Likewise.
18325         * expmed.c (narrow_bit_field_mem): Change the type of the mode
18326         parameter to opt_scalar_int_mode.
18327
18328 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18329             Alan Hayward  <alan.hayward@arm.com>
18330             David Sherwood  <david.sherwood@arm.com>
18331
18332         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
18333         to a scalar_int_mode instead of a machine_mode.
18334         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
18335         (get_best_mode): Return a boolean and use a pointer argument to store
18336         the selected mode.  Replace the limit mode parameter with a bit limit.
18337         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
18338         for the values returned by bit_field_mode_iterator::next_mode.
18339         (store_bit_field): Update call to get_best_mode.
18340         (store_fixed_bit_field): Likewise.
18341         (extract_fixed_bit_field): Likewise.
18342         * expr.c (optimize_bitfield_assignment_op): Likewise.
18343         * fold-const.c (optimize_bit_field_compare): Likewise.
18344         (fold_truth_andor_1): Likewise.
18345         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
18346         Update for new type of m_mode.
18347         (get_best_mode): As above.
18348
18349 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18350             Alan Hayward  <alan.hayward@arm.com>
18351             David Sherwood  <david.sherwood@arm.com>
18352
18353         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
18354         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
18355         (store_bit_field): Check is_a <scalar_int_mode> before calling
18356         strict_volatile_bitfield_p.
18357         (extract_bit_field): Likewise.
18358
18359 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18360             Alan Hayward  <alan.hayward@arm.com>
18361             David Sherwood  <david.sherwood@arm.com>
18362
18363         * target.def (cstore_mode): Return a scalar_int_mode.
18364         * doc/tm.texi: Regenerate.
18365         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
18366         * targhooks.h (default_cstore_mode): Likewise.
18367         * targhooks.c (default_cstore_mode): Likewise, using a forced
18368         conversion.
18369         * expmed.c (emit_cstore): Expect the target of the cstore to be
18370         a scalar_int_mode.
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         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
18377         scalar_int_mode.
18378         (niter_desc): Likewise mode.
18379         (iv_analyze): Add a mode parameter.
18380         (biv_p): Likewise.
18381         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
18382         and change its type to scalar_int_mode.
18383         * loop-iv.c: Update commentary at head of file.
18384         (iv_constant): Pass the mode paraeter before the rtx it describes
18385         and change its type to scalar_int_mode.  Remove VOIDmode handling.
18386         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
18387         (iv_extend): Likewise.
18388         (shorten_into_mode): Likewise.
18389         (iv_add): Use scalar_int_mode.
18390         (iv_mult): Likewise.
18391         (iv_shift): Likewise.
18392         (canonicalize_iv_subregs): Likewise.
18393         (get_biv_step_1): Pass the outer_mode parameter before the rtx
18394         it describes and change its mode to scalar_int_mode.   Also change
18395         the type of the returned inner_mode to scalar_int_mode.
18396         (get_biv_step): Likewise, turning outer_mode from a pointer
18397         into a direct parameter.  Update call to get_biv_step_1.
18398         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
18399         iv_constant and get_biv_step.
18400         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
18401         and change its type to scalar_int_mode.  Don't initialise iv->mode
18402         to VOIDmode and remove later checks for its still being VOIDmode.
18403         Update calls to iv_analyze_op and iv_analyze_expr.  Check
18404         is_a <scalar_int_mode> when changing the mode under consideration.
18405         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
18406         Update call to iv_analyze_expr.
18407         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
18408         inner register is not also a scalar_int_mode.  Update call to
18409         iv_analyze_biv.
18410         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
18411         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
18412         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
18413         separate mode class checks.  Update calls to iv_analyze.  Remove
18414         fix-up of VOIDmodes after iv_analyze_biv.
18415         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
18416         don't have a scalar_int_mode.  Update call to biv_p.
18417
18418 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18419             Alan Hayward  <alan.hayward@arm.com>
18420             David Sherwood  <david.sherwood@arm.com>
18421
18422         * cfgexpand.c (convert_debug_memory_address): Use
18423         as_a <scalar_int_mode>.
18424         * combine.c (expand_compound_operation): Likewise.
18425         (make_extraction): Likewise.
18426         (change_zero_ext): Likewise.
18427         (simplify_comparison): Likewise.
18428         * cse.c (cse_insn): Likewise.
18429         * dwarf2out.c (minmax_loc_descriptor): Likewise.
18430         (mem_loc_descriptor): Likewise.
18431         (loc_descriptor): Likewise.
18432         * expmed.c (init_expmed_one_mode): Likewise.
18433         (synth_mult): Likewise.
18434         (emit_store_flag_1): Likewise.
18435         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
18436         of a comparison with size.
18437         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
18438         (reduce_to_bit_field_precision): Likewise.
18439         * function.c (expand_function_end): Likewise.
18440         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
18441         * loop-doloop.c (doloop_modify): Likewise.
18442         * optabs.c (expand_binop): Likewise.
18443         (expand_unop): Likewise.
18444         (expand_copysign_absneg): Likewise.
18445         (prepare_cmp_insn): Likewise.
18446         (maybe_legitimize_operand): Likewise.
18447         * recog.c (const_scalar_int_operand): Likewise.
18448         * rtlanal.c (get_address_mode): Likewise.
18449         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18450         (simplify_cond_clz_ctz): Likewise.
18451         * tree-nested.c (get_nl_goto_field): Likewise.
18452         * tree.c (build_vector_type_for_mode): Likewise.
18453         * var-tracking.c (use_narrower_mode): Likewise.
18454
18455 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18456             Alan Hayward  <alan.hayward@arm.com>
18457             David Sherwood  <david.sherwood@arm.com>
18458
18459         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
18460         * builtins.c (expand_builtin_signbit): Use it.
18461         * cfgexpand.c (expand_debug_expr): Likewise.
18462         * dojump.c (do_jump): Likewise.
18463         (do_compare_and_jump): Likewise.
18464         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
18465         * expmed.c (make_tree): Likewise.
18466         * expr.c (expand_expr_real_2): Likewise.
18467         (expand_expr_real_1): Likewise.
18468         (try_casesi): Likewise.
18469         * fold-const-call.c (fold_const_call_ss): Likewise.
18470         * fold-const.c (unextend): Likewise.
18471         (extract_muldiv_1): Likewise.
18472         (fold_single_bit_test): Likewise.
18473         (native_encode_int): Likewise.
18474         (native_encode_string): Likewise.
18475         (native_interpret_int): Likewise.
18476         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
18477         * internal-fn.c (expand_addsub_overflow): Likewise.
18478         (expand_neg_overflow): Likewise.
18479         (expand_mul_overflow): Likewise.
18480         (expand_arith_overflow): Likewise.
18481         * match.pd: Likewise.
18482         * stor-layout.c (layout_type): Likewise.
18483         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
18484         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
18485         * tree-ssanames.c (get_range_info): Likewise.
18486         * tree-switch-conversion.c (array_value_type) Likewise.
18487         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
18488         (vect_recog_divmod_pattern): Likewise.
18489         (vect_recog_mixed_size_cond_pattern): Likewise.
18490         * tree-vrp.c (extract_range_basic): Likewise.
18491         (simplify_float_conversion_using_ranges): Likewise.
18492         * tree.c (int_fits_type_p): Likewise.
18493         * ubsan.c (instrument_bool_enum_load): Likewise.
18494         * varasm.c (mergeable_string_section): Likewise.
18495         (narrowing_initializer_constant_valid_p): Likewise.
18496         (output_constant): Likewise.
18497
18498 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18499             Alan Hayward  <alan.hayward@arm.com>
18500             David Sherwood  <david.sherwood@arm.com>
18501
18502         * machmode.h (NARROWEST_INT_MODE): New macro.
18503         * expr.c (alignment_for_piecewise_move): Use it instead of
18504         GET_CLASS_NARROWEST_MODE (MODE_INT).
18505         (push_block): Likewise.
18506         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
18507         Likewise.
18508         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18509
18510 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18511             Alan Hayward  <alan.hayward@arm.com>
18512             David Sherwood  <david.sherwood@arm.com>
18513
18514         * postreload.c (move2add_valid_value_p): Change the type of the
18515         mode parameter to scalar_int_mode.
18516         (move2add_use_add2_insn): Add a mode parameter and use it instead
18517         of GET_MODE (reg).
18518         (move2add_use_add3_insn): Likewise.
18519         (reload_cse_move2add): Update accordingly.
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         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
18526         double-word mode.
18527         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
18528         * optabs.c (expand_unop): Likewise.
18529
18530 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18531             Alan Hayward  <alan.hayward@arm.com>
18532             David Sherwood  <david.sherwood@arm.com>
18533
18534         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
18535         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
18536         (popcount_loc_descriptor): Likewise.
18537         (bswap_loc_descriptor): Likewise.
18538         (rotate_loc_descriptor): Likewise.
18539         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
18540         calling the functions above.
18541
18542 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18543             Alan Hayward  <alan.hayward@arm.com>
18544             David Sherwood  <david.sherwood@arm.com>
18545
18546         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
18547         checks.
18548         (try_combine): Likewise.
18549         (simplify_if_then_else): Likewise.
18550         * cse.c (cse_insn): Likewise.
18551         * dwarf2out.c (mem_loc_descriptor): Likewise.
18552         * emit-rtl.c (gen_lowpart_common): Likewise.
18553         * simplify-rtx.c (simplify_truncation): Likewise.
18554         (simplify_binary_operation_1): Likewise.
18555         (simplify_const_relational_operation): Likewise.
18556         (simplify_ternary_operation): Likewise.
18557         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
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         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
18564         * reload.c (push_reload): Likewise.
18565         (find_reloads): Likewise.
18566
18567 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18568             Alan Hayward  <alan.hayward@arm.com>
18569             David Sherwood  <david.sherwood@arm.com>
18570
18571         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
18572         (make_compound_operation_int): Likewise.
18573         (change_zero_ext): Likewise.
18574         * expr.c (convert_move): Likewise.
18575         (convert_modes): Likewise.
18576         * fwprop.c (forward_propagate_subreg): Likewise.
18577         * loop-iv.c (get_biv_step_1): Likewise.
18578         * optabs.c (widen_operand): Likewise.
18579         * postreload.c (move2add_valid_value_p): Likewise.
18580         * recog.c (simplify_while_replacing): Likewise.
18581         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18582         (simplify_binary_operation_1): Likewise.  Remove redundant
18583         mode equality check.
18584
18585 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18586             Alan Hayward  <alan.hayward@arm.com>
18587             David Sherwood  <david.sherwood@arm.com>
18588
18589         * combine.c (combine_simplify_rtx): Add checks for
18590         is_a <scalar_int_mode>.
18591         (simplify_if_then_else): Likewise.
18592         (make_field_assignment): Likewise.
18593         (simplify_comparison): Likewise.
18594         * ifcvt.c (noce_try_bitop): Likewise.
18595         * loop-invariant.c (canonicalize_address_mult): Likewise.
18596         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18597
18598 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18599             Alan Hayward  <alan.hayward@arm.com>
18600             David Sherwood  <david.sherwood@arm.com>
18601
18602         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
18603         is_a <scalar_int_mode> instead of != BLKmode.
18604
18605 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18606             Alan Hayward  <alan.hayward@arm.com>
18607             David Sherwood  <david.sherwood@arm.com>
18608
18609         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
18610         instead of != VOIDmode.
18611         * combine.c (if_then_else_cond): Likewise.
18612         (change_zero_ext): Likewise.
18613         * dwarf2out.c (mem_loc_descriptor): Likewise.
18614         (loc_descriptor): Likewise.
18615         * rtlanal.c (canonicalize_condition): Likewise.
18616         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
18617
18618 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18619             Alan Hayward  <alan.hayward@arm.com>
18620             David Sherwood  <david.sherwood@arm.com>
18621
18622         * simplify-rtx.c (simplify_binary_operation_1): Use
18623         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
18624
18625 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18626             Alan Hayward  <alan.hayward@arm.com>
18627             David Sherwood  <david.sherwood@arm.com>
18628
18629         * wide-int.h (int_traits<unsigned char>) New class.
18630         (int_traits<unsigned short>) Likewise.
18631         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
18632         Use GET_MODE_UNIT_PRECISION and remove redundant test for
18633         SCALAR_INT_MODE_P.
18634         * combine.c (set_nonzero_bits_and_sign_copies): Use
18635         is_a <scalar_int_mode>.
18636         (find_split_point): Likewise.
18637         (combine_simplify_rtx): Likewise.
18638         (simplify_logical): Likewise.
18639         (expand_compound_operation): Likewise.
18640         (expand_field_assignment): Likewise.
18641         (make_compound_operation): Likewise.
18642         (extended_count): Likewise.
18643         (change_zero_ext): Likewise.
18644         (simplify_comparison): Likewise.
18645         * dwarf2out.c (scompare_loc_descriptor): Likewise.
18646         (ucompare_loc_descriptor): Likewise.
18647         (minmax_loc_descriptor): Likewise.
18648         (mem_loc_descriptor): Likewise.
18649         (loc_descriptor): Likewise.
18650         * expmed.c (init_expmed_one_mode): Likewise.
18651         * lra-constraints.c (lra_constraint_offset): Likewise.
18652         * optabs.c (prepare_libcall_arg): Likewise.
18653         * postreload.c (move2add_note_store): Likewise.
18654         * reload.c (operands_match_p): Likewise.
18655         * rtl.h (load_extend_op): Likewise.
18656         * rtlhooks.c (gen_lowpart_general): Likewise.
18657         * simplify-rtx.c (simplify_truncation): Likewise.
18658         (simplify_unary_operation_1): Likewise.
18659         (simplify_binary_operation_1): Likewise.
18660         (simplify_const_binary_operation): Likewise.
18661         (simplify_const_relational_operation): Likewise.
18662         (simplify_subreg): Likewise.
18663         * stor-layout.c (bitwise_mode_for_mode): Likewise.
18664         * var-tracking.c (adjust_mems): Likewise.
18665         (prepare_call_arguments): Likewise.
18666
18667 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18668             Alan Hayward  <alan.hayward@arm.com>
18669             David Sherwood  <david.sherwood@arm.com>
18670
18671         * machmode.h (is_int_mode): New fuction.
18672         * combine.c (find_split_point): Use it.
18673         (combine_simplify_rtx): Likewise.
18674         (simplify_if_then_else): Likewise.
18675         (simplify_set): Likewise.
18676         (simplify_shift_const_1): Likewise.
18677         (simplify_comparison): Likewise.
18678         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
18679         * cse.c (notreg_cost): Likewise.
18680         (cse_insn): Likewise.
18681         * cselib.c (cselib_lookup_1): Likewise.
18682         * dojump.c (do_jump_1): Likewise.
18683         (do_compare_rtx_and_jump): Likewise.
18684         * dse.c (get_call_args): Likewise.
18685         * dwarf2out.c (rtl_for_decl_init): Likewise.
18686         (native_encode_initializer): Likewise.
18687         * expmed.c (emit_store_flag_1): Likewise.
18688         (emit_store_flag): Likewise.
18689         * expr.c (convert_modes): Likewise.
18690         (store_field): Likewise.
18691         (expand_expr_real_1): Likewise.
18692         * fold-const.c (fold_read_from_constant_string): Likewise.
18693         * gimple-ssa-sprintf.c (get_format_string): Likewise.
18694         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
18695         * optabs.c (expand_binop): Likewise.
18696         (expand_unop): Likewise.
18697         (expand_abs_nojump): Likewise.
18698         (expand_one_cmpl_abs_nojump): Likewise.
18699         * simplify-rtx.c (mode_signbit_p): Likewise.
18700         (val_signbit_p): Likewise.
18701         (val_signbit_known_set_p): Likewise.
18702         (val_signbit_known_clear_p): Likewise.
18703         (simplify_relational_operation_1): Likewise.
18704         * tree.c (vector_type_mode): Likewise.
18705
18706 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18707             Alan Hayward  <alan.hayward@arm.com>
18708             David Sherwood  <david.sherwood@arm.com>
18709
18710         * machmode.h (smallest_mode_for_size): Fix formatting.
18711         (smallest_int_mode_for_size): New function.
18712         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
18713         instead of smallest_mode_for_size.
18714         * combine.c (make_extraction): Likewise.
18715         * config/arc/arc.c (arc_expand_movmem): Likewise.
18716         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
18717         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
18718         * config/s390/s390.c (s390_expand_insv): Likewise.
18719         * config/sparc/sparc.c (assign_int_registers): Likewise.
18720         * config/spu/spu.c (spu_function_value): Likewise.
18721         (spu_function_arg): Likewise.
18722         * coverage.c (get_gcov_type): Likewise.
18723         (get_gcov_unsigned_t): Likewise.
18724         * dse.c (find_shift_sequence): Likewise.
18725         * expmed.c (store_bit_field_1): Likewise.
18726         * expr.c (convert_move): Likewise.
18727         (store_field): Likewise.
18728         * internal-fn.c (expand_arith_overflow): Likewise.
18729         * optabs-query.c (get_best_extraction_insn): Likewise.
18730         * optabs.c (expand_twoval_binop_libfunc): Likewise.
18731         * stor-layout.c (layout_type): Likewise.
18732         (initialize_sizetypes): Likewise.
18733         * targhooks.c (default_get_mask_mode): Likewise.
18734         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
18735
18736 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18737             Alan Hayward  <alan.hayward@arm.com>
18738             David Sherwood  <david.sherwood@arm.com>
18739
18740         * machmode.h (opt_mode::else_blk): New function.
18741         (int_mode_for_mode): Declare.
18742         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
18743         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
18744         return type.
18745         * cfgexpand.c (expand_debug_expr): Likewise.
18746         * combine.c (gen_lowpart_or_truncate): Likewise.
18747         (gen_lowpart_for_combine): Likewise.
18748         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
18749         * config/avr/avr.c (avr_to_int_mode): Likewise.
18750         (avr_out_plus_1): Likewise.
18751         (avr_out_plus): Likewise.
18752         (avr_out_round): Likewise.
18753         * config/i386/i386.c (ix86_split_to_parts): Likewise.
18754         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
18755         (s390_expand_vcond): Likewise.
18756         * config/spu/spu.c (spu_split_immediate): Likewise.
18757         (spu_expand_mov): Likewise.
18758         * dse.c (get_stored_val): Likewise.
18759         * expmed.c (store_bit_field_1): Likewise.
18760         (convert_extracted_bit_field): Use int_mode_for_mode instead of
18761         int_mode_for_size.
18762         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
18763         (extract_low_bits): Likewise.
18764         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
18765         handling rather than repeating the check.
18766         (emit_group_store): Likewise.
18767         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
18768         * optabs.c (expand_absneg_bit): Likewise.
18769         (expand_copysign_absneg): Likewise.
18770         (expand_copysign_bit): Likewise.
18771         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
18772         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
18773         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
18774         * var-tracking.c (prepare_call_arguments):  Likewise.
18775         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
18776         int_mode_for_mode instead of mode_for_size.
18777         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
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         * machmode.h (int_mode_for_size): New function.
18784         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
18785         instead of mode_for_size.
18786         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
18787         explicit.
18788         * combine.c (expand_field_assignment): Use int_mode_for_size
18789         instead of mode_for_size.
18790         (make_extraction): Likewise.
18791         (simplify_shift_const_1): Likewise.
18792         (simplify_comparison): Likewise.
18793         * dojump.c (do_jump): Likewise.
18794         * dwarf2out.c (mem_loc_descriptor): Likewise.
18795         * emit-rtl.c (init_derived_machine_modes): Likewise.
18796         * expmed.c (flip_storage_order): Likewise.
18797         (convert_extracted_bit_field): Likewise.
18798         * expr.c (copy_blkmode_from_reg): Likewise.
18799         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
18800         * internal-fn.c (expand_mul_overflow): Likewise.
18801         * lower-subreg.c (simple_move): Likewise.
18802         * optabs-libfuncs.c (init_optabs): Likewise.
18803         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18804         * tree.c (vector_type_mode): Likewise.
18805         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
18806         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
18807         * tree-vect-generic.c (expand_vector_parallel): Likewise.
18808         * tree-vect-stmts.c (vectorizable_load): Likewise.
18809         (vectorizable_store): Likewise.
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         * coretypes.h (pod_mode): New type.
18816         (scalar_int_mode_pod): New typedef.
18817         * machmode.h (pod_mode): New class.
18818         (int_n_data_t::m): Change type to scalar_int_mode_pod.
18819         * genmodes.c (emit_mode_int_n): Update accordingly.
18820         * lower-subreg.h (target_lower_subreg): Change type to
18821         scalar_int_mode_pod.
18822         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
18823         scalar_int_mode_pod.
18824
18825 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18826             Alan Hayward  <alan.hayward@arm.com>
18827             David Sherwood  <david.sherwood@arm.com>
18828
18829         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
18830         machine_mode to scalar_int_mode.
18831         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
18832         (rs6000_option_override_internal): Remove cast to int.
18833         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
18834         machine_mode to scalar_int_mode.
18835         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
18836         (rs6000_option_override_internal): Remove cast to int.
18837         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
18838         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
18839         to machine_mode.
18840         * config/s390/s390.c (s390_expand_builtin): Likewise.
18841         * coretypes.h (scalar_int_mode): New type.
18842         (opt_scalar_int_mode): New typedef.
18843         * machmode.h (scalar_int_mode): New class.
18844         (scalar_int_mode::includes_p): New function.
18845         (byte_mode): Change type to scalar_int_mode.
18846         (word_mode): Likewise.
18847         (ptr_mode): Likewise.
18848         * emit-rtl.c (byte_mode): Likewise.
18849         (word_mode): Likewise.
18850         (ptr_mode): Likewise.
18851         (init_derived_machine_modes): Update accordingly.
18852         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
18853         and MODE_PARTIAL_INT.
18854         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
18855         opt_scalar_int_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         * target.def (libgcc_floating_mode_supported_p): Take a
18862         scalar_float_mode.
18863         * doc/tm.texi: Regenerate.
18864         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
18865         scalar_float_mode.
18866         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18867         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
18868         Likewise.
18869
18870 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18871             Alan Hayward  <alan.hayward@arm.com>
18872             David Sherwood  <david.sherwood@arm.com>
18873
18874         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
18875         * doc/tm.texi: Regenerate.
18876         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
18877         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
18878         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
18879         * targhooks.h (default_floatn_mode): Likewise.
18880         * targhooks.c (default_floatn_mode): Likewise.
18881         * tree.c (build_common_tree_nodes): Update accordingly.
18882
18883 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18884             Alan Hayward  <alan.hayward@arm.com>
18885             David Sherwood  <david.sherwood@arm.com>
18886
18887         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
18888         (mode_iterator::iterate_p): Likewise.
18889         (mode_iterator::get_wider): Likewise.
18890         * expr.c (init_expr_target): Use opt_scalar_float_mode.
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 (opt_scalar_float_mode): New typedef.
18897         * machmode.h (float_mode_for_size): New function.
18898         * emit-rtl.c (double_mode): Delete.
18899         (init_emit_once): Use float_mode_for_size.
18900         * stor-layout.c (layout_type): Likewise.
18901         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
18902
18903 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18904             Alan Hayward  <alan.hayward@arm.com>
18905             David Sherwood  <david.sherwood@arm.com>
18906
18907         * output.h (assemble_real): Take a scalar_float_mode.
18908         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
18909         * config/arm/arm.md (consttable_4): Likewise.
18910         (consttable_8): Likewise.
18911         (consttable_16): Likewise.
18912         * config/mips/mips.md (consttable_float): Likewise.
18913         * config/s390/s390.c (s390_output_pool_entry): Likewise.
18914         * varasm.c (assemble_real): Take a scalar_float_mode.
18915         (output_constant_pool_2): Update accordingly.
18916         (output_constant): Likewise.
18917
18918 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18919             Alan Hayward  <alan.hayward@arm.com>
18920             David Sherwood  <david.sherwood@arm.com>
18921
18922         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
18923         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
18924         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
18925         (native_encode_real): Likewise.
18926         (native_interpret_real): Likewise.
18927         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
18928         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18929
18930 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18931             Alan Hayward  <alan.hayward@arm.com>
18932             David Sherwood  <david.sherwood@arm.com>
18933
18934         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
18935         <scalar_float_mode>.  Simplify.
18936         (gen_extend_conv_libfunc): Likewise.
18937
18938 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18939             Alan Hayward  <alan.hayward@arm.com>
18940             David Sherwood  <david.sherwood@arm.com>
18941
18942         * coretypes.h (scalar_float_mode): New type.
18943         * machmode.h (mode_traits::from_int): Use machine_mode if
18944         USE_ENUM_MODES is defined.
18945         (is_a): New function.
18946         (as_a): Likewise.
18947         (dyn_cast): Likewise.
18948         (scalar_float_mode): New class.
18949         (scalar_float_mode::includes_p): New function.
18950         (is_float_mode): Likewise.
18951         * gdbhooks.py (MachineModePrinter): New class.
18952         (build_pretty_printer): Use it for scalar_float_mode.
18953         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
18954         (format_helper::format_helper): Turn into a template.
18955         * genmodes.c (get_mode_class): New function.
18956         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
18957         or machine_mode if none.
18958         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
18959         as_a <scalar_float_mode>.
18960         * dwarf2out.c (mem_loc_descriptor): Likewise.
18961         (insert_float): Likewise.
18962         (add_const_value_attribute): Likewise.
18963         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18964         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
18965         (expand_unop): Update accordingly.
18966         (expand_abs_nojump): Likewise.
18967         (expand_copysign_absneg): Take a scalar_float_mode.
18968         (expand_copysign_bit): Likewise.
18969         (expand_copysign): Update accordingly.
18970
18971 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18972             Alan Hayward  <alan.hayward@arm.com>
18973             David Sherwood  <david.sherwood@arm.com>
18974
18975         * coretypes.h (opt_mode): New class.
18976         * machmode.h (opt_mode): Likewise.
18977         (opt_mode::else_void): New function.
18978         (opt_mode::require): Likewise.
18979         (opt_mode::exists): Likewise.
18980         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
18981         (GET_MODE_2XWIDER_MODE): Likewise.
18982         (mode_iterator::get_wider): Update accordingly.
18983         (mode_iterator::get_2xwider): Likewise.
18984         (mode_iterator::get_known_wider): Likewise, turning into a template.
18985         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
18986         forcing a wider mode to exist.
18987         * config/cr16/cr16.h (LONG_REG_P): Likewise.
18988         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18989         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
18990         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
18991         * lower-subreg.c (init_lower_subreg): Likewise.
18992         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
18993         on the final iteration.
18994         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
18995         a wider mode exists before asking for a move pattern.
18996         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
18997         forcing a wider mode to exist.
18998         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
18999         returning false if no such mode exists.
19000         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
19001         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
19002         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
19003         Avoid checking for a MODE_INT if we already know the mode is not a
19004         SCALAR_INT_MODE_P.
19005         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
19006         forcing a wider mode to exist.
19007         (expmed_mult_highpart_optab): Likewise.
19008         (expmed_mult_highpart): Likewise.
19009         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
19010         using else_void.
19011         * lto-streamer-in.c (lto_input_mode_table): Likewise.
19012         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
19013         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
19014         * internal-fn.c (expand_mul_overflow): Update use of
19015         GET_MODE_2XWIDER_MODE.
19016         * omp-low.c (omp_clause_aligned_alignment): Likewise.
19017         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
19018         GET_MODE_WIDER_MODE.
19019         (convert_plusminus_to_widen): Likewise.
19020         * tree-switch-conversion.c (array_value_type): Likewise.
19021         * var-tracking.c (emit_note_insn_var_location): Likewise.
19022         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
19023         Return false inside rather than outside the loop if no wider mode
19024         exists
19025         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
19026         and GET_MODE_2XWIDER_MODE
19027         (can_compare_p): Use else_void.
19028         * gdbhooks.py (OptMachineModePrinter): New class.
19029         (build_pretty_printer): Use it for opt_mode.
19030
19031 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19032             Alan Hayward  <alan.hayward@arm.com>
19033             David Sherwood  <david.sherwood@arm.com>
19034
19035         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
19036         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
19037
19038 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19039             Alan Hayward  <alan.hayward@arm.com>
19040             David Sherwood  <david.sherwood@arm.com>
19041
19042         * machmode.h (mode_traits): New structure.
19043         (get_narrowest_mode): New function.
19044         (mode_iterator::start): Likewise.
19045         (mode_iterator::iterate_p): Likewise.
19046         (mode_iterator::get_wider): Likewise.
19047         (mode_iterator::get_known_wider): Likewise.
19048         (mode_iterator::get_2xwider): Likewise.
19049         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
19050         (FOR_EACH_MODE): Likewise.
19051         (FOR_EACH_MODE_FROM): Likewise.
19052         (FOR_EACH_MODE_UNTIL): Likewise.
19053         (FOR_EACH_WIDER_MODE): Likewise.
19054         (FOR_EACH_2XWIDER_MODE): Likewise.
19055         * builtins.c (expand_builtin_strlen): Use new mode iterators.
19056         * combine.c (simplify_comparison): Likewise
19057         * config/i386/i386.c (type_natural_mode): Likewise.
19058         * cse.c (cse_insn): Likewise.
19059         * dse.c (find_shift_sequence): Likewise.
19060         * emit-rtl.c (init_derived_machine_modes): Likewise.
19061         (init_emit_once): Likewise.
19062         * explow.c (hard_function_value): Likewise.
19063         * expmed.c (extract_fixed_bit_field_1): Likewise.
19064         (extract_bit_field_1): Likewise.
19065         (expand_divmod): Likewise.
19066         (emit_store_flag_1): Likewise.
19067         * expr.c (init_expr_target): Likewise.
19068         (convert_move): Likewise.
19069         (alignment_for_piecewise_move): Likewise.
19070         (widest_int_mode_for_size): Likewise.
19071         (emit_block_move_via_movmem): Likewise.
19072         (copy_blkmode_to_reg): Likewise.
19073         (set_storage_via_setmem): Likewise.
19074         (compress_float_constant): Likewise.
19075         * omp-low.c (omp_clause_aligned_alignment): Likewise.
19076         * optabs-query.c (get_best_extraction_insn): Likewise.
19077         * optabs.c (expand_binop): Likewise.
19078         (expand_twoval_unop): Likewise.
19079         (expand_twoval_binop): Likewise.
19080         (widen_leading): Likewise.
19081         (widen_bswap): Likewise.
19082         (expand_parity): Likewise.
19083         (expand_unop): Likewise.
19084         (prepare_cmp_insn): Likewise.
19085         (prepare_float_lib_cmp): Likewise.
19086         (expand_float): Likewise.
19087         (expand_fix): Likewise.
19088         (expand_sfix_optab): Likewise.
19089         * postreload.c (move2add_use_add2_insn): Likewise.
19090         * reg-stack.c (reg_to_stack): Likewise.
19091         * reginfo.c (choose_hard_reg_mode): Likewise.
19092         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
19093         * stor-layout.c (mode_for_size): Likewise.
19094         (smallest_mode_for_size): Likewise.
19095         (mode_for_vector): Likewise.
19096         (finish_bitfield_representative): Likewise.
19097         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
19098         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
19099         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19100         * var-tracking.c (prepare_call_arguments): Likewise.
19101
19102 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19103             Alan Hayward  <alan.hayward@arm.com>
19104             David Sherwood  <david.sherwood@arm.com>
19105
19106         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
19107         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
19108         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
19109         * machmode.h (mode_size): Move earlier in file.
19110         (mode_precision): Likewise.
19111         (mode_inner): Likewise.
19112         (mode_nunits): Likewise.
19113         (mode_unit_size): Likewise.
19114         (unit_unit_precision): Likewise.
19115         (mode_wider): Likewise.
19116         (mode_2xwider): Likewise.
19117         (machine_mode): New class.
19118         (mode_to_bytes): New function.
19119         (mode_to_bits): Likewise.
19120         (mode_to_precision): Likewise.
19121         (mode_to_inner): Likewise.
19122         (mode_to_unit_size): Likewise.
19123         (mode_to_unit_precision): Likewise.
19124         (mode_to_nunits): Likewise.
19125         (GET_MODE_SIZE): Use mode_to_bytes.
19126         (GET_MODE_BITSIZE): Use mode_to_bits.
19127         (GET_MODE_PRECISION): Use mode_to_precision.
19128         (GET_MODE_INNER): Use mode_to_inner.
19129         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
19130         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
19131         (GET_MODE_NUNITS): Use mode_to_nunits.
19132         * system.h (ALWAYS_INLINE): New macro.
19133         * config/powerpcspe/powerpcspe-c.c
19134         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
19135         int for arg1_mode and arg2_mode.
19136
19137 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19138             Alan Hayward  <alan.hayward@arm.com>
19139             David Sherwood  <david.sherwood@arm.com>
19140
19141         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
19142         Prefix mode names with E_ in case statements.
19143         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19144         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
19145         (aarch64_split_simd_move): Likewise.
19146         (aarch64_gen_storewb_pair): Likewise.
19147         (aarch64_gen_loadwb_pair): Likewise.
19148         (aarch64_gen_store_pair): Likewise.
19149         (aarch64_gen_load_pair): Likewise.
19150         (aarch64_get_condition_code_1): Likewise.
19151         (aarch64_constant_pool_reload_icode): Likewise.
19152         (get_rsqrte_type): Likewise.
19153         (get_rsqrts_type): Likewise.
19154         (get_recpe_type): Likewise.
19155         (get_recps_type): Likewise.
19156         (aarch64_gimplify_va_arg_expr): Likewise.
19157         (aarch64_simd_container_mode): Likewise.
19158         (aarch64_emit_load_exclusive): Likewise.
19159         (aarch64_emit_store_exclusive): Likewise.
19160         (aarch64_expand_compare_and_swap): Likewise.
19161         (aarch64_gen_atomic_cas): Likewise.
19162         (aarch64_emit_bic): Likewise.
19163         (aarch64_emit_atomic_swap): Likewise.
19164         (aarch64_emit_atomic_load_op): Likewise.
19165         (aarch64_evpc_trn): Likewise.
19166         (aarch64_evpc_uzp): Likewise.
19167         (aarch64_evpc_zip): Likewise.
19168         (aarch64_evpc_ext): Likewise.
19169         (aarch64_evpc_rev): Likewise.
19170         (aarch64_evpc_dup): Likewise.
19171         (aarch64_gen_ccmp_first): Likewise.
19172         (aarch64_gen_ccmp_next): Likewise.
19173         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
19174         (alpha_emit_xfloating_libcall): Likewise.
19175         (emit_insxl): Likewise.
19176         (alpha_arg_type): Likewise.
19177         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
19178         (arc_preferred_simd_mode): Likewise.
19179         (arc_secondary_reload): Likewise.
19180         (get_arc_condition_code): Likewise.
19181         (arc_print_operand): Likewise.
19182         (arc_legitimate_constant_p): Likewise.
19183         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19184         * config/arc/arc.md (casesi_load): Likewise.
19185         (casesi_compact_jump): Likewise.
19186         * config/arc/predicates.md (proper_comparison_operator): Likewise.
19187         (cc_use_register): Likewise.
19188         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19189         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
19190         (arm_init_iwmmxt_builtins): Likewise.
19191         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
19192         (neon_expand_vector_init): Likewise.
19193         (arm_attr_length_move_neon): Likewise.
19194         (maybe_get_arm_condition_code): Likewise.
19195         (arm_emit_vector_const): Likewise.
19196         (arm_preferred_simd_mode): Likewise.
19197         (arm_output_iwmmxt_tinsr): Likewise.
19198         (thumb1_output_casesi): Likewise.
19199         (thumb2_output_casesi): Likewise.
19200         (arm_emit_load_exclusive): Likewise.
19201         (arm_emit_store_exclusive): Likewise.
19202         (arm_expand_compare_and_swap): Likewise.
19203         (arm_evpc_neon_vuzp): Likewise.
19204         (arm_evpc_neon_vzip): Likewise.
19205         (arm_evpc_neon_vrev): Likewise.
19206         (arm_evpc_neon_vtrn): Likewise.
19207         (arm_evpc_neon_vext): Likewise.
19208         (arm_validize_comparison): Likewise.
19209         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
19210         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
19211         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
19212         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
19213         (c6x_preferred_simd_mode): Likewise.
19214         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
19215         (epiphany_rtx_costs): Likewise.
19216         * config/epiphany/predicates.md (proper_comparison_operator):
19217         Likewise.
19218         * config/frv/frv.c (condexec_memory_operand): Likewise.
19219         (frv_emit_move): Likewise.
19220         (output_move_single): Likewise.
19221         (output_condmove_single): Likewise.
19222         (frv_hard_regno_mode_ok): Likewise.
19223         (frv_matching_accg_mode): Likewise.
19224         * config/h8300/h8300.c (split_adds_subs): Likewise.
19225         (h8300_rtx_costs): Likewise.
19226         (h8300_print_operand): Likewise.
19227         (compute_mov_length): Likewise.
19228         (output_logical_op): Likewise.
19229         (compute_logical_op_length): Likewise.
19230         (compute_logical_op_cc): Likewise.
19231         (h8300_shift_needs_scratch_p): Likewise.
19232         (output_a_shift): Likewise.
19233         (compute_a_shift_length): Likewise.
19234         (compute_a_shift_cc): Likewise.
19235         (expand_a_rotate): Likewise.
19236         (output_a_rotate): Likewise.
19237         * config/i386/i386.c (classify_argument): Likewise.
19238         (function_arg_advance_32): Likewise.
19239         (function_arg_32): Likewise.
19240         (function_arg_64): Likewise.
19241         (function_value_64): Likewise.
19242         (ix86_gimplify_va_arg): Likewise.
19243         (ix86_legitimate_constant_p): Likewise.
19244         (put_condition_code): Likewise.
19245         (split_double_mode): Likewise.
19246         (ix86_avx256_split_vector_move_misalign): Likewise.
19247         (ix86_expand_vector_logical_operator): Likewise.
19248         (ix86_split_idivmod): Likewise.
19249         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
19250         (ix86_build_const_vector): Likewise.
19251         (ix86_build_signbit_mask): Likewise.
19252         (ix86_match_ccmode): Likewise.
19253         (ix86_cc_modes_compatible): Likewise.
19254         (ix86_expand_branch): Likewise.
19255         (ix86_expand_sse_cmp): Likewise.
19256         (ix86_expand_sse_movcc): Likewise.
19257         (ix86_expand_int_sse_cmp): Likewise.
19258         (ix86_expand_vec_perm_vpermi2): Likewise.
19259         (ix86_expand_vec_perm): Likewise.
19260         (ix86_expand_sse_unpack): Likewise.
19261         (ix86_expand_int_addcc): Likewise.
19262         (ix86_split_to_parts): Likewise.
19263         (ix86_vectorize_builtin_gather): Likewise.
19264         (ix86_vectorize_builtin_scatter): Likewise.
19265         (avx_vpermilp_parallel): Likewise.
19266         (inline_memory_move_cost): Likewise.
19267         (ix86_tieable_integer_mode_p): Likewise.
19268         (x86_maybe_negate_const_int): Likewise.
19269         (ix86_expand_vector_init_duplicate): Likewise.
19270         (ix86_expand_vector_init_one_nonzero): Likewise.
19271         (ix86_expand_vector_init_one_var): Likewise.
19272         (ix86_expand_vector_init_concat): Likewise.
19273         (ix86_expand_vector_init_interleave): Likewise.
19274         (ix86_expand_vector_init_general): Likewise.
19275         (ix86_expand_vector_set): Likewise.
19276         (ix86_expand_vector_extract): Likewise.
19277         (emit_reduc_half): Likewise.
19278         (ix86_emit_i387_round): Likewise.
19279         (ix86_mangle_type): Likewise.
19280         (ix86_expand_round_sse4): Likewise.
19281         (expand_vec_perm_blend): Likewise.
19282         (canonicalize_vector_int_perm): Likewise.
19283         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
19284         (expand_vec_perm_1): Likewise.
19285         (expand_vec_perm_interleave3): Likewise.
19286         (expand_vec_perm_even_odd_pack): Likewise.
19287         (expand_vec_perm_even_odd_1): Likewise.
19288         (expand_vec_perm_broadcast_1): Likewise.
19289         (ix86_vectorize_vec_perm_const_ok): Likewise.
19290         (ix86_expand_vecop_qihi): Likewise.
19291         (ix86_expand_mul_widen_hilo): Likewise.
19292         (ix86_expand_sse2_abs): Likewise.
19293         (ix86_expand_pextr): Likewise.
19294         (ix86_expand_pinsr): Likewise.
19295         (ix86_preferred_simd_mode): Likewise.
19296         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
19297         * config/i386/sse.md (*andnot<mode>3): Likewise.
19298         (<mask_codefor><code><mode>3<mask_name>): Likewise.
19299         (*<code><mode>3): Likewise.
19300         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
19301         (ia64_expand_atomic_op): Likewise.
19302         (ia64_arg_type): Likewise.
19303         (ia64_mode_to_int): Likewise.
19304         (ia64_scalar_mode_supported_p): Likewise.
19305         (ia64_vector_mode_supported_p): Likewise.
19306         (expand_vec_perm_broadcast): Likewise.
19307         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
19308         (iq2000_function_arg_advance): Likewise.
19309         (iq2000_function_arg): Likewise.
19310         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
19311         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
19312         (m68k_libcall_value): Likewise.
19313         (m68k_function_value): Likewise.
19314         (sched_attr_op_type): Likewise.
19315         * config/mcore/mcore.c (mcore_output_move): Likewise.
19316         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
19317         Likewise.
19318         (microblaze_function_arg): Likewise.
19319         * config/mips/mips.c (mips16_build_call_stub): Likewise.
19320         (mips_print_operand): Likewise.
19321         (mips_mode_ok_for_mov_fmt_p): Likewise.
19322         (mips_vector_mode_supported_p): Likewise.
19323         (mips_preferred_simd_mode): Likewise.
19324         (mips_expand_vpc_loongson_even_odd): Likewise.
19325         (mips_expand_vec_unpack): Likewise.
19326         (mips_expand_vi_broadcast): Likewise.
19327         (mips_expand_vector_init): Likewise.
19328         (mips_expand_vec_reduc): Likewise.
19329         (mips_expand_msa_cmp): Likewise.
19330         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
19331         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
19332         (cc_flags_for_mode): Likewise.
19333         * config/msp430/msp430.c (msp430_print_operand): Likewise.
19334         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
19335         (nds32_output_casesi_pc_relative): Likewise.
19336         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19337         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
19338         (nvptx_gen_unpack): Likewise.
19339         (nvptx_gen_pack): Likewise.
19340         (nvptx_gen_shuffle): Likewise.
19341         (nvptx_gen_wcast): Likewise.
19342         (nvptx_preferred_simd_mode): Likewise.
19343         * config/pa/pa.c (pa_secondary_reload): Likewise.
19344         * config/pa/predicates.md (base14_operand): Likewise.
19345         * config/powerpcspe/powerpcspe-c.c
19346         (altivec_resolve_overloaded_builtin): Likewise.
19347         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
19348         Likewise.
19349         (rs6000_preferred_simd_mode): Likewise.
19350         (output_vec_const_move): Likewise.
19351         (rs6000_expand_vector_extract): Likewise.
19352         (rs6000_split_vec_extract_var): Likewise.
19353         (reg_offset_addressing_ok_p): Likewise.
19354         (rs6000_legitimate_offset_address_p): Likewise.
19355         (rs6000_legitimize_address): Likewise.
19356         (rs6000_emit_set_const): Likewise.
19357         (rs6000_const_vec): Likewise.
19358         (rs6000_emit_move): Likewise.
19359         (spe_build_register_parallel): Likewise.
19360         (rs6000_darwin64_record_arg_recurse): Likewise.
19361         (swap_selector_for_mode): Likewise.
19362         (spe_init_builtins): Likewise.
19363         (paired_init_builtins): Likewise.
19364         (altivec_init_builtins): Likewise.
19365         (do_load_for_compare): Likewise.
19366         (rs6000_generate_compare): Likewise.
19367         (rs6000_expand_float128_convert): Likewise.
19368         (emit_load_locked): Likewise.
19369         (emit_store_conditional): Likewise.
19370         (rs6000_output_function_epilogue): Likewise.
19371         (rs6000_handle_altivec_attribute): Likewise.
19372         (rs6000_function_value): Likewise.
19373         (emit_fusion_gpr_load): Likewise.
19374         (emit_fusion_p9_load): Likewise.
19375         (emit_fusion_p9_store): Likewise.
19376         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
19377         (fusion_gpr_mem_load): Likewise.
19378         (fusion_addis_mem_combo_load): Likewise.
19379         (fusion_addis_mem_combo_store): Likewise.
19380         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
19381         (fusion_gpr_mem_load): Likewise.
19382         (fusion_addis_mem_combo_load): Likewise.
19383         (fusion_addis_mem_combo_store): Likewise.
19384         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19385         Likewise.
19386         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
19387         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
19388         (rs6000_preferred_simd_mode): Likewise.
19389         (output_vec_const_move): Likewise.
19390         (rs6000_expand_vector_extract): Likewise.
19391         (rs6000_split_vec_extract_var): Likewise.
19392         (reg_offset_addressing_ok_p): Likewise.
19393         (rs6000_legitimate_offset_address_p): Likewise.
19394         (rs6000_legitimize_address): Likewise.
19395         (rs6000_emit_set_const): Likewise.
19396         (rs6000_const_vec): Likewise.
19397         (rs6000_emit_move): Likewise.
19398         (rs6000_darwin64_record_arg_recurse): Likewise.
19399         (swap_selector_for_mode): Likewise.
19400         (paired_init_builtins): Likewise.
19401         (altivec_init_builtins): Likewise.
19402         (rs6000_expand_float128_convert): Likewise.
19403         (emit_load_locked): Likewise.
19404         (emit_store_conditional): Likewise.
19405         (rs6000_output_function_epilogue): Likewise.
19406         (rs6000_handle_altivec_attribute): Likewise.
19407         (rs6000_function_value): Likewise.
19408         (emit_fusion_gpr_load): Likewise.
19409         (emit_fusion_p9_load): Likewise.
19410         (emit_fusion_p9_store): Likewise.
19411         * config/rx/rx.c (rx_gen_move_template): Likewise.
19412         (flags_from_mode): Likewise.
19413         * config/s390/predicates.md (s390_alc_comparison): Likewise.
19414         (s390_slb_comparison): Likewise.
19415         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
19416         (s390_vector_mode_supported_p): Likewise.
19417         (s390_cc_modes_compatible): Likewise.
19418         (s390_match_ccmode_set): Likewise.
19419         (s390_canonicalize_comparison): Likewise.
19420         (s390_emit_compare_and_swap): Likewise.
19421         (s390_branch_condition_mask): Likewise.
19422         (s390_rtx_costs): Likewise.
19423         (s390_secondary_reload): Likewise.
19424         (__SECONDARY_RELOAD_CASE): Likewise.
19425         (s390_expand_cs): Likewise.
19426         (s390_preferred_simd_mode): Likewise.
19427         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
19428         * config/sh/sh.c (sh_print_operand): Likewise.
19429         (dump_table): Likewise.
19430         (sh_secondary_reload): Likewise.
19431         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19432         * config/sh/sh.md (casesi_worker_1): Likewise.
19433         (casesi_worker_2): Likewise.
19434         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
19435         (fcc_comparison_operator): Likewise.
19436         * config/sparc/sparc.c (sparc_expand_move): Likewise.
19437         (emit_soft_tfmode_cvt): Likewise.
19438         (sparc_preferred_simd_mode): Likewise.
19439         (output_cbranch): Likewise.
19440         (sparc_print_operand): Likewise.
19441         (sparc_expand_vec_perm_bmask): Likewise.
19442         (vector_init_bshuffle): Likewise.
19443         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
19444         (spu_vector_mode_supported_p): Likewise.
19445         (spu_expand_insv): Likewise.
19446         (spu_emit_branch_or_set): Likewise.
19447         (spu_handle_vector_attribute): Likewise.
19448         (spu_builtin_splats): Likewise.
19449         (spu_builtin_extract): Likewise.
19450         (spu_builtin_promote): Likewise.
19451         (spu_expand_sign_extend): Likewise.
19452         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
19453         (tilegx_simd_int): Likewise.
19454         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
19455         (tilepro_simd_int): Likewise.
19456         * config/v850/v850.c (const_double_split): Likewise.
19457         (v850_print_operand): Likewise.
19458         (ep_memory_offset): Likewise.
19459         * config/vax/vax.c (vax_rtx_costs): Likewise.
19460         (vax_output_int_move): Likewise.
19461         (vax_output_int_add): Likewise.
19462         (vax_output_int_subtract): Likewise.
19463         * config/visium/predicates.md (visium_branch_operator): Likewise.
19464         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
19465         (visium_print_operand_address): Likewise.
19466         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19467         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
19468         (xtensa_expand_conditional_branch): Likewise.
19469         (xtensa_copy_incoming_a7): Likewise.
19470         (xtensa_output_literal): Likewise.
19471         * dfp.c (decimal_real_maxval): Likewise.
19472         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
19473
19474 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19475             Alan Hayward  <alan.hayward@arm.com>
19476             David Sherwood  <david.sherwood@arm.com>
19477
19478         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
19479         (mode_nunits_inline): Likewise.
19480         (mode_inner_inline): Likewise.
19481         (mode_unit_size_inline): Likewise.
19482         (mode_unit_precision_inline): Likewise.
19483         (emit_insn_modes_h): Likewise.  Also emit a #define of the
19484         unprefixed name.
19485         (emit_mode_wider): Add an E_ prefix to mode names.
19486         (emit_mode_complex): Likewise.
19487         (emit_mode_inner): Likewise.
19488         (emit_mode_adjustments): Likewise.
19489         (emit_mode_int_n): Likewise.
19490         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
19491         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
19492         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
19493         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
19494         (CRC32_BUILTIN, ENTRY): Likewise.
19495         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
19496         (aarch64_pop_regs): Likewise.
19497         (aarch64_process_components): Likewise.
19498         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
19499         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
19500         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
19501         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
19502         * config/arm/arm.c (arm_init_libfuncs): Likewise.
19503         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
19504         Likewise.
19505         * config/i386/i386-builtin.def (pcmpestr): Likewise.
19506         (pcmpistr): Likewise.
19507         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
19508         * config/mmix/mmix.c (mmix_output_condition): Likewise.
19509         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
19510         Likewise.
19511         * config/rl78/rl78.c (mduc_regs): Likewise.
19512         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19513         (htm_expand_builtin): Likewise.
19514         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
19515         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
19516         * config/xtensa/xtensa.c (print_operand): Likewise.
19517         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
19518         (NUM_MODE_VECTOR_INT): Likewise.
19519         * genoutput.c (null_operand): Likewise.
19520         (output_operand_data): Likewise.
19521         * genrecog.c (print_parameter_value): Likewise.
19522         * lra.c (debug_operand_data): Likewise.
19523
19524 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19525
19526         * dwarf2out.c (scompare_loc_descriptor_wide)
19527         (scompare_loc_descriptor_narrow): New functions, split out from...
19528         (scompare_loc_descriptor): ...here.
19529         * expmed.c (emit_store_flag_int): New function, split out from...
19530         (emit_store_flag): ...here.
19531
19532 2017-08-30  Richard Biener  <rguenther@suse.de>
19533
19534         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
19535         (dwarf2out_early_finish): Move setting of AT_pubnames from
19536         early debug output to early finish.
19537
19538 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19539
19540         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
19541         and -mdata-region to the assembler.
19542
19543 2017-08-30  Richard Biener  <rguenther@suse.de>
19544
19545         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
19546         attributes.
19547         (gen_subprogram_die): Add DW_AT_object_pointer only early.
19548         (dwarf2out_early_global_decl): Only generate a DIE for the
19549         abstract origin if it doesn't already exist or is a declaration DIE.
19550         (resolve_addr): Do not add the linkage name twice when
19551         generating a stub DIE for the DW_TAG_GNU_call_site target.
19552
19553 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19554
19555         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19556         Use machine_mode rather than int for arg1_mode.
19557
19558 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
19559
19560         PR target/82015
19561         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
19562         that the second argument of the built-in functions to unpack
19563         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
19564         switch statement instead a lot of if statements.
19565         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
19566         Allow 64-bit values to be in Altivec registers as well as
19567         traditional floating point registers.
19568         (pack<mode>, FMOVE128_VSX iterator): Likewise.
19569
19570 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
19571
19572         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
19573         MAX_REGS_PER_ADDRESS == 1.
19574
19575 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
19576
19577         * config/i386/i386.opt (flag_fentry): Do not init to -1.
19578         * config/i386/i386.c (ix86_option_override_internal): Simplify
19579         setting of opts->x_flag_entry.
19580
19581 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19582             Jakub Jelinek  <jakub@redhat.com>
19583             Richard Biener  <rguenther@suse.de>
19584
19585         PR tree-optimization/81503
19586         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
19587         folded constant fits in the target type; reorder tests for clarity.
19588
19589 2017-08-29  Martin Liska  <mliska@suse.cz>
19590
19591         * passes.def: Include pass_lower_switch.
19592         * stmt.c (dump_case_nodes): Remove and move to
19593         tree-switch-conversion.
19594         (case_values_threshold): Likewise.
19595         (expand_switch_as_decision_tree_p): Likewise.
19596         (emit_case_decision_tree): Likewise.
19597         (expand_case): Likewise.
19598         (balance_case_nodes): Likewise.
19599         (node_has_low_bound): Likewise.
19600         (node_has_high_bound): Likewise.
19601         (node_is_bounded): Likewise.
19602         (emit_case_nodes): Likewise.
19603         (struct simple_case_node): New struct.
19604         (add_case_node): Remove.
19605         (emit_case_dispatch_table): Use vector instead of case_list.
19606         (reset_out_edges_aux): Remove.
19607         (compute_cases_per_edge): Likewise.
19608         (expand_case): Build list of simple_case_node.
19609         (expand_sjlj_dispatch_table): Use it.
19610         * tree-switch-conversion.c (struct case_node): Moved from
19611         stmt.c and adjusted.
19612         (emit_case_nodes): Likewise.
19613         (node_has_low_bound): Likewise.
19614         (node_has_high_bound): Likewise.
19615         (node_is_bounded): Likewise.
19616         (case_values_threshold): Likewise.
19617         (reset_out_edges_aux): Likewise.
19618         (compute_cases_per_edge): Likewise.
19619         (add_case_node): Likewise.
19620         (dump_case_nodes): Likewise.
19621         (balance_case_nodes): Likewise.
19622         (expand_switch_as_decision_tree_p): Likewise.
19623         (emit_jump): Likewise.
19624         (emit_case_decision_tree): Likewise.
19625         (try_switch_expansion): Likewise.
19626         (do_jump_if_equal): Likewise.
19627         (emit_cmp_and_jump_insns): Likewise.
19628         (fix_phi_operands_for_edge): New function.
19629         (record_phi_operand_mapping): Likewise.
19630         (class pass_lower_switch): New pass.
19631         (pass_lower_switch::execute): New function.
19632         (make_pass_lower_switch): Likewise.
19633         (conditional_probability):
19634         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
19635         * tree-pass.h: Add make_pass_lower_switch.
19636
19637 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19638
19639         PR target/80993
19640         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
19641         handlers as used.
19642
19643 2017-08-29  Richard Biener  <rguenther@suse.de>
19644
19645         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
19646         we do not add a DW_AT_inline attribute twice.
19647         (gen_subprogram_die): Remove code setting DW_AT_inline on
19648         DECL_ABSTRACT_P nodes.
19649
19650 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
19651
19652         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
19653         calls to internal functions.
19654         (gimplify_modify_expr): Likewise.
19655         * tree-call-cdce.c (use_internal_fn): Likewise.
19656         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
19657         (convert_to_divmod): Set the nothrow flag.
19658         * tree-if-conv.c (predicate_mem_writes):  Likewise.
19659         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19660         (vectorizable_call): Likewise.
19661         (vectorizable_store): Likewise.
19662         (vectorizable_load): Likewise.
19663         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
19664         (vect_recog_mask_conversion_pattern): Likewise.
19665
19666 2017-08-29  Martin Liska  <mliska@suse.cz>
19667
19668         PR other/39851
19669         * gcc.c (driver_handle_option): Add new argument.
19670         * opts-common.c (handle_option): Pass
19671         target_option_override_hook.
19672         * opts-global.c (lang_handle_option): Add new option.
19673         (set_default_handlers):  Add new argument.
19674         (decode_options): Likewise.
19675         * opts.c (target_handle_option): Likewise.
19676         (common_handle_option): Call target_option_override_hook.
19677         * opts.h (struct cl_option_handler_func): Add hook for
19678         target option override.
19679         (struct cl_option_handlers): Likewise.
19680         (set_default_handlers): Add new argument.
19681         (decode_options): Likewise.
19682         (common_handle_option): Likewise.
19683         (target_handle_option): Likewise.
19684         * toplev.c (toplev::main): Pass targetm.target_option.override
19685         hook.
19686
19687 2017-08-29  Richard Biener  <rguenther@suse.de>
19688         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
19689
19690         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
19691         life to the active subtree.
19692
19693 2017-08-28  Jeff Law  <law@redhat.com>
19694
19695         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
19696         derive_equivalences.
19697         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
19698         Code moved into....
19699         (edge_info::derive_equivalences): New private member function
19700
19701         * tree-ssa-dom.c (class edge_info): Changed from a struct
19702         to a class.  Add ctor/dtor, methods and data members.
19703         (edge_info::edge_info): Renamed from allocate_edge_info.
19704         Initialize additional members.
19705         (edge_info::~edge_info): New.
19706         (free_dom_edge_info): Delete the edge info.
19707         (record_edge_info): Use new class & associated member functions.
19708         Tighten forms for testing for edge equivalences.
19709         (record_temporary_equivalences): Iterate over the simple
19710         equivalences rather than assuming there's only one per edge.
19711         (cprop_into_successor_phis): Iterate over the simple
19712         equivalences rather than assuming there's only one per edge.
19713         (optimize_stmt): Use operand_equal_p rather than pointer
19714         equality for mini-DSE code.
19715
19716 2017-08-28  Nathan Sidwell  <nathan@acm.org>
19717
19718         * gcc.c (execute): Fold SIGPIPE handling into switch
19719         statement.  Adjust internal error message.
19720
19721 2017-08-28  Richard Biener  <rguenther@suse.de>
19722
19723         PR debug/81993
19724         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
19725         Do nothing for removed DIEs.
19726
19727 2017-08-28  Richard Biener  <rguenther@suse.de>
19728
19729         PR tree-optimization/81977
19730         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
19731         memcpy.
19732
19733 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
19734
19735         PR target/80640
19736         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
19737         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
19738         using targetm.gen_mem_thread_fence.
19739
19740 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
19741
19742         PR target/81995
19743         * config/i386/i386.md (*<btsc><mode>): Change operand 2
19744         predicate to register_operand.  Reorder operands.
19745         (*btr<mode>): Ditto.
19746         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
19747         (*btr<mode>_mask): Ditto.
19748
19749 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
19750
19751         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
19752         * config/rs6000/xmmintrin.h: New file.
19753         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
19754
19755 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19756
19757         PR target/81504
19758         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
19759         parameter and_insn and return it.
19760         (recombine_lvx_pattern): Insert a copy to ensure availability of
19761         the base register of the copied masking operation at the point of
19762         the instruction replacement.
19763         (recombine_stvx_pattern): Likewise.
19764
19765 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19766
19767         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
19768         undocumented switches.
19769         (-mpower9-dform-vector): Likewise.
19770         (-mpower9-dform): Likewise.
19771         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
19772         comments to delete references to -mpower9-dform* switches.
19773         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
19774         Delete reference to -mpower9-dform* switches, test for
19775         -mpower9-vector instead.
19776         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
19777         (OTHER_P9_VECTOR_MASKS): Likewise.
19778         (POWERPC_MASKS): Likewise.
19779         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
19780         tests against -mpower9-dform* to -mpower9-vector.  Delete code
19781         that checked for -mpower9-dform* consistancy with other options.
19782         Add test for -mpower9-misc to enable other power9 switches.
19783         (rs6000_init_hard_regno_mode_ok): Likewise.
19784         (rs6000_option_override_internal): Likewise.
19785         (rs6000_emit_prologue): Likewise.
19786         (rs6000_emit_epilogue): Likewise.
19787         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
19788         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
19789         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
19790         -mpower9-vector.
19791         (emit_fusion_p9_store): Likewise.
19792         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
19793         resetting these macros if the assembler does not support ISA 3.0
19794         instructions.
19795         (TARGET_P9_DFORM_VECTOR): Likewise.
19796         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
19797         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
19798
19799 2017-08-25  Alan Modra  <amodra@gmail.com>
19800
19801         PR rtl-optimization/81747
19802         * cse.c (cse_extended_basic_block): Don't attempt to record
19803         equivalences for degenerate conditional branches that branch
19804         to their fall-through.
19805
19806 2017-08-24  Martin Sebor  <msebor@redhat.com>
19807
19808         PR middle-end/81908
19809         * gimple-fold.c (size_must_be_zero_p): New function.
19810         (gimple_fold_builtin_memory_op): Call it.
19811
19812 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
19813
19814         * config/rs6000/mm_malloc.h: New file.
19815
19816 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
19817
19818         PR tree-optimization/81913
19819         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
19820         analysis when either IVs in condition can wrap.
19821
19822 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
19823
19824         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
19825         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
19826
19827 2017-08-24  Richard Biener  <rguenther@suse.de>
19828
19829         PR target/81921
19830         * targhooks.c (default_target_can_inline_p): Properly
19831         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
19832         is present and always compare.
19833         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
19834         infer -mfpmath=sse from TARGET_SSE_P.
19835         (ix86_can_inline_p): Properly use target_option_default_node when
19836         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
19837
19838 2017-08-24  Richard Biener  <rguenther@suse.de>
19839
19840         PR debug/81936
19841         * dwarf2out.c (output_die): Handle flag_generate_offload like
19842         flag_generate_lto.
19843         (output_comp_unit): Likewise.
19844         (gen_array_type_die): Likewise.
19845         (dwarf2out_early_finish): Likewise.
19846         (note_variable_value_in_expr): Likewise.
19847         (dwarf2out_finish): Likewise.  Adjust assert.
19848         * cgraphunit.c (symbol_table::compile): Move setting of
19849         flag_generate_offload earlier ...
19850         (symbol_table::finalize_compilation_unit): ... here, before
19851         early debug finalization.
19852
19853 2017-08-24  Richard Biener  <rguenther@suse.de>
19854
19855         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
19856         and ipa-fnsummary.h.
19857         (ix86_can_inline_p): When ix86_fpmath flags do not match
19858         check whether the callee uses FP math at all.
19859
19860 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
19861
19862         PR middle-end/81931
19863         * tree-ssanames.c (get_nonzero_bits): Use element_precision
19864         instead of TYPE_PRECISION.
19865
19866 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
19867             Alan Hayward  <alan.hayward@arm.com>
19868             David Sherwood  <david.sherwood@arm.com>
19869
19870         * combine.c (make_extraction): Use subreg_offset_from_lsb.
19871
19872 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
19873
19874         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
19875         Remove field.
19876         (ix86_frame::stack_realign_allocate): New field.
19877         (struct machine_frame_state): Modify comments.
19878         (machine_frame_state::sp_realigned_fp_end): New field.
19879         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
19880         layout calculation.
19881         (sp_valid_at): Add assertion to assure no attempt to access invalid
19882         offset of a realigned stack.
19883         (fp_valid_at): Likewise.
19884         (choose_baseaddr): Modify comments.
19885         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
19886         ix86_expand_prologue.
19887         (ix86_expand_prologue): Modify stack realignment and allocation.
19888         (ix86_expand_epilogue): Modify comments.
19889         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
19890         avx2_runtime, avx512f, and avx512f_runtime.
19891
19892 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
19893
19894         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
19895         (mstackrealign): Do not init to -1.
19896         * config/i386/i386.c (ix86_option_override_internal):
19897         Check opts_set, not opts when setting default value of
19898         opts->x_ix86_force_align_arg_pointer.
19899
19900 2017-08-23  Richard Biener  <rguenther@suse.de>
19901
19902         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
19903         lang_hooks.decl_printable_name.
19904         * print-rtl-function.c (print_rtx_function): Likewise.
19905         * tree-pretty-print.c (dump_function_header): Likewise.
19906
19907 2017-08-23  Richard Biener  <rguenther@suse.de>
19908
19909         PR lto/81940
19910         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
19911         -g0 at compile-time.
19912
19913 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19914
19915         PR middle-end/19706
19916         * doc/sourcebuild.texi (Other hardware attributes):
19917         Document xorsign.
19918
19919 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
19920
19921         PR middle-end/19706
19922         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
19923         Fix single-use check.
19924
19925 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19926
19927         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
19928
19929 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19930
19931         * doc/install.texi: Modify to add more details on running selected
19932         tests.
19933
19934 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
19935
19936         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
19937         is combined with -mabi=ms.
19938         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
19939         ms_abi.
19940
19941 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19942
19943         PR tree-optimization/81488
19944         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
19945         and cached_basis fields.
19946         (MAX_SPREAD): New constant.
19947         (alloc_cand_and_find_basis): Initialize new fields.
19948         (clear_visited): New function.
19949         (create_phi_basis_1): Rename from create_phi_basis, set visited
19950         and cached_basis fields.
19951         (create_phi_basis): New wrapper function.
19952         (phi_add_costs_1): Rename from phi_add_costs, add spread
19953         parameter, set visited field, short-circuit when limits reached.
19954         (phi_add_costs): New wrapper function.
19955         (record_phi_increments_1): Rename from record_phi_increments, set
19956         visited field.
19957         (record_phi_increments): New wrapper function.
19958         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
19959         (phi_incr_cost): New wrapper function.
19960         (all_phi_incrs_profitable_1): Rename from
19961         all_phi_incrs_profitable, set visited field.
19962         (all_phi_incrs_profitable): New wrapper function.
19963
19964 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
19965             Alan Hayward  <alan.hayward@arm.com>
19966             David Sherwood  <david.sherwood@arm.com>
19967
19968         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
19969         that takes the outer and inner modes.
19970         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
19971         comparison as the canonical test for a paradoxical subreg.
19972         * combine.c (simplify_set): Use paradoxical_subreg_p.
19973         (make_extraction): Likewise.
19974         (force_to_mode): Likewise.
19975         (rtx_equal_for_field_assignment_p): Likewise.
19976         (gen_lowpart_for_combine): Likewise.
19977         (simplify_comparison): Likewise.
19978         * cse.c (equiv_constant): Likewise.
19979         * expmed.c (store_bit_field_1): Likewise.
19980         * final.c (alter_subreg): Likewise.
19981         * fwprop.c (propagate_rtx): Likewise.
19982         (forward_propagate_subreg): Likewise.
19983         * ira-conflicts.c (ira_build_conflicts): Likewise.
19984         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
19985         * lra-constraints.c (curr_insn_transform): Likewise.
19986         (split_reg): Likewise.
19987         * lra-eliminations.c (move_plus_up): Likewise.
19988         (lra_eliminate_regs_1): Likewise.
19989         * recog.c (general_operand): Likewise.
19990         * ree.c (combine_reaching_defs): Likewise.
19991         * reload.c (push_reload): Likewise.
19992         (find_reloads): Likewise.
19993         * reload1.c (elimination_effects): Likewise.
19994         (compute_reload_subreg_offset): Likewise.
19995         (choose_reload_regs): Likewise.
19996         * rtlanal.c (subreg_lsb_1): Likewise.
19997         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
19998         (simplify_subreg): Likewise.
19999         * var-tracking.c (track_loc_p): Likewise.
20000         * emit-rtl.c (byte_lowpart_offset): Likewise.
20001         (paradoxical_subreg_p): Delete out-of-line definition.
20002
20003 2017-08-22  Jeff Law  <law@redhat.com>
20004
20005         PR tree-optimization/81741
20006         PR tree-optimization/71947
20007         * tree-ssa-dom.c: Include tree-inline.h.
20008         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
20009         equivalences if one is more expensive to compute than the other.
20010         * tree-ssa-scopedtables.h (class const_or_copies): Make
20011         record_const_or_copy_raw method private.
20012         (class avail_exprs_stack): New method simplify_binary_operation.
20013         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
20014         avail_exprs_stack::simplify_binary_operation as needed.
20015         (avail_exprs_stack::simplify_binary_operation): New function.
20016
20017 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20018
20019         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
20020         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
20021         (DOT_SYMBOLS): Likewise.
20022         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
20023         (RELOCATABLE_NEEDS_FIXUP): Likewise.
20024         (RS6000_ABI_NAME): Likewise.
20025         (TARGET_CMODEL): Likewise.
20026         (TOC_SECTION_ASM_OP): Likewise.
20027         (SET_CMODEL): New macro.
20028         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
20029
20030 2017-08-22  Richard Biener  <rguenther@suse.de>
20031
20032         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
20033         to allow for free-lang-data replacements similar to verify_type_variant.
20034
20035 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
20036             Alan Hayward  <alan.hayward@arm.com>
20037             David Sherwood  <david.sherwood@arm.com>
20038
20039         * config/aarch64/aarch64.md (casesi): Use DImode rather than
20040         VOIDmode for the LABEL_REF.
20041
20042 2017-08-22  Richard Biener  <rguenther@suse.de>
20043
20044         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
20045
20046 2017-08-22  Richard Biener  <rguenther@suse.de>
20047
20048         * common.opt (feliminate-dwarf2-dups): Ignore.
20049         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
20050         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
20051         same_die_p_wrap, compute_section_prefix,
20052         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
20053         (comdat_symbol_id, comdat_symbol_number): Likewise.
20054         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
20055         Likewise.
20056         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
20057         (output_die): Mark unreachable path unreachable.
20058         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
20059         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
20060         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
20061         (dwarf2out_early_finish): Likewise.
20062
20063 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
20064
20065         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
20066
20067 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
20068
20069         PR target/81910
20070         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
20071         not VAR_P. Filter attribute warnings with OPT_Wattributes.
20072         (avr_attribute_table) <io, io_low, address>: Initialize
20073         .decl_required with true.
20074
20075 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20076
20077         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
20078         undocumented debugging options.
20079         (-mvsx-scalar-double): Likewise.
20080         (-mallow-df-permute): Likewise.
20081         (-mvectorize-builtins): Likewise.
20082         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
20083         (rs6000_builtin_vectorized_function): Likewise.
20084         (rs6000_builtin_md_vectorized_function): Likewise.
20085         (rs6000_opt_vars): Likewise.
20086
20087 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
20088
20089         PR target/46091
20090         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
20091         (*btrq_imm): Rename from *btrq.
20092         (*btcq_imm): Rename from *btcq.
20093         (btsc): New code attribute.
20094         (*<btsc><mode>): New insn pattern.
20095         (*btr<mode>): Ditto.
20096         (*<btsc><mode>_mask): New insn_and_split pattern.
20097         (*btr<mode>_mask): Ditto.
20098
20099 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20100             Alan Hayward  <alan.hayward@arm.com>
20101             David Sherwood  <david.sherwood@arm.com>
20102
20103         * function.c (pad_below): Simplify padding calculation.
20104
20105 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20106             Alan Hayward  <alan.hayward@arm.com>
20107             David Sherwood  <david.sherwood@arm.com>
20108
20109         * target.def (function_prologue): Remove frame size argument.
20110         (function_epilogue): Likewise.
20111         * doc/tm.texi: Regenerate.
20112         * final.c (final_start_function): Update call to function_prologue.
20113         (final_end_function): Update call to function_epilogue.
20114         (default_function_pro_epilogue): Remove frame size argument.
20115         * output.h (default_function_pro_epilogue): Likewise.
20116         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
20117         (arm_output_function_prologue): Likewise.
20118         * config/frv/frv.c (frv_function_prologue): Likewise.
20119         (frv_function_epilogue): Likewise.
20120         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
20121         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
20122         (ia64_output_function_epilogue): Likewise.
20123         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
20124         (m32r_output_function_epilogue): Likewise.
20125         * config/microblaze/microblaze.c (microblaze_function_prologue)
20126         (microblaze_function_epilogue): Likewise.
20127         * config/mips/mips.c (mips_output_function_prologue): Likewise.
20128         (mips_output_function_epilogue): Likewise.
20129         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
20130         (mmix_target_asm_function_epilogue): Likewise.
20131         * config/msp430/msp430.c (msp430_start_function): Likewise.
20132         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
20133         (nds32_asm_function_epilogue): Likewise.
20134         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
20135         * config/pa/pa.c (pa_output_function_prologue): Likewise.
20136         (pa_output_function_epilogue): Likewise.
20137         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
20138         (rs6000_output_function_epilogue): Likewise.
20139         * config/rl78/rl78.c (rl78_start_function): Likewise.
20140         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
20141         (rs6000_output_function_epilogue): Likewise.
20142         * config/rx/rx.c (rx_output_function_prologue): Likewise.
20143         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
20144         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
20145         (sparc_asm_function_epilogue): Likewise.
20146
20147 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20148
20149         * tree.h (type_has_mode_precision_p): New function.
20150         * convert.c (convert_to_integer_1): Use it.
20151         * expr.c (expand_expr_real_2): Likewise.
20152         (expand_expr_real_1): Likewise.
20153         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
20154         * match.pd: Likewise.
20155         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
20156         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
20157         * tree-tailcall.c (process_assignment): Likewise.
20158         * tree-vect-loop.c (vectorizable_reduction): Likewise.
20159         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
20160         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
20161         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
20162         (vectorizable_assignment): Likewise.
20163         (vectorizable_shift): Likewise.
20164         (vectorizable_operation): Likewise.
20165         * tree-vrp.c (register_edge_assert_for_2): Likewise.
20166
20167 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
20168
20169         * match.pd: Add pow (C, x) simplification.
20170
20171 2017-08-21  Richard Biener  <rguenther@suse.de>
20172
20173         PR tree-optimization/81900
20174         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
20175         for blocks with abnormal predecessors.
20176         (compute_antic): Do not set visited flag prematurely.
20177
20178 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
20179
20180         PR target/79883
20181         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
20182
20183 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20184
20185         * stor-layout.h (vector_type_mode): Move to...
20186         * tree.h (vector_type_mode): ...here.
20187         * stor-layout.c (vector_type_mode): Move to...
20188         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
20189
20190 2017-08-21  Richard Biener  <rguenther@suse.de>
20191
20192         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
20193         register_external_die hooks.
20194         (debug_false_tree_charstarstar_uhwistar): Declare.
20195         (debug_nothing_tree_charstar_uhwi): Likewise.
20196         * debug.c (do_nothing_debug_hooks): Adjust.
20197         (debug_false_tree_charstarstar_uhwistar): New do nothing.
20198         (debug_nothing_tree_charstar_uhwi): Likewise.
20199         * dbxout.c (dbx_debug_hooks): Adjust.
20200         (xcoff_debug_hooks): Likewise.
20201         * sdbout.c (sdb_debug_hooks): Likewise.
20202         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20203         * dwarf2out.c (macinfo_label_base): New global.
20204         (dwarf2out_register_external_die): New function for the
20205         register_external_die hook.
20206         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
20207         (dwarf2_debug_hooks): Use them.
20208         (dwarf2_lineno_debug_hooks): Adjust.
20209         (struct die_struct): Add with_offset flag.
20210         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
20211         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
20212         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
20213         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
20214         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
20215         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
20216         defining section names for the early LTO debug variants.
20217         (reset_indirect_string): New helper.
20218         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
20219         (print_dw_val): Add support for offsetted symbol references.
20220         (get_ultimate_context): Split out from is_cxx.
20221         (is_cxx): Use get_ultimate_context.
20222         (is_fortran): Add decl overload.
20223         (compute_comp_unit_symbol): Split out worker from
20224         compute_section_prefix.
20225         (compute_section_prefix): Call compute_comp_unit_symbol and
20226         set comdat_type_p here.
20227         (output_die): Skip DIE symbol output for the LTO added one.
20228         Handle DIE symbol references with offset.
20229         (output_comp_unit): Guard section name mangling properly.
20230         For LTO debug sections emit a symbol at the section beginning
20231         which we use to refer to its DIEs.
20232         (add_abstract_origin_attribute): For DIEs registered via
20233         dwarf2out_register_external_die directly refer to the early
20234         DIE rather than indirectly through the shadow one we created.
20235         Remove obsolete call to dwarf2out_abstract_function for
20236         non-function/block origins.
20237         (gen_array_type_die): When generating early LTO debug do
20238         not emit DW_AT_string_length.
20239         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
20240         late when in LTO.  As suggested place a gcc_unreachable for
20241         the DECL_ABSTRACT_P case.
20242         (gen_subprogram_die): Avoid another specification DIE
20243         for early built declarations/definitions for the late LTO case.
20244         (gen_variable_die): Add type references for late duplicated VLA dies
20245         when in late LTO.
20246         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
20247         we have the abstract instance already.
20248         (process_scope_var): Adjust decl DIE contexts in LTO which
20249         first puts them in limbo.
20250         (gen_decl_die): Do not generate type DIEs late apart from
20251         types for VLAs or for decls we do not yet have a DIE.  Do not
20252         call dwarf2out_abstract_function late.
20253         (dwarf2out_early_global_decl): Make sure to create DIEs
20254         for abstract instances of a decl first.
20255         (dwarf2out_late_global_decl): Adjust comment.
20256         (output_macinfo_op): With multiple macro sections use
20257         macinfo_label_base to distinguish labels.
20258         (output_macinfo): Likewise.  Update macinfo_label_base.
20259         Pass in the line info label.
20260         (note_variable_value_in_expr): When generating LTO resolve
20261         all variable values here by generating DIEs as needed.
20262         (init_sections_and_labels): Add early LTO debug flag parameter
20263         and generate different sections and names if set.  Add generation
20264         counter for the labels so we can have multiple of them.
20265         (reset_dies): Helper to allow DIEs to be output multiple times.
20266         (dwarf2out_finish): When outputting DIEs to the fat part of an
20267         LTO object first reset DIEs.
20268         (dwarf2out_early_finish): Output early DIEs when generating LTO.
20269         (modified_type_die): Check for decl_ultimate_origin being self
20270         before recursing.
20271         (gen_type_die_with_usage): Likewise.
20272         (gen_typedef_die): Allow decl_ultimate_origin being self.
20273         (set_decl_abstract_flags): Remove.
20274         (set_block_abstract_flags): Likewise.
20275         (dwarf2out_abstract_function): Treat the early generated DIEs
20276         as the abstract copy and only add DW_AT_inline and
20277         DW_AT_artificial here and call set_decl_origin_self.
20278         If the DIE has an abstract origin don't do anything.
20279         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
20280         if we have none yet (Go fails to build one, PR78628).
20281         (variably_modified_type_p): Prevent endless recursion for Ada
20282         cyclic pointer types.
20283         * lto-streamer-in.c: Include debug.h.
20284         (dref_queue): New global.
20285         (lto_read_tree_1): Stream in DIE references.
20286         (lto_input_tree): Register DIE references.
20287         (input_function): Stream DECL_DEBUG_ARGS.
20288         * lto-streamer-out.c: Include debug.h.
20289         (lto_write_tree_1): Output DIE references.
20290         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
20291         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
20292         (output_function): Stream DECL_DEBUG_ARGS.
20293         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20294         Stream DECL_ABSTRACT_ORIGIN.
20295         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
20296         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
20297         DECL_CONTEXT for file-scope decls.
20298         * lto-streamer.h (struct dref_entry): Declare.
20299         (dref_queue): Likewise.
20300         * cfgexpand.c (pass_expand::execute): Do not call the
20301         outlining_inline_function hook here.
20302         * lto-wrapper.c (debug_obj): New global.
20303         (tool_cleanup): Unlink it if required.
20304         (debug_objcopy): New function.
20305         (run_gcc): Handle early debug sections in the IL files by
20306         extracting them to separate files, partially linkin them and
20307         feeding the result back as result to the linker.
20308         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
20309         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
20310         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
20311         sections into a separate segment.
20312         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
20313         segments.
20314         (darwin_asm_dwarf_section): Likewise.
20315         (darwin_asm_output_dwarf_offset): Likewise.
20316         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
20317
20318 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20319             Alan Hayward  <alan.hayward@arm.com>
20320             David Sherwood  <david.sherwood@arm.com>
20321
20322         * read-md.h (md_reader::record_potential_iterator_use): Replace
20323         pointer argument with an rtx and an index.
20324         * read-rtl.c (iterator_group::apply_iterator): Likewise.
20325         (apply_mode_iterator): Likewise.
20326         (apply_code_iterator): Likewise.
20327         (apply_int_iterator): Likewise.
20328         (apply_subst_iterator): Likewise.
20329         (record_iterator_use): Likewise.
20330         (record_attribute_use): Likewise.
20331         (md_reader::record_potential_iterator_use): Likewise.  Update calls
20332         to record_iterator_use and apply_iterator.
20333         (iterator_use): Replace ptr with x and index.
20334         (attribute_use): Likewise.
20335         (apply_attribute_uses): Update calls to apply_iterator.
20336         (apply_iterators): Likewise.  Update initialization of iterator_use.
20337         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
20338         and record_potential_iterator_use.
20339         (rtx_reader::read_rtx_operand): Likewise.
20340
20341 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20342             Alan Hayward  <alan.hayward@arm.com>
20343             David Sherwood  <david.sherwood@arm.com>
20344
20345         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
20346         CONST_WIDE_INT.
20347
20348 2017-08-21  Richard Biener  <rguenther@suse.de>
20349
20350         PR middle-end/81884
20351         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
20352         at struct end conservatively when comparing common bases.
20353
20354 2017-08-21  Richard Biener  <rguenther@suse.de>
20355
20356         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
20357         (mem_ref_in_stmt): Remove.
20358         (determine_max_movement): Use ref index to get at the reference.
20359         (invariantness_dom_walker::before_dom_children): Deal with
20360         lim data already initialized.
20361         (gather_mem_refs_stmt): Initialize lim data and record ref index.
20362
20363 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20364
20365         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
20366         (TARGET_ISA_ROUND): Ditto.
20367         (TARGET_ROUND): Ditto.
20368         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
20369         * config/i386/i386.md: Ditto.
20370         * config/i386/sse.md: Ditto.
20371         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
20372         with OPTION_MASK_ISA_SSE4_1.
20373
20374 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20375
20376         PR target/81894
20377         * doc/extend.texi (x86 Built-in Functions): Correct the name of
20378         __builtin_ia32_lzcnt_u16.
20379
20380 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
20381
20382         PR target/80210
20383         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
20384         (rs6000_set_current_function): Rewrite function to use it.
20385
20386 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
20387
20388         PR c/53037
20389         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
20390         and TYPE_WARN_IF_NOT_ALIGN.
20391         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
20392         (handle_warn_if_not_align): New.
20393         (place_union_field): Call handle_warn_if_not_align.
20394         (place_field): Call handle_warn_if_not_align.
20395         Copy TYPE_WARN_IF_NOT_ALIGN.
20396         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
20397         (layout_type): Likewise.
20398         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
20399         spare to 18.
20400         (tree_decl_common): Add warn_if_not_align.
20401         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
20402         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
20403         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
20404         (DECL_WARN_IF_NOT_ALIGN): Likewise.
20405         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
20406         * doc/extend.texi: Document warn_if_not_aligned attribute.
20407         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
20408
20409 2017-08-17  Martin Liska  <mliska@suse.cz>
20410
20411         PR bootstrap/81864
20412         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
20413         (get_data_dependence): Use it as pointer type.
20414         (distribute_loop): Likewise.
20415
20416 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20417
20418         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
20419         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
20420         (p8_vmrgow_<mode>_direct): New define_insn.
20421         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
20422         handle endianness for vmrgew and vmrgow permute patterns.
20423
20424 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20425
20426         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
20427         * config/rs6000/rs6000-cpus.def: Remove comment.
20428         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
20429         (POWERPC_MASKS): Likewise.
20430         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
20431         use of TARGET_VSX_TIMODE.
20432         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
20433         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
20434         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
20435         (rs6000_option_override_internal): Remove dead code.
20436         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
20437         (rs6000_legitimize_reload_address): Likewise.
20438         (rs6000_legitimate_address_p): Likewise.
20439         (rs6000_opt_masks): Delete "vsx-timode".
20440         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
20441         from function comment.
20442         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
20443         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
20444         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
20445         condition.
20446         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
20447         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
20448         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
20449         (VSX_TI): Likewise.
20450         (VSX_M): Likewise.
20451         (define_peephole2): Likewise.
20452
20453 2017-08-17  Martin Sebor  <msebor@redhat.com>
20454
20455         PR c/81859
20456         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
20457         past the end of an array.
20458         (test_pp_format): Add test cases.
20459
20460 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
20461
20462         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
20463         missing ECF_NOTHROW flags.
20464
20465 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20466
20467         PR target/72804
20468         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
20469         operands residing in integer registers.
20470         (*vsx_le_perm_load_<mode>): Likewise.
20471         (*vsx_le_perm_store_<mode>): Likewise.
20472         (define_peephole2): Add peepholes to optimize the above.
20473
20474 2017-08-17  Marek Polacek  <polacek@redhat.com>
20475
20476         PR middle-end/81814
20477         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
20478         to mimic what shorten_compare did.  Change the return type to bool.
20479         (fold_cond_expr_with_comparison): Update call to
20480         operand_equal_for_comparison_p.
20481         (fold_ternary_loc): Likewise.
20482
20483 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
20484
20485         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
20486         register.
20487         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
20488
20489 2017-08-17  Richard Biener  <rguenther@suse.de>
20490
20491         * tree-ssa-structalias.c (solve_graph): When propagating
20492         to successors update the graphs succ edges and avoid duplicate work.
20493
20494 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
20495
20496         PR target/81861
20497         * config/i386/i386.c (ix86_option_override_internal): Save target
20498         specific options after ix86_stack_protector_guard_reg was changed.
20499
20500 2017-08-17  Richard Biener  <rguenther@suse.de>
20501
20502         PR tree-optimization/81827
20503         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
20504         (new_var_info): Initialize it conservatively.
20505         (get_call_vi): Mark register vars.
20506         (new_scalar_tmp_constraint_exp): Likewise.
20507         (handle_rhs_call): Likewise.
20508         (handle_const_call): Likewise.
20509         (create_function_info_for): Likewise.
20510         (solve_constraints): Sort varinfos to separate register from
20511         non-register vars to pack points-to solution bitmaps during
20512         iteration.
20513
20514 2017-08-17  Marek Polacek  <polacek@redhat.com>
20515
20516         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
20517
20518 2017-08-17  Richard Biener  <rguenther@suse.de>
20519
20520         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
20521         to true when overflow is undefined and we saturated the result.
20522
20523 2017-08-17  Alan Modra  <amodra@gmail.com>
20524
20525         PR target/80938
20526         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
20527         Don't use store multiple if only one reg needs saving.
20528         (interesting_frame_related_regno): New function.
20529         (rs6000_frame_related): Don't emit frame info for regs that
20530         don't need saving.
20531         (rs6000_emit_epilogue): Likewise.
20532
20533 2017-08-16  Nathan Sidwell  <nathan@acm.org>
20534
20535         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
20536         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
20537         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
20538         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
20539         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
20540         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
20541         (verify_type): Adjust for TYPE_BINFO move.
20542         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
20543         process TYPE_BINFO directly.
20544         (hash_tree): Likewise.
20545         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20546         Likewise.
20547         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20548         Likewise.
20549
20550 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
20551
20552         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
20553
20554 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
20555
20556         PR target/46091
20557         * config/i386/i386.md (*anddi_1_btr): Change predicates of
20558         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
20559         Add ix86_binary_operator_ok to insn constraint.
20560         (*iordi_1_bts): Ditto.
20561         (*xordi_1_btc): Ditto.
20562         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
20563         Update corresponding peephole2 pattern.
20564         (*btrq): Ditto.
20565         (*btcq): Ditto.
20566
20567 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
20568
20569         PR tree-optimization/81832
20570         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
20571         copy loop header which has IFN_LOOP_DIST_ALIAS call.
20572
20573 2017-08-16  Marek Polacek  <polacek@redhat.com>
20574
20575         PR middle/81695
20576         * fold-const.c (fold_indirect_ref_1): Restore original behavior
20577         regarding size_zero_node.
20578
20579 2017-08-16  Martin Liska  <mliska@suse.cz>
20580
20581         PR target/81753
20582         * config.gcc: Respect previously set extra_objs in case
20583         of darwin target.
20584
20585 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
20586
20587         PR tree-optimization/81835
20588         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
20589         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
20590         not depend on the phi.
20591
20592 2017-08-16  Alan Modra  <amodra@gmail.com>
20593
20594         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
20595         dead code.
20596
20597 2017-08-16  Alan Modra  <amodra@gmail.com>
20598
20599         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
20600         (save_reg_p): ..into this.  Update all callers.
20601         (first_reg_to_save): Simplify.
20602
20603 2017-08-16  Alan Modra  <amodra@gmail.com>
20604
20605         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
20606         fixed regs.
20607
20608 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
20609
20610         PR target/78460
20611         PR target/67712
20612         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
20613         constant count if that count is less than 32.
20614
20615 2017-08-15  Nathan Sidwell  <nathan@acm.org>
20616
20617         * gcc.c (execute): Emit friendlier message if inferior is killed
20618         by an external cause.
20619
20620 2017-08-15  Richard Biener  <rguenther@suse.de>
20621
20622         PR tree-optimization/81790
20623         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
20624         CONSTRUCTORs from simplifying and VN.
20625
20626 2017-08-14  Martin Sebor  <msebor@redhat.com>
20627
20628         * builtin-attrs.def: Add comments.
20629
20630 2017-08-14  Martin Sebor  <msebor@redhat.com>
20631
20632         PR c/81117
20633         * doc/extend.texi (attribute nonstring): Document new attribute.
20634
20635 2017-08-14  Martin Sebor  <msebor@redhat.com>
20636
20637         PR c/81117
20638         * tree-diagnostic.c (default_tree_printer): Handle %G.
20639         * gimple-pretty-print.h (percent_G_format): Declare new function.
20640         * gimple-pretty-print.c (percent_G_format): Define.
20641         * tree-pretty-print.c (percent_K_format): Add argument.
20642
20643 2017-08-14  Martin Sebor  <msebor@redhat.com>
20644
20645         PR translation/79998
20646         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
20647         Remove a stray space.
20648
20649 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
20650
20651         PR target/46091
20652         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
20653         (*iordi_1_bts): Ditto.
20654         (*xordi_1_btc): Ditto.
20655
20656 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20657
20658         PR target/79845
20659         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
20660         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20661         Likewise.
20662         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
20663         quoted strings, and make more translator-friendly.
20664         (darwin_rs6000_override_options): Likewise.
20665         (rs6000_option_override_internal): Likewise.
20666         (rs6000_return_in_memory): Fix overlong line.
20667         (init_cmulative_args): Use quoted strings, and make more
20668         translator-friendly.
20669         (rs6000_pass_by_reference): Fix overlong line.
20670         (def_builtin): Use quoted strings.
20671         (altivec_expand_predicate_builtin): Use quoted strings, and make
20672         more translator-friendly.
20673         (htm_expand_builtin): Use quoted strings.
20674         (cpu_expand_builtin): Use quoted strings, and make more
20675         translator-friendly.
20676         (altivec_expand_builtin): Likewise.
20677         (paired_expand_predicate_builtin): Likewise.
20678         (rs6000_invalid_builtin): Likewise.
20679         (builtin_function_type): Use quoted strings.
20680         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
20681         more translator-friendly.
20682         (rs6000_trampoline_init): Likewise.
20683         (rs6000_handle_altivec_attribute): Likewise.
20684         (rs6000_inner_target_options): Use quoted strings.
20685         (rs6000_disable_incompatible_switches): Likewise.
20686         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
20687         strings, and make more translator-friendly.
20688         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
20689
20690 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
20691
20692         PR tree-optimization/81799
20693         * tree-loop-distribution.c (version_loop_by_alias_check): Force
20694         cond_expr to simple gimple operand.
20695
20696 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
20697
20698         PR middle-end/46932
20699         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
20700
20701 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
20702
20703         PR target/81754
20704         PR target/81268
20705         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
20706         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
20707         TARGET_GASISR_PROLOGUES.
20708         * config/avr/avr.c (avr_option_override): Same.
20709         (avr_pass_pre_proep::execute): Same.
20710
20711 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
20712
20713         PR target/81820
20714         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
20715         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
20716
20717 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
20718
20719         * config/i386/i386.md (*load_tp_<mode>): Redefine as
20720         define_insn_and_split.  Split to a memory load from 0 in
20721         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
20722         using PTR mode iterator.
20723         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
20724         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
20725         (*add_tp_<mode>): Redefine as define_insn_and_split.
20726         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
20727         address space.  Merge with *add_tp_x32 using PTR mode iterator.
20728         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
20729         Split to an add with a  memory load from 0 in
20730         DEFAULT_TLS_SEG_REG address space.
20731
20732 2017-08-12  Andrew Pinski  <apinski@cavium.com>
20733
20734         * config/aarch64/aarch64-option-extensions.def (rdma):
20735         Fix feature string to what Linux prints out in /proc/cpuinfo.
20736
20737 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
20738
20739         PR ada/79542
20740         * dwarf2out.c (modified_type_die): For C typedef types that have
20741         an ultimate origin, process the ultimate origin instead of the
20742         input type.
20743         (gen_typedef_die): Assert that input DECLs have no ultimate
20744         origin.
20745         (gen_type_die_with_usage): For typedef variants that have an
20746         ultimate origin, just call gen_decl_die on the original DECL.
20747         (process_scope_var): Avoid creating DIEs for local typedefs and
20748         concrete static variables.
20749
20750 2017-08-12  Alan Modra  <amodra@gmail.com>
20751
20752         PR target/81170
20753         PR target/81295
20754         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
20755         match gnu-user.h startfile.
20756         (ENDFILE_LINUX_SPEC): Similarly.
20757
20758 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
20759
20760         PR lto/81430
20761         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
20762         Remove function.
20763         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
20764
20765 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
20766         * config/aarch64/aarch64.md (mov<mode>): Change.
20767         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20768         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
20769         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
20770
20771 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
20772
20773         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
20774         for storage order barriers.
20775
20776 2017-08-11  Martin Liska  <mliska@suse.cz>
20777
20778         PR tree-opt/79987
20779         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
20780         variables of void type.
20781
20782 2017-08-11  Martin Liska  <mliska@suse.cz>
20783
20784         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
20785         TARGET_SUPPORTS_ALIASES.
20786         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
20787         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
20788         (optimize_weakref): Likewise.
20789         * symtab.c (symtab_node::noninterposable_alias): Likewise.
20790         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
20791         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
20792
20793 2017-08-11  Martin Liska  <mliska@suse.cz>
20794
20795         PR ipa/81213
20796         * config/i386/i386.c (make_resolver_func): Do complete
20797         refactoring of the function.
20798
20799 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20800
20801         PR target/81708
20802         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
20803         * config/i386/i386.c (ix86_stack_protect_guard): Use
20804         ix86_stack_protect_guard_symbol_str to generate varible declaration.
20805         * doc/invoke.texi (x86 Options): Document
20806         -mstack-protector-guard-symbol= option.
20807
20808 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20809
20810         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
20811         * config/i386/i386.c (ix86_split_stack_guard): New function.
20812         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
20813         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
20814         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
20815         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
20816         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
20817         (split_stack_space_check): Call ix86_split_stack_guard.
20818
20819 2017-08-10  Martin Sebor  <msebor@redhat.com>
20820
20821         * print-tree.c (print_node): Print location using the established
20822         format %s:%i%i.
20823         Replace spaces with colons.
20824         (debug_raw, debug): Ditto.
20825
20826 2017-08-10  Martin Sebor  <msebor@redhat.com>
20827
20828         PR c++/81586
20829         * pretty-print.c (pp_format): Correct the handling of %s precision.
20830
20831 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
20832
20833         PR target/81736
20834         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20835         to ...
20836         (ix86_finalize_stack_frame_flags): This.  Also clear
20837         frame_pointer_needed if -fno-omit-frame-pointer is used without
20838         stack access.
20839         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20840         with ix86_finalize_stack_frame_flags.
20841         (ix86_expand_epilogue): Likewise.
20842         (ix86_expand_split_stack_prologue): Likewise.
20843         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
20844
20845 2017-08-10  Martin Liska  <mliska@suse.cz>
20846
20847         PR c++/81355
20848         * c-attribs.c (handle_target_attribute):
20849         Report warning for an empty string argument of target attribute.
20850
20851 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
20852
20853         PR c/81687
20854         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
20855         LABEL_DECLs.
20856         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
20857         or DECL_NONLOCAL labels.
20858         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
20859         or DECL_NONLOCAL labels here.
20860
20861 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
20862
20863         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
20864         to indicate when early gimple folding has been disabled.
20865         (rs6000_gimple_fold_builtin): Add debug content.
20866         (rs6000_invalid_builtin): Fix whitespace.
20867         (rs6000_expand_builtin): Fix whitespace.
20868         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
20869
20870 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
20871
20872         PR target/80938
20873         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
20874         SAVE_MULTIPLE if not all the registers that saves, should be saved.
20875
20876 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
20877
20878         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
20879         (qdf24xx): Likewise.
20880         * config/aarch64/aarch64.md: Include falkor.md.
20881         * config/aarch64/falkor.md: New.
20882
20883 2017-08-09  Marek Polacek  <polacek@redhat.com>
20884
20885         PR c/81233
20886         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
20887         * diagnostic.c (emit_diagnostic): Add a comment.
20888         (emit_diagnostic_valist): New function.
20889
20890 2017-08-09  Marek Polacek  <polacek@redhat.com>
20891
20892         PR c/81417
20893         * input.c (make_location): New overload.
20894         * input.h (make_location): Declare.
20895
20896 2017-08-08  Alan Modra  <amodra@gmail.com>
20897             H.J. Lu  <hongjiu.lu@intel.com>
20898
20899         PR driver/81523
20900         * gcc.c (NO_PIE_SPEC): Delete.
20901         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
20902         exclusion..
20903         (LINK_PIE_SPEC): ..to here.
20904         (LINK_COMMAND_SPEC): Support -no-pie.
20905         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
20906         chain of crtbegin*.o selection, update for PIE_SPEC changes and
20907         format.
20908         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
20909         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
20910         (ENDFILE_CRTEND_SPEC): Similarly.
20911
20912 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
20913
20914         PR target/81708
20915         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
20916         (mstack-protector-guard-offset=): Ditto.
20917         * config/i386/i386.c (ix86_option_override): Handle
20918         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
20919         options.
20920         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
20921         ix86_stack_protect_guard_offset variables.
20922         (TARGET_STACK_PROTECT_GUARD): Always define.
20923         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
20924         and -mstack-protector-guard-offset= options.
20925
20926 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20927
20928         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
20929         boundary case for the last candidate.
20930
20931 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20932
20933         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
20934         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
20935
20936 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20937
20938         PR middle-end/19706
20939         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
20940         * config/aarch64/aarch64-builtins.c
20941         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
20942         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
20943         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
20944
20945 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
20946             Andrew Pinski <pinskia@gmail.com>
20947
20948         PR middle-end/19706
20949         * internal-fn.def (XORSIGN): New.
20950         * optabs.def (xorsign_optab): New.
20951         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
20952         (convert_expand_mult_copysign): New.
20953         (pass_optimize_widening_mul::execute): Call
20954         convert_expand_mult_copysign.
20955
20956 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20957
20958         PR tree-optimization/81354
20959         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
20960         Insert on edges rather than explicitly creating landing pads.
20961         (analyze_candidates_and_replace): Commit edge inserts.
20962
20963 2017-08-08  Richard Biener  <rguenther@suse.de>
20964
20965         PR middle-end/81719
20966         * tree-ssa-loop-niter.c: Include tree-dfa.h.
20967         (expand_simple_operations): Also look through ADDR_EXPRs with
20968         MEM_REF bases treating them as POINTER_PLUS_EXPR.
20969
20970 2017-08-08  Richard Biener  <rguenther@suse.de>
20971
20972         PR tree-optimization/81723
20973         * tree-vect-slp.c (struct bst_traits): New hash traits.
20974         (bst_fail): New global.
20975         (vect_build_slp_tree_2): New worker, split out from ...
20976         (vect_build_slp_tree): ... this now wrapping it with using
20977         bst_fail set to cache SLP tree build fails.  Properly handle
20978         max_tree_size.
20979         (vect_analyze_slp_instance): Allocate and free bst_fail.
20980
20981 2017-08-08  Martin Liska  <mliska@suse.cz>
20982
20983         PR tree-opt/81696
20984         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
20985         LABEL_DECLs that can be from a different function.
20986
20987 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
20988
20989         PR tree-optimization/81744
20990         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
20991         loop's number of iterations.
20992
20993 2017-08-08  Martin Liska  <mliska@suse.cz>
20994
20995         * asan.c: Include header files.
20996         * attribs.c (build_decl_attribute_variant): New function moved
20997         from tree.[ch].
20998         (build_type_attribute_qual_variant): Likewise.
20999         (cmp_attrib_identifiers): Likewise.
21000         (simple_cst_list_equal): Likewise.
21001         (omp_declare_simd_clauses_equal): Likewise.
21002         (attribute_value_equal): Likewise.
21003         (comp_type_attributes): Likewise.
21004         (build_type_attribute_variant): Likewise.
21005         (lookup_ident_attribute): Likewise.
21006         (remove_attribute): Likewise.
21007         (merge_attributes): Likewise.
21008         (merge_type_attributes): Likewise.
21009         (merge_decl_attributes): Likewise.
21010         (merge_dllimport_decl_attributes): Likewise.
21011         (handle_dll_attribute): Likewise.
21012         (attribute_list_equal): Likewise.
21013         (attribute_list_contained): Likewise.
21014         * attribs.h (lookup_attribute): New function moved from tree.[ch].
21015         (lookup_attribute_by_prefix): Likewise.
21016         * bb-reorder.c: Include header files.
21017         * builtins.c: Likewise.
21018         * calls.c: Likewise.
21019         * cfgexpand.c: Likewise.
21020         * cgraph.c: Likewise.
21021         * cgraphunit.c: Likewise.
21022         * convert.c: Likewise.
21023         * dwarf2out.c: Likewise.
21024         * final.c: Likewise.
21025         * fold-const.c: Likewise.
21026         * function.c: Likewise.
21027         * gimple-expr.c: Likewise.
21028         * gimple-fold.c: Likewise.
21029         * gimple-pretty-print.c: Likewise.
21030         * gimple.c: Likewise.
21031         * gimplify.c: Likewise.
21032         * hsa-common.c: Likewise.
21033         * hsa-gen.c: Likewise.
21034         * internal-fn.c: Likewise.
21035         * ipa-chkp.c: Likewise.
21036         * ipa-cp.c: Likewise.
21037         * ipa-devirt.c: Likewise.
21038         * ipa-fnsummary.c: Likewise.
21039         * ipa-inline.c: Likewise.
21040         * ipa-visibility.c: Likewise.
21041         * ipa.c: Likewise.
21042         * lto-cgraph.c: Likewise.
21043         * omp-expand.c: Likewise.
21044         * omp-general.c: Likewise.
21045         * omp-low.c: Likewise.
21046         * omp-offload.c: Likewise.
21047         * omp-simd-clone.c: Likewise.
21048         * opts-global.c: Likewise.
21049         * passes.c: Likewise.
21050         * predict.c: Likewise.
21051         * sancov.c: Likewise.
21052         * sanopt.c: Likewise.
21053         * symtab.c: Likewise.
21054         * toplev.c: Likewise.
21055         * trans-mem.c: Likewise.
21056         * tree-chkp.c: Likewise.
21057         * tree-eh.c: Likewise.
21058         * tree-into-ssa.c: Likewise.
21059         * tree-object-size.c: Likewise.
21060         * tree-parloops.c: Likewise.
21061         * tree-profile.c: Likewise.
21062         * tree-ssa-ccp.c: Likewise.
21063         * tree-ssa-live.c: Likewise.
21064         * tree-ssa-loop.c: Likewise.
21065         * tree-ssa-sccvn.c: Likewise.
21066         * tree-ssa-structalias.c: Likewise.
21067         * tree-ssa.c: Likewise.
21068         * tree-streamer-in.c: Likewise.
21069         * tree-vectorizer.c: Likewise.
21070         * tree-vrp.c: Likewise.
21071         * tsan.c: Likewise.
21072         * ubsan.c: Likewise.
21073         * varasm.c: Likewise.
21074         * varpool.c: Likewise.
21075         * tree.c: Remove functions moved to attribs.[ch].
21076         * tree.h: Likewise.
21077         * config/aarch64/aarch64.c: Add attrs.h header file.
21078         * config/alpha/alpha.c: Likewise.
21079         * config/arc/arc.c: Likewise.
21080         * config/arm/arm.c: Likewise.
21081         * config/avr/avr.c: Likewise.
21082         * config/bfin/bfin.c: Likewise.
21083         * config/c6x/c6x.c: Likewise.
21084         * config/cr16/cr16.c: Likewise.
21085         * config/cris/cris.c: Likewise.
21086         * config/darwin.c: Likewise.
21087         * config/epiphany/epiphany.c: Likewise.
21088         * config/fr30/fr30.c: Likewise.
21089         * config/frv/frv.c: Likewise.
21090         * config/ft32/ft32.c: Likewise.
21091         * config/h8300/h8300.c: Likewise.
21092         * config/i386/winnt.c: Likewise.
21093         * config/ia64/ia64.c: Likewise.
21094         * config/iq2000/iq2000.c: Likewise.
21095         * config/lm32/lm32.c: Likewise.
21096         * config/m32c/m32c.c: Likewise.
21097         * config/m32r/m32r.c: Likewise.
21098         * config/m68k/m68k.c: Likewise.
21099         * config/mcore/mcore.c: Likewise.
21100         * config/microblaze/microblaze.c: Likewise.
21101         * config/mips/mips.c: Likewise.
21102         * config/mmix/mmix.c: Likewise.
21103         * config/mn10300/mn10300.c: Likewise.
21104         * config/moxie/moxie.c: Likewise.
21105         * config/msp430/msp430.c: Likewise.
21106         * config/nds32/nds32-isr.c: Likewise.
21107         * config/nds32/nds32.c: Likewise.
21108         * config/nios2/nios2.c: Likewise.
21109         * config/nvptx/nvptx.c: Likewise.
21110         * config/pa/pa.c: Likewise.
21111         * config/pdp11/pdp11.c: Likewise.
21112         * config/powerpcspe/powerpcspe.c: Likewise.
21113         * config/riscv/riscv.c: Likewise.
21114         * config/rl78/rl78.c: Likewise.
21115         * config/rx/rx.c: Likewise.
21116         * config/s390/s390.c: Likewise.
21117         * config/sh/sh.c: Likewise.
21118         * config/sol2.c: Likewise.
21119         * config/sparc/sparc.c: Likewise.
21120         * config/spu/spu.c: Likewise.
21121         * config/stormy16/stormy16.c: Likewise.
21122         * config/tilegx/tilegx.c: Likewise.
21123         * config/tilepro/tilepro.c: Likewise.
21124         * config/v850/v850.c: Likewise.
21125         * config/vax/vax.c: Likewise.
21126         * config/visium/visium.c: Likewise.
21127         * config/xtensa/xtensa.c: Likewise.
21128
21129 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
21130
21131         PR target/81593
21132         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
21133         constraints since the -mupper-regs-* switches have been
21134         eliminated.
21135         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
21136         into a vector from a double word element that was extracted from
21137         another vector, and eliminate extra XXPERMDI instructions.
21138         (vsx_concat_<mode>_2): Likewise.
21139         (vsx_concat_<mode>_3): Likewise.
21140         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
21141         concat to allow optimizing inserts from previous extracts.
21142
21143 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
21144
21145         * config/i386/i386.c (ix86_stack_protect_guard): Generate
21146         memory reference to a SSP offset in TLS address space.
21147         (ix86_print_operand) <case '@'>: Remove.
21148         (ix86_print_operand_punct_valid_p): Remove '@' code.
21149         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
21150         UNSPEC_SP_TLS_TEST.
21151         (stack_tls_protect_set_<mode>): Remove.
21152         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
21153         (stack_tls_protect_test_<mode>): Remove.
21154         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
21155
21156 2017-08-07  Olivier Hainque  <hainque@adacore.com>
21157
21158         PR target/81755
21159         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
21160
21161 2017-08-07  Douglas Rupp  <rupp@adacore.com>
21162
21163         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
21164         variable was referenced as multidir in command.
21165
21166 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21167
21168         PR c/69389
21169         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
21170         BIT_FIELD_REF.
21171
21172 2017-08-07  Martin Liska  <mliska@suse.cz>
21173
21174         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
21175         * config/rl78/rl78.c: Add include of attribs.h.
21176         * config/sh/sh.c: Likewise.
21177         * config/v850/v850.c: Likewise.
21178
21179 2017-08-07  Tom de Vries  <tom@codesourcery.com>
21180
21181         PR middle-end/78266
21182         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
21183
21184 2017-08-07  Martin Liska  <mliska@suse.cz>
21185
21186         * config/mips/mips.c: Include attribs.h.
21187
21188 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
21189
21190         PR fortran/68829
21191         * doc/invoke.texi: Document change in behvaior for -Ofast for
21192         Fortran.
21193
21194 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
21195
21196         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
21197         Use gen_frame_mem.
21198         (aarch64_pop_regs): Likewise.
21199         (aarch64_gen_load_pair): Likewise.
21200         (aarch64_save_callee_saves): Likewise.
21201         (aarch64_restore_callee_saves): Likewise.
21202
21203 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21204
21205         * config/i386/i386.c: Revert the last change.
21206
21207 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21208
21209         PR target/81736
21210         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
21211         to ...
21212         (ix86_finalize_stack_frame_flags): This.  Also clear
21213         frame_pointer_needed if -fno-omit-frame-pointer is used without
21214         stack access.
21215         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
21216         with ix86_finalize_stack_frame_flags.
21217         (ix86_expand_epilogue): Likewise.
21218         (ix86_expand_split_stack_prologue): Likewise.
21219
21220 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21221
21222         PR target/81743
21223         * config/i386/i386.c (get_builtin_code_for_version): Set priority
21224         to P_AES for Westmere.
21225
21226 2017-08-07  Jonathan Yong  <10walls@gmail.com>
21227
21228         * config/i386/mingw.opt (fset-stack-executable): Removed.
21229         * config/i386/cygming.opt (fset-stack-executable): Moved
21230         from mingw.opt.
21231         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
21232
21233 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
21234
21235         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
21236
21237 2017-08-07  Marek Polacek  <polacek@redhat.com>
21238
21239         PR middle-end/81737
21240         * fold-const.c (fold_indirect_ref_1): Check type_domain.
21241
21242 2017-08-07  Martin Liska  <mliska@suse.cz>
21243
21244         * attribs.h (canonicalize_attr_name): New function.
21245         (cmp_attribs): Move from c-format.c and adjusted.
21246         (is_attribute_p): Moved from tree.h.
21247         * tree-inline.c: Add new includes.
21248         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
21249         (private_is_attribute_p): Remove.
21250         (private_lookup_attribute): Likewise.
21251         (private_lookup_attribute_by_prefix): Simplify.
21252         (remove_attribute): Use is_attribute_p.
21253         * tree.h: Remove removed declarations.
21254
21255 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21256
21257         PR middle-end/81698
21258         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
21259         instead of computing it in the function.  Formatting fix.
21260         (expand_case): Don't rely on default_edge being the first edge,
21261         clear it if removing it, pass default_edge to
21262         emit_case_dispatch_table.
21263         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
21264         fix.
21265
21266 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
21267
21268         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
21269         insn in the function, emit NOP after the insn.
21270
21271 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21272
21273         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
21274         and element loops.
21275
21276 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21277
21278         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
21279         loop.
21280
21281 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
21282
21283         PR tree-optimization/57371
21284         * match.pd: New pattern.
21285
21286 2017-08-04  Marek Polacek  <polacek@redhat.com>
21287
21288         PR middle-end/81695
21289         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
21290         perform the computation in offset_int.
21291
21292 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21293
21294         PR tree-optimization/81136
21295         * tree-vectorizer.h: Include tree-hash-traits.h.
21296         (vec_base_alignments): New typedef.
21297         (vec_info): Add a base_alignments field.
21298         (vect_record_base_alignments): Declare.
21299         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
21300         field.
21301         (DR_IS_CONDITIONAL_IN_STMT): New macro.
21302         (create_data_ref): Add an is_conditional_in_stmt argument.
21303         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
21304         the is_conditional_in_stmt field.
21305         (data_ref_loc): Add an is_conditional_in_stmt field.
21306         (get_references_in_stmt): Set the is_conditional_in_stmt field.
21307         (find_data_references_in_stmt): Update call to create_data_ref.
21308         (graphite_find_data_references_in_stmt): Likewise.
21309         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
21310         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
21311         (vect_record_base_alignment): New function.
21312         (vect_record_base_alignments): Likewise.
21313         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
21314         for nested statements even if we fail to compute a misalignment.
21315         Use pooled base alignments for unconditional references.
21316         (vect_find_same_alignment_drs): Compare base addresses instead
21317         of base objects.
21318         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
21319         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
21320
21321 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21322
21323         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
21324         Add an explicit name for the enum.  Use auto_vec for slp_instances
21325         and grouped_stores.
21326         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
21327         for all vectors.
21328         (_bb_vec_info): Add a constructor and destructor.
21329         (vinfo_for_stmt): Return NULL for uids of -1 as well.
21330         (destroy_loop_vec_info): Delete.
21331         (vect_destroy_datarefs): Likewise.
21332         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
21333         (vec_info::vec_info): New function.
21334         (vec_info::~vec_info): Likewise.
21335         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
21336         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
21337         destroy_loop_vec_info.
21338         * tree-vect-loop.c (new_loop_vec_info): Replace with...
21339         (_loop_vec_info::_loop_vec_info): ...this.
21340         (destroy_loop_vec_info): Replace with...
21341         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
21342         the stmt_vec_infos.  Leave handling of vec_info information to its
21343         destructor.  Remove explicit vector releases.
21344         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
21345         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
21346         * tree-vect-slp.c (new_bb_vec_info): Replace with...
21347         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
21348         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
21349         (destroy_bb_vec_info): Replace with...
21350         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
21351         information to its destructor.
21352         (vect_slp_analyze_bb_1): Use new and delete instead of
21353         new_bb_vec_info and destroy_bb_vec_info.
21354         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
21355         single delete.
21356
21357 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21358
21359         * tree-data-ref.h (subscript): Add access_fn field.
21360         (data_dependence_relation): Add could_be_independent_p.
21361         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
21362         (same_access_functions): Move to tree-data-ref.c.
21363         * tree-data-ref.c (ref_contains_union_access_p): New function.
21364         (access_fn_component_p): Likewise.
21365         (access_fn_components_comparable_p): Likewise.
21366         (dr_analyze_indices): Add a reference to access_fn_component_p.
21367         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
21368         DR_ACCESS_FN.
21369         (constant_access_functions): Likewise.
21370         (add_other_self_distances): Likewise.
21371         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
21372         (initialize_data_dependence_relation): Use XCNEW and remove
21373         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
21374         of access functions that have the same type.  Allow the
21375         subsequence to end with different bases in some circumstances.
21376         Record the chosen access functions in SUB_ACCESS_FN.
21377         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
21378         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
21379         (subscript_dependence_tester_1): Likewise dra and drb.
21380         (build_classic_dist_vector): Update calls accordingly.
21381         (subscript_dependence_tester): Likewise.
21382         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
21383         DDR_COULD_BE_INDEPENDENT_P.
21384         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
21385         comp_alias_ddrs instead of may_alias_ddrs.
21386         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
21387         New function.
21388         (vect_analyze_data_ref_dependence): Use it if
21389         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
21390         distance vectors if that fails.
21391         (dependence_distance_ge_vf): New function.
21392         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
21393         LOOP_VINFO_MAY_ALIAS_DDRS.
21394
21395 2017-08-04  Richard Biener  <rguenther@suse.de>
21396
21397         PR middle-end/81705
21398         * fold-const.c (fold_binary_loc): Properly restrict
21399         minus_var0 && minus_var1 case when associating undefined overflow
21400         entities.
21401
21402 2017-08-04  Tom de Vries  <tom@codesourcery.com>
21403
21404         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
21405
21406 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21407
21408         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
21409         Don't start diagnostic messages with a capital letter.
21410         * config/rs6000/rs6000.c (rs6000_option_override_internal):
21411         Likewise.
21412         (rs6000_invalid_builtin): Likewise.
21413         (rs6000_trampoline_init): Likewise.
21414
21415 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21416
21417         PR target/81621
21418         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
21419         after setting changeable df flags.
21420
21421 2017-08-03  Richard Biener  <rguenther@suse.de>
21422
21423         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
21424         up if the use is in USE - X.
21425
21426 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
21427
21428         * toplev.c (dumpfile.h): New include.
21429         (internal_error_reentered): New static function.  Use it...
21430         (internal_error_function): ...here to handle reentered internal_error.
21431
21432 2017-08-03  Richard Biener  <rguenther@suse.de>
21433
21434         PR middle-end/81148
21435         * fold-const.c (split_tree): Add minus_var and minus_con
21436         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
21437         here but always use minus_*.
21438         (associate_trees): Assert we never associate with MINUS_EXPR
21439         and NULL first operand.  Do not recurse for PLUS_EXPR operands
21440         when associating as MINUS_EXPR either.
21441         (fold_binary_loc): Track minus_var and minus_con.
21442
21443 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21444
21445         PR lto/81430
21446         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
21447         ACCEL_COMPILER, apply finish_options on
21448         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
21449
21450 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21451
21452         PR target/81662
21453         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
21454         function_entry_patch_area_size > 0.
21455
21456 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21457
21458         PR driver/81650
21459         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
21460         instead of 10??LU, perform unit multiplication in wide_int,
21461         don't change alloc_object_size_limit if the limit is larger
21462         than SSIZE_MAX.
21463
21464         PR tree-optimization/81655
21465         PR tree-optimization/81588
21466         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
21467         the case when ranges[i].low and high are 1 for unsigned type with
21468         precision 1.
21469
21470         PR middle-end/81052
21471         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
21472         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
21473
21474 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21475
21476         * tree-vrp.h: Add include guard.
21477
21478 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
21479
21480         PR target/81644
21481         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
21482         (ud2): New insn pattern.
21483         * config/i386/i386.c (ix86_expand_epilogue):
21484         For naked functions, generate ud2 instead of trap insn.
21485
21486 2017-08-02  Marek Polacek  <polacek@redhat.com>
21487
21488         PR other/81667
21489         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
21490
21491 2017-08-02  Tom de Vries  <tom@codesourcery.com>
21492             Cesar Philippidis  <cesar@codesourcery.com>
21493
21494         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
21495         Add missing edge probabilities.
21496
21497 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
21498
21499         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
21500         Correct endianness.
21501
21502 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
21503
21504         PR middle-end/79499
21505         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
21506         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
21507         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
21508         prologue_seq sequences - if any.
21509
21510 2017-08-02  Richard Biener  <rguenther@suse.de>
21511
21512         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
21513         via vectors if supported, integer extracts via punning if supported
21514         or otherwise vector extracts.
21515
21516 2017-08-02  Richard Biener  <rguenther@suse.de>
21517
21518         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
21519         into ...
21520         (bitmap_insert_into_set): ... this.
21521
21522 2017-08-02  Richard Biener  <rguenther@suse.de>
21523
21524         PR tree-optimization/81633
21525         Revert
21526         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
21527
21528         PR tree-optimization/71752
21529         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
21530
21531 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
21532
21533         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
21534         (machine_function::call_ms2sysv_pad_out): Remove field.
21535         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
21536         (ix86_compute_frame_layout): Likewise.
21537
21538 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
21539
21540         PR target/81654
21541         * config/i386/i386.c (ix86_set_func_type): Disallow naked
21542         attribute with interrupt attribute.
21543
21544 2017-08-01  Andrew Pinski  <apinski@cavium.com>
21545
21546         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
21547         BIT_INSERT_EXPR's operand 1
21548         to see if the types precision matches.
21549
21550 2017-08-01  Martin Liska  <mliska@suse.cz>
21551
21552         PR middle-end/70140
21553         * builtins.c (expand_builtin_memcpy_args): Remove.
21554         (expand_builtin_memcpy): Call newly added function
21555         expand_builtin_memory_copy_args.
21556         (expand_builtin_memcpy_with_bounds): Likewise.
21557         (expand_builtin_mempcpy): Remove last argument.
21558         (expand_builtin_mempcpy_with_bounds): Likewise.
21559         (expand_builtin_memory_copy_args): New function created from
21560         expand_builtin_mempcpy_args with small modifications.
21561         (expand_builtin_mempcpy_args): Remove.
21562         (expand_builtin_stpcpy): Remove unused argument.
21563         (expand_builtin): Likewise.
21564         (expand_builtin_with_bounds): Likewise.
21565
21566 2017-08-01  Martin Liska  <mliska@suse.cz>
21567
21568         Revert r250771
21569         Make mempcpy more optimal (PR middle-end/70140).
21570
21571 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21572
21573         PR target/81622
21574         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
21575         __builtin_vec_cmpne verify both arguments are compatible vectors
21576         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
21577         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
21578         move computation of aligned to after checking the argument types.
21579         Formatting fixes.
21580
21581         PR target/80846
21582         * config/rs6000/vsx.md (vextract_fp_from_shorth,
21583         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
21584         calls.
21585
21586 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
21587             Doug Rupp  <rupp@adacore.com>
21588             Olivier Hainque  <hainque@adacore.com>
21589
21590         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
21591         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
21592         arm8 (arch v4).
21593         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
21594         for TARGET_OS_CPP_BUILTIN.
21595         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
21596         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
21597         arm_arch7.
21598         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
21599         passing required abi options to the assembler for EABI configurations.
21600         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
21601         of .text.hot and .text.unlikely sections for kernel modules when
21602         using ARM style exceptions.
21603         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
21604         options. Add EXTRA_CC1_SPEC.
21605         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
21606         toolchain options.
21607         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
21608         transition.
21609         (ARM_TARGET2_DWARF_FORMAT): Define.
21610         * config/arm/t-vxworks: Adjust multilib control to removal of the
21611         Diab command line options.
21612
21613 2017-08-01  Martin Liska  <mliska@suse.cz>
21614
21615         PR gcov-profile/81561
21616         * gcov.c (unblock): Make unblocking safe as we need to preserve
21617         index correspondence of blocks and block_lists.
21618
21619 2017-08-01  Richard Biener  <rguenther@suse.de>
21620
21621         PR tree-optimization/81181
21622         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
21623         (compute_antic): ... end of iteration here.
21624
21625 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
21626
21627         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
21628         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
21629         (ftree-slp-vectorize): Likewise.
21630         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
21631         can no longer be set independent of flag_tree_loop_vectorize.
21632         * omp-general.c (emp_max_vf): Likewise.
21633         * opts.c (enable_fdo_optimizations): Remove references to
21634         flag_tree_vectorize, these are now implicit.
21635         (common_handle_option): Remove handling for OPT_ftree_vectorize,
21636         and leave it for the options machinery.
21637
21638 2017-08-01  Martin Liska  <mliska@suse.cz>
21639
21640         PR middle-end/70140
21641         * builtins.c (expand_builtin_memcpy_args): Remove.
21642         (expand_builtin_memcpy): Call newly added function
21643         expand_builtin_memory_copy_args.
21644         (expand_builtin_memcpy_with_bounds): Likewise.
21645         (expand_builtin_mempcpy): Remove last argument.
21646         (expand_builtin_mempcpy_with_bounds): Likewise.
21647         (expand_builtin_memory_copy_args): New function created from
21648         expand_builtin_mempcpy_args with small modifications.
21649         (expand_builtin_mempcpy_args): Remove.
21650         (expand_builtin_stpcpy): Remove unused argument.
21651         (expand_builtin): Likewise.
21652         (expand_builtin_with_bounds): Likewise.
21653
21654 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21655
21656         PR target/81641
21657         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
21658         print "ds:" only for immediates in generic address space.
21659
21660 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21661
21662         PR target/81639
21663         * config/i386/i386.c (ix86_funciton_naked): New prototype.
21664         (ix86_function_ok_for_sibcall): Return false for naked functions.
21665
21666 2017-08-01  Richard Biener  <rguenther@suse.de>
21667
21668         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
21669         (compute_antic): Seed worklist with exit block predecessors.
21670         * cfganal.c (dfs_find_deadend): For a cycle return the source
21671         of the edge closing it.
21672
21673 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
21674
21675         * config/aarch64/aarch64.c
21676         (aarch64_can_const_movi_rtx_p): Move 0 check.
21677
21678 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21679
21680         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
21681         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
21682         above macro.
21683         * match.pd: Ditto in address comparison pattern.
21684
21685 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21686
21687         PR tree-optimization/81627
21688         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
21689         closed ssa form for store-store chain.
21690
21691 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21692
21693         PR tree-optimization/81620
21694         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
21695         for store-store chain.
21696
21697 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21698
21699         PR tree-optimization/81588
21700         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
21701         ranges[i].in_p, invert comparison code ccode.  For >/>=,
21702         swap rhs1 and rhs2 and comparison code unconditionally,
21703         for </<= don't do that.  Don't swap rhs1/rhs2 again if
21704         ranges[i].in_p, instead invert comparison code ccode if
21705         opcode or oe->rank is BIT_IOR_EXPR.
21706
21707         PR target/80846
21708         * optabs.def (vec_extract_optab, vec_init_optab): Change from
21709         a direct optab to conversion optab.
21710         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
21711         with GET_MODE_INNER as last argument instead of optab_handler.
21712         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
21713         vector extraction if possible and optab is available.
21714         * expr.c (store_constructor): Use convert_optab_handler instead
21715         of optab_handler.  Use vector initialization from smaller
21716         vectors if possible and optab is available.
21717         * tree-vect-stmts.c (vectorizable_load): Likewise.
21718         * doc/md.texi (vec_extract, vec_init): Document that the optabs
21719         now have two modes.
21720         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
21721         of vec_init from half-sized vectors with the same element mode.
21722         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
21723         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
21724         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
21725         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
21726         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
21727         after mode in gen_vec_extract* calls.
21728         (vec_extract<mode>): Renamed to ...
21729         (vec_extract<mode><ssescalarmodelower>): ... this.
21730         (vec_extract<mode><ssehalfvecmodelower>): New expander.
21731         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
21732         element mode after mode in gen_vec_init* calls.
21733         (VEC_INIT_HALF_MODE): New mode iterator.
21734         (vec_init<mode>): Renamed to ...
21735         (vec_init<mode><ssescalarmodelower>): ... this.
21736         (vec_init<mode><ssehalfvecmodelower>): New expander.
21737         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
21738         (vec_extractv2sfsf): ... this.
21739         (vec_initv2sf): Renamed to ...
21740         (vec_initv2sfsf): ... this.
21741         (vec_extractv2si): Renamed to ...
21742         (vec_extractv2sisi): ... this.
21743         (vec_initv2si): Renamed to ...
21744         (vec_initv2sisi): ... this.
21745         (vec_extractv4hi): Renamed to ...
21746         (vec_extractv4hihi): ... this.
21747         (vec_initv4hi): Renamed to ...
21748         (vec_initv4hihi): ... this.
21749         (vec_extractv8qi): Renamed to ...
21750         (vec_extractv8qiqi): ... this.
21751         (vec_initv8qi): Renamed to ...
21752         (vec_initv8qiqi): ... this.
21753         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
21754         (vec_init<mode>): Renamed to ...
21755         (vec_init<mode><VEC_base_l>): ... this.
21756         (vec_extract<mode>): Renamed to ...
21757         (vec_extract<mode><VEC_base_l>): ... this.
21758         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
21759         (vec_initv2sfsf): ... this.
21760         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
21761         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21762         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
21763         element mode after mode in gen_vec_init* calls.
21764         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
21765         (vec_init<mode><Vel>): ... this.
21766         (vec_extract<mode>): Renamed to ...
21767         (vec_extract<mode><Vel>): ... this.
21768         * config/aarch64/iterators.md (Vel): New mode attribute.
21769         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
21770         Add element mode after mode in gen_vec_extract* calls.
21771         * config/s390/vector.md (non_vec_l): New mode attribute.
21772         (vec_extract<mode>): Renamed to ...
21773         (vec_extract<mode><non_vec_l>): ... this.
21774         (vec_init<mode>): Renamed to ...
21775         (vec_init<mode><non_vec_l>): ... this.
21776         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
21777         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
21778         vec_extract mode.
21779         * config/arm/iterators.md (V_elem_l): New mode attribute.
21780         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
21781         (vec_extract<mode><V_elem_l>): ... this.
21782         (vec_extractv2di): Renamed to ...
21783         (vec_extractv2didi): ... this.
21784         (vec_init<mode>): Renamed to ...
21785         (vec_init<mode><V_elem_l>): ... this.
21786         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
21787         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
21788         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
21789         Add element mode after gen_vec_extract* calls.
21790         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
21791         (vec_init<mode><unitmode>): ... this.
21792         (vec_extract<mode>): Renamed to ...
21793         (vec_extract<mode><unitmode>): ... this.
21794         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
21795         (vec_init<mode><unitmode>): ... this.
21796         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
21797         (vec_initv2sfsf): ... this.
21798         (vec_extractv2sf): Renamed to ...
21799         (vec_extractv2sfsf): ... this.
21800         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
21801         Add element mode after gen_vec_extract* calls.
21802         * config/mips/mips.md (unitmode): New mode iterator.
21803         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
21804         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
21805         * config/spu/spu.md (inner_l): New mode attribute.
21806         (vec_init<mode>): Renamed to ...
21807         (vec_init<mode><inner_l>): ... this.
21808         (vec_extract<mode>): Renamed to ...
21809         (vec_extract<mode><inner_l>): ... this.
21810         * config/sparc/sparc.md (veltmode): New mode iterator.
21811         (vec_init<VMALL:mode>): Renamed to ...
21812         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
21813         * config/ia64/vect.md (vec_initv2si): Renamed to ...
21814         (vec_initv2sisi): ... this.
21815         (vec_initv2sf): Renamed to ...
21816         (vec_initv2sfsf): ... this.
21817         (vec_extractv2sf): Renamed to ...
21818         (vec_extractv2sfsf): ... this.
21819         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
21820         (vec_init<mode>): Renamed to ...
21821         (vec_init<mode><VEC_base_l>): ... this.
21822         (vec_extract<mode>): Renamed to ...
21823         (vec_extract<mode><VEC_base_l>): ... this.
21824         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
21825         (vec_initv2sfsf): ... this.
21826         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
21827         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21828         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
21829         gen_vec_init* calls.
21830
21831 2017-08-01  Richard Biener  <rguenther@suse.de>
21832
21833         PR tree-optimization/81297
21834         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
21835         TREE_OVERFLOW from INTEGER_CSTs.
21836
21837 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
21838
21839         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
21840
21841 2017-07-31  Carl Love  <cel@us.ibm.com>
21842
21843         * config/rs6000/rs6000-c: Add support for built-in functions
21844         vector signed char vec_xl_be (signed long long, signed char *);
21845         vector unsigned char vec_xl_be (signed long long, unsigned char *);
21846         vector signed int vec_xl_be (signed long long, signed int *);
21847         vector unsigned int vec_xl_be (signed long long, unsigned int *);
21848         vector signed long long vec_xl_be (signed long long, signed long long *);
21849         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
21850         vector signed short vec_xl_be (signed long long, signed short *);
21851         vector unsigned short vec_xl_be (signed long long, unsigned short *);
21852         vector double vec_xl_be (signed long long, double *);
21853         vector float vec_xl_be (signed long long, float *);
21854         * config/rs6000/altivec.h (vec_xl_be): Add #define.
21855         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
21856         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
21857         for the builtins.
21858         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
21859         (altivec_expand_builtin): Add switch statement to call
21860         altivec_expand_xl_be for each builtin.
21861         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
21862         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
21863         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
21864         __builtin_vsx_le_be_v16qi.
21865         * doc/extend.texi: Update the built-in documentation file for the
21866         new built-in functions.
21867
21868 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21869
21870         PR target/25967
21871         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
21872         New function.
21873         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
21874
21875 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21876
21877         * config.gcc: Add z14.
21878         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
21879         CPU model numbers for z13s and z14.
21880         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
21881         arch12 with z14.
21882         * config/s390/s390-opts.h (enum processor_type): Rename
21883         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21884         * config/s390/s390.c (processor_table): Add field for CPU name to
21885         be passed to Binutils.
21886         (s390_asm_output_machine_for_arch): Use the new field in
21887         processor_table for Binutils.
21888         (s390_expand_builtin): Replace arch12 with z14.
21889         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
21890         (s390_get_sched_attrmask): Likewise.
21891         (s390_get_unit_mask): Likewise.
21892         * config/s390/s390.opt: Add z14 to processor_type enum.
21893
21894 2017-07-31  Martin Jambor  <mjambor@suse.cz>
21895
21896         PR hsa/81477
21897         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
21898         regardless of optimization level.
21899
21900 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
21901             Martin Liska  <mliska@suse.cz>
21902
21903         * predict.def: Remove old comment and adjust probability.
21904         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
21905         PREDICT statements.
21906
21907 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
21908
21909         PR target/25967
21910         * config/i386/i386.c (ix86_function_naked): New function.
21911         (ix86_can_use_return_insn_p): Return false for naked functions.
21912         (ix86_expand_prologue): Skip prologue for naked functions.
21913         (ix86_expand_epilogue): Skip epilogue for naked functions
21914         and emit trap instruction.
21915         (ix86_warn_func_return): New function.
21916         (ix86_attribute_table): Add "naked" attribute specification.
21917         (TARGET_WARN_FUNC_RETURN): Define.
21918         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
21919
21920 2017-07-31  Martin Liska  <mliska@suse.cz>
21921
21922         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
21923         (dump_gimple_bb_header): Always dump BB info.
21924         (pp_cfg_jump): Do not append info about BB when dumping a jump.
21925
21926 2017-07-31  Martin Liska  <mliska@suse.cz>
21927
21928         PR sanitize/81530
21929         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
21930         also with current_function_decl non-null equality.
21931
21932 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
21933
21934         PR sanitizer/81604
21935         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
21936         change type to the element type, instead add eltype variable and
21937         use it where we are interested in the element type.
21938
21939         PR tree-optimization/81603
21940         * ipa-polymorphic-call.c
21941         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
21942         offset arithmetic in offset_int, bail out if the resulting bit offset
21943         doesn't fit into shwi.
21944
21945 2017-07-31  Martin Liska  <mliska@suse.cz>
21946
21947         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
21948         (gimplify_save_expr): Fix comment.
21949
21950 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
21951
21952         PR target/79793
21953         * config/i386/i386.c (ix86_function_arg): Update arguments for
21954         exception handler.
21955         (ix86_compute_frame_layout): Set the initial stack offset to
21956         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
21957         INCOMING_FRAME_SP_OFFSET.
21958         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
21959         stack before exception handler returns.
21960         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
21961         the 'ERROR_CODE' for exception handler.
21962
21963 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
21964
21965         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
21966         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
21967         (ASM_OUTPUT_REG_POP): Ditto.
21968         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
21969         instead of asm_fprintf to output pure string.
21970
21971 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
21972
21973         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
21974         to imported_module_or_decl hook.
21975         (debug_nothing_tree_tree_tree_bool): Remove.
21976         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
21977         * debug.c (do_nothing_debug_hooks): Use
21978         debug_nothing_tree_tree_tree_bool_bool instead of
21979         debug_nothing_tree_tree_tree_bool.
21980         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
21981         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
21982         * sdbout.c (sdb_debug_hooks): Likewise.
21983         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
21984         (gen_namespace_die): Add DW_AT_export_symbols attribute if
21985         langhook wants it.
21986         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
21987         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
21988         attribute, don't add anything.
21989
21990 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21991
21992         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
21993         (fold_build2_stat_loc): Likewise.
21994         (fold_build3_stat_loc): Likewise.
21995         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
21996         (fold_build1_loc): Remove macro.
21997         (fold_build2_loc): Likewise.
21998         (fold_build3_loc): Likewise.
21999
22000 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22001
22002         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
22003         (gimple_build_debug_bind_source_stat): Likewise.
22004         * gimple.h (gimple_build_debug_bind): Remove macro.
22005         (gimple_build_debug_bind_source): Likewise.
22006
22007 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22008
22009         * bitmap.c (bitmap_alloc): Adjust.
22010         (bitmap_gc_alloc): Likewise.
22011         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
22012
22013 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22014
22015         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
22016         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
22017         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
22018         (bitmap_gc_alloc_stat): Likewise.
22019         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
22020
22021 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22022
22023         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
22024         * rtl.h (shallow_copy_rtx): Remove macro.
22025
22026 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22027
22028         * emit-rtl.c (gen_raw_REG): Adjust.
22029         * gengenrtl.c (gendef): Likewise.
22030         * rtl.c (rtx_alloc_stat): Remove _stat from name.
22031         * rtl.h (rtx_alloc): Remove macro.
22032
22033 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22034
22035         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
22036         (build_tree_list_stat): Likewise.
22037         * tree.h (build_tree_list): Remove macro.
22038         (build_tree_list_vec): Likewise.
22039
22040 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22041
22042         * tree.c (make_vector_stat): Remove _stat from name.
22043         (build_vector_stat): Likewise.
22044         * tree.h (make_vector_stat): Remove macro.
22045         (build_vector_stat): Likewise.
22046
22047 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22048
22049         * tree.h (build_var_debug_value): Remove prototype.
22050
22051 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22052
22053         * tree.c (tree_cons_stat): Remove _stat from name.
22054         * tree.h (tree_cons): Remove macro.
22055
22056 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22057
22058         * tree.c (build_vl_exp_stat): Remove _stat from name.
22059         * tree.h (build_vl_exp): Remove macro.
22060
22061 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22062
22063         * tree.c (build_decl_stat): Remove _stat from name.
22064         * tree.h (build_decl): Remove macro.
22065
22066 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22067
22068         * gimple.c (gimple_build_with_ops_stat): Adjust.
22069         (gimple_alloc_stat): Remove _stat from name.
22070         * gimple.h (gimple_alloc): Remove macro.
22071
22072 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22073
22074         * tree.c (make_tree_vec_stat): Remove _stat from name.
22075         (grow_tree_vec_stat): Likewise.
22076         * tree.h (make_tree_vec_stat): Adjust prototype.
22077         (grow_tree_vec_stat): Likewise.
22078         (make_tree_vec): Remove macro.
22079         (grow_tree_vec): Likewise.
22080
22081 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22082
22083         * fold-const.c (fold_build1_stat_loc): Adjust.
22084         (fold_build2_stat_loc): Likewise.
22085         (fold_build3_stat_loc): Likewise.
22086         * tree.c (build0_stat): Remove _stat from name.
22087         (build1_stat): Likewise.
22088         (build2_stat): Likewise.
22089         (build3_stat): Likewise.
22090         (build4_stat): Likewise.
22091         (build5_stat): Likewise.
22092         * tree.h (build1_loc): Remove macro, and rename _stat function
22093         to this.
22094         (build2_loc): Likewise.
22095         (build3_loc): Likewise.
22096         (build4_loc): Likewise.
22097         (build5_loc): Likewise.
22098
22099 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22100
22101         * tree.c (make_int_cst_stat): Remove _stat from name.
22102         * tree.h (make_int_cst_stat): Adjust prototype.
22103         (make_int_cst): Remove macro.
22104
22105 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22106
22107         * tree.c (make_tre_binfo_stat): Remove _stat from name.
22108         * tree.h (make_tree_binfo_stat): Adjust prototype.
22109         (make_tree_binfo): Remove.
22110
22111 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22112
22113         * tree.c (copy_node_stat): Rename to copy_node.
22114         (build_distinct_type_copy): Adjust.
22115         * tree.h (copy_node_stat): Adjust prototype.
22116         (copy_node): Remove macro.
22117
22118 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22119
22120         * tree.c (make_node_stat): rename to make_node.
22121         (build_tree_list_stat): Adjust.
22122         (build0_stat): Likewise.
22123         (build2_stat): Likewise.
22124         (build3_stat): Likewise.
22125         (build4_stat): Likewise.
22126         (build5_stat): Likewise.
22127         (build_decl_stat): Likewise.
22128         * tree.h (make_node_stat): Adjust prototype.
22129         (make_node): remove macro.
22130
22131 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
22132
22133         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
22134         (PPC_FEATURE2_SCV): Likewise.
22135         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
22136
22137 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22138
22139         * config/aarch64/aarch64.c
22140         (aarch64_internal_mov_immediate): Add new special pattern.
22141         * config/aarch64/aarch64.md (*movdi_aarch64):
22142         Add reg/32bit const mov case.
22143
22144 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22145             Richard Sandiford <richard.sandiford@linaro.org>
22146
22147         * config/aarch64/aarch64.md (mov<mode>): Generalize.
22148         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
22149         Add integer and movi cases.
22150         (movi-split-hf-df-sf split, fp16): New.
22151         (enabled): Added TARGET_FP_F16INST.
22152         * config/aarch64/iterators.md (GPF_HF): New.
22153         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
22154
22155 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22156
22157         * config/aarch64/aarch64.c
22158         (aarch64_simd_container_mode): Add prototype.
22159         (aarch64_expand_mov_immediate): Add HI support.
22160         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
22161         (aarch64_can_const_movi_rtx_p): New.
22162         (aarch64_preferred_reload_class):
22163         Remove restrictions of using FP registers for certain SIMD operations.
22164         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
22165         (aarch64_valid_floating_const): Add integer move validation.
22166         (aarch64_simd_imm_scalar_p): Remove.
22167         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
22168         (aarch64_legitimate_constant_p): Expand list of supported cases.
22169         * config/aarch64/aarch64-protos.h
22170         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
22171         (aarch64_reinterpret_float_as_int): New.
22172         (aarch64_simd_imm_scalar_p): Remove.
22173         * config/aarch64/constraints.md (Uvi): New.
22174         (Dd): Split into Ds and new Dd.
22175         * config/aarch64/aarch64.md (*movsi_aarch64):
22176         Add SIMD mov case.
22177         (*movdi_aarch64): Add SIMD mov case.
22178
22179 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22180
22181         * tree-predcom.c: (struct chain): Handle store-store chain in which
22182         stores for elimination only store loop invariant values.
22183         (execute_pred_commoning_chain): Ditto.
22184         (prepare_initializers_chain_store_elim): Ditto.
22185         (prepare_finalizers): Ditto.
22186         (is_inv_store_elimination_chain): New function.
22187         (initialize_root_vars_store_elim_1): New function.
22188
22189 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22190
22191         * tree-predcom.c: Revise general description of the pass.
22192         (enum chain_type): New enum type for store elimination.
22193         (struct chain): New field supporting store elimination.
22194         (struct component): Ditto.
22195         (dump_chain): Dump store-stores chain.
22196         (release_chain): Release resources.
22197         (split_data_refs_to_components): Compute and create component
22198         contains only stores for elimination.
22199         (get_chain_last_ref_at): New function.
22200         (make_invariant_chain): Initialization.
22201         (make_rooted_chain): Specify chain type in parameter and record it.
22202         (add_looparound_copies): Skip for store-stores chain.
22203         (determine_roots_comp): Compute type of chain and pass it to
22204         make_rooted_chain.
22205         (initialize_root_vars_store_elim_2): New function.
22206         (finalize_eliminated_stores): New function.
22207         (remove_stmt): Handle store for elimination.
22208         (execute_pred_commoning_chain): Execute predictive commoning on
22209         store-store chains.
22210         (determine_unroll_factor): Skip unroll for store-stores chain.
22211         (prepare_initializers_chain_store_elim): New function.
22212         (prepare_initializers_chain): Hanlde store-store chain.
22213         (prepare_finalizers_chain, prepare_finalizers): New function.
22214         (tree_predictive_commoning_loop): Return integer value indicating
22215         if loop is unrolled or lcssa form is corrupted.
22216         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
22217
22218 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22219
22220         * tree-predcom.c (initialize_root): Delete.
22221         (execute_pred_commoning_chain): Initialize root vars and replace
22222         reference of non-combined chain directly, rather than call above
22223         function.
22224
22225 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22226
22227         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
22228         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
22229
22230 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22231
22232         * tree-predcom.c (struct chain): New field init_seq.
22233         (release_chain): Release init_seq.
22234         (prepare_initializers_chain): Record intialization stmts in above
22235         field.
22236         (insert_init_seqs): New function.
22237         (tree_predictive_commoning_loop): Call insert_init_seqs.
22238
22239 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22240
22241         * tree-predcom.c (determine_roots_comp): Skip trivial components.
22242
22243 2017-07-28  Richard Biener  <rguenther@suse.de>
22244
22245         * match.pd: Remove superfluous :c.
22246         * genmatch.c (simplify::id): Add member.
22247         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
22248         Copy id.
22249         (current_id): New global.
22250         (dt_node::parent): Move from ...
22251         (dt_operand::parent): ... here.  Add for_id member.
22252         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
22253         (decision_tree::find_node): Relax order requirement when
22254         merging DT_TRUE nodes to ones inbetween the current simplify
22255         and the one we try to merge with.  Add diagnostic whenever
22256         we need to enforce pattern order by not merging.
22257         (decision_tree::insert): Set current_id.
22258         (decision_tree::print_node): Dump parent node and for_id.
22259         (parser::last_id): Add member.
22260         (parser::push_simplify): Assign unique id.
22261         (parser::parser): Initialize last_id.
22262
22263 2017-07-28  Martin Liska  <mliska@suse.cz>
22264
22265         PR sanitizer/81340
22266         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
22267         gimple_build_debug_bind.
22268
22269 2017-07-28  Richard Biener  <rguenther@suse.de>
22270
22271         PR tree-optimization/81502
22272         * match.pd: Add pattern combining BIT_INSERT_EXPR with
22273         BIT_FIELD_REF.
22274         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
22275         size/pos operands.
22276         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
22277         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
22278         for BIT_FIELD_REF args.
22279         * fold-const.c (make_bit_field_ref): Likewise.
22280         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
22281
22282 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22283
22284         PR sanitizer/80998
22285         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
22286         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
22287         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
22288         Or it into SANITIZER_UNDEFINED.
22289         * ubsan.c: Include gimple-fold.h and varasm.h.
22290         (ubsan_expand_ptr_ifn): New function.
22291         (instrument_pointer_overflow): New function.
22292         (maybe_instrument_pointer_overflow): New function.
22293         (instrument_object_size): Formatting fix.
22294         (pass_ubsan::execute): Call instrument_pointer_overflow
22295         and maybe_instrument_pointer_overflow.
22296         * internal-fn.c (expand_UBSAN_PTR): New function.
22297         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
22298         * sanitizer.def (__ubsan_handle_pointer_overflow,
22299         __ubsan_handle_pointer_overflow_abort): New builtins.
22300         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
22301         * internal-fn.def (UBSAN_PTR): New internal function.
22302         * opts.c (sanitizer_opts): Add pointer-overflow.
22303         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
22304         * fold-const.c (build_range_check): Compute pointer range check in
22305         integral type if pointer arithmetics would be needed.  Formatting
22306         fixes.
22307
22308 2017-07-28  Martin Liska  <mliska@suse.cz>
22309
22310         PR sanitizer/81460
22311         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
22312         parameters that are of a variable-length.
22313
22314 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22315
22316         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
22317         rs6000/biarch64.h.
22318         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
22319         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
22320         (CRT_CALL_STATIC_FUNCTION): Likewise.
22321         (ASM_DEFAULT_SPEC): New define.
22322         (ASM_SPEC32): Likewise.
22323         (ASM_SPEC64): Likewise.
22324         (ASM_SPEC_COMMON): Likewise.
22325         (ASM_SPEC): Likewise.
22326         (INVALID_64BIT): Likewise.
22327         (LINK_OS_DEFAULT_SPEC): Likewise.
22328         (LINK_OS_SPEC32): Likewise.
22329         (LINK_OS_SPEC64): Likewise.
22330         (POWERPC_LINUX): Likewise.
22331         (PTRDIFF_TYPE): Likewise.
22332         (RESTORE_FP_PREFIX): Likewise.
22333         (RESTORE_FP_SUFFIX): Likewise.
22334         (SAVE_FP_PREFIX): Likewise.
22335         (SAVE_FP_SUFFIX): Likewise.
22336         (SIZE_TYPE): Likewise.
22337         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
22338         (TARGET_64BIT): Likewise.
22339         (TARGET_64BIT): Likewise.
22340         (TARGET_AIX): Likewise.
22341         (WCHAR_TYPE_SIZE): Likewise.
22342         (WCHAR_TYPE): Undefine.
22343         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
22344         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
22345         (CPP_OS_RTEMS_SPEC): Delete.
22346         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
22347         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
22348         link_os_spec64.
22349         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
22350
22351 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22352
22353         PR tree-optimization/81578
22354         * tree-parloops.c (build_new_reduction): Bail out if
22355         reduction_code isn't one of the standard OpenMP reductions.
22356         Move the details printing after that decision.
22357
22358 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22359
22360         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
22361         related to reload_in_progress.
22362         (splat_input_operand): Likewise.
22363         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
22364         Delete prototype.
22365         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
22366         field.
22367         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
22368         (TARGET_INSTANTIATE_DECLS): Likewise.
22369         (legitimate_indexed_address_p): Delete reload_in_progress code.
22370         (rs6000_debug_legitimate_address_p): Likewise.
22371         (rs6000_eliminate_indexed_memrefs): Likewise.
22372         (rs6000_emit_le_vsx_store): Likewise.
22373         (rs6000_emit_move_si_sf_subreg): Likewise.
22374         (rs6000_emit_move): Likewise.
22375         (register_to_reg_type): Likewise.
22376         (rs6000_pre_atomic_barrier): Likewise.
22377         (rs6000_machopic_legitimize_pic_address): Likewise.
22378         (rs6000_allocate_stack_temp): Likewise.
22379         (rs6000_address_for_fpconvert): Likewise.
22380         (rs6000_address_for_altivec): Likewise.
22381         (rs6000_secondary_memory_needed_rtx): Delete function.
22382         (rs6000_check_sdmode): Likewise.
22383         (rs6000_alloc_sdmode_stack_slot): Likewise.
22384         (rs6000_instantiate_decls): Likewise.
22385         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
22386         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
22387         Delete reload_in_progress.
22388         (*vec_reload_and_plus_<mptrsize>): Likewise.
22389         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
22390         (vsx_div_v2di): Likewise.
22391         (vsx_udiv_v2di): Likewise.
22392
22393 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22394
22395         * config/rs6000/rs6000.opt (mlra): Replace with stub.
22396         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
22397         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
22398         (rs6000_debug_reg_global): Delete print of LRA status.
22399         (rs6000_option_override_internal): Delete dead LRA related code.
22400         (rs6000_lra_p): Delete function.
22401         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
22402
22403 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22404
22405         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
22406         * config/riscv/rtems.h: New file.
22407
22408 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22409             Sudakshina Das  <sudi.das@arm.com>
22410
22411         * config/aarch64/aarch64.md
22412         (define_split for and<mode>3nr_compare): Move
22413         non aarch64_logical_operand to a register.
22414         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
22415         register immediate operand to a register.
22416         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
22417
22418 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22419
22420         PR middle-end/81564
22421         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
22422
22423 2017-07-27  Richard Biener  <rguenther@suse.de>
22424
22425         PR tree-optimization/81573
22426         PR tree-optimization/81494
22427         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22428         multi defuse cycle case.
22429
22430 2017-07-27  Richard Biener  <rguenther@suse.de>
22431
22432         PR tree-optimization/81571
22433         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
22434         PHIs.
22435
22436 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
22437
22438         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
22439         earlier and only if MASK_FPU is set.  Adjust formatting.
22440
22441 2017-07-27  Martin Liska  <mliska@suse.cz>
22442
22443         * opt-functions.awk: Add validation of value of Init.
22444         * optc-gen.awk: Pass new argument.
22445
22446 2017-07-27  Martin Liska  <mliska@suse.cz>
22447
22448         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
22449         Fix wrong condition.
22450
22451 2017-07-27  Martin Liska  <mliska@suse.cz>
22452
22453         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
22454         BBs and edges seen by autoFDO.
22455
22456 2017-07-27  Richard Biener  <rguenther@suse.de>
22457
22458         PR tree-optimization/81502
22459         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
22460         with incompatible but same sized type.
22461         (execute_update_addresses_taken): Likewise.
22462
22463 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
22464
22465         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
22466         flag_tree_loop_vectorize rather than flag_tree_vectorize.
22467
22468 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22469
22470         PR target/81534
22471         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
22472         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
22473         Change s_operand to memory_operand.
22474
22475 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
22476
22477         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
22478         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
22479         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
22480         Emit instructions rather than returning an expression.  Handle TFmode
22481         and KFmode by casting to TImode.
22482         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
22483         (rs6000_emit_le_vsx_store): Likewise.
22484         * config/rs6000/vsx.md (VSX_TI): New iterator.
22485         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
22486         (*vsx_le_undo_permute_<mode>): Likewise.
22487         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
22488         emit the split sequence.
22489         (*vsx_le_perm_store_<mode>): Likewise.
22490
22491 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
22492
22493         PR tree-optimization/81555
22494         PR tree-optimization/81556
22495         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
22496         if true, force CHANGED for the recursive invocation.
22497         (reassociate_bb): Remember original length of ops array, pass
22498         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
22499
22500         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
22501         attributes for noipa attribute.  For naked attribute use
22502         lookup_attribute first before lookup_attribute_spec.
22503         * final.c (rest_of_handle_final): Disable IPA RA for functions with
22504         noipa attribute.
22505         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
22506         for functions with noipa attribute.
22507         (cgraph_externally_visible_p): Return true for functions with noipa
22508         attribute.
22509         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
22510         for functions with noipa attribute.
22511         * doc/extend.texi: Document noipa function attribute.
22512         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
22513         also for functions with noipa attribute.
22514         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
22515
22516 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22517
22518         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
22519         vec_unalign_load_cost and vec_unalign_store_cost.
22520
22521 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22522
22523         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
22524         -mvsx-small-integer option.
22525         (ISA_3_0_MASKS_IEEE): Likewise.
22526         (OTHER_VSX_VECTOR_MASKS): Likewise.
22527         (POWERPC_MASKS): Likewise.
22528         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
22529         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
22530         code, only testing for DImode being allowed in non-VSX floating
22531         point registers.
22532         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
22533         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
22534         another VSX test.
22535         (rs6000_option_override_internal): Delete -mvsx-small-integer.
22536         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
22537         TARGET_P8_VECTOR test.
22538         (rs6000_secondary_reload_simple_move): Likewise.
22539         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
22540         since TARGET_P9_VECTOR was already tested.
22541         (rs6000_opt_masks): Remove -mvsx-small-integer.
22542         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
22543         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22544         used.
22545         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
22546         test for TARGET_VEXTRACTUB was used, and that uses
22547         TARGET_P9_VECTOR.
22548         (p9 extract splitter): Likewise.
22549         (vsx_extract_<mode>_di_p9): Likewise.
22550         (vsx_extract_<mode>_store_p9): Likewise.
22551         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
22552         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
22553         the elimination of TARGET_VSX_SMALL_INTEGER.
22554         (vsx_extract_<mode>_p8): Likewise.
22555         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
22556         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
22557         (vsx_set_<mode>_p9): Likewise.
22558         (vsx_set_v4sf_p9): Likewise.
22559         (vsx_set_v4sf_p9_zero): Likewise.
22560         (vsx_insert_extract_v4sf_p9): Likewise.
22561         (vsx_insert_extract_v4sf_p9_2): Likewise.
22562         * config/rs6000/rs6000.md (sign extend splitter): Change
22563         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
22564         (floatsi<mode>2_lfiwax_mem): Likewise.
22565         (floatunssi<mode>2_lfiwzx_mem): Likewise.
22566         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
22567         since a test for TARGET_P9_VECTOR was used.
22568         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22569         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
22570         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22571         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22572         TARGET_P8_VECTOR test.
22573         (fix_trunc<mode>si2_stfiwx): Likewise.
22574         (fix_trunc<mode>si2_internal): Likewise.
22575         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
22576         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22577         used.
22578         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22579         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22580         TARGET_P8_VECTOR test.
22581         (fixuns_trunc<mode>si2_stfiwx): Likewise.
22582         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
22583         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22584         used.
22585         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22586         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
22587         since a test for TARGET_P9_VECTOR was used.
22588         (splitter for loading small constants): Likewise.
22589
22590 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22591
22592         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
22593         vec_fp_stmt_cost.
22594
22595 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
22596
22597         PR target/81563
22598         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
22599         (fp_valid_at): Likewise.
22600
22601 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22602
22603         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
22604         (qdf24xx_addrcost_table): Likewise.
22605         (cortexa57_tunings): Update to use generic_branch_cost.
22606         (cortexa72_tunings): Likewise.
22607         (cortexa73_tunings): Likewise.
22608         (qdf24xx_tunings): Likewise.
22609
22610 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22611
22612         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
22613         (thunderx2t99_branch_cost): Likewise.
22614         (cortexa35_tunings): Update to use generic_branch_cost.
22615         (cortexa53_tunings): Likewise.
22616         (cortexa57_tunings): Likewise.
22617         (cortexa72_tunings): Likewise.
22618         (cortexa73_tunings): Likewise.
22619         (thunderx2t99_tunings): Likewise.
22620
22621 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22622
22623         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
22624         (sparc_option_override): Honour MASK_FSMULD.
22625         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
22626         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
22627         * config/sparc/sparc.opt (mfsmuld): New option.
22628         * doc/invoke.texi (mfsmuld): Document option.
22629
22630 2017-07-26  Marek Polacek  <polacek@redhat.com>
22631
22632         PR middle-end/70992
22633         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
22634
22635 2017-07-26  Richard Biener  <rguenther@suse.de>
22636
22637         * gimple-match-head.c (do_valueize): Return OP if valueize
22638         returns NULL_TREE.
22639         (get_def): New helper to get at the def stmt of a SSA name
22640         if valueize allows.
22641         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
22642         do_valueize to get at the def stmt.
22643         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
22644
22645 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
22646
22647         PR middle-end/46932
22648         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
22649
22650 2017-07-26  Martin Liska  <mliska@suse.cz>
22651
22652         PR sanitize/81186
22653         * function.c (expand_function_start): Make expansion of
22654         nonlocal_goto_save_area after parm_birth_insn.
22655
22656 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22657
22658         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
22659         from all CPU target flags enable members.
22660
22661 2017-07-26  Richard Biener  <rguenther@suse.de>
22662
22663         * genmatch.c (dt_simplify::gen): Make iterator vars const.
22664         (decision_tree::gen): Make 'type' const.
22665         (write_predicate): Likewise.
22666
22667 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22668
22669         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
22670         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
22671         (rs6000_option_override_internal): Likewise.
22672         (rs6000_expand_vector_set): Likewise.
22673         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
22674         (TARGET_UPPER_REGS_SF): Likewise.
22675         (TARGET_UPPER_REGS_DI): Likewise.
22676         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
22677         (TARGET_DIRECT_MOVE_64BIT): Likewise.
22678         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
22679         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22680         (Splitters for DI constants in Altivec registers): Likewise.
22681         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
22682         (vsx_set_v4sf_p9): Likewise.
22683         (vsx_set_v4sf_p9_zero): Likewise.
22684         (vsx_insert_extract_v4sf_p9): Likewise.
22685         (vsx_insert_extract_v4sf_p9_2): Likewise.
22686
22687 2017-07-25  Carl Love  <cel@us.ibm.com>
22688
22689         * doc/extend.texi: Update the built-in documentation file for the
22690         existing built-in functions
22691         vector signed char vec_cnttz (vector signed char);
22692         vector unsigned char vec_cnttz (vector unsigned char);
22693         vector signed short vec_cnttz (vector signed short);
22694         vector unsigned short vec_cnttz (vector unsigned short);
22695         vector signed int vec_cnttz (vector signed int);
22696         vector unsigned int vec_cnttz (vector unsigned int);
22697         vector signed long long vec_cnttz (vector signed long long);
22698         vector unsigned long long vec_cnttz (vector unsigned long long);
22699
22700 2017-07-25  Andrew Pinski  <apinski@cavium.com>
22701
22702         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
22703         accesses where the use is for the first operand of a BIT_INSERT.
22704
22705 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22706
22707         PR bootstrap/81521
22708         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22709         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22710
22711 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22712
22713         * config/i386/gstabs.h: Delete.
22714         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
22715
22716 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
22717
22718         * config/i386/i386.c (ix86_decompose_address): Do not check for
22719         register RTX when looking at index_reg or base_reg.
22720         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
22721
22722 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
22723
22724         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
22725         to update EH info here.
22726
22727 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22728
22729         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
22730
22731 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22732
22733         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
22734
22735 2017-07-25  Torsten Duwe  <duwe@suse.de>
22736
22737         * common.opt: Introduce -fpatchable-function-entry
22738         command line option, and its variables function_entry_patch_area_size
22739         and function_entry_patch_area_start.
22740         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
22741         including a two-value parser.
22742         * target.def (print_patchable_function_entry): New target hook.
22743         * targhooks.h (default_print_patchable_function_entry): New function.
22744         * targhooks.c (default_print_patchable_function_entry): Likewise.
22745         * toplev.c (process_options): Switch off IPA-RA if
22746         patchable function entries are being generated.
22747         * varasm.c (assemble_start_function): Look at the
22748         patchable-function-entry command line switch and current
22749         function attributes and maybe generate NOP instructions by
22750         calling the print_patchable_function_entry hook.
22751         * doc/extend.texi: Document patchable_function_entry attribute.
22752         * doc/invoke.texi: Document -fpatchable_function_entry
22753         command line option.
22754         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
22755         New target hook.
22756         * doc/tm.texi: Re-generate.
22757
22758 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
22759
22760         PR target/81532
22761         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
22762         TARGET_AVX512DQ rather than TARGET_AVX512BW.
22763
22764 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
22765
22766         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
22767
22768 2017-07-25  Richard Biener  <rguenther@suse.de>
22769
22770         PR tree-optimization/81455
22771         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
22772         not walk in cycles when looking for guards.
22773
22774 2017-07-25  Richard Biener  <rguenther@suse.de>
22775
22776         PR tree-optimization/81529
22777         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
22778         when optimizing backedge uses.
22779
22780 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
22781
22782         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
22783         character for AIX.
22784         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
22785         to dl_section_ref.  On AIX, append an expression to subtract
22786         the size of the section length to dl_section_ref.
22787
22788 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
22789
22790         * configure.ac: If any of the config.* scripts fail, exit 1.
22791         * configure: Regenerate.
22792
22793 2017-07-25  Richard Biener  <rguenther@suse.de>
22794
22795         PR middle-end/81546
22796         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
22797         of immediate uses, be more verbose on errors.
22798
22799 2017-07-25  Richard Biener  <rguenther@suse.de>
22800
22801         PR tree-optimization/81510
22802         * tree-vect-loop.c (vect_is_simple_reduction): When the
22803         reduction stmt is not inside the loop bail out.
22804
22805 2017-07-25  Richard Biener  <rguenther@suse.de>
22806
22807         PR tree-optimization/81303
22808         * tree-vect-loop-manip.c (vect_loop_versioning): Build
22809         profitability check against LOOP_VINFO_NITERSM1.
22810
22811 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22812
22813         * domwalk.c (cmp_bb_postorder): Simplify.
22814         (sort_bbs_postorder): New function.  Use it...
22815         (dom_walker::walk): ...here to optimize common cases.
22816
22817 2017-07-25  Martin Liska  <mliska@suse.cz>
22818
22819         PR ipa/81520
22820         * ipa-visibility.c (function_and_variable_visibility): Make the
22821         redirection just on target that supports aliasing.
22822         Fix GNU coding style.
22823
22824 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22825
22826         PR libgcc/61152
22827         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
22828         Format changes.
22829         * config/arm/rtems.h: Likewise.
22830         * config/bfin/rtems.h: Likewise.
22831         * config/i386/rtemself.h: Likewise.
22832         * config/lm32/rtems.h: Likewise.
22833         * config/m32c/rtems.h: Likewise.
22834         * config/m68k/rtemself.h: Likewise.
22835         * config/microblaze/rtems.h: Likewise.
22836         * config/mips/rtems.h: Likewise.
22837         * config/moxie/rtems.h: Likewise.
22838         * config/nios2/rtems.h: Likewise.
22839         * config/powerpcspe/rtems.h: Likewise.
22840         * config/rs6000/rtems.h: Likewise.
22841         * config/rtems.h: Likewise.
22842         * config/sh/rtems.h: Likewise.
22843         * config/sh/rtemself.h: Likewise.
22844         * config/sparc/rtemself.h: Likewise.
22845
22846 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22847
22848         PR 81487
22849         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
22850         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
22851         * tree-ssa-structalias.c (alias_get_name): Same.
22852
22853 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
22854
22855         PR target/81414
22856         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
22857         instructions if no du chain is found.
22858
22859 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22860
22861         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
22862
22863 2017-07-25  Richard Biener  <rguenther@suse.de>
22864
22865         PR middle-end/81505
22866         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
22867         sticky.
22868
22869 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22870
22871         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
22872         upper-regs options.
22873         (ISA_2_7_MASKS_SERVER): Likewise.
22874         (ISA_3_0_MASKS_IEEE): Likewise.
22875         (OTHER_P8_VECTOR_MASKS): Likewise.
22876         (OTHER_VSX_VECTOR_MASKS): Likewise.
22877         (POWERPC_MASKS): Likewise.
22878         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
22879         duplicate list of options.
22880         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
22881         explicit -mupper-regs options.
22882         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
22883         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
22884         alias for -mupper-regs-df.
22885         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
22886         (rs6000_init_hard_regno_mode_ok): Likewise.
22887         (rs6000_option_override_internal): Likewise.
22888         (rs6000_opt_masks): Likewise.
22889         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
22890         options in terms of whether -mvsx or -mpower8-vector was used.
22891         (TARGET_UPPER_REGS_DI): Likewise.
22892         (TARGET_UPPER_REGS_SF): Likewise.
22893         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
22894         -mupper-regs-* options.
22895
22896 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22897
22898         * passes.c (emergency_dump_function): Print some empty lines and a
22899         header before the RTL dump.
22900
22901 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
22902
22903         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
22904
22905 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
22906
22907         PR target/79041
22908         * config/aarch64/aarch64.c (aarch64_classify_symbol):
22909         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
22910
22911 2017-07-24  Carl Love  <cel@us.ibm.com>
22912
22913         * config/rs6000/rs6000-c.c: Add support for built-in functions
22914         vector float vec_extract_fp32_from_shorth (vector unsigned short);
22915         vector float vec_extract_fp32_from_shortl (vector unsigned short);
22916         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
22917         vec_extract_fp_from_shortl): Add defines for the two builtins.
22918         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
22919         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
22920         new builtins.
22921         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
22922         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
22923         * doc/extend.texi: Update the built-in documentation file for the
22924         new built-in function.
22925
22926 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
22927
22928         PR bootstrap/81521
22929         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
22930         documentation.
22931         * doc/generic.texi: Likewise.
22932         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22933         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22934
22935 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
22936
22937         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
22938         (aarch64_mls_elt_merge<mode>): Likewise.
22939
22940 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
22941
22942         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
22943         having __cxa_atexit.
22944
22945 2017-07-23  Michael Collison  <michael.collison@arm.com>
22946
22947         * config/arm/arm.c (arm_option_override): Deprecate
22948         use of -mstructure-size-boundary.
22949         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
22950         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
22951
22952 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22953
22954         PR target/80695
22955         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
22956         Reduce cost estimate for direct moves.
22957
22958 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
22959
22960         PR target/80569
22961         * config/i386/i386.c (ix86_option_override_internal): Disable
22962         BMI, BMI2 and TBM instructions for -m16.
22963
22964 2017-07-21  Carl Love  <cel@us.ibm.com>
22965
22966         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22967         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
22968         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
22969         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
22970         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
22971         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
22972         VMULOSW): New enum "unspec" values.
22973         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
22974         altivec_vmulosw): New patterns.
22975         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
22976         VMULOSW): Add definitions.
22977
22978 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
22979
22980         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
22981         (qdf24xx): Likewise.
22982         * config/aarch64/aarch64-options-extensions.def (rdma); New.
22983         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
22984         (AARCH64_FL_V8_1): Renumber.
22985         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
22986         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
22987         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
22988         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
22989         rdma to feature modifiers list.
22990
22991 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
22992
22993         PR middle-end/56727
22994         * ipa-visibility (function_and_variable_visibility): Convert
22995         recursive PLT call to direct call if appropriate.
22996
22997 2017-07-21  Andrew Pinski  <apinski@cavium.com>
22998
22999         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
23000         operand 1 to see if the types precision matches.
23001         * fold-const.c (operand_equal_p): Likewise.
23002
23003 2017-07-21  Richard Biener  <rguenther@suse.de>
23004
23005         PR tree-optimization/81303
23006         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
23007         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
23008         (vect_peeling_hash_get_lowest_cost): Adjust.
23009         (vect_enhance_data_refs_alignment): Likewise.  Use
23010         vect_get_peeling_costs_all_drs to compute the penalty for no
23011         peeling to match up costs.
23012
23013 2017-07-21  Richard Biener  <rguenther@suse.de>
23014
23015         PR tree-optimization/81500
23016         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
23017         we didn't identify a reduction path.
23018
23019 2017-07-21  Tom de Vries  <tom@codesourcery.com>
23020             Cesar Philippidis  <cesar@codesourcery.com>
23021
23022         PR gcov-profile/81442
23023         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
23024         probabilities.
23025
23026 2017-07-21  Tom de Vries  <tom@codesourcery.com>
23027
23028         PR lto/81430
23029         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
23030         function.
23031         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
23032         nvptx_override_options_after_change.
23033
23034 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
23035
23036         * dwarf2out.c (output_file_names): Avoid double testing for
23037         dwarf_version >= 5.
23038
23039 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
23040
23041         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
23042
23043 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
23044
23045         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
23046         hot/cold regions.
23047         (try_crossjump_to_edge): Do not punt on partitioned functions.
23048
23049 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
23050
23051         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
23052         Put all BBs reachable only via paths crossing cold region to cold
23053         region.
23054         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
23055
23056 2016-07-21  Richard Biener  <rguenther@suse.de>
23057
23058         PR tree-optimization/81303
23059         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
23060         into account prologue and epilogue iterations when raising
23061         min_profitable_iters to sth at least covering one vector iteration.
23062
23063 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
23064
23065         * config/arm/arm.c (arm_test_cpu_arch_dat):
23066         Check for overlap.
23067
23068 2017-07-20  Nathan Sidwell  <nathan@acm.org>
23069
23070         Remove TYPE_METHODS.
23071         * tree.h (TYPE_METHODS): Delete.
23072         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
23073         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
23074         (dbxout_type_methods): Scan TYPE_FIELDS.
23075         (dbxout_type): Don't check TYPE_METHODS here.
23076         * function.c (use_register_for_decl): Always ignore register for
23077         class types when not optimizing.
23078         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
23079         * tree.c (free_lang_data_in_type): Stitch out member functions and
23080         templates from TYPE_FIELDS.
23081         (build_distinct_type_copy, verify_type_variant,
23082         verify_type): Member fns are on TYPE_FIELDS.
23083         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
23084         * tree-pretty-print.c (dump_generic_node): Likewise.
23085
23086 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
23087
23088         PR target/80846
23089         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
23090         V2TImode and V4TImode.
23091         (ix86_expand_vector_extract): Likewise.
23092         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
23093         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
23094         (ssescalarmode): Handle V4TImode and V2TImode.
23095         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
23096         (*vec_extractv2ti, *vec_extractv4ti): New insns.
23097         (VEXTRACTI128_MODE): New mode iterator.
23098         (splitter for *vec_extractv?ti first element): New.
23099         (VEC_INIT_MODE): New mode iterator.
23100         (vec_init<mode>): Consolidate 3 expanders into one using
23101         VEC_INIT_MODE mode iterator.
23102
23103 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23104
23105         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
23106         non_spilled_static_chain_regno_p.
23107
23108 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23109
23110         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
23111
23112 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
23113
23114         * bb-reorder.c (connect_traces): Allow copying of blocks within
23115         single partition.
23116
23117 2017-07-20  Richard Biener  <rguenther@suse.de>
23118
23119         * gimple.h (gimple_phi_result): Add gphi * overload.
23120         (gimple_phi_result_ptr): Likewise.
23121         (gimple_phi_arg): Likewise.  Adjust index assert to only
23122         allow actual argument accesses rather than all slots available
23123         by capacity.
23124         (gimple_phi_arg_def): Add gphi * overload.
23125         * tree-phinodes.c (make_phi_node): Initialize only actual
23126         arguments.
23127         (resize_phi_node): Clear memory not covered by old node,
23128         do not initialize excess argument slots.
23129         (reserve_phi_args_for_new_edge): Initialize new argument slot
23130         completely.
23131
23132 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
23133
23134         PR tree-optimization/81388
23135         Revert r238585:
23136         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
23137
23138         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
23139         by removing computation of may_be_zero.
23140
23141 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23142             Tom de Vries  <tom@codesourcery.com>
23143
23144         PR middle-end/81030
23145         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
23146         when gimple level profile disagrees with what RTL expander did.
23147
23148 2017-07-20  Richard Biener  <rguenther@suse.de>
23149
23150         PR tree-optimization/61171
23151         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
23152         (vect_analyze_stmt): Add slp instance parameter.
23153         (vectorizable_reduction): Likewise.
23154         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
23155         (vect_is_simple_reduction): Deal with chains not detected
23156         as SLP reduction chain, specifically not properly associated
23157         chains containing a mix of plus/minus.
23158         (get_reduction_op): Remove.
23159         (get_initial_defs_for_reduction): Simplify, pass in whether
23160         this is a reduction chain, pass in the SLP node for the PHIs.
23161         (vect_create_epilog_for_reduction): Get the SLP instance as
23162         arg and adjust.
23163         (vectorizable_reduction): Get the SLP instance as arg.
23164         During analysis remember the SLP node with the PHIs in the
23165         instance.  Simplify getting at the vectorized reduction PHIs.
23166         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
23167         through SLP instance.
23168         (vect_slp_analyze_operations): Likewise.
23169         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
23170         (vect_transform_stmt): Likewise.
23171
23172 2017-07-20  Tom de Vries  <tom@codesourcery.com>
23173
23174         PR tree-optimization/81489
23175         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
23176         read of phi arg location to before loop that modifies phi.
23177
23178 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23179
23180         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
23181         New pattern.
23182
23183 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23184
23185         PR middle-end/81331
23186         * except.c (execute): Fix ordering issue.
23187
23188 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23189
23190         PR rtl-optimization/81423
23191         * combine.c (make_compound_operation_int): Don't try to optimize
23192         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
23193
23194 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23195
23196         PR rtl-optimization/81423
23197         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
23198         with a constant that is -1 in the truncated to mode.
23199
23200 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23201
23202         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
23203         (determine_unlikely_bbs): ... here.
23204         * predict.h (propagate_unlikely_bbs_forward): Declare.
23205         * cfgexpand.c (pass_expand::execute): Use it.
23206         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
23207         unlikely edges.
23208         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
23209         propagate_unlikely_bbs_forward.
23210
23211 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23212
23213         PR middle-end/81331
23214         * except.c (maybe_add_nop_after_section_switch): New function.
23215         (execute): Use it.
23216
23217 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23218
23219         * gimple.h (gimple_phi_set_arg): Make assert more strict.
23220
23221 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23222
23223         * gimple.h (gimple_phi_arg): Make assert more strict.
23224
23225 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
23226
23227         * config.gcc (powerpc*-*-*): Add mmintrin.h.
23228         * config/rs6000/mmintrin.h: New file.
23229         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
23230
23231 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23232
23233         PR tree-optimization/81346
23234         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
23235
23236 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23237
23238         * config/nvptx/nvptx.md (VECIM): Add V2DI.
23239
23240 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23241
23242         * config/nvptx/nvptx-modes.def: Add V2DImode.
23243         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
23244         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
23245         (nvptx_output_mov_insn): Handle lack of mov.b128.
23246         (nvptx_print_operand): Handle 'H' and 'L' codes.
23247         (nvptx_vector_mode_supported): Allow V2DImode.
23248         (nvptx_preferred_simd_mode): New function.
23249         (nvptx_data_alignment): New function.
23250         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
23251         nvptx_preferred_simd_mode.
23252         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
23253         64 to 128 bits.
23254         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
23255
23256 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23257
23258         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
23259         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
23260         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
23261         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
23262         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
23263         (mov<VECIM>_insn): New define_insn.
23264         (define_expand "mov<VECIM>): New define_expand.
23265
23266 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23267
23268         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
23269
23270 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23271
23272         PR tree-optimization/81346
23273         * fold-const.h (fold_div_compare, range_check_type): Declare.
23274         * fold-const.c (range_check_type): New function.
23275         (build_range_check): Use range_check_type.
23276         (fold_div_compare): No longer static, rewritten into
23277         a match.pd helper function.
23278         (fold_comparison): Don't call fold_div_compare here.
23279         * match.pd (X / C1 op C2): New optimization using fold_div_compare
23280         as helper function.
23281
23282 2017-07-19  Nathan Sidwell  <nathan@acm.org>
23283
23284         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
23285         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
23286         * tree.c (find_decls_types_r, verify_type): Use
23287         TYPE_{MIN,MAX}_VALUE_RAW.
23288         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
23289         (hash_tree): Likewise.
23290         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
23291         Likewise.
23292         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
23293         Likewise.
23294
23295 2017-07-18  Tom de Vries  <tom@codesourcery.com>
23296
23297         PR middle-end/81464
23298         * omp-expand.c (expand_omp_for_static_chunk): Handle
23299         equal-argument loop exit phi.
23300
23301 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
23302
23303         PR target/81471
23304         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
23305         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
23306         operand 2 predicate.
23307         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
23308         operand 2 predicate.
23309         (ror,rol -> rorx splitters): Use const_int_operand as
23310         operand 2 predicate.
23311
23312 2017-06-18  Richard Biener  <rguenther@suse.de>
23313
23314         PR tree-optimization/81410
23315         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
23316         the gap in the ! slp_perm SLP case after each group.
23317
23318 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23319
23320         PR middle-end/81463
23321         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
23322         again.
23323
23324 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23325
23326         PR middle-end/81462
23327         * predict.c (set_even_probabilities): Cleanup; do not affect
23328         probabilities that are already known.
23329         (combine_predictions_for_bb): Call even when count is set.
23330
23331 2017-07-18  Nathan Sidwell  <nathan@acm.org>
23332
23333         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
23334         TYPE_MAX_VALUE.
23335
23336 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23337
23338         PR target/81408
23339         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
23340         optimization for loop niter analysis.
23341
23342 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
23343
23344         PR target/81473
23345         * config/avr/avr.c (avr_optimize_casesi): Don't use
23346         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
23347
23348 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
23349
23350         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
23351         body_cost_vec from _vect_peel_extended_info.
23352         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
23353         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
23354         npeel.
23355
23356 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23357
23358         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
23359
23360 2017-07-18  Richard Biener  <rguenther@suse.de>
23361
23362         PR tree-optimization/80620
23363         PR tree-optimization/81403
23364         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
23365         info when re-using a VN table entry.
23366
23367 2017-07-18  Richard Biener  <rguenther@suse.de>
23368
23369         PR tree-optimization/81418
23370         * tree-vect-loop.c (vectorizable_reduction): Properly compute
23371         vectype_in.  Verify that with lane-reducing reduction operations
23372         we have a single def-use cycle.
23373
23374 2017-07-17  Carl Love  <cel@us.ibm.com>
23375
23376         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
23377
23378         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23379         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
23380         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
23381         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
23382         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
23383         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
23384         VMULOSW): New enum "unspec" values.
23385         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
23386         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
23387         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
23388         altivec_vmulosw): New patterns.
23389         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
23390         VMULOSW): Add definitions.
23391
23392 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
23393
23394         * config/alpha/alpha.c: Include predict.h.
23395
23396 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
23397
23398         * tree-vrp.c (compare_assert_loc): Fix comparison function
23399         to return predictable results.
23400
23401 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23402
23403         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
23404         option.
23405         (subdi3): Likewise.
23406         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
23407         * doc/invoke.texi (mexpand-adddi): Update text.
23408
23409 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23410
23411         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
23412         that also clobbers the CC register. The old expand code is moved
23413         to ...
23414         (*arc_clzsi2): ... here.
23415         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
23416         the CC register. The old expand code is moved to ...
23417         (arc_ctzsi2): ... here.
23418
23419 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23420
23421         * config/arc/arc.opt (mindexed-loads): Use initial value
23422         TARGET_INDEXED_LOADS_DEFAULT.
23423         (mauto-modify-reg): Use initial value
23424         TARGET_AUTO_MODIFY_REG_DEFAULT.
23425         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23426         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23427         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23428         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23429
23430 2017-07-17  Martin Liska  <mliska@suse.cz>
23431
23432         PR sanitizer/81302
23433         * opts.c (finish_options): Do not allow -fgnu-tm
23434         w/ -fsanitize={kernel-,}address.  Say sorry.
23435
23436 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23437
23438         PR target/81369
23439         * tree-loop-distribution.c (classify_partition): Only assert on
23440         numer of iterations.
23441         (merge_dep_scc_partitions): Delete prameter.  Update function call.
23442         (distribute_loop): Remove code handling loop with unknown niters.
23443         (pass_loop_distribution::execute): Skip loop with unknown niters.
23444
23445 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23446
23447         PR target/81369
23448         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
23449         function sort_partitions_by_post_order.
23450
23451 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23452
23453         PR tree-optimization/81374
23454         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
23455         the max index of basic blocks, rather than number of basic blocks.
23456
23457 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23458
23459         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
23460         proto.
23461         (arc_legitimate_pic_operand_p): Likewise.
23462         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
23463         function.
23464         (arc_needs_pcl_p): Likewise.
23465         (arc_legitimate_pc_offset_p): Likewise.
23466         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
23467         function is also used in constrains.md.
23468         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
23469         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
23470         PLUS.  Only return true/false in known cases, otherwise assert.
23471         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
23472         is already called in arc_legitimate_constant_p.
23473         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
23474         pic addresses.
23475         (LEGITIMATE_PIC_OPERAND_P): Use
23476         arc_raw_symbolic_reference_mentioned_p function.
23477         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
23478         function.
23479         (Cal): Likewise.
23480         (C32): Likewise.
23481
23482 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23483         Andrew Burgess  <andrew.burgess@embecosm.com>
23484
23485         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
23486         (arc_return_address_register): New function.
23487         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
23488         (arc_handle_fndecl_attribute): Add naked attribute.
23489         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
23490         (TARGET_WARN_FUNC_RETURN): Likewise.
23491         (arc_allocate_stack_slots_for_args): New function.
23492         (arc_warn_func_return): Likewise.
23493         (machine_function): Change type fn_type.
23494         (arc_compute_function_type): Consider new naked function type,
23495         change function return type.
23496         (arc_must_save_register): Adapt to handle new
23497         arc_compute_function_type's return type.
23498         (arc_expand_prologue): Likewise.
23499         (arc_expand_epilogue): Likewise.
23500         (arc_return_address_regs): Delete.
23501         (arc_return_address_register): New function.
23502         (arc_epilogue_uses): Use above function.
23503         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
23504         (arc_function_type): Change encoding, add naked type.
23505         (ARC_INTERRUPT_P): Change to handle the new encoding.
23506         (ARC_FAST_INTERRUPT_P): Likewise.
23507         (ARC_NORMAL_P): Define.
23508         (ARC_NAKED_P): Likewise.
23509         (arc_compute_function_type): Delete prototype.
23510         * config/arc/arc.md (in_ret_delay_slot): Use
23511         arc_return_address_register function.
23512         (simple_return): Likewise.
23513         (p_return_i): Likewise.
23514
23515 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23516
23517         PR tree-optimization/81428
23518         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
23519         can't be built for those types.
23520
23521 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23522
23523         Remove stuff dead since r239246.
23524
23525         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
23526         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
23527         (avr_inform_devices): Remove dead stuff.
23528
23529 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
23530
23531         * config/arm/arm_neon.h: Fix softp typo.
23532
23533 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23534
23535         PR tree-optimization/81365
23536         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
23537         aggregate moves onto bb predecessor edges, make sure there are no
23538         loads that could alias the lhs in between the start of bb and the
23539         loads from *phi.
23540
23541 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23542
23543         PR 80929
23544         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
23545         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
23546         [LSHIFTRT, outer_code = TRUNCATE]: Same.
23547
23548 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23549
23550         PR tree-optimization/81396
23551         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
23552         (init_symbolic_number): Initialize it to 1.
23553         (perform_symbolic_merge): Add n_ops from both operands into the new
23554         n_ops.
23555         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
23556         without base_addr as useless if they need more than one operation.
23557         (bswap_replace): Handle !bswap case for NULL base_addr.
23558
23559 2017-07-17  Tom de Vries  <tom@codesourcery.com>
23560
23561         PR target/81069
23562         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
23563         as possible.
23564
23565 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23566
23567         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
23568         conditional builtin define __FIX_LEON3FT_B2BST.
23569
23570 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
23571
23572         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
23573         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
23574         with -mfix-ut700.
23575
23576 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23577
23578         PR rtl-optimization/81424
23579         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
23580         to remove potential trapping from operands if -fnon-call-exceptions.
23581
23582 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23583
23584         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
23585         profile_proability for scalling.
23586         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
23587
23588 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23589
23590         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
23591
23592 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23593
23594         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
23595         fixpoint arithmetics.
23596
23597 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23598
23599         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
23600         fixpoint arithmetics.
23601
23602 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23603
23604         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
23605         fixpoint arithmetics.
23606
23607 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23608
23609         * profile-count.h (profile_probability::from_reg_br_prob_note,
23610         profile_probability::to_reg_br_prob_note): New functions.
23611         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
23612         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
23613         * predict.c (probability_reliable_p): Update.
23614         (edge_probability_reliable_p): Update.
23615         (br_prob_note_reliable_p): Update.
23616         (invert_br_probabilities): Update.
23617         (add_reg_br_prob_note): New function.
23618         (combine_predictions_for_insn): Update.
23619         * asan.c (asan_clear_shadow): Update.
23620         * cfgbuild.c (compute_outgoing_frequencies): Update.
23621         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
23622         (update_br_prob_note): Update.
23623         (rtl_verify_edges): Update.
23624         (purge_dead_edges): Update.
23625         (fixup_reorder_chain): Update.
23626         * emit-rtl.c (try_split): Update.
23627         * ifcvt.c (cond_exec_process_insns): Update.
23628         (cond_exec_process_if_block): Update.
23629         (dead_or_predicable): Update.
23630         * internal-fn.c (expand_addsub_overflow): Update.
23631         (expand_neg_overflow): Update.
23632         (expand_mul_overflow): Update.
23633         * loop-doloop.c (doloop_modify): Update.
23634         * loop-unroll.c (compare_and_jump_seq): Update.
23635         * optabs.c (emit_cmp_and_jump_insn_1): Update.
23636         * predict.h: Update.
23637         * reorg.c (mostly_true_jump): Update.
23638         * rtl.h: Update.
23639         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
23640         * config/alpha/alpha.c (emit_unlikely_jump): Update.
23641         * config/arc/arc.c: (emit_unlikely_jump): Update.
23642         * config/arm/arm.c: (emit_unlikely_jump): Update.
23643         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
23644         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
23645         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
23646         (ix86_print_operand): Update.
23647         (ix86_split_fp_branch): Update.
23648         (predict_jump): Update.
23649         * config/ia64/ia64.c (ia64_print_operand): Update.
23650         * config/mmix/mmix.c (mmix_print_operand): Update.
23651         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
23652         (rs6000_expand_split_stack_prologue): Update.
23653         * config/rs6000/rs6000.c: Update.
23654         * config/s390/s390.c (s390_expand_vec_strlen): Update.
23655         (s390_expand_vec_movstr): Update.
23656         (s390_expand_cs_tdsi): Update.
23657         (s390_expand_split_stack_prologue): Update.
23658         * config/sh/sh.c (sh_print_operand): Update.
23659         (expand_cbranchsi4): Update.
23660         (expand_cbranchdi4): Update.
23661         * config/sparc/sparc.c (output_v9branch): Update.
23662         * config/spu/spu.c (get_branch_target): Update.
23663         (ea_load_store_inline): Update.
23664         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
23665         * config/tilepro/tilepro.c: Update.
23666
23667 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23668
23669         * gimplify.c (mostly_copy_tree_r): Revert latest change.
23670         (gimplify_save_expr): Likewise.
23671
23672 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23673
23674         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
23675
23676 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23677
23678         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
23679         TV_IPA_FNSUMMARY.
23680         * timevar.def (TV_IPA_FNSUMMARY): Define.
23681
23682 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
23683
23684         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
23685         to back store errata sensitive sequence from being generated.
23686         (sqrtdf2_fix): Likewise.
23687
23688 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23689
23690         * tree-ssa-threadupdate.c (compute_path_counts,
23691         update_joiner_offpath_counts): Use profile_probability.
23692
23693 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23694
23695         Revert:
23696         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23697
23698         * config/arm/arm-c.c (arm_cpu_builtins): Define
23699         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23700
23701 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23702
23703         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23704         array entries to represent __ieee128 versions of the
23705         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
23706         scalar_extract_sig, and scalar_insert_exp built-in functions.
23707         (altivec_resolve_overloaded_builtin): Add special case handling
23708         for the __builtin_scalar_insert_exp function, as represented by
23709         the P9V_BUILTIN_VEC_VSIEDP constant.
23710         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
23711         exponent support for __ieee128 argument.
23712         (VSESQP): Add scalar extract signature support for __ieee128
23713         argument.
23714         (VSTDCNQP): Add scalar test negative support for __ieee128
23715         argument.
23716         (VSIEQP): Add scalar insert exponent support for __int128 argument
23717         with __ieee128 result.
23718         (VSIEQPF): Add scalar insert exponent support for __ieee128
23719         argument with __ieee128 result.
23720         (VSTDCQP): Add scalar test data class support for __ieee128
23721         argument.
23722         (VSTDCNQP): Add overload support for scalar test negative with
23723         __ieee128 argument.
23724         (VSTDCQP): Add overload support for scalar test data class
23725         __ieee128 argument.
23726         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
23727         UNSPEC_VSX_SXSIGDP.
23728         (UNSPEC_VSX_SIEXPQP): New constant.
23729         (xsxexpqp): New insn for VSX scalar extract exponent quad
23730         precision.
23731         (xsxsigqp): New insn for VSX scalar extract significand quad
23732         precision.
23733         (xsiexpqpf): New insn for VSX scalar insert exponent quad
23734         precision with floating point argument.
23735         (xststdcqp): New expand for VSX scalar test data class quad
23736         precision.
23737         (xststdcnegqp): New expand for VSX scalar test negative quad
23738         precision.
23739         (xststdcqp): New insn to match expansions for VSX scalar test data
23740         class quad precision and VSX scalar test negative quad precision.
23741         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
23742         special case operand checking to enforce that second operand of
23743         VSX scalar test data class with quad precision argument is a 7-bit
23744         unsigned literal.
23745         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23746         prototypes and descriptions of __ieee128 versions of
23747         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
23748         scalar_test_data_class, and scalar_test_neg built-in functions.
23749
23750 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23751
23752         PR tree-optimization/81162
23753         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
23754         replace a negate with an add.
23755
23756 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
23757
23758         * doc/invoke.texi (arm/-mcpu): Document +crypto.
23759
23760 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23761
23762         * config/arm/arm-c.c (arm_cpu_builtins): Define
23763         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23764
23765 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23766
23767         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
23768         (armv8-r): Set ARM Cortex-R52 as default CPU.
23769         * config/arm/arm-tables.opt: Regenerate.
23770         * config/arm/arm-tune.md: Regenerate.
23771         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23772         Cortex-R52.
23773         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
23774         extension for -mcpu=cortex-r52.
23775
23776 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23777
23778         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
23779         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
23780         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
23781         (fp-armv8): Define it as FP_ARMv8 only.
23782         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
23783         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
23784         TARGET_FPU_ARMV8.
23785         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
23786         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
23787         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
23788         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
23789         than TARGET_FPU_ARMV8.
23790         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
23791         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
23792         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
23793         TARGET_FPU_ARMV8.
23794         * config/arm/neon.md (neon_vrint): Likewise.
23795         (neon_vcvt): Likewise.
23796         (neon_<fmaxmin_op><mode>): Likewise.
23797         (<fmaxmin><mode>3): Likewise.
23798         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
23799         * config/arm/predicates.md (arm_cond_move_operator): Check against
23800         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
23801
23802 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
23803
23804         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
23805         to top of function.
23806
23807 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23808
23809         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
23810         loop in comment with memset.
23811
23812 2017-07-14  Martin Liska  <mliska@suse.cz>
23813
23814         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
23815         * dwarf2out.c (is_java): Remove the function.
23816         (output_pubname): Remove usage of the function.
23817         (lower_bound_default): Remove usage of DW_LANG_Java.
23818         (gen_compile_unit_die): Likewise.
23819         * gcc.c: Remove compiler defaults for .java and .zip files.
23820         * gimple-expr.c (remove_suffix): Change as there's no longer
23821         extension than 4-letter one.
23822         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
23823         (gimplify_save_expr): Likewise.
23824         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
23825         as it's possible even for other languages than Java.
23826         * langhooks.h (struct lang_hooks): Remove Java from a comment.
23827         * lto-opts.c (lto_write_options): Remove reference to Java.
23828         * opts.c (strip_off_ending): Update file extension handling.
23829         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
23830         * tree-eh.c (lower_resx): Likewise.
23831         * tree.c (free_lang_data_in_type): Remove dead code.
23832         (find_decls_types_r): Likewise.
23833         (build_common_builtin_nodes): Remove Java from a comment.
23834         (verify_type): Remove dead code.
23835         * varasm.c (assemble_external): Remove Java from a comment.
23836
23837 2017-07-14  Martin Liska  <mliska@suse.cz>
23838
23839         * opts.c (finish_options): Add quotes.
23840         (common_handle_option): Likewise.
23841
23842 2017-07-14  Martin Liska  <mliska@suse.cz>
23843
23844         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
23845         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
23846         Remove N_SO_PASCAL.
23847         * dwarf2out.c (lower_bound_default): Do not handle
23848         DW_LANG_Pascal83.
23849         (gen_compile_unit_die): Likewise.
23850         * gcc.c: Remove default extension binding for GNU Pascal.
23851         * stmt.c: Remove Pascal language from a comment.
23852         * xcoffout.c: Likewise.
23853
23854 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
23855
23856         PR c/81405
23857         * diagnostic-show-locus.c (fixit_cmp): New function.
23858         (layout::layout): Sort m_fixit_hints.
23859         (column_range::column_range): Assert that the values are valid.
23860         (struct char_span): New struct.
23861         (correction::overwrite): New method.
23862         (struct source_line): New struct.
23863         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
23864         calls in terms of classes source_line and char_span, and
23865         correction::overwrite.
23866         (selftest::test_overlapped_fixit_printing_2): New function.
23867         (selftest::diagnostic_show_locus_c_tests): Call it.
23868
23869 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
23870
23871         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
23872         early if there is no lhs.
23873
23874 2017-07-13  Martin Liska  <mliska@suse.cz>
23875
23876         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
23877         (gen_reference_type_die): Likewise.
23878         * stor-layout.c: Remove Pascal-related comment.
23879
23880 2017-07-13  Martin Liska  <mliska@suse.cz>
23881
23882         * opts.c (finish_options): Add quotes to error messages.
23883         (parse_sanitizer_options): Likewise.
23884
23885 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23886
23887         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
23888
23889 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
23890
23891         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
23892
23893 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
23894
23895         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
23896         during expansion.
23897         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
23898
23899 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23900
23901         PR target/81193
23902         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
23903         provides the hardware capability bits, define the macro
23904         __BUILTIN_CPU_SUPPORTS__.
23905         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
23906         if GLIBC does not provide the hardware capability bits.  Add a
23907         gcc_unreachable call if the built-in cpu function is neither
23908         __builtin_cpu_is nor __builtin_cpu_supports.
23909         (rs6000_get_function_versions_dispatcher): Change the warning
23910         that an old GLIBC is used which does not export the capability
23911         bits to be an error.
23912         * doc/extend.texi (target_clones attribute): Document the
23913         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
23914         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
23915         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
23916         the macros defined by GCC if the newer GLIBC is available.
23917
23918 2017-07-12  Jeff Law  <law@redhat.com>
23919
23920         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
23921         remaining includes slightly.
23922         * config/riscv/riscv-builtins.c: Include profile-count.h.
23923
23924 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23925
23926         PR target/79883
23927         * config/avr/avr.c (avr_set_current_function): In diagnostic
23928         messages: Quote keywords and (parts of) identifiers.
23929         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
23930         "INTERUPT".
23931
23932 2017-07-12  Carl Love  <cel@us.ibm.com>
23933
23934         * config/rs6000/rs6000-c.c: Add support for built-in functions
23935         vector bool char vec_revb (vector bool char);
23936         vector bool short vec_revb (vector short char);
23937         vector bool int vec_revb (vector bool int);
23938         vector bool long long vec_revb (vector bool long long);
23939         * doc/extend.texi: Update the built-in documentation file for the
23940         new built-in functions.
23941
23942 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23943
23944         * config/s390/s390.md: Remove movcc splitter.
23945
23946 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23947
23948         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
23949         load/store on condition.
23950
23951 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
23952
23953         PR target/81407
23954         * config/avr/avr.c (avr_encode_section_info)
23955         [progmem && !TREE_READONLY]: Error if progmem object needs
23956         constructing.
23957
23958 2017-07-11  Michael Collison  <michael.collison@arm.com>
23959
23960         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
23961         New pattern.
23962
23963 2017-07-11  Carl Love  <cel@us.ibm.com>
23964
23965         * config/rs6000/rs6000-c.c: Add support for builtins
23966         vector unsigned int vec_parity_lsbb (vector signed int);
23967         vector unsigned int vec_parity_lsbb (vector unsigned int);
23968         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
23969         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
23970         vector unsigned long long vec_parity_lsbb (vector signed long long);
23971         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
23972         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
23973         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
23974         * doc/extend.texi: Update the built-in documentation file for the
23975         new built-in functions.
23976
23977 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
23978
23979         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
23980         (layout::m_primary_loc): New field.
23981         (layout::layout): Initialize new field.  Move location filtering
23982         logic from here to...
23983         (layout::maybe_add_location_range): ...this new method.  Add
23984         support for filtering to just the lines already specified by other
23985         locations.
23986         (layout::will_show_line_p): New method.
23987         (gcc_rich_location::add_location_if_nearby): New method.
23988         (selftest::test_add_location_if_nearby): New test function.
23989         (selftest::diagnostic_show_locus_c_tests): Call it.
23990         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
23991         New method.
23992
23993 2017-07-11  Tom de Vries  <tom@codesourcery.com>
23994
23995         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
23996         (bb_first_real_insn): New function.
23997         (nvptx_single): Add extra initialization of broadcasted condition
23998         variables.
23999
24000 2017-07-11  Nathan Sidwell  <nathan@acm.org>
24001
24002         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
24003
24004 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
24005
24006         * doc/extend.texi (AVR Function Attributes): Remove weblink to
24007         Binutils doc as TEXI will mess them up.
24008         * doc/invoke.texi (AVR Options): Same here.
24009
24010 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
24011
24012         * config/sparc/sparc.opt (mfix-ut700): New option.
24013         (mfix-gr712rc): Likewise.
24014         (sparc_fix_b2bst): New variable.
24015         * doc/invoke.texi (SPARC options): Document them.
24016         (ARM options): Fix warnings.
24017         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
24018         instructions to prevent sequences that can trigger the store-store
24019         errata for certain LEON3FT processors.
24020         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
24021         (sparc_option_override): Set sparc_fix_b2bst appropriately.
24022         * config/sparc/sparc.md (fix_b2bst): New attribute.
24023         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
24024
24025 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
24026
24027         PR target/81375
24028         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
24029         (rcpps): Ditto.
24030         (*rsqrtsf2_sse): Ditto.
24031         (rsqrtsf2): Ditto.
24032         (div<mode>3): Macroize insn from divdf3 and divsf3
24033         using MODEF mode iterator.
24034
24035 2017-07-10  Martin Sebor  <msebor@redhat.com>
24036
24037         PR tree-optimization/80397
24038         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
24039         instead of testing for equality to INTEGER_TYPE.
24040
24041 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
24042
24043         * config.gcc: Remove uclibc from arc target spec.
24044
24045 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
24046
24047         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
24048
24049 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
24050
24051         PR lto/80838
24052         * lto-wrapper.c (remove_option): New function.
24053         (merge_and_complain): Merge PIC/PIE options more realistically.
24054
24055 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24056
24057         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
24058
24059         PR target/20296
24060         PR target/81268
24061         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
24062         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
24063         * config.in: Regenerate.
24064         * configure: Regenerate.
24065         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
24066         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
24067         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
24068         (TARGET_GASISR_PROLOGUES): ...target mask.
24069         * common/config/avr/avr-common.c
24070         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
24071         Set -mgas-isr-prologues.
24072         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
24073         INSERT_PASS_BEFORE for it.
24074         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
24075         * config/avr/avr.c (avr_option_override)
24076         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
24077         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
24078         (avr_attribute_table) <no_gccisr>: Add new function attribute.
24079         (avr_set_current_function) <is_no_gccisr>: Init machine field.
24080         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
24081         and rtl_opt_pass.
24082         (make_avr_pass_pre_proep): New function.
24083         (emit_push_sfr) <treg>: Add argument to function and use it
24084         instead of TMP_REG.
24085         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
24086         and set machine->gasisr.yes.
24087         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
24088         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
24089         __gcc_isr.n_pushed to .L__stack_usage.
24090         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
24091         (avr_asm_final_postscan_insn): ...this new static function.
24092         * config/avr/avr.h (machine_function)
24093         <is_no_gccisr, use_L__stack_usage>: New fields.
24094         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
24095         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
24096         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
24097         (gasisr, *gasisr): New expander and insn.
24098         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
24099         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
24100         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
24101
24102 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
24103
24104         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
24105         in quoted strings.
24106
24107 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24108
24109         Move jump-tables out of .text again.
24110
24111         PR target/81075
24112         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
24113         (ASM_OUTPUT_ADDR_VEC): New function.
24114         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
24115         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
24116         INSN_ADDRESSes as asm comment.
24117         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
24118         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
24119         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
24120         * config/avr/avr.md (*tablejump): Adjust comment.
24121         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
24122         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
24123         New detail.
24124         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
24125         (avr_output_addr_vec): New proto.
24126         (avr_log_t) <insn_addresses>: New field.
24127
24128 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
24129
24130         PR target/81313
24131         * config/i386/i386.c (ix86_function_arg_advance): Set
24132         outgoing_args_on_stack to true if there are outgoing arguments
24133         on stack.
24134         (ix86_function_arg): Likewise.
24135         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
24136         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
24137         * config/i386/i386.h (machine_function): Add
24138         outgoing_args_on_stack.
24139
24140 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
24141
24142         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
24143         supporting pthreds.
24144         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
24145
24146 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
24147
24148         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
24149         (REAL_H): Remove $(MACHMODE_H).
24150         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
24151         double-int.h.
24152         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
24153         $(MACHMODE_H) and double-int.h.
24154         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
24155         $(MACHMODE_H).
24156         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
24157         double-int.h.
24158
24159 2017-07-07  Andrew Pinski  <apinski@cavium.com>
24160
24161         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
24162         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
24163
24164 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24165
24166         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
24167         Add warning if GCC was not configured to link against a GLIBC that
24168         exports the hardware capability bits.
24169         (make_resolver_func): Make resolver function private and not a
24170         COMDAT function.  Create the name with clone_function_name instead
24171         of make_unique_name.
24172
24173         PR target/81348
24174         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
24175         correct operand in doing the split.
24176
24177 2017-07-07 Carl Love  <cel@us.ibm.com>
24178
24179         * config/rs6000/rs6000-c: Add support for built-in function
24180         vector unsigned short vec_pack_to_short_fp32 (vector float,
24181                                                       vector float).
24182         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
24183         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
24184         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
24185         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
24186         (convert_4f32_8i16): Add define_expand.
24187         * doc/extend.texi: Update the built-in documentation file for the
24188         new built-in function.
24189
24190 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24191
24192         * config/sparc/m8.md: New file.
24193         * config/sparc/sparc.md: Include m8.md.
24194
24195 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24196
24197         * config/sparc/sparc.opt: New option -mvis4b.
24198         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
24199         (sparc_option_override): Handle VIS4B.
24200         (enum sparc_builtins): Define
24201         SPARC_BUILTIN_DICTUNPACK{8,16,32},
24202         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
24203         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
24204         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
24205         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
24206         (check_constant_argument): New function.
24207         (sparc_vis_init_builtins): Define builtins
24208         __builtin_vis_dictunpack{8,16,32},
24209         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
24210         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
24211         __builtin_vis_fpcmpde{8,16,32}shl and
24212         __builtin_vis_fpcmpur{8,16,32}shl.
24213         (sparc_expand_builtin): Check that the constant operands to
24214         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
24215         constant and in range.
24216         * config/sparc/sparc-c.c (sparc_target_macros): Handle
24217         TARGET_VIS4B.
24218         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
24219         (SPARC_IMM5_P): Likewise.
24220         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
24221         (enabled): Handle vis4b.
24222         (UNSPEC_DICTUNPACK): New unspec.
24223         (UNSPEC_FPCMPSHL): Likewise.
24224         (UNSPEC_FPUCMPSHL): Likewise.
24225         (UNSPEC_FPCMPDESHL): Likewise.
24226         (UNSPEC_FPCMPURSHL): Likewise.
24227         (cpu_feature): New CPU feature `vis4b'.
24228         (dictunpack{8,16,32}): New insns.
24229         (FPCSMODE): New mode iterator.
24230         (fpcscond): New code iterator.
24231         (fpcsucond): Likewise.
24232         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
24233         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
24234         (fpcmpde{8,16,32}{si,di}shl): Likewise.
24235         (fpcmpur{8,16,32}{si,di}shl): Likewise.
24236         * config/sparc/constraints.md: Define constraints `q' for unsigned
24237         2-bit integer constants and `t' for unsigned 5-bit integer
24238         constants.
24239         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
24240         predicate.
24241         (imm5_operand_dictunpack16): Likewise.
24242         (imm5_operand_dictunpack32): Likewise.
24243         (imm2_operand): Likewise.
24244         * doc/invoke.texi (SPARC Options): Document -mvis4b.
24245         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
24246         ditunpack* and fpcmp*shl builtins.
24247
24248 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24249
24250         * config.gcc: Handle m8 in --with-{cpu,tune} options.
24251         * config.in: Add HAVE_AS_SPARC6 define.
24252         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
24253         M8.
24254         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
24255         TARGET_CPU_m8.
24256         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
24257         (CPP_CPU_SPEC): Handle m8.
24258         (ASM_CPU_SPEC): Likewise.
24259         * config/sparc/sparc-opts.h (enum processor_type): Add
24260         PROCESSOR_M8.
24261         * config/sparc/sparc.c (m8_costs): New struct.
24262         (sparc_option_override): Handle TARGET_CPU_m8.
24263         (sparc32_initialize_trampoline): Likewise.
24264         (sparc64_initialize_trampoline): Likewise.
24265         (sparc_issue_rate): Likewise.
24266         (sparc_register_move_cost): Likewise.
24267         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
24268         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
24269         (ASM_CPU64_DEFAULT_SPEC): Likewise.
24270         (CPP_CPU_SPEC): Handle M8.
24271         (ASM_CPU_SPEC): Likewise.
24272         (AS_M8_FLAG): Define.
24273         * config/sparc/sparc.md: Add m8 to the cpu attribute.
24274         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
24275         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
24276         M8 instructions.
24277         * configure: Regenerate.
24278         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
24279         -mtune=m8.
24280
24281 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24282
24283         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
24284         subtypes.
24285         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
24286         ("*movdi_insn_sp32"): Do not set v3pipe.
24287         ("*movsi_insn"): Likewise.
24288         ("*movdi_insn_sp64"): Likewise.
24289         ("*movsf_insn"): Likewise.
24290         ("*movdf_insn_sp32"): Likewise.
24291         ("*movdf_insn_sp64"): Likewise.
24292         ("*zero_extendsidi2_insn_sp64"): Likewise.
24293         ("*sign_extendsidi2_insn"): Likewise.
24294         ("*mov<VM32:mode>_insn"): Likewise.
24295         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24296         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24297         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24298         ("<vlop:code><VL:mode>3"): Likewise.
24299         ("*not_<vlop:code><VL:mode>3"): Likewise.
24300         ("*nand<VL:mode>_vis"): Likewise.
24301         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
24302         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
24303         ("one_cmpl<VL:mode>2"): Likewise.
24304         ("faligndata<VM64:mode>_vis"): Likewise.
24305         ("alignaddrsi_vis"): Likewise.
24306         ("alignaddrdi_vis"): Likweise.
24307         ("alignaddrlsi_vis"): Likewise.
24308         ("alignaddrldi_vis"): Likewise.
24309         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24310         ("bmaskdi_vis"): Likewise.
24311         ("bmasksi_vis"): Likewise.
24312         ("bshuffle<VM64:mode>_vis"): Likewise.
24313         ("cmask8<P:mode>_vis"): Likewise.
24314         ("cmask16<P:mode>_vis"): Likewise.
24315         ("cmask32<P:mode>_vis"): Likewise.
24316         ("pdistn<P:mode>_vis"): Likewise.
24317         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24318
24319 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24320
24321         * config/sparc/sparc.md ("subtype"): New insn attribute.
24322         ("*wrgsr_sp64"): Set insn subtype.
24323         ("*rdgsr_sp64"): Likewise.
24324         ("alignaddrsi_vis"): Likewise.
24325         ("alignaddrdi_vis"): Likewise.
24326         ("alignaddrlsi_vis"): Likewise.
24327         ("alignaddrldi_vis"): Likewise.
24328         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24329         ("fexpand_vis"): Likewise.
24330         ("fpmerge_vis"): Likewise.
24331         ("faligndata<VM64:mode>_vis"): Likewise.
24332         ("bshuffle<VM64:mode>_vis"): Likewise.
24333         ("cmask8<P:mode>_vis"): Likewise.
24334         ("cmask16<P:mode>_vis"): Likewise.
24335         ("cmask32<P:mode>_vis"): Likewise.
24336         ("fchksm16_vis"): Likewise.
24337         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
24338         ("fmean16_vis"): Likewise.
24339         ("fp<plusminus_insn>64_vis"): Likewise.
24340         ("<plusminus_insn>v8qi3"): Likewise.
24341         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24342         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
24343         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
24344         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
24345         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
24346         ("*movqi_insn"): Likewise.
24347         ("*movhi_insn"): Likewise.
24348         ("*movsi_insn"): Likewise.
24349         ("movsi_pic_gotdata_op"): Likewise.
24350         ("*movdi_insn_sp32"): Likewise.
24351         ("*movdi_insn_sp64"): Likewise.
24352         ("movdi_pic_gotdata_op"): Likewise.
24353         ("*movsf_insn"): Likewise.
24354         ("*movdf_insn_sp32"): Likewise.
24355         ("*movdf_insn_sp64"): Likewise.
24356         ("*zero_extendhisi2_insn"): Likewise.
24357         ("*zero_extendqihi2_insn"): Likewise.
24358         ("*zero_extendqisi2_insn"): Likewise.
24359         ("*zero_extendqidi2_insn"): Likewise.
24360         ("*zero_extendhidi2_insn"): Likewise.
24361         ("*zero_extendsidi2_insn_sp64"): Likewise.
24362         ("ldfsr"): Likewise.
24363         ("prefetch_64"): Likewise.
24364         ("prefetch_32"): Likewise.
24365         ("tie_ld32"): Likewise.
24366         ("tie_ld64"): Likewise.
24367         ("*tldo_ldub_sp32"): Likewise.
24368         ("*tldo_ldub1_sp32"): Likewise.
24369         ("*tldo_ldub2_sp32"): Likewise.
24370         ("*tldo_ldub_sp64"): Likewise.
24371         ("*tldo_ldub1_sp64"): Likewise.
24372         ("*tldo_ldub2_sp64"): Likewise.
24373         ("*tldo_ldub3_sp64"): Likewise.
24374         ("*tldo_lduh_sp32"): Likewise.
24375         ("*tldo_lduh1_sp32"): Likewise.
24376         ("*tldo_lduh_sp64"): Likewise.
24377         ("*tldo_lduh1_sp64"): Likewise.
24378         ("*tldo_lduh2_sp64"): Likewise.
24379         ("*tldo_lduw_sp32"): Likewise.
24380         ("*tldo_lduw_sp64"): Likewise.
24381         ("*tldo_lduw1_sp64"): Likewise.
24382         ("*tldo_ldx_sp64"): Likewise.
24383         ("*mov<VM32:mode>_insn"): Likewise.
24384         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24385         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24386
24387 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24388
24389         * config/sparc/sparc.md ("type"): New insn type viscmp.
24390         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
24391         viscmp.
24392         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
24393         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
24394         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24395         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
24396         viscmp.
24397         ("n7_vis_logical_11cycle"): Likewise.
24398         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
24399         * config/sparc/niagara2.md ("niag3_vis": Likewise.
24400         * config/sparc/niagara.md ("niag_vis"): Likewise.
24401         * config/sparc/ultra3.md ("us3_fga"): Likewise.
24402         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
24403
24404 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24405
24406         * config/sparc/sparc.md: New instruction type `bmask'.
24407         (bmaskdi_vis): Use the `bmask' type.
24408         (bmasksi_vis): Likewise.
24409         * config/sparc/ultra3.md (us3_array): Likewise.
24410         * config/sparc/niagara7.md (n7_array): Likewise.
24411         * config/sparc/niagara4.md (n4_array): Likewise.
24412         * config/sparc/niagara2.md (niag2_vis): Likewise.
24413         (niag3_vis): Likewise.
24414         * config/sparc/niagara.md (niag_vis): Likewise.
24415
24416 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24417
24418         * ipa-comdats.c: Remove optimize check from gate.
24419         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
24420         for functions not optimized.
24421         (ipa_fn_summary_read): Skip optimize check.
24422         (ipa_fn_summary_write): Likewise.
24423         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
24424         is optimized.
24425         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
24426         uninlinable.
24427         (can_inline_edge_p): Check flag_pcc_struct_return for match.
24428         (check_callers): Give up on caller which is not optimized.
24429         (inline_small_functions): Likewise.
24430         (ipa_inline): Do not give up when not optimizing.
24431         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
24432         away unoptimizes cdtors.
24433         (whole_program_function_and_variable_visibility): Do
24434         ipa_discover_readonly_nonaddressable_vars in LTO mode.
24435         * ipa.c (process_references): Do not check optimize.
24436         (symbol_table::remove_unreachable_nodes): Update optimize check.
24437         (set_writeonly_bit): Update optimize check.
24438         (pass_ipa_cdtor_merge::gate): Do not check optimize.
24439         (pass_ipa_single_use::gate): Remove.
24440
24441 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24442
24443         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
24444         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
24445         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
24446         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
24447         permute_load, permute_store, adjust_extract, adjust_splat,
24448         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
24449         replace_swap_with_copy, dump_swap_insn_table,
24450         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
24451         recombine_lvx_pattern, recombine_stvx_pattern,
24452         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
24453         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
24454         to file rs6000-p8swap.c.
24455         * config/rs6000/rs6000-p8swap.c: New file.
24456         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
24457         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
24458         and rs6000*-*-* targets.
24459
24460 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24461
24462         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
24463
24464 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24465
24466         * lto-wrapper.c (merge_and_complain): Do not merge
24467         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
24468         fsigned_zeros, ftrapping_math, fwrapv.
24469         (append_compiler_options): Do not track these options.
24470         (append_linker_options): Likewie
24471
24472 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24473
24474         * cgraphunit.c (cgraph_node::finalize_function): When
24475         !flag_toplevel_reorde set no_reorder flag.
24476         (varpool_node::finalize_decl): Likewise.
24477         (symbol_table::compile): Drop no toplevel reorder path.
24478
24479 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24480
24481         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
24482         edges; zero probability is not better than uninitialized.
24483
24484 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24485
24486         * asan.h (asan_sanitize_allocas_p): Declare.
24487         * asan.c (asan_sanitize_allocas_p): New function.
24488         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
24489         (handle_builtin_alloca): Likewise.
24490         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
24491         if !asan_sanitize_allocas_p.
24492         * params.def (asan-instrument-allocas): Add new option.
24493         * params.h (ASAN_PROTECT_ALLOCAS): Define.
24494         * opts.c (common_handle_option): Disable allocas sanitization for
24495         KASan by default.
24496
24497 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24498
24499         * asan.c: Include gimple-fold.h.
24500         (get_last_alloca_addr): New function.
24501         (handle_builtin_stackrestore): Likewise.
24502         (handle_builtin_alloca): Likewise.
24503         (asan_emit_allocas_unpoison): Likewise.
24504         (get_mem_refs_of_builtin_call): Add new parameter, remove const
24505         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
24506         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
24507         (instrument_builtin_call): Pass gimple iterator to
24508         get_mem_refs_of_builtin_call.
24509         (last_alloca_addr): New global.
24510         * asan.h (asan_emit_allocas_unpoison): Declare.
24511         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
24512         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
24513         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
24514         if function calls alloca.
24515         * gimple-fold.c (replace_call_with_value): Remove static keyword.
24516         * gimple-fold.h (replace_call_with_value): Declare.
24517         * internal-fn.c: Include asan.h.
24518         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
24519         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
24520
24521 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24522
24523         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
24524         (C_SELFTEST_FLAGS): New.
24525         (CPP_SELFTEST_FLAGS): New.
24526         (SELFTEST_DEPS): New, from deps of s-selftest.
24527         (C_SELFTEST_DEPS): New, from deps of s-selftest.
24528         (CPP_SELFTEST_DEPS): New.
24529         (selftest): Add dependency on s-selftest-c++.
24530         (s-selftest): Rename to...
24531         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
24532         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
24533         than SELFTEST_FLAGS.
24534         (selftest-gdb): Rename to...
24535         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
24536         C_SELFTEST_FLAGS.
24537         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
24538         (selftest-valgrind): Rename to...
24539         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
24540         C_SELFTEST_FLAGS.
24541         (selftest-valgrind): Reintroduce as an alias for
24542         selftest-c-valgrind.
24543         (s-selftest-c++): New.
24544         (selftest-c++-gdb): New.
24545         (selftest-c++-valgrind): New.
24546
24547 2017-07-06  Olivier Hainque  <hainque@adacore.com>
24548
24549         * gcc.c (process_command): When deciding if undefined variables
24550         should be ignored when processing specs, accept "gcc -v" as well.
24551
24552 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24553
24554         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
24555         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
24556
24557 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24558
24559         * config/arm/arm-cpus.in (armv8-r): Add new entry.
24560         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
24561         * config/arm/arm-tables.opt: Regenerate.
24562         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
24563         enumerator.
24564         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
24565
24566 2017-07-06  Carl Love  <cel@us.ibm.com>
24567
24568         * ChangeLog: Clean up from mid air collision
24569
24570 2017-07-06  Carl Love  <cel@us.ibm.com>
24571
24572         * config/rs6000/rs6000-c.c: Add support for built-in functions
24573         vector signed int vec_subc (vector signed int, vector signed int);
24574         vector signed __int128 vec_subc (vector signed __int128,
24575                                          vector signed __int128);
24576         vector unsigned __int128 vec_subc (vector unsigned __int128,
24577                                            vector unsigned __int128);
24578         vector signed int vec_sube (vector signed int, vector signed int,
24579                                     vector signed int);
24580         vector unsigned int vec_sube (vector unsigned int,
24581                                       vector unsigned int,
24582                                       vector unsigned int);
24583         vector signed __int128 vec_sube (vector signed __int128,
24584                                          vector signed __int128,
24585                                          vector signed__int128);
24586         vector unsigned __int128 vec_sube (vector unsigned __int128,
24587                                            vector unsigned __int128,
24588                                            vector unsigned __int128);
24589         vector signed int vec_subec (vector signed int, vector signed int,
24590                                      vector signed int);
24591         vector unsigned int vec_subec (vector unsigned int,
24592                                        vector unsigned int,
24593                                        vector unsigned int);
24594         vector signed __int128 vec_subec (vector signed __int128,
24595                                           vector signed __int128,
24596                                           vector signed__int128);
24597         vector unsigned __int128 vec_subec (vector unsigned __int128,
24598                                             vector unsigned __int128,
24599                                             vector unsigned __int128);
24600         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
24601         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
24602         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
24603         BU_ALTIVEC_OVERLOAD_X definitions.
24604         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
24605         * doc/extend.texi: Update the built-in documentation file for the new
24606         built-in functions.
24607
24608 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24609
24610         PR c++/79300
24611         * diagnostic-show-locus.c (layout::layout): Use start and finish
24612         spelling location for the start and finish of each range.
24613         * genmatch.c (linemap_client_expand_location_to_spelling_point):
24614         Add unused aspect param.
24615         * input.c (expand_location_1): Add "aspect" param, and use it
24616         to access the correct part of the location.
24617         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
24618         expand_location_1.
24619         (expand_location_to_spelling_point): Likewise.
24620         (linemap_client_expand_location_to_spelling_point): Add "aspect"
24621         param, and pass it to expand_location_1.
24622
24623 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
24624
24625         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
24626         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
24627         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
24628         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
24629         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
24630         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
24631         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
24632         _mm_maskz_getmant_ss): New intrinsics.
24633         (__builtin_ia32_getexpss128_mask): Changed to ...
24634         __builtin_ia32_getexpss128_round ... this.
24635         (__builtin_ia32_getexpsd128_mask): Changed to ...
24636         __builtin_ia32_getexpsd128_round ... this.
24637         * config/i386/i386-builtin-types.def
24638         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
24639         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
24640         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
24641         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
24642         __builtin_ia32_getmantss_mask_round): New builtins.
24643         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
24644         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
24645         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
24646         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
24647         * config/i386/sse.md
24648         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
24649         avx512f_sgetexp<mode><mask_scalar_name>
24650         <round_saeonly_scalar_name> ... this.
24651         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
24652         %0, %1, %2<round_saeonly_op3>}): Changed to ...
24653         vgetexp<ssescalarmodesuffix>
24654         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24655         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
24656         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
24657         avx512f_vgetmant<mode><mask_scalar_name>
24658         <round_saeonly_scalar_name> ... this.
24659         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
24660         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
24661         vgetmant<ssescalarmodesuffix>
24662         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
24663         %0<mask_scalar_operand4>, %1, %2
24664         <round_saeonly_scalar_mask_op4>, %3} ... this.
24665         * config/i386/subst.md (mask_scalar_operand4,
24666         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
24667         round_saeonly_scalar_nimm_predicate): New subst attributes.
24668
24669 2017-07-06  Julia Koval  <julia.koval@intel.com>
24670
24671         * config/i386/i386.c (ix86_erase_embedded_rounding):
24672         Remove code for old rounding pattern.
24673
24674 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
24675
24676         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
24677
24678 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
24679
24680         * doc/sourcebuild.texi (Test Directives, Variants of
24681         dg-require-support): Add documentation for dg-require-stack-check.
24682
24683 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
24684
24685         * config/i386/subst.md (mask_scalar, round_scalar,
24686         round_saeonly_scalar): New meta-templates.
24687         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
24688         round_scalar_mask_operand3, round_scalar_mask_op3,
24689         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
24690         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
24691         round_saeonly_scalar_constraint,
24692         round_saeonly_scalar_prefix): New subst attribute.
24693         * config/i386/sse.md
24694         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
24695         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
24696         <round_scalar_name> ... this.
24697         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
24698         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
24699         <round_scalar_name> ... this.
24700         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
24701         <sse>_vm<code><mode>3<mask_scalar_name>
24702         <round_saeonly_scalar_name> ... this.
24703         (v<plusminus_mnemonic><ssescalarmodesuffix>
24704         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24705         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24706         v<plusminus_mnemonic><ssescalarmodesuffix>
24707         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24708         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24709         (v<multdiv_mnemonic><ssescalarmodesuffix>
24710         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24711         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24712         v<multdiv_mnemonic><ssescalarmodesuffix>
24713         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24714         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24715         (v<maxmin_float><ssescalarmodesuffix>
24716         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
24717         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
24718         v<maxmin_float><ssescalarmodesuffix>
24719         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24720         %0<mask_scalar_operand3>, %1, %<iptr>2
24721         <round_saeonly_scalar_mask_op3>} ... this.
24722
24723 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
24724
24725         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
24726         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
24727
24728 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
24729             Alan Hayward  <alan.hayward@arm.com>
24730             David Sherwood  <david.sherwood@arm.com>
24731
24732         * combine.c (simplify_if_then_else): Remove "enum" before
24733         "machine_mode".
24734         * compare-elim.c (can_eliminate_compare): Likewise.
24735         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
24736         Likewise.
24737         (aarch64_lookup_simd_builtin_type): Likewise.
24738         (aarch64_simd_builtin_type): Likewise.
24739         (aarch64_init_simd_builtin_types): Likewise.
24740         (aarch64_simd_expand_args): Likewise.
24741         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
24742         Likewise.
24743         (aarch64_reverse_mask): Likewise.
24744         (aarch64_simd_emit_reg_reg_move): Likewise.
24745         (aarch64_gen_adjusted_ldpstp): Likewise.
24746         (aarch64_ccmp_mode_to_code): Likewise.
24747         (aarch64_operands_ok_for_ldpstp): Likewise.
24748         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24749         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
24750         Likewise.
24751         (aarch64_min_divisions_for_recip_mul): Likewise.
24752         (aarch64_reassociation_width): Likewise.
24753         (aarch64_get_condition_code_1): Likewise.
24754         (aarch64_simd_emit_reg_reg_move): Likewise.
24755         (aarch64_simd_attr_length_rglist): Likewise.
24756         (aarch64_reverse_mask): Likewise.
24757         (aarch64_operands_ok_for_ldpstp): Likewise.
24758         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24759         (aarch64_gen_adjusted_ldpstp): Likewise.
24760         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
24761         Likewise.
24762         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
24763         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
24764         (arm_lookup_simd_builtin_type): Likewise.
24765         (arm_simd_builtin_type): Likewise.
24766         (arm_init_simd_builtin_types): Likewise.
24767         (arm_expand_builtin_args): Likewise.
24768         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
24769         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
24770         (ft32_setup_incoming_varargs): Likewise.
24771         (ft32_function_arg): Likewise.
24772         (ft32_function_arg_advance): Likewise.
24773         (ft32_pass_by_reference): Likewise.
24774         (ft32_arg_partial_bytes): Likewise.
24775         (ft32_valid_pointer_mode): Likewise.
24776         (ft32_addr_space_pointer_mode): Likewise.
24777         (ft32_addr_space_legitimate_address_p): Likewise.
24778         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
24779         Likewise.
24780         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
24781         (ix86_emit_outlined_ms2sysv_restore): Likewise.
24782         (iamcu_alignment): Likewise.
24783         (canonicalize_vector_int_perm): Likewise.
24784         (ix86_noce_conversion_profitable_p): Likewise.
24785         (ix86_mpx_bound_mode): Likewise.
24786         (ix86_operands_ok_for_move_multiple): Likewise.
24787         * config/microblaze/microblaze-protos.h
24788         (microblaze_expand_conditional_branch_reg): Likewise.
24789         * config/microblaze/microblaze.c
24790         (microblaze_expand_conditional_branch_reg): Likewise.
24791         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
24792         Likewise.
24793         (rs6000_reassociation_width): Likewise.
24794         (rs6000_invalid_binary_op): Likewise.
24795         (fusion_p9_p): Likewise.
24796         (emit_fusion_p9_load): Likewise.
24797         (emit_fusion_p9_store): Likewise.
24798         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
24799         Likewise.
24800         (riscv_hard_regno_mode_ok_p): Likewise.
24801         (riscv_address_insns): Likewise.
24802         (riscv_split_symbol): Likewise.
24803         (riscv_legitimize_move): Likewise.
24804         (riscv_function_value): Likewise.
24805         (riscv_hard_regno_nregs): Likewise.
24806         (riscv_expand_builtin): Likewise.
24807         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
24808         (riscv_build_integer): Likewise.
24809         (riscv_split_integer): Likewise.
24810         (riscv_legitimate_constant_p): Likewise.
24811         (riscv_cannot_force_const_mem): Likewise.
24812         (riscv_regno_mode_ok_for_base_p): Likewise.
24813         (riscv_valid_base_register_p): Likewise.
24814         (riscv_valid_offset_p): Likewise.
24815         (riscv_valid_lo_sum_p): Likewise.
24816         (riscv_classify_address): Likewise.
24817         (riscv_legitimate_address_p): Likewise.
24818         (riscv_address_insns): Likewise.
24819         (riscv_load_store_insns): Likewise.
24820         (riscv_force_binary): Likewise.
24821         (riscv_split_symbol): Likewise.
24822         (riscv_force_address): Likewise.
24823         (riscv_legitimize_address): Likewise.
24824         (riscv_move_integer): Likewise.
24825         (riscv_legitimize_const_move): Likewise.
24826         (riscv_legitimize_move): Likewise.
24827         (riscv_address_cost): Likewise.
24828         (riscv_subword): Likewise.
24829         (riscv_output_move): Likewise.
24830         (riscv_canonicalize_int_order_test): Likewise.
24831         (riscv_emit_int_order_test): Likewise.
24832         (riscv_function_arg_boundary): Likewise.
24833         (riscv_pass_mode_in_fpr_p): Likewise.
24834         (riscv_pass_fpr_single): Likewise.
24835         (riscv_pass_fpr_pair): Likewise.
24836         (riscv_get_arg_info): Likewise.
24837         (riscv_function_arg): Likewise.
24838         (riscv_function_arg_advance): Likewise.
24839         (riscv_arg_partial_bytes): Likewise.
24840         (riscv_function_value): Likewise.
24841         (riscv_pass_by_reference): Likewise.
24842         (riscv_setup_incoming_varargs): Likewise.
24843         (riscv_print_operand): Likewise.
24844         (riscv_elf_select_rtx_section): Likewise.
24845         (riscv_save_restore_reg): Likewise.
24846         (riscv_for_each_saved_reg): Likewise.
24847         (riscv_register_move_cost): Likewise.
24848         (riscv_hard_regno_mode_ok_p): Likewise.
24849         (riscv_hard_regno_nregs): Likewise.
24850         (riscv_class_max_nregs): Likewise.
24851         (riscv_memory_move_cost): Likewise.
24852         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
24853         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
24854         (rl78_addr_space_address_mode): Likewise.
24855         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24856         Likewise.
24857         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
24858         (rs6000_reassociation_width): Likewise.
24859         (rs6000_invalid_binary_op): Likewise.
24860         (fusion_p9_p): Likewise.
24861         (emit_fusion_p9_load): Likewise.
24862         (emit_fusion_p9_store): Likewise.
24863         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
24864         (ok_for_simple_move_operands): Likewise.
24865         (ok_for_simple_move_strict_operands): Likewise.
24866         (ok_for_simple_arith_logic_operands): Likewise.
24867         (visium_legitimize_reload_address): Likewise.
24868         (visium_select_cc_mode): Likewise.
24869         (output_cbranch): Likewise.
24870         (visium_split_double_move): Likewise.
24871         (visium_expand_copysign): Likewise.
24872         (visium_expand_int_cstore): Likewise.
24873         (visium_expand_fp_cstore): Likewise.
24874         * config/visium/visium.c (visium_pass_by_reference): Likewise.
24875         (visium_function_arg): Likewise.
24876         (visium_function_arg_advance): Likewise.
24877         (visium_libcall_value): Likewise.
24878         (visium_setup_incoming_varargs): Likewise.
24879         (visium_legitimate_constant_p): Likewise.
24880         (visium_legitimate_address_p): Likewise.
24881         (visium_legitimize_address): Likewise.
24882         (visium_secondary_reload): Likewise.
24883         (visium_register_move_cost): Likewise.
24884         (visium_memory_move_cost): Likewise.
24885         (prepare_move_operands): Likewise.
24886         (ok_for_simple_move_operands): Likewise.
24887         (ok_for_simple_move_strict_operands): Likewise.
24888         (ok_for_simple_arith_logic_operands): Likewise.
24889         (visium_function_value_1): Likewise.
24890         (rtx_ok_for_offset_p): Likewise.
24891         (visium_legitimize_reload_address): Likewise.
24892         (visium_split_double_move): Likewise.
24893         (visium_expand_copysign): Likewise.
24894         (visium_expand_int_cstore): Likewise.
24895         (visium_expand_fp_cstore): Likewise.
24896         (visium_split_cstore): Likewise.
24897         (visium_select_cc_mode): Likewise.
24898         (visium_split_cbranch): Likewise.
24899         (output_cbranch): Likewise.
24900         (visium_print_operand_address): Likewise.
24901         * expmed.c (flip_storage_order): Likewise.
24902         * expmed.h (emit_cstore): Likewise.
24903         (flip_storage_order): Likewise.
24904         * genrecog.c (validate_pattern): Likewise.
24905         * hsa-gen.c (gen_hsa_addr): Likewise.
24906         * internal-fn.c (expand_arith_overflow): Likewise.
24907         * ira-color.c (allocno_copy_cost_saving): Likewise.
24908         * lra-assigns.c (find_hard_regno_for_1): Likewise.
24909         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
24910         (process_invariant_for_inheritance): Likewise.
24911         * lra-eliminations.c (move_plus_up): Likewise.
24912         * omp-low.c (lower_oacc_reductions): Likewise.
24913         * simplify-rtx.c (simplify_subreg): Likewise.
24914         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
24915         (TARGET_CHKP_BOUND_MODE): Likewise..
24916         * targhooks.c (default_chkp_bound_mode): Likewise.
24917         (default_setup_incoming_vararg_bounds): Likewise.
24918         * targhooks.h (default_chkp_bound_mode): Likewise.
24919         (default_setup_incoming_vararg_bounds): Likewise.
24920         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
24921         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
24922         (have_whole_vector_shift): Likewise.
24923         * tree-vect-stmts.c (vectorizable_load): Likewise.
24924         * doc/tm.texi: Regenerate.
24925
24926 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24927
24928         Graceful degrade if Binutils PR21472 is not available.
24929
24930         PR target/81072
24931         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
24932         .rodata in flash test fails.
24933         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
24934         * confgure: Regenerate.
24935         * config.in: Regenerate.
24936         * config/avr/avr.c (avr_asm_named_section)
24937         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
24938         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
24939         (avr_asm_init_sections): Same.
24940
24941 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24942
24943         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
24944         (fma<VH:mode>4_intrinsic): Likewise.
24945         (*fmsub<VCVTF:mode>4): Likewise.
24946         (*fmsub<VH:mode>4_intrinsic): Likewise.
24947
24948 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
24949
24950         PR target/81305
24951         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
24952         Don't depend on "optimize > 0".
24953         (out_movhi_r_mr, out_movqi_mr_r): Same.
24954         (out_movhi_mr_r, out_movqi_r_mr): Same.
24955         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
24956         io_address_operand on "optimize > 0".
24957
24958 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24959
24960         * tree-loop-distribution.c: Add general explanantion on the pass.
24961         (generate_loops_for_partition): Mark distributed loop.
24962         (pg_add_dependence_edges): New parameter.  Handle alias data
24963         dependence specially and record it in the parameter if asked.
24964         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
24965         (init_partition_graph_vertices, add_partition_graph_edge): New.
24966         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
24967         (free_partition_graph_vdata, build_partition_graph): New.
24968         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
24969         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
24970         (data_ref_segment_size, latch_dominated_by_data_ref): New.
24971         (compute_alias_check_pairs, version_loop_by_alias_check): New.
24972         (version_for_distribution_p, finalize_partitions): New.
24973         (distribute_loop): Handle alias data dependence specially.  Factor
24974         out loop fusion code as functions and call these functions.
24975
24976 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24977
24978         * tree-loop-distribution.c (classify_partition): New parameter and
24979         better handle reduction statement.
24980         (rdg_build_partitions): Revise comment.
24981         (distribute_loop): Compute statements in all partitions and pass it
24982         to classify_partition.
24983
24984 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24985
24986         * tree-loop-distribution.c (enum partition_type): New.
24987         (struct partition): New field type.
24988         (partition_merge_into): Add parameter.  Update partition type.
24989         (data_dep_in_cycle_p, update_type_for_merge): New functions.
24990         (build_rdg_partition_for_vertex): Compute partition type.
24991         (rdg_build_partitions): Dump partition type.
24992         (distribute_loop): Update calls to partition_merge_into.
24993
24994 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
24995
24996         * tree-loop-distribution.c (struct ddr_hasher): New.
24997         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
24998         (ddrs_table): New.
24999         (classify_partition): Call get_data_dependence.
25000         (pg_add_dependence_edges): Ditto.
25001         (distribute_loop): Release data dependence hash table.
25002
25003 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25004
25005         * tree-loop-distribution.c (ref_base_address): Delete.
25006         (similar_memory_accesses): Rename ...
25007         (share_memory_accesses): ... to this.  Check if partitions access
25008         the same memory reference.
25009         (distribute_loop): Call share_memory_accesses.
25010
25011 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25012
25013         * tree-loop-distribution.c (struct partition): New field recording
25014         its data reference.
25015         (partition_alloc, partition_free): Init and release data refs.
25016         (partition_merge_into): Merge data refs.
25017         (build_rdg_partition_for_vertex): Collect data refs for partition.
25018         (pg_add_dependence_edges): Change parameters from vector to bitmap.
25019         Update uses.
25020         (distribute_loop): Remve data refs from vertice data of partition
25021         graph.
25022
25023 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25024
25025         * tree-loop-distribution.c (params.h): Include header file.
25026         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
25027         (datarefs_vec): New global var.
25028         (create_rdg_vertices): Use datarefs_vec directly.
25029         (free_rdg): Don't free data references.
25030         (build_rdg): Update use.  Don't free data references.
25031         (distribute_loop): Compute global variable for data references.
25032         Bail out if there are too many data references.
25033
25034 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25035
25036         * tree-loop-distribution.c (loop_nest): New global var.
25037         (build_rdg): Use loop directly, rather than loop nest.
25038         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
25039         variable directly.
25040         (distribute_loop): Compute global variable loop nest.  Update use.
25041
25042 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25043
25044         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
25045         (partition_merge_into): New parameter.  Dump reason for fusion.
25046         (distribute_loop): Update use of partition_merge_into.
25047
25048 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25049
25050         * tree-loop-distribution.c (bb_top_order_index): New.
25051         (bb_top_order_index_size, bb_top_order_cmp): New.
25052         (stmts_from_loop): Use topological order.
25053         (pass_loop_distribution::execute): Compute and release topological
25054         order for basic blocks.
25055
25056 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25057
25058         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
25059         if no loops.
25060
25061 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25062
25063         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
25064         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
25065         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
25066         * internal-fn.def (LOOP_DIST_ALIAS): New.
25067         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
25068         (fold_loop_internal_call): ... this.
25069         (vect_loop_dist_alias_call): New function.
25070         (set_uid_loop_bbs): Call fold_loop_internal_call.
25071         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
25072         internal calls.
25073
25074 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25075
25076         PR target/81300
25077         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
25078         Require dead FLAGS_REG at the beginning of a peephole.
25079
25080 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25081
25082         PR target/81294
25083         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
25084         arguments in the call to __builtin_ia32_sbb_u32.
25085         (_subborrow_u64): Swap _X and _Y arguments in the call to
25086         __builtin_ia32_sbb_u64.
25087
25088 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
25089
25090         PR debug/81278
25091         * tree-vrp.c (compare_assert_loc): Turn into a function template
25092         with stable template parameter.  Only test if a->e is NULL,
25093         !a->e == !b->e has been verified already.  Use e == NULL or
25094         e != NULL instead of e or ! e tests.  If stable is true, don't use
25095         iterative_hash_expr, on the other side allow a or b or both NULL
25096         and sort the NULLs last.
25097         (process_assert_insertions): Sort using compare_assert_loc<false>
25098         instead of compare_assert_loc, later sort using
25099         compare_assert_loc<true> before calling process_assert_insertions_for
25100         in a loop.  Use break instead of continue once seen NULL pointer.
25101
25102 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25103
25104         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
25105         Cortex-R7 and Cortex-R8 processors.
25106
25107 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25108
25109         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
25110         uninitialized while src is not.
25111
25112 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
25113
25114         * common/config/arm/arm-common.c: Adjust include path for
25115         arm-cpu-cdata.h
25116         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
25117         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
25118         (arm-cpu-data.h): Likewise.
25119         (arm-cpu-cdata.h): Likewise.
25120         * config/arm/arm-cpu.h: Delete.
25121         * config/arm/arm-cpu-cdata.h: Delete.
25122         * config/arm/arm-cpu-data.h: Delete.
25123
25124 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
25125
25126         * config/arm/arm-cpus.in (cortex-a55): New.
25127         (cortex-a75): Likewise.
25128         (cortex-a75.cortex-a55): Likewise.
25129         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
25130         cortex-a75.
25131         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
25132         * config/arm/arm-cpu-cdata.h: Regenerate.
25133         * config/arm/arm-cpu-data.h: Regenerate.
25134         * config/arm/arm-cpu.h: Regenerate.
25135         * config/arm/arm-tables.opt: Regenerate.
25136         * config/arm/arm-tune.md: Regenerate.
25137
25138 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25139
25140         * haifa-sched.c (sched_create_recovery_edges): Update profile.
25141
25142 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25143
25144         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
25145         probability.
25146
25147 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
25148
25149         PR tree-optimization/81292
25150         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
25151         full_string_p, also call adjust_related_strinfos if the adjustment
25152         is simple, otherwise invalidate related strinfos.
25153
25154 2017-07-04  Martin Liska  <mliska@suse.cz>
25155
25156         PR sanitizer/81040
25157         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
25158         newly created variable as DECL_IGNORED_P.
25159
25160 2017-07-04  Martin Liska  <mliska@suse.cz>
25161
25162         PR ipa/81293
25163         * ipa-inline.c (inline_small_functions):
25164         Use xstrdup_for_dump.
25165
25166 2017-07-04  Tom de Vries  <tom@codesourcery.com>
25167
25168         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
25169
25170 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25171
25172         PR target/81033
25173         * config/darwin.c (darwin_function_switched_text_sections):
25174         Fix spaces.
25175
25176 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
25177
25178         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
25179
25180 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25181
25182         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
25183
25184 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25185
25186         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
25187         min_profitable_iters, and th as inclusive lower bounds.
25188         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
25189         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
25190         for min_profitable_iters and min_profitable_estimate.
25191         (vect_transform_loop): Treat th as an inclusive lower bound.
25192         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
25193
25194 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25195
25196         PR target/81033
25197         * config/darwin.c (darwin_function_switched_text_sections):
25198         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
25199         in two pieces, and suppress the use of buf.
25200
25201 2017-07-03  Nathan Sidwell  <nathan@acm.org>
25202
25203         * hash-table.h (hash_table_mod1): Fix indentation.
25204
25205 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25206
25207         PR middle-end/81290
25208         * predict.c (force_edge_cold): Be more careful about propagation
25209         backward.
25210         * profile-count.h (profile_probability::guessed,
25211         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
25212         New.
25213         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
25214
25215 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
25216
25217         * doc/invoke.texi (rcpc architecture extension): Document it.
25218
25219 2017-07-03  Richard Biener  <rguenther@suse.de>
25220
25221         PR tree-optimization/60510
25222         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
25223         the scalar reduction PHI and use it.
25224         (vectorizable_reduction): Properly guard the single_defuse_cycle
25225         path for non-SLP reduction chains where we cannot use it.
25226         Rework reduc_def/index and vector type deduction.  Rework
25227         vector operand gathering during reduction op code-gen.
25228         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
25229         chains dissolve the chain and leave it to non-SLP reduction
25230         handling.
25231
25232 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25233
25234         * tree-data-ref.h (dr_alignment): Declare.
25235         * tree-data-ref.c (dr_alignment): New function.
25236         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
25237         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
25238         set it.
25239         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
25240
25241 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25242
25243         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
25244         and base_misalignment fields.
25245         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
25246         * tree-data-ref.c: Include builtins.h.
25247         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
25248         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
25249         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
25250         * tree-vect-data-refs.c: Include tree-cfg.h.
25251         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
25252         fields instead of calculating an alignment here.
25253         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
25254         innermost_loop_behavior fields.
25255
25256 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25257
25258         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
25259         field.
25260         (DR_STEP_ALIGNMENT): New macro.
25261         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
25262         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
25263         (create_data_ref): Print it.
25264         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
25265         to tell whether the step preserves vector (mis)alignment.
25266         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25267         Move the check for an integer step and generalise to all INTEGER_CST.
25268         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
25269         Print the outer step alignment.
25270
25271 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25272
25273         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
25274         with offset_alignment.
25275         (DR_ALIGNED_TO): Delete.
25276         (DR_OFFSET_ALIGNMENT): New macro.
25277         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
25278         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
25279         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
25280         (create_data_ref): Likewise.
25281         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25282         (vect_analyze_data_refs): Likewise.
25283         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
25284         creating dummy innermost behavior.
25285
25286 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25287
25288         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
25289         with a "innermost_loop_behavior *" and refeence tree.
25290         * tree-data-ref.c (dr_analyze_innermost): Likewise.
25291         (create_data_ref): Update call accordingly.
25292         * tree-predcom.c (find_looparound_phi): Likewise.
25293
25294 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25295
25296         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
25297         fields with dr_wrt_vec_loop.
25298         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
25299         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
25300         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
25301         (vect_dr_behavior): New function.
25302         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25303         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
25304         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
25305         track whether the step preserves the misalignment.
25306         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25307         Use vect_dr_behavior.
25308         (vect_setup_realignment): Update call accordingly.
25309         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
25310         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
25311         call to vect_create_addr_base_for_vector_ref.
25312         (vect_create_cond_for_align_checks): Likewise.
25313         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
25314         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
25315         (vect_recog_mask_conversion_pattern): Likewise.
25316         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
25317         (new_stmt_vec_info): Remove redundant zeroing.
25318
25319 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25320
25321         * common/config/arm/arm-common.c (arm_be8_option): New function.
25322         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
25323         (ISA_ARMv6): Add isa_bit_be8.
25324         * config/arm/arm.h (arm_be8_option): Add prototype.
25325         (BE8_SPEC_FUNCTION): New define.
25326         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
25327         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
25328         (mlittle-endian): Similarly.
25329         (mbe8, mbe32): New options.
25330         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
25331         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
25332
25333 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25334
25335         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
25336
25337 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25338
25339         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
25340         (cleanup_tree_cfg_bb): Use it.
25341         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
25342         New functions.
25343         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
25344
25345 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25346
25347         PR bootstrap/81285
25348         * loop-doloop.c (add_test): Update profile.
25349
25350 2017-07-03  Martin Liska  <mliska@suse.cz>
25351
25352         PR sanitize/81040
25353         * sanopt.c (rewrite_usage_of_param): New function.
25354         (sanitize_rewrite_addressable_params): Likewise.
25355         (pass_sanopt::execute): Call rewrite_usage_of_param.
25356
25357 2017-07-03  Richard Biener  <rguenther@suse.de>
25358
25359         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
25360         back to using VIEW_CONVERT_EXPR.
25361
25362 2017-07-03  Martin Liska  <mliska@suse.cz>
25363
25364         PR other/78366
25365         * doc/extend.texi: Document when a resolver function is
25366         generated for target_clones.
25367
25368 2017-07-03  Martin Liska  <mliska@suse.cz>
25369
25370         * asan.c (asan_emit_stack_protection): Unpoison just red zones
25371         and shadow memory of auto variables which are subject of
25372         use-after-scope sanitization.
25373         (asan_expand_mark_ifn): Add do set only when is_poison.
25374
25375 2016-07-03  Richard Biener  <rguenther@suse.de>
25376
25377         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
25378         reduction PHIs.
25379         (vect_force_simple_reduction): Record reduction def -> phi mapping.
25380         (vectorizable_reduction): Perform reduction PHI creation when
25381         visiting a reduction PHI and adjust and simplify code generation
25382         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
25383         (vect_transform_loop): Visit reduction PHIs.
25384         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
25385         defs into the SLP tree.
25386         (vect_build_slp_tree): Reduction defs terminate the recursion.
25387         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
25388         of reduction defs.
25389         (vect_get_vec_defs_for_stmt_copy): Export.
25390         (vect_get_vec_defs): Likewise.
25391         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
25392         purpose.
25393         (vect_get_vec_defs_for_stmt_copy): Declare.
25394         (vect_get_vec_defs): Likewise.
25395
25396 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25397
25398         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
25399         parameter with a "loop" parameter and use it instead of the
25400         loop containing DR_STMT.  Don't check simple_iv when doing
25401         BB analysis.  Describe the two analysis modes in the comment.
25402
25403 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25404
25405         PR tree-optimization/69468
25406         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
25407         (find_same_succ_bb): Handle ignore_edge_flags.
25408
25409 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25410
25411         PR tree-optimization/81192
25412         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
25413         hash.
25414         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
25415         differs.
25416         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
25417
25418 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25419
25420         PR tree-optimization/81192
25421         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
25422         BB_SAME_SUCC (bb) == NULL.
25423
25424 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25425
25426         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
25427         consistency.
25428
25429 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25430
25431         * dumpfile.c: Include profile-count.h
25432         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
25433         update profile.
25434         (insert_cond_bb): Update profile.
25435         * tree-cfg.h (insert_cond_bb): Update prototype.
25436         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
25437         * tree-dump.c: Do not include tree-cfg.
25438
25439 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25440
25441         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
25442
25443 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25444
25445         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
25446         bb.
25447
25448 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25449
25450         * tree-complex.c (expand_complex_div_wide): update profile.
25451
25452 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25453             Alan Hayward  <alan.hayward@arm.com>
25454             David Sherwood  <david.sherwood@arm.com>
25455
25456         * Makefile.in (MACHMODE_H): Remove insn-modes.h
25457         (CORETYPES_H): New define.
25458         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
25459         (insn-modes-inline.h, s-modes-inline-h): New rules.
25460         (generated_files): Add insn-modes-inline.h.
25461         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
25462         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
25463         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
25464         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
25465         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
25466         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
25467         (build/gencodes.o, build/genconditions.o): Likewise.
25468         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
25469         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
25470         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
25471         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
25472         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
25473         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
25474         * coretypes.h: Include everything up to real.h for generators.
25475         Include insn-modes.h first.  Include wide-int-print.h after
25476         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
25477         * machmode.h: Don't include insn-modes.h here.
25478         * function-tests.c: Remove includes of signop.h, machmode.h,
25479         double-int.h and wide-int.h.
25480         * rtl.h: Likewise.
25481         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
25482         and wide-int.h.
25483         * optc-save-gen.awk: Likewise.
25484         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
25485         * godump.c: Remove include of wide-int-print.h.
25486         * pretty-print.h: Likewise.
25487         * wide-int-print.cc: Likewise.
25488         * wide-int.cc: Likewise.
25489         * hash-map-tests.c: Remove include of signop.h.
25490         * hash-set-tests.c: Likewise.
25491         * rtl-tests.c: Likewise.
25492         * mkconfig.sh: Remove include of machmode.h.
25493         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
25494         into...
25495         (emit_insn_modes_inline_h): ...this new function.  Emit the code
25496         into an insn-modes-inline.h header file, adding appropriate
25497         include guards and end comments.
25498         (emit_insn_modes_c_header): Remove include of machmode.h.
25499         (emit_min_insn_modes_c_header): Include coretypes.h rather than
25500         machmode.h.
25501         (main): Handle -i flag and call emit_insn_modes_inline_h when
25502         it is passed.
25503
25504 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25505
25506         * tree-ssa-strlen.c (strinfo): Rename the length field to
25507         nonzero_chars.  Add a full_string_p field.
25508         (compare_nonzero_chars, zero_length_string_p): New functions.
25509         (get_addr_stridx): Add an offset_out parameter.
25510         Use compare_nonzero_chars.
25511         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
25512         (new_strinfo): Update after above changes to strinfo.
25513         (set_endptr_and_length): Set full_string_p.
25514         (get_string_length): Update after above changes to strinfo.
25515         (unshare_strinfo): Update call to new_strinfo.
25516         (maybe_invalidate): Likewise.
25517         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
25518         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
25519         as a uhwi instead of an shwi.  Update after above changes to
25520         strinfo and new_strinfo.
25521         (zero_length_string): Assert that chainsi contains full strings.
25522         Use zero_length_string_p.  Update call to new_strinfo.
25523         (adjust_related_strinfos): Update after above changes to strinfo.
25524         Copy full_string_p from origsi.
25525         (adjust_last_stmt): Use zero_length_string_p.
25526         (handle_builtin_strlen): Update after above changes to strinfo and
25527         new_strinfo.  Install the lhs as the string length if the previous
25528         entry didn't describe a full string.
25529         (handle_builtin_strchr): Update after above changes to strinfo
25530         and new_strinfo.
25531         (handle_builtin_strcpy): Likewise.
25532         (handle_builtin_strcat): Likewise.
25533         (handle_builtin_malloc): Likewise.
25534         (handle_pointer_plus): Likewise.
25535         (handle_builtin_memcpy): Likewise.  Track nonzero characters
25536         that aren't necessarily followed by a nul terminator.
25537         (handle_char_store): Likewise.
25538
25539 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25540
25541         PR tree-optimization/80769
25542         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
25543         for malloc and calloc.  Document the new invariant that all related
25544         strinfos have delayed lengths or none do.
25545         (verify_related_strinfos): Move earlier in file.
25546         (set_endptr_and_length): New function, split out from...
25547         (get_string_length): ...here.  Also set the lengths of related
25548         strinfos.
25549         (zero_length_string): Assert that chainsi has known (rather than
25550         delayed) lengths.
25551         (adjust_related_strinfos): Likewise.
25552
25553 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25554
25555         PR tree-optimization/81136
25556         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
25557         assert that two references with the same misalignment have the same
25558         compile-time misalignment if those compile-time misalignments
25559         are known.
25560
25561 2017-07-01  Andi Kleen  <ak@linux.intel.com>
25562
25563         * print-tree.c (print_node): Print all attributes.
25564
25565 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25566
25567         * cfg.c (scale_bbs_frequencies): New function.
25568         * cfg.h (scale_bbs_frequencies): Declare it.
25569         * cfgloopanal.c (single_likely_exit): Cleanup.
25570         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
25571         as parameter.
25572         (scale_loop_profile): Likewise.
25573         (loop_version): Likewise.
25574         (create_empty_loop_on_edge): Update.
25575         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
25576         scale_loop_frequencies, scale_loop_profile, loopify,
25577         loop_version): Update prototypes.
25578         * modulo-sched.c (sms_schedule): Update.
25579         * predict.c (unlikely_executed_edge_p): Also check probability.
25580         (probably_never_executed_edge_p): Fix typo.
25581         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25582         * tree-parloops.c (gen_parallel_loop): Update.
25583         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
25584         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25585         * tree-ssa-loop-split.c (split_loop): Update.
25586         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25587         * tree-vect-loop-manip.c (vect_do_peeling): Update.
25588         (vect_loop_versioning): Update.
25589         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25590
25591 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25592
25593         * trans-mem.c (split_bb_make_tm_edge): Update profile.
25594
25595 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25596
25597         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
25598         to keep profile consistent.
25599
25600 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25601
25602         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
25603         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
25604         * profile-count.h (max_safe_multiplier): Make unsigned.
25605         (profile_count::guessed_zero): New.
25606
25607 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25608
25609         * bb-reorder.c (fix_up_crossing_landing_pad,
25610         fix_crossing_conditional_branches): Use make_single_succ_edge
25611         to keep profile consistent.
25612
25613 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25614
25615         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
25616         to update profile.
25617
25618 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
25619
25620         PR sanitizer/81262
25621         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
25622         the right scopes, make sure cond_jump isn't preserved between multiple
25623         iterations.  Search for fallthru edge whenever there are 3+ edges and
25624         use find_fallthru_edge for it.
25625
25626 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25627
25628         Patch by Alexander Monakov <amonakov@ispras.ru>
25629         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
25630         probabilities consistently.
25631
25632 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25633
25634         * pa.c (pa_expand_compare_and_swap_loop): Update call of
25635         emit_cmp_and_jump_insns.
25636
25637 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25638
25639         PR ipa/81261
25640         * tree-inline.c (expand_call_inline): Combine profile statuses.
25641
25642 2017-06-30  Andrew Pinski  <apinski@cavium.com>
25643
25644         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
25645         fold_stmt returned true.
25646
25647 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25648
25649         * ggc.h (empty_string): Delete.
25650         * cfgexpand.c (expand_asm_stmt): Use plain "".
25651         * optabs.c (expand_asm_memory_barrier): Likewise.
25652         * stringpool.c (empty_string): Delete.
25653         (digit_vector, digit_string): Delete.
25654         (ggc_alloc_string): Use plain "", don't optimize single digit
25655         strings.  Use ggc_alloc_atomic.
25656
25657 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
25658
25659         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
25660         comparison set and one other set, use the cost of the non-comparison
25661         set.
25662
25663 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25664
25665         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
25666         some formatting.
25667
25668 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
25669
25670         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
25671         loops.  Remove now unneeded calls to gimple_switch_set_label() that
25672         just set removed labels to NULL_TREE.
25673
25674 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
25675
25676         * tree-ssanames.c (set_range_info_raw): Abstract from ...
25677         (set_range_info): ...here.  Only call set_range_info_raw if domain
25678         is useful.
25679         (set_nonzero_bits): Call set_range_info_raw.
25680         * tree-ssanames.h (set_range_info_raw): New.
25681
25682 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
25683
25684         PR target/81225
25685         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
25686         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
25687         of nonimmediate_operand and <store_mask_constraint> instead of m
25688         for the input operand.  For V8FI iterator, always split if input
25689         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
25690         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
25691         <store_mask_predicate> instead of register_operand and
25692         <store_mask_constraint> instead of v for the input operand.  Make
25693         sure both operands aren't MEMs for if not <mask_applied>.
25694
25695 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
25696
25697         * lto-wrapper.c (copy_file) Close both file descriptors before
25698         exiting normally.
25699
25700 2017-06-30  Martin Liska  <mliska@suse.cz>
25701
25702         PR ipa/81214
25703         * multiple_target.c (create_dispatcher_calls): Make ifunc
25704         also for function that don't have calls or are not referenced.
25705
25706 2017-06-30  Richard Biener  <rguenther@suse.de>
25707
25708         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
25709         analyze the first scalar stmt.  Move vector type computation
25710         for the BB case here from ...
25711         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
25712         live operation processing in the SLP case properly.
25713
25714 2017-06-30  Richard Biener  <rguenther@suse.de>
25715
25716         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
25717
25718 2017-06-30  Martin Liska  <mliska@suse.cz>
25719
25720         PR sanitizer/81021
25721         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
25722         before BUILT_IN_UNWIND_RESUME when ASAN is used.
25723
25724 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
25725
25726         * doc/invoke.texi (AArch64): Add missing options and remove redundant
25727         ones.
25728
25729 2017-06-30  Richard Biener  <rguenther@suse.de>
25730
25731         PR tree-optimization/81249
25732         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
25733         condition reduction result to original scalar type.
25734
25735 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25736
25737         * profile-count.h (enum profile_quality): Fix typos and whitespace
25738         issues.
25739
25740 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25741
25742         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
25743         type for branch probabilities.
25744
25745 2017-06-29  Julian Brown  <julian@codesourcery.com>
25746             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25747
25748         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
25749         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
25750         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
25751         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
25752
25753 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25754
25755         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
25756         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
25757         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
25758         CC usage from generic code to here.
25759         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
25760         CC usage into the target macros.
25761
25762 2017-06-29  Maya Rashish  <coypu@sdf.org>
25763
25764         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
25765         objects.
25766
25767 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25768
25769         * arm/arm-builtins.c: Include profile-count.h
25770         * except.c (sjlj_emit_function_enter): Use
25771         profile_probability::unlikely.
25772
25773 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25774
25775         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
25776         and tocrel_offset be pointer args rather than implicitly using
25777         static versions.
25778         (legitimate_constant_pool_address_p, rs6000_emit_move,
25779         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
25780         tocrel_offset and use in toc_relative_expr_p call.
25781         (print_operand, print_operand_address): Use static tocrel_base_oac
25782         and tocrel_offset_oac.
25783         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
25784         tocrel_offset_oac.
25785
25786 2017-06-29  Maya Rashish  <coypu@sdf.org>
25787
25788         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
25789
25790 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
25791
25792         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
25793         objects, take into account only the alignment of 'op0' and 'mode1' if
25794         'op0' is a MEM.
25795
25796 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
25797
25798         * ccmp.c (ccmp_tree_comparison_p): New function.
25799         (ccmp_candidate_p): Update to use above function.
25800         (get_compare_parts): New function.
25801         (expand_ccmp_next): Update to use new functions.
25802         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
25803         new functions.
25804         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
25805         take mode as argument.
25806         * ccmp.h (expand_ccmp_expr): Add mode as argument.
25807         * expr.c (expand_expr_real_1): Pass mode as argument.
25808
25809 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
25810
25811         * combine.c (combine_instructions): Print insns to dump_file, together
25812         with their costs.
25813
25814 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25815
25816         * asan.c (asan_emit_stack_protection): Update.
25817         (create_cond_insert_point): Update.
25818         * auto-profile.c (afdo_propagate_circuit): Update.
25819         * basic-block.h (struct edge_def): Turn probability to
25820         profile_probability.
25821         (EDGE_FREQUENCY): Update.
25822         * bb-reorder.c (find_traces_1_round): Update.
25823         (better_edge_p): Update.
25824         (sanitize_hot_paths): Update.
25825         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
25826         (make_single_succ_edge): Update.
25827         (check_bb_profile): Update.
25828         (dump_edge_info): Update.
25829         (update_bb_profile_for_threading): Update.
25830         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
25831         probabilitycount to 0.
25832         * cfgbuild.c (compute_outgoing_frequencies): Update.
25833         * cfgcleanup.c (try_forward_edges): Update.
25834         (outgoing_edges_match): Update.
25835         (try_crossjump_to_edge): Update.
25836         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
25837         (expand_gimple_tailcall): Update.
25838         (construct_init_block): Use make_single_succ_edge.
25839         (construct_exit_block): Use make_single_succ_edge.
25840         * cfghooks.c (verify_flow_info): Update.
25841         (redirect_edge_succ_nodup): Update.
25842         (split_edge): Update.
25843         (account_profile_record): Update.
25844         * cfgloopanal.c (single_likely_exit): Update.
25845         * cfgloopmanip.c (scale_loop_profile): Update.
25846         (set_zero_probability): Remove.
25847         (duplicate_loop_to_header_edge): Update.
25848         * cfgloopmanip.h (loop_version): Update prototype.
25849         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
25850         (force_nonfallthru_and_redirect): Update.
25851         (update_br_prob_note): Update.
25852         (rtl_verify_edges): Update.
25853         (purge_dead_edges): Update.
25854         (rtl_lv_add_condition_to_bb): Update.
25855         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
25856         * cgraphunit.c (init_lowered_empty_function): Update.
25857         (cgraph_node::expand_thunk): Update.
25858         * cilk-common.c: Include profile-count.h
25859         * dojump.c (inv): Remove.
25860         (jumpifnot): Update.
25861         (jumpifnot_1): Update.
25862         (do_jump_1): Update.
25863         (do_jump): Update.
25864         (do_jump_by_parts_greater_rtx): Update.
25865         (do_compare_rtx_and_jump): Update.
25866         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
25867         do_jump_1. do_compare_rtx_and_jump): Update prototype.
25868         * dwarf2cfi.c: Include profile-count.h
25869         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
25870         (sjlj_emit_dispatch_table): Likewise.
25871         * explow.c: Include profile-count.h
25872         * expmed.c (emit_store_flag_force): Update.
25873         (do_cmp_and_jump): Update.
25874         * expr.c (compare_by_pieces_d::generate): Update.
25875         (compare_by_pieces_d::finish_mode): Update.
25876         (emit_block_move_via_loop): Update.
25877         (store_expr_with_bounds): Update.
25878         (store_constructor): Update.
25879         (expand_expr_real_2): Update.
25880         (expand_expr_real_1): Update.
25881         * expr.h (try_casesi, try_tablejump): Update prototypes.
25882         * gimple-pretty-print.c (dump_probability): Update.
25883         (dump_profile): New.
25884         (dump_gimple_label): Update.
25885         (dump_gimple_bb_header): Update.
25886         * graph.c (draw_cfg_node_succ_edges): Update.
25887         * hsa-gen.c (convert_switch_statements): Update.
25888         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
25889         (find_if_case_1): Update.
25890         (find_if_case_2): Update.
25891         * internal-fn.c (expand_arith_overflow_result_store): Update.
25892         (expand_addsub_overflow): Update.
25893         (expand_neg_overflow): Update.
25894         (expand_mul_overflow): Update.
25895         (expand_vector_ubsan_overflow): Update.
25896         * ipa-cp.c (good_cloning_opportunity_p): Update.
25897         * ipa-split.c (split_function): Use make_single_succ_edge.
25898         * ipa-utils.c (ipa_merge_profiles): Update.
25899         * loop-doloop.c (add_test): Update.
25900         (doloop_modify): Update.
25901         * loop-unroll.c (compare_and_jump_seq): Update.
25902         (unroll_loop_runtime_iterations): Update.
25903         * lra-constraints.c (lra_inheritance): Update.
25904         * lto-streamer-in.c (input_cfg): Update.
25905         * lto-streamer-out.c (output_cfg): Update.
25906         * mcf.c (adjust_cfg_counts): Update.
25907         * modulo-sched.c (sms_schedule): Update.
25908         * omp-expand.c (expand_omp_for_init_counts): Update.
25909         (extract_omp_for_update_vars): Update.
25910         (expand_omp_ordered_sink): Update.
25911         (expand_omp_for_ordered_loops): Update.
25912         (expand_omp_for_generic): Update.
25913         (expand_omp_for_static_nochunk): Update.
25914         (expand_omp_for_static_chunk): Update.
25915         (expand_cilk_for): Update.
25916         (expand_omp_simd): Update.
25917         (expand_omp_taskloop_for_outer): Update.
25918         (expand_omp_taskloop_for_inner): Update.
25919         * omp-simd-clone.c (simd_clone_adjust): Update.
25920         * optabs.c (expand_doubleword_shift): Update.
25921         (expand_abs): Update.
25922         (emit_cmp_and_jump_insn_1): Update.
25923         (expand_compare_and_swap_loop): Update.
25924         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
25925         * predict.c (predictable_edge_p): Update.
25926         (edge_probability_reliable_p): Update.
25927         (set_even_probabilities): Update.
25928         (combine_predictions_for_insn): Update.
25929         (combine_predictions_for_bb): Update.
25930         (propagate_freq): Update.
25931         (estimate_bb_frequencies): Update.
25932         (force_edge_cold): Update.
25933         * profile-count.c (profile_count::dump): Add missing space into dump.
25934         (profile_count::debug): Add newline.
25935         (profile_count::differs_from_p): Explicitly convert to unsigned.
25936         (profile_count::stream_in): Update.
25937         (profile_probability::dump): New member function.
25938         (profile_probability::debug): New member function.
25939         (profile_probability::differs_from_p): New member function.
25940         (profile_probability::differs_lot_from_p): New member function.
25941         (profile_probability::stream_in): New member function.
25942         (profile_probability::stream_out): New member function.
25943         * profile-count.h (profile_count_quality): Rename to ...
25944         (profile_quality): ... this one.
25945         (profile_probability): New.
25946         (profile_count): Update.
25947         * profile.c (compute_branch_probabilities): Update.
25948         * recog.c (peep2_attempt): Update.
25949         * sched-ebb.c (schedule_ebbs): Update.
25950         * sched-rgn.c (find_single_block_region): Update.
25951         (compute_dom_prob_ps): Update.
25952         (schedule_region): Update.
25953         * sel-sched-ir.c (compute_succs_info): Update.
25954         * stmt.c (struct case_node): Update.
25955         (do_jump_if_equal): Update.
25956         (get_outgoing_edge_probs): Update.
25957         (conditional_probability): Update.
25958         (emit_case_dispatch_table): Update.
25959         (expand_case): Update.
25960         (expand_sjlj_dispatch_table): Update.
25961         (emit_case_nodes): Update.
25962         * targhooks.c: Update.
25963         * tracer.c (better_p): Update.
25964         (find_best_successor): Update.
25965         * trans-mem.c (expand_transaction): Update.
25966         * tree-call-cdce.c: Update.
25967         * tree-cfg.c (gimple_split_edge): Upate.
25968         (move_sese_region_to_fn): Upate.
25969         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
25970         * tree-eh.c (lower_resx): Upate.
25971         (cleanup_empty_eh_move_lp): Upate.
25972         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25973         * tree-inline.c (copy_edges_for_bb): Update.
25974         (copy_cfg_body): Update.
25975         * tree-parloops.c (gen_parallel_loop): Update.
25976         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
25977         (gimple_gen_time_profiler): Update.
25978         * tree-ssa-dce.c (remove_dead_stmt): Update.
25979         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
25980         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
25981         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
25982         (unloop_loops): Update.
25983         (try_peel_loop): Update.
25984         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25985         * tree-ssa-loop-split.c (connect_loops): Update.
25986         (split_loop): Update.
25987         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25988         (hoist_guard): Update.
25989         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
25990         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
25991         (value_replacement): Update.
25992         * tree-ssa-reassoc.c (branch_fixup): Update.
25993         * tree-ssa-tail-merge.c (replace_block_by): Update.
25994         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
25995         (create_edge_and_update_destination_phis): Update.
25996         (compute_path_counts): Update.
25997         (recompute_probabilities): Update.
25998         (update_joiner_offpath_counts): Update.
25999         (freqs_to_counts_path): Update.
26000         (duplicate_thread_path): Update.
26001         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
26002         (struct switch_conv_info): Update.
26003         (gen_inbound_check): Update.
26004         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
26005         (vect_do_peeling): Update.
26006         (vect_loop_versioning): Update.
26007         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
26008         (optimize_mask_stores): Update.
26009         * ubsan.c (ubsan_expand_null_ifn): Update.
26010         * value-prof.c (gimple_divmod_fixed_value): Update.
26011         (gimple_divmod_fixed_value_transform): Update.
26012         (gimple_mod_pow2): Update.
26013         (gimple_mod_pow2_value_transform): Update.
26014         (gimple_mod_subtract): Update.
26015         (gimple_mod_subtract_transform): Update.
26016         (gimple_ic): Update.
26017         (gimple_stringop_fixed_value): Update.
26018         (gimple_stringops_transform): Update.
26019         * value-prof.h: Update.
26020
26021 2017-06-29  Carl Love  <cel@us.ibm.com>
26022
26023         * config/rs6000/rs6000-c.c: Add support for built-in functions
26024         vector signed int vec_signed (vector float);
26025         vector signed long long vec_signed (vector double);
26026         vector signed int vec_signed2 (vector double, vector double);
26027         vector signed int vec_signede (vector double);
26028         vector signed int vec_signedo (vector double);
26029         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
26030         instruction generator.
26031         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
26032         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
26033         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
26034         Add define_insn.
26035         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
26036         vunsignede_v2df): Add define_expands.
26037         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
26038         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
26039         VEC_UNSIGNEDO): Add definitions.
26040         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
26041         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
26042         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
26043         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
26044         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
26045         * config/rs6000/altivec.h (vec_signed, vec_signed2,
26046         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
26047         vec_unsignede, vec_unsignedo): Add builtin defines.
26048         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
26049         declaration.
26050         * doc/extend.texi: Update the built-in documentation file for the
26051         new built-in functions.
26052
26053 2017-06-29  Richard Biener  <rguenther@suse.de>
26054
26055         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
26056         reduction chains to LOOP_VINFO_REDUCTIONS.
26057         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
26058         SLP reductions after processing reduction chains.
26059
26060 2017-06-29  Nathan Sidwell  <nathan@acm.org>
26061
26062         * builtins.c (fold_builtin_FUNCTION): Use
26063         lang_hooks.decl_printable_name.
26064
26065 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
26066
26067         PR middle-end/81194
26068         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
26069         with only one label.
26070         * stmt.c (expand_case): Assert NCASES is greater than one.
26071
26072 2017-06-29  Richard Biener  <rguenther@suse.de>
26073
26074         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
26075         anything.
26076         (group_case_labels): Likewise.
26077         (find_taken_edge): Push sanity checking on val to workers...
26078         (find_taken_edge_cond_expr): ... here
26079         (find_taken_edge_switch_expr): ... and here, handle cases
26080         with just a default label.
26081         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
26082         (group_case_labels): Likewise.
26083         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
26084         group_case_labels does anything cleanup the CFG again.
26085
26086 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
26087
26088         PR tree-optimization/81196
26089         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
26090         exit condition comparing two IVs.
26091
26092 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
26093
26094         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
26095         profile to the dummy entry at the end of the list of architectures.
26096         * config/arm/arm-cpu-cdata.h: Regenerated.
26097
26098 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26099             Michael Collison <michael.collison@arm.com>
26100
26101         PR target/70119
26102         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
26103         New pattern.
26104         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
26105         (*aarch64_reg_<mode>3_minus_mask): New pattern.
26106         (*aarch64_<optab>_reg_di3_mask2): New pattern.
26107         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
26108         of shift when the shift amount is masked with constant equal to
26109         the size of the mode.
26110         * config/aarch64/predicates.md (subreg_lowpart_operator): New
26111         predicate.
26112
26113 2017-06-29  Martin Liska  <mliska@suse.cz>
26114
26115         * config/i386/i386.opt: Change range from [1,5] to [0,5].
26116
26117 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
26118
26119         PR bootstrap/80565
26120         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
26121         code.
26122         * ipa-inline.h
26123         (edge_growth_cache_entry::edge_growth_cache_entry): New
26124         function.
26125         (reset_edge_growth_cache): Update to use constructor.
26126
26127 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26128
26129         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
26130         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26131         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26132
26133 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
26134
26135         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
26136         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
26137
26138 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26139
26140         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
26141         (*-linux-uclibc*): Add t-uclibc tmake_file.
26142         * config/t-musl: New.
26143         * config/t-uclibc: New.
26144
26145 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
26146
26147         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
26148         context.
26149         (gen_comm_data): Emit architectural setting of arch_prof.
26150         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
26151         profile.
26152         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
26153         (armv8-m.base, armv8-m.main): Likewise.
26154         * arm-protos.h (arm_build_target): Add profile field.
26155         (arch_option): Likewise.
26156         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
26157         the active target.
26158         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
26159         arm_active_target.profile.
26160
26161 2017-06-28  Richard Biener  <rguenther@suse.de>
26162
26163         PR middle-end/81227
26164         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
26165         TYPE_OVERFLOW_WRAPS.
26166         * match.pd (negate_expr_p): Likewise.
26167         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
26168         fold_build2, not fold_binary.
26169
26170 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26171
26172         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
26173         Convert memory address to Pmode.
26174         (aarch64_print_operand): Assert MEM operands are always Pmode.
26175
26176 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26177
26178         PR target/79665
26179         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
26180         Remove redundant if.
26181         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
26182         * config/arm/aarch-common-protos.h
26183         (aarch_forward_to_shift_is_not_shifted_re): Remove.
26184         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
26185
26186 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
26187
26188         PR ipa/81238
26189         * multiple_target.c (create_dispatcher_calls): Set the default
26190         clone to be static, not public.
26191
26192 2017-06-28  Richard Biener  <rguenther@suse.de>
26193
26194         * tree-vect-loop.c (vectorizable_reduction): Move special
26195         cond reduction IV var creation ...
26196         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
26197         parameter.  Use STMT_VINFO_VECTYPE.
26198         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
26199         constant_p.
26200
26201 2017-06-28  Martin Liska  <mliska@suse.cz>
26202
26203         PR ipa/81128
26204         * ipa-visibility.c (non_local_p): Handle visibility.
26205
26206 2017-06-28  Martin Liska  <mliska@suse.cz>
26207
26208         PR driver/79659
26209         * common.opt: Add IntegerRange to various options.
26210         * opt-functions.awk (integer_range_info): New function.
26211         * optc-gen.awk: Add integer_range_info to cl_options struct.
26212         * opts-common.c (decode_cmdline_option): Handle
26213         CL_ERR_INT_RANGE_ARG.
26214         (cmdline_handle_error): Likewise.
26215         * opts.c (print_filtered_help): Show valid interval in
26216         when --help is provided.
26217         * opts.h (struct cl_option): Add range_min and range_max fields.
26218         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
26219
26220 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
26221
26222         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
26223         (x * C EQ/NE y * C): New transformation.
26224
26225 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
26226
26227         * genmultilib (combination_space): Accept '+' in option names.
26228
26229 2017-06-28  Martin Liska  <mliska@suse.cz>
26230
26231         PR sanitizer/81224
26232         * asan.c (instrument_derefs): Bail out inner references
26233         that are hard register variables.
26234
26235 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
26236
26237         PR target/81175
26238         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
26239         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
26240
26241 2017-06-28  Richard Biener  <rguenther@suse.de>
26242
26243         * tree-vectorizer.h (vect_get_vec_defs): Remove.
26244         (vect_get_slp_defs): Adjust.
26245         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
26246         out from ...
26247         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
26248         simplify.
26249         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
26250         get_initial_defs_for_reduction instead of vect_get_vec_defs.
26251         (vectorizable_reduction): Adjust.
26252         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
26253         handling.
26254         (vect_get_slp_defs): Likewise.
26255         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
26256         (vectorizable_bswap): Adjust.
26257         (vectorizable_call): Likewise.
26258         (vectorizable_conversion): Likewise.
26259         (vectorizable_assignment): Likewise.
26260         (vectorizable_shift): Likewise.
26261         (vectorizable_operation): Likewise.
26262         (vectorizable_store): Likewise.
26263         (vectorizable_condition): Likewise.
26264         (vectorizable_comparison): Likewise.
26265
26266 2017-06-28  Michael Collison  <michael.collison@arm.com>
26267
26268         PR target/68535
26269         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
26270         set of base_reg
26271         (arm_gen_movmemqi): Removed unused variable 'i'.
26272         Convert 'for' loop into 'while' loop.
26273         (arm_expand_prologue): Remove last unnecessary set of insn.
26274         (thumb_pop): Remove unused variable 'pushed_words'.
26275         (thumb_exit): Remove last unnecessary set of regs_to_pop.
26276
26277 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26278
26279         * config/s390/predicates.md: Use s390_rel_address_ok_p.
26280         * config/s390/s390-protos.h: Add prototype of
26281         s390_rel_address_ok_p.
26282         * config/s390/s390.c (s390_got_symbol): New function.
26283         (s390_rel_address_ok_p): New function.
26284         (legitimize_pic_address): Use s390_rel_address_ok_p.
26285         (s390_load_got): Use s390_got_symbol.
26286         (s390_option_override): Issue error if
26287         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
26288         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
26289         New macro.
26290         * config/s390/s390.opt: New option mpic-data-is-text-relative.
26291
26292 2017-06-27  Andrew Pinski  <apinski@cavium.com>
26293
26294         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
26295         (X * copysign (1.0, X)): New pattern.
26296         (X * copysign (1.0, -X)): New pattern.
26297         (copysign (-1.0, CST)): New pattern.
26298
26299 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
26300
26301         * genmultilib (combination_space): Remove variable.
26302         Validate reuse rules against regular expression for any sequence
26303         of multilib options in any order.
26304
26305 2017-06-27  Michael Collison  <michael.collison@arm.com>
26306
26307         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
26308         call aarch64_split_simd_combine.
26309         * (aarch64_combine_internal<mode>): Delete pattern.
26310         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
26311         Allow register and subreg operands.
26312
26313 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26314
26315         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
26316         specific need, just fallback on defaults.
26317         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
26318
26319 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26320             Olivier Hainque  <hainque@adacore.com>
26321
26322         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
26323         map for 64bits.
26324         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
26325         targets. Pick a default if no particular attempt applied.
26326         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
26327         larger contexts.
26328
26329 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26330
26331         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
26332         (x86_64-wrs-vxworks7): Likewise.
26333
26334 2017-06-27  Marek Polacek  <polacek@redhat.com>
26335
26336         PR sanitizer/81223
26337         * ubsan.c (instrument_null): Check get_base_address's result for null.
26338
26339 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26340
26341         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
26342
26343 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26344
26345         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
26346         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
26347         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
26348         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
26349         New function types.
26350         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
26351         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
26352         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
26353         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
26354         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
26355         BUILT_IN_FEUPDATEENV): New builtins.
26356         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
26357         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
26358         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
26359         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
26360         macros.
26361         (builtin_structptr_types): Adjust size.
26362         * tree.c (builtin_structptr_types): Add four entries.
26363
26364 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26365             Olivier Hainque  <hainque@adacore.com>
26366
26367         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
26368         (TLS_SYM): New local macro, forcing reference to __tls__ on
26369         link command lines for VxWorks 7 RTPs, triggering initialization
26370         of tlsLib.
26371         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
26372         OS features TLS support, true for RTPs on VxWorks 7.
26373         * config/vxworks.c (vxworks_override_options): Setup emutls
26374         accordingly.
26375
26376 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26377
26378         * predict.c (test_prediction_value_range): Use -1U instead of -1
26379         to avoid narrowing conversion warning.
26380         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
26381         to avoid narrowing conversion warning.
26382         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
26383         -1.
26384         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
26385
26386 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26387
26388         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
26389         64bit configurations.
26390         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
26391         (SIZE_TYPE): Likewise.
26392         * config/vxworks.c (vxworks_emutls_var_fields): Use
26393         long_unsigned_type_node instead of unsigned_type_node as the offset
26394         field type, which is "pointer" mode in emutls.c.
26395
26396 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26397
26398         PR sanitizer/81209
26399         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
26400
26401         PR middle-end/81207
26402         * gimple-fold.c (replace_call_with_call_and_fold): Handle
26403         gimple_vuse copying separately from gimple_vdef copying.
26404
26405 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26406
26407         * value-prof.c (free_hist): Remove call to memset and the enclosing if
26408         condition.
26409
26410 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26411             Olivier Hainque  <hainque@adacore.com>
26412
26413         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
26414         for all vxworks7 targets.
26415         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
26416         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
26417         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
26418         variations for VX6/VX7 and 32/64bits later on in ...
26419         (VXWORKS_LIB_SPEC): Leverage new macros.
26420         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
26421         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
26422
26423 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26424
26425         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
26426         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
26427
26428 2017-06-26  Carl Love  <cel@us.ibm.com>
26429
26430         * config/rs6000/rs6000-c.c: Add support for built-in functions
26431         vector bool char vec_reve (vector bool char);
26432         vector signed char vec_reve (vector signed char);
26433         vector unsigned char vec_reve (vector unsigned char);
26434         vector bool int vec_reve (vector bool int);
26435         vector signed int vec_reve (vector signed int);
26436         vector unsigned int vec_reve (vector unsigned int);
26437         vector bool long long vec_reve (vector bool long long);
26438         vector signed long long vec_reve (vector signed long long);
26439         vector unsigned long long vec_reve (vector unsigned long long);
26440         vector bool short vec_reve (vector bool short);
26441         vector signed short vec_reve (vector signed short);
26442         vector double vec_reve (vector double);
26443         vector float vec_reve (vector float);
26444         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
26445         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
26446         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
26447         (altivec_vreve): New pattern.
26448         * config/rs6000/altivec.h (vec_reve): New define.
26449         * doc/extend.texi (vec_rev): Update the built-in documentation file
26450         for the new built-in functions.
26451
26452 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26453
26454         PR tree-optimization/71815
26455         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
26456         function.
26457         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
26458         has_single_use.
26459         (slsr_process_phi): Likewise.
26460         (replace_uncond_cands_and_profitable_phis): Don't replace a
26461         multiply candidate with a stride of 1 (copy or cast).
26462         (phi_incr_cost): Call uses_consumed_by_stmt rather than
26463         has_single_use.
26464         (lowest_cost_path): Likewise.
26465         (total_savings): Likewise.
26466
26467 2017-06-26  Richard Biener  <rguenther@suse.de>
26468
26469         PR target/81175
26470         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
26471         Use def_builtin_pure for all gather builtins.
26472
26473 2017-06-26  Richard Biener  <rguenther@suse.de>
26474
26475         PR tree-optimization/81203
26476         * tree-tailcall.c (find_tail_calls): Do not move stmts into
26477         non-dominating BBs.
26478
26479 2017-06-26  Marek Polacek  <polacek@redhat.com>
26480
26481         PR c/80116
26482         * doc/invoke.texi: Document -Wmultistatement-macros.
26483
26484 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
26485
26486         * doc/sourcebuild.texi (ARM-specific attributes): Document new
26487         arm_neon_ok_no_float_abi effective target.
26488
26489 2017-06-26  Richard Biener  <rguenther@suse.de>
26490
26491         PR tree-optimization/80928
26492         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
26493         (copy_bbs): Set BB_DUPLICATED flag early.
26494         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
26495         marked blocks.
26496         (execute_on_shrinking_pred): Likewise.
26497         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
26498         BB_DUPLICATED blocks.
26499         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
26500         iterate over all PHIs considering removal of *gsi.
26501
26502 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
26503
26504         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
26505         qdf24xx.
26506
26507 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26508
26509         * config/rs6000/rs6000-string.c: (expand_block_clear,
26510         do_load_for_compare, select_block_compare_mode,
26511         compute_current_alignment, expand_block_compare,
26512         expand_strncmp_align_check, expand_strn_compare,
26513         expand_block_move, rs6000_output_load_multiple)
26514         Move functions related to string/block move/compare
26515         to a separate file.
26516         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
26517         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
26518         for this function which is now used in two files.
26519         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
26520         * config.gcc: Add rs6000-string.o to extra_objs for
26521         targets powerpc*-*-* and rs6000*-*-*.
26522
26523 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
26524
26525         PR target/80510
26526         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
26527         32-bit, since indexed is not valid for DImode.
26528         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
26529         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
26530         (define_peephole2 for Altivec d-form load): Add 32-bit support.
26531         (define_peephole2 for Altivec d-form store): Likewise.
26532
26533         PR ipa/81185
26534         * multiple_target.c (create_dispatcher_calls): Only create the
26535         dispatcher call if the function is the default clone of a
26536         versioned function.
26537
26538 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
26539
26540         PR middle-end/80902
26541         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
26542         a call, force the call to not be a tail call.
26543
26544 2017-06-23  Jeff Law  <law@redhat.com>
26545
26546         * doc/contrib.texi: Add entry for Steven Pemberton's work on
26547         enquire.
26548
26549 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
26550
26551         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
26552         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
26553         handling for early expansion of vector shifts (sl,sr,sra,rl).
26554         (builtin_function_type): Add vector shift right instructions
26555         to the unsigned argument list.
26556
26557 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26558
26559         rtl-optimizatoin/79286
26560         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
26561         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
26562         trap.  PIC register plus a const unspec without offset can never trap.
26563
26564 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
26565
26566         * tree.h (builtin_structptr_type): New type.
26567         (builtin_structptr_types): Declare new array.
26568         * tree.c (builtin_structptr_types): New array.
26569         (free_lang_data, build_common_tree_nodes): Use it.
26570
26571 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
26572
26573         PR c++/81187
26574         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
26575         -Wnoexcept.
26576
26577 2017-06-22  Matt Turner  <mattst88@gmail.com>
26578
26579         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
26580         Lake models to skylake case.  Assume skylake for unknown
26581         models with clflushopt.
26582
26583 2017-06-22  Jeff Law  <law@redhat.com>
26584
26585         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
26586         frame sizes that do not satisfy aarch64_uimm12_shift.
26587
26588 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
26589
26590         * profile-count.h (apply_probability,
26591         apply_scale, probability_in): Fix checks for zero.
26592
26593 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26594
26595         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
26596         * doc/cppdiropts.texi (-I @var{dir}): Document it.
26597
26598 2016-06-22  Richard Biener  <rguenther@suse.de>
26599
26600         * tree-vect-loop.c (vect_model_reduction_cost): Handle
26601         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
26602         REDUC_MAX_EXPR support.
26603         (vectorizable_reduction): Likewise.
26604         (vect_create_epilog_for_reduction): Likewise.
26605
26606 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
26607
26608         * match.pd (A / (1 << B) -> A >> B): New.
26609         * generic-match-head.c: Include optabs-tree.h.
26610         * gimple-match-head.c: Likewise.
26611         * optabs-tree.h (target_supports_op_p): New.
26612         * optabs-tree.c (target_supports_op_p): New.
26613
26614 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26615
26616         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
26617         $gcc_cv_ld --help output.
26618         (gcc_cv_ld_demangle): Likewise.
26619         (gcc_cv_ld_eh_frame_hdr): Likewise.
26620         (gcc_cv_ld_pie): Likewise.
26621         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
26622         (gcc_cv_ld_buildid): Likewise.
26623         (gcc_cv_ld_sysroot): Likewise.
26624         (ld_bndplt_support): Likewise.
26625         (ld_pushpopstate_support): Likewise.
26626         * configure: Regenerate.
26627         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
26628
26629 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26630
26631         PR target/81151
26632         * config/i386/sse.md (round<mode>2): Renumber match_dup and
26633         operands indexes to avoid gap between operands and match_dups.
26634
26635 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26636
26637         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26638         Increment Arith_shift and Arith_shift_reg by 1.
26639         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
26640         New tuning flag.
26641         * config/aarch64/aarch64.c (thunderx_tunings): Enable
26642         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
26643         (aarch64_strip_extend): Add new argument and test for it.
26644         (aarch64_cheap_mult_shift_p): New function.
26645         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
26646         add a cost if it is true.
26647         Update calls to aarch64_strip_extend.
26648         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
26649
26650 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26651
26652         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
26653         tunings.
26654         (thunderxt88): Likewise.
26655         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
26656         (thunderx_prefetch_tune): New variable.
26657         (thunderx2t99_prefetch_tune): Update for the correct values.
26658         (thunderxt88_tunings): New variable.
26659         (thunderx_tunings): Use thunderx_prefetch_tune instead of
26660         generic_prefetch_tune.
26661         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
26662
26663 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26664
26665         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
26666         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
26667         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
26668         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
26669         (aarch64_atomic_cas<mode>, GPI): Likewise.
26670
26671 2017-06-21  Martin Liska  <mliska@suse.cz>
26672
26673         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
26674         statements on cold and hot labels.
26675         * predict.c (tree_estimate_probability_bb): Remove the
26676         prediction from this place.
26677
26678 2017-06-21  Martin Liska  <mliska@suse.cz>
26679
26680         PR tree-optimization/79489
26681         * gimplify.c (maybe_add_early_return_predict_stmt): New
26682         function.
26683         (gimplify_return_expr): Call the function.
26684         * predict.c (tree_estimate_probability_bb): Remove handling
26685         of early return.
26686         * predict.def: Update comment about early return predictor.
26687         * gimple-predict.h (is_gimple_predict): New function.
26688         * predict.def: Change default value of early return to 66.
26689         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
26690         statements.
26691         * passes.def: Put pass_strip_predict_hints to the beginning of
26692         IPA passes.
26693
26694 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
26695
26696         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
26697         FUNCTION_DECL declarations.
26698         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
26699         declarations.
26700         (dwaf2out_decl): Likewise.
26701         * godump.c (go_early_global_decl): Skip call to the real debug hook
26702         for FUNCTION_DECL declarations.
26703         * passes.c (rest_of_decl_compilation): Skip call to the
26704         early_global_decl debug hook for FUNCTION_DECL declarations, unless
26705         -fdump-go-spec is passed.
26706
26707 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26708
26709         * config/i386/i386.c (struct builtin_isa): New field pure_p.
26710         Reorder for compactness.
26711         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
26712         (def_builtin_pure, def_builtin_pure2): New functions.
26713         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
26714
26715 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26716
26717         * match.pd (nop_convert): New predicate.
26718         ((A +- CST1) +- CST2): Allow some NOP conversions.
26719
26720 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26721
26722         PR c++/81130
26723         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
26724         with ctors/dtors if GOVD_SHARED is set.
26725
26726 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26727
26728         * config/aarch64/aarch64.md (movti_aarch64):
26729         Emit mov rather than orr.
26730         (movtf_aarch64): Likewise.
26731         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
26732         Emit mov rather than orr.
26733
26734 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26735
26736         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
26737         Swap alternatives, make integer dup more expensive.
26738
26739 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26740
26741         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
26742         Return true for non-tls symbols.
26743
26744 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
26745
26746         * config/aarch64/aarch64-cores.def (cortex-a55): New.
26747         (cortex-a75): Likewise.
26748         (cortex-a75.cortex-a55): Likewise.
26749         * config/aarch64/aarch64-tune.md: Regenerate.
26750         * doc/invoke.texi (-mtune): Document new values for -mtune.
26751
26752 2017-06-21  Tom de Vries  <tom@codesourcery.com>
26753
26754         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
26755         stack_size feature.
26756         (Effective-Target Keywords, Other attributes): Suggest using
26757         dg-add-options stack_size feature to get stack limit in stack_size
26758         effective target documentation.
26759
26760 2017-06-21  Julian Brown  <julian@codesourcery.com>
26761             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26762
26763         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
26764         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
26765         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
26766         reservation.
26767         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
26768         attribute type list for neon_multiply.
26769         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
26770         attribute type list for neon_multiply.
26771         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
26772         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
26773         attribute type list for neon_multiply.
26774         * config/arm/types.md (crypto_pmull): Add.
26775         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
26776         attribute type list.
26777
26778 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
26779
26780         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
26781         arm1176jzf-s.
26782
26783 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26784
26785         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
26786         to make sure not to dereference a NULL cost_classes_ptr pointer.
26787
26788 2017-06-20  Carl Love  <cel@us.ibm.com>
26789
26790         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26791         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
26792         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26793         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
26794         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
26795         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
26796         VMULOSW): New enum "unspec" values.
26797         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
26798         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
26799         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
26800         altivec_vmulosw): New patterns.
26801         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
26802         VMULOSW): Add definitions.
26803
26804 2017-06-20  Julia Koval  <julia.koval@intel.com>
26805
26806         * config/i386/i386.c: Fix rounding expand for new pattern.
26807         * config/i386/subst.md: Fix pattern (parallel -> unspec).
26808
26809 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26810
26811         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
26812         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
26813
26814 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26815
26816         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
26817         feature string.
26818
26819 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26820
26821         * config/aarch64/aarch64-cores.def: Rearrange to sort by
26822         architecture, then by implementer ID.
26823         * config/aarch64/aarch64-tune.md: Regenerate.
26824
26825 2017-06-20  Richard Biener  <rguenther@suse.de>
26826
26827         PR middle-end/81097
26828         * fold-const.c (split_tree): Fold to type before negating.
26829
26830 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
26831
26832         * diagnostic-show-locus.c
26833         (selftest::test_fixit_deletion_affecting_newline): New function.
26834         (selftest::diagnostic_show_locus_c_tests): Call it.
26835
26836 2017-06-20  Andreas Schwab  <schwab@suse.de>
26837
26838         PR target/80970
26839         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
26840         instead of "+d".
26841
26842 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
26843
26844         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
26845         __ARM_FEATURE_COPROC according to support.
26846
26847 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26848
26849         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26850         Rewritten to avoid overflow for > 32-bit pointers.
26851
26852         PR sanitizer/81125
26853         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
26854         by removing enum keyword.
26855         (ubsan_type_descriptor): Likewise.  Formatting fix.
26856
26857         PR target/81121
26858         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
26859         splitter): Require TARGET_SSE2 in the condition.
26860
26861 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
26862
26863         PR target/79799
26864         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
26865         for doing vector set of SFmode on ISA 3.0.
26866         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
26867         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
26868         element.
26869         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
26870         SFmode value into a V4SF variable that was extracted from another
26871         V4SF variable without converting the element to double precision
26872         and back to single precision vector format.
26873         (vsx_insert_extract_v4sf_p9_2): Likewise.
26874
26875 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
26876
26877         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
26878         in UWHI to avoid undefined overflow.
26879
26880         PR sanitizer/81125
26881         * ubsan.h (enum ubsan_encode_value_phase): New.
26882         (ubsan_encode_value): Change second argument to
26883         enum ubsan_encode_value_phase with default value of
26884         UBSAN_ENCODE_VALUE_GENERIC.
26885         * ubsan.c (ubsan_encode_value): Change second argument to
26886         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
26887         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
26888         create_tmp_var_raw instead of create_tmp_var and use a
26889         TARGET_EXPR.
26890         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
26891         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
26892         ubsan_encode_value callers.
26893
26894         PR sanitizer/81111
26895         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
26896         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
26897         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
26898
26899 2017-06-19  Richard Biener  <rguenther@suse.de>
26900
26901         PR middle-end/81118
26902         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
26903         estimates if we changed anything.
26904
26905 2017-06-19  Richard Biener  <rguenther@suse.de>
26906
26907         PR tree-optimization/80887
26908         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
26909         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
26910         simplified lookups, then reset mprts_hook.
26911         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
26912         simplifying.
26913         (try_to_simplify): Likewise.
26914
26915 2017-06-19  Martin Liska  <mliska@suse.cz>
26916
26917         PR sanitizer/80879
26918         * gimplify.c (gimplify_switch_expr):
26919         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
26920
26921 2017-06-19  Martin Liska  <mliska@suse.cz>
26922
26923         * doc/install.texi: Document that PGO runs in 4 stages.
26924
26925 2017-06-19  Martin Liska  <mliska@suse.cz>
26926
26927         PR ipa/80732
26928         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
26929         to dispatcher function name.
26930         * multiple_target.c (replace_function_decl): New function.
26931         (create_dispatcher_calls): Redirect both edges and references.
26932
26933 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
26934
26935         * profile-count.c (profile_count::dump): Dump quality.
26936         (profile_count::differs_from_p): Update for unsigned val.
26937         * profile-count.h (profile_count_quality): New enum.
26938         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
26939
26940 2017-06-19  Richard Biener  <rguenther@suse.de>
26941
26942         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
26943         struct function as arg.
26944         (estimate_numbers_of_iterations): Export overload with loop arg.
26945         (free_numbers_of_iterations_estimates_loop): Use an overload of
26946         free_numbers_of_iterations_estimates instead.
26947         * tree-cfg.c (remove_bb): Adjust.
26948         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
26949         * tree-parloops.c (gen_parallel_loop): Likewise.
26950         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
26951         Likewise.
26952         (tree_unroll_loops_completely): Likewise.
26953         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
26954         Use an overload instead and export.
26955         (estimated_loop_iterations): Adjust.
26956         (max_loop_iterations): Likewise.
26957         (likely_max_loop_iterations): Likewise.
26958         (estimate_numbers_of_iterations): Take struct function as arg
26959         and adjust.
26960         (loop_exits_before_overflow): Adjust.
26961         (free_numbers_of_iterations_estimates_loop): Use an overload.
26962         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
26963         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
26964
26965 2017-06-19  Richard Biener  <rguenther@suse.de>
26966
26967         PR ipa/81112
26968         * ipa-prop.c (find_constructor_constant_at_offset): Handle
26969         RANGE_EXPR conservatively.
26970
26971 2017-06-16  Carl Love  <cel@us.ibm.com>
26972
26973         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26974         definitions for vec_float, vec_float2, vec_floato,
26975         vec_floate built-ins.
26976         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
26977         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
26978         floate.
26979         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
26980         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
26981         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
26982         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
26983         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
26984         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
26985         vec_floato): Add builtin defines.
26986         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
26987         Update the built-in documentation file for the new built-in
26988         functions.
26989
26990 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26991
26992         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
26993         (mthumb): Mark as the negative of -marm.
26994
26995 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
26996
26997         * doc/invoke.texi (ARM Options, -mcpu): Document supported
26998         extension options.
26999         (ARM Options, -mtune): Document that this accepts the same
27000         extension options as -mcpu.
27001         (ARM Options, -mfpu): Document addition of -mfpu=auto.
27002
27003 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27004
27005         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
27006         permitted extensions.
27007
27008 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27009
27010         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
27011         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
27012         (armv8-m.main): Add option +nodsp.
27013         * config/arm/arm-cpu-cdata.h: Regenerated.
27014
27015 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27016
27017         * config/arm/t-fuchsia: New file.
27018         * config.gcc (arm*-*-fuchsia*): Use it.
27019
27020 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27021
27022         * config/arm/t-symbian: Rewrite for new option infrastructure.
27023
27024 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27025
27026         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
27027         (MULTILIB_REQUIRED): Likewise.
27028
27029 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27030
27031         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
27032         (MULTILIB_RESUE): Likewise.
27033         (MULTILIB_MATCHES): Likewise.
27034         (MULTLIB_REQUIRED): Likewise.
27035
27036 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27037
27038         * config/arm/t-rtems: Rewrite for new option framework.
27039
27040 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27041
27042         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
27043         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
27044         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
27045         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
27046         * config/arm/t-multilib: ... here.
27047         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
27048         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
27049         armv7-a and armv8*-a when A-profile libraries have not been built.
27050         * config/arm/t-rmprofile: Rewrite.
27051
27052 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27053
27054         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
27055         with a backslash.  Remove the backslash after substituting unescaped
27056         periods.
27057         * doc/fragments.texi (MULTILIB_REUSE): Document it.
27058
27059 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27060
27061         * config.gcc: (arm*-*-*): When building a-profile libraries, force
27062         the driver to pass through the default setting of -mfloat-abi.
27063         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
27064         rather than NULL.
27065         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
27066         (all_feat_combs): New rule.
27067         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
27068         default libraries.
27069         * config/arm/t-aprofile: Rewrite.
27070
27071 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27072
27073         * config/arm/arm.h (FPUTYPE_AUTO): Define.
27074         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
27075         fpu is not specified by the user/command-line.
27076         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
27077         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
27078         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
27079         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
27080         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
27081         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
27082
27083 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27084
27085         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
27086         * config/arm/t-arm-elf: Rewritten.
27087
27088 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27089
27090         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
27091         have some floating-point instructions.
27092         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
27093         (TARGET_MAYBE_HARD_FLOAT): New macro.
27094         * config/arm/arm-builtins.c (arm_init_builtins): Use
27095         TARGET_MAYBE_HARD_FLOAT.
27096         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
27097
27098 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27099
27100         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
27101         (configargs.h): Include it.
27102         (arm_print_hint_for_fpu_option): New function.
27103         (arm_parse_fpu_option): New function.
27104         (candidate_extension): New class.
27105         (arm_canon_for_multilib): New function.
27106         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
27107         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
27108         (ARCH_CANONICAL_SPECS): New macro.
27109         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
27110
27111 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27112
27113         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
27114         are set after handling multilib fragments.  Set target_cpu_default2
27115         from with_cpu.
27116
27117 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27118
27119         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
27120         cpu name.
27121         (arm*-*-*): Set target_cpu_default2 to a quoted string.
27122         * config/arm/parsecpu.awk (check_cpu): Validate any extension
27123         options.
27124         (check_arch): Likewise.
27125         * config/arm/arm.c (arm_configure_build_target): Handle
27126         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
27127         options in the default.
27128
27129 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27130
27131         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
27132         when an option is an alias of another.
27133         * config/arm/parsecpu.awk (optalias): New parser token.
27134         (gen_comm_data): Mark non-alias options as such.  Emit entries
27135         for extension aliases.
27136         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
27137         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
27138         (armv6kz, armv6zk, armv6t2): Likewise.
27139         (armv7): Make vfpv3-d16 an alias.
27140         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
27141         canonical order.
27142         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
27143         Sort in canonical order.
27144         (armv8-a): Sort in canonical order.
27145         (armv8.1-a, armv8.2-a):  Likewise.
27146         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
27147         canonical order.
27148         (cortex-a9): Sort in canonical order.
27149         * config/arm/arm.c (selftests.h): Include it.
27150         (arm_test_cpu_arch_data): New function.
27151         (arm_run_self_tests): New function.
27152         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
27153         (targetm): Move declaration to the end of the file.
27154         * arm-cpu-cdata.h: Regenerated.
27155
27156 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27157
27158         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
27159         call to target_mode_check describing the type of option passed.
27160         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
27161         (arm_target_thumb_only): Use arm_parse_arch_option_name or
27162         arm_parse_cpu_option_name to match parameters against list of
27163         available targets.
27164         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
27165         arm_arch_core_flags data structure.
27166         * config/arm/arm-cpu_cdata.h: Regenerated.
27167
27168 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27169
27170         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
27171         config/arm/arm.c.
27172         (arm_print_hint_for_cpu_option): Likewise.
27173         (arm_print_hint_for_arch_option): Likewise.
27174         (arm_parse_cpu_option_name): Likewise.
27175         (arm_parse_arch_option_name): Likewise.
27176         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
27177         of entries in the all_fpus list.
27178         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
27179         (arm_parse_cpu_option_name): Declare.
27180         (arm_parse_arch_option_name): Declare.
27181         (arm_parse_option_features): Declare.
27182         (arm_intialize_isa): Declare.
27183         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
27184         data tables to ...
27185         (gen_comm_data): ... here.  Make definitions non-static.
27186         * config/arm/arm-cpu-data.h: Regenerated.
27187         * config/arm/arm-cpu-cdata.h: Regenerated.
27188
27189 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27190
27191         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
27192         (cpu_arch_extension): New structure.
27193         (cpu_arch_option, arch_option, cpu_option): New structures.
27194         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
27195         architecture types.
27196         (gen_data): Generate new format data tables.
27197         * config/arm/arm.c (cpu_tune): New structure.
27198         (cpu_option, processors): Delete.
27199         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
27200         (arm_print_hint_for_cpu_option): ... this and ...
27201         (arm_print_hint_for_arch_option): ... this.
27202         (arm_parse_arch_cpu_name): Delete.  Replace with ...
27203         (arm_parse_cpu_option_name): ... this and ...
27204         (arm_parse_arch_option_name): ... this.
27205         (arm_unrecognized_feature): Change type of target parameter to
27206         cpu_arch_option.
27207         (arm_parse_arch_cpu_features): Delete.  Replace with ...
27208         (arm_parse_option_features): ... this.
27209         (arm_configure_build_target): Rework to use new configuration data
27210         tables.
27211         (arm_print_tune_info): Rework for new configuration data tables.
27212         * config/arm/arm-cpu-data.h: Regenerated.
27213         * config/arm/arm-cpu.h: Regenerated.
27214
27215 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27216
27217         * Makefile.in (OBJS): Move sbitmap.o from here ...
27218         (OBJS-libcommon): ... to here.
27219
27220 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27221
27222         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
27223         (ISA_ALL_CRYPTO): New macro.
27224         (ISA_ALL_SIMD): New macro
27225         (ISA_ALL_FP): New macro.
27226         * config/arm/arm.c (fpu_bitlist): Update initializer.
27227         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
27228         simd or fp.
27229         (arm9e): Add fpu.  Add option for nofp
27230         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
27231         (arm926ej-s, arm1026ej-s): Likewise.
27232         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
27233         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
27234         neon-fp16, neon-vfpv4, nofp and nosimd.
27235         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
27236         (cortex-a8): Add fpu.  Add option for nofp.
27237         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
27238         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
27239         (cortex-r4f): Add fpu.
27240         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
27241         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
27242         for nofp.
27243         (cortex-r8): Likewise.
27244         (cortex-m4): Add fpu.  Add option for nofp.
27245         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
27246         (cortex-a17.cortex-a7): Likewise.
27247         (cortex-a32): Add fpu.  Add options for crypto and nofp.
27248         (cortex-a35, cortex-a53): Likewise.
27249         (cortex-a57): Add fpu.  Add option for crypto.
27250         (cortex-a72, cortex-a73): Likewise.
27251         (exynos-m1): Likewise.
27252         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
27253         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
27254         (cortex-m33): Add fpu.  Add option for nofp.
27255         * config/arm/arm-cpu-cdata.h: Regenerated
27256         * config/arm/arm-cpu-data.h: Regenerated.
27257
27258 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27259
27260         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
27261         (armv5te, armv5tej): Likewise.
27262         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
27263         (armv7): Add options fp and vfpv3-d16.
27264         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
27265         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
27266         nofp and nosimd.
27267         (armv7ve): Likewise.
27268         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
27269         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
27270         (armv8-a): Add nocrypto option.
27271         (armv8.1-a, armv8.2-a): Likewise.
27272         (armv8-m.main): add options fp, fp.dp and nofp.
27273
27274 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27275
27276         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
27277         nofp.
27278         (armv8-a+crc): Delete.
27279         (armv8.1-a): Add options simd, crypto and nofp.
27280         (armv8.2-a): Add options fp16, simd, crypto and nofp.
27281         (armv8.2-a+fp16): Delete.
27282         (armv8-m.main): Add option dsp.
27283         (armv8-m.main+dsp): Delete.
27284         (cortex-a8): Add fpu.  Add nofp option.
27285         (cortex-a9): Add fpu.  Add nofp and nosimd options.
27286         * config/arm/parsecpu.awk (gen_data): Generate option tables and
27287         link to main cpu and architecture data structures.
27288         (gen_comm_data): Only put isa attributes from the main architecture
27289         in common tables.
27290         (option): New statement for architecture and CPU entries.
27291         * arm.c (struct cpu_option): New structure.
27292         (struct processors): Add entry for options.
27293         (arm_unrecognized_feature): New function.
27294         (arm_parse_arch_cpu_name): Ignore any characters after the first
27295         '+' character.
27296         (arm_parse_arch_cpu_feature): New function.
27297         (arm_configure_build_target): Separate out any CPU and architecture
27298         features and parse separately.  Don't error out if -mfpu=auto is
27299         used with only an architecture string.
27300         (arm_print_asm_arch_directives): New function.
27301         (arm_file_start): Call it.
27302         * config/arm/arm-cpu-cdata.h: Regenerated.
27303         * config/arm/arm-cpu-data.h: Likewise.
27304         * config/arm/arm-tables.opt: Likewise.
27305
27306 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27307
27308         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
27309         assembler when it is not -mfpu=auto.
27310
27311 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27312
27313         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
27314         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
27315         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
27316         (ASM_CPU_SPEC): Rewrite.
27317         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
27318         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
27319         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
27320         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
27321         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
27322         copied string is NUL-terminated.  Also strip any characters prefixed
27323         by '+'.
27324         (arm_rewrite_selected_arch): New function.
27325         (arm_rewrite_march): New function.
27326
27327 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27328
27329         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
27330         (x_arm_cpu_string, x_arm_tune_string): Likewise.
27331         (march, mcpu, mtune): Convert to string-based options.
27332         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
27333         (arm_parse_arch_cpu_name): New function.
27334         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
27335         identify selected architecture or CPU.
27336         (arm_option_save): New function.
27337         (TARGET_OPTION_SAVE): Redefine.
27338         (arm_option_restore): Restore string options.
27339         (arm_option_print): Print string options.
27340
27341 2017-06-16  Martin Sebor  <msebor@redhat.com>
27342
27343         PR tree-optimization/80933
27344         PR tree-optimization/80934
27345         * builtins.c (fold_builtin_3): Do not handle bcmp here.
27346         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
27347         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
27348         (gimple_fold_builtin): Call them.
27349
27350 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27351
27352         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
27353         as unlikely; update profile.
27354
27355 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27356
27357         * predict.c (force_edge_cold): Handle declaring edges impossible
27358         more aggresively.
27359
27360 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27361
27362         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
27363         profile.
27364         (try_unroll_loop_completely): Fix reporting.
27365
27366 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27367
27368         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
27369
27370 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
27371
27372         PR target/71778
27373         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
27374         if given a non-constant argument for an intrinsic which requires a
27375         constant.
27376
27377 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27378
27379         * profile.c (compare_freqs): New function.
27380         (branch_prob): Sort edge list.
27381         (find_spanning_tree): Assume that the list is priority sorted.
27382
27383 2017-06-16  Richard Biener  <rguenther@suse.de>
27384
27385         PR tree-optimization/81090
27386         * passes.def (pass_record_bounds): Remove.
27387         * tree-pass.h (make_pass_record_bounds): Likewise.
27388         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
27389         make_pass_record_bounds): Likewise.
27390         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
27391         not free niter estimates at the beginning but at the end.
27392         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
27393
27394 2017-06-16  Richard Biener  <rguenther@suse.de>
27395
27396         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
27397         initializer to workaround ICE in host GCC 4.8.
27398
27399 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27400
27401         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
27402         counts.
27403         (clone_inlined_nodes): Update.
27404
27405 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27406
27407         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
27408         prefetch settings, and enable prefetching by default at -O3.
27409
27410 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27411
27412         * config/aarch64/aarch64.c (aarch64_override_options_internal):
27413         Set flag_prefetch_loop_arrays according to tuning data.
27414
27415 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27416
27417         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
27418         New tune structure.
27419         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
27420         [Unrelated to main purpose of the patch] Place the pointer field last
27421         to enable type checking errors when tune structure are wrongly merged.
27422         * config/aarch64/aarch64.c (generic_prefetch_tune,)
27423         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
27424         (thunderx2t99_prefetch_tune): New tune constants.
27425         (tune_params *_tunings): Update all tunings (no functional change).
27426         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
27427         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
27428         from tunings structures.
27429
27430 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
27431
27432         PR sanitizer/81094
27433         * ubsan.c (instrument_null): Add T argument, use it instead
27434         of computing it based on IS_LHS.
27435         (instrument_object_size): Likewise.
27436         (pass_ubsan::execute): Adjust instrument_null and
27437         instrument_object_size callers to pass gimple_get_lhs or
27438         gimple_assign_rhs1 result to it.  Use instrument_null instead of
27439         calling get_base_address and instrument_mem_ref.  Handle
27440         aggregate call arguments for object-size sanitization.
27441
27442 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
27443
27444         PR tree-optimization/81089
27445         * tree-vrp.c (is_masked_range_test): Validate operands of
27446         subexpression.
27447
27448 2017-06-15  Martin Sebor  <msebor@redhat.com>
27449
27450         PR c++/80560
27451         * dumpfile.c (dump_register): Avoid calling memset to initialize
27452         a class with a default ctor.
27453         * gcc.c (struct compiler): Remove const qualification.
27454         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
27455         * hash-table.h: Ditto.
27456         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
27457           assignment.
27458         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
27459         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
27460         default ctor.
27461         * params.h (struct param_info): Make struct members non-const.
27462         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
27463         with default initialization.
27464         * vec.h (vec_copy_construct, vec_default_construct): New helper
27465         functions.
27466         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
27467         with vec_copy_construct.
27468         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
27469         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
27470         * doc/invoke.texi (-Wclass-memaccess): Document.
27471
27472 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27473
27474         * emit-rtl.h (is_leaf): Update comment about local
27475         register allocator.
27476
27477 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
27478
27479         PR target/78818
27480         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
27481         for a variable to have a section before checking if the section has a
27482         name.
27483         Set section to.persistent if persistent attribute is set.
27484         Warn if .persistent attribute is used on an automatic variable.
27485
27486 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
27487
27488         PR rtl-optimization/80474
27489         * reorg.c (update_block): Do not ignore instructions in a delay slot.
27490
27491 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
27492
27493         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
27494         of REGNO.
27495
27496 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
27497
27498         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
27499         (casesi): Emit bounds checking as RTL.
27500         (casesi_internal_mips16_<mode>): Remove bounds checking.
27501
27502 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
27503
27504         * config/xtensa/xtensa.c (xtensa_option_override): Append
27505         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
27506         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
27507          xtensa_doloop_hooks): Define unconditionally.
27508         (xtensa_reorg_loops): Only call reorg_loops in the presence of
27509         TARGET_LOOPS.
27510         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
27511         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
27512         for it in xtensa_option_override.
27513         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
27514          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
27515
27516 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
27517
27518         * doc/cppopts.texi: Document '-' special value to -MF.
27519
27520 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
27521
27522         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
27523         (cortex_a53_fconst): Likewise.
27524         (cortex_a53_fpmul): Likewise.
27525         (cortex_a53_f_load_64): Likewise.
27526         (cortex_a53_f_load_many): Likewise.
27527         (cortex_a53_advsimd_alu): Likewise.
27528         (cortex_a53_advsimd_alu_q): Likewise.
27529         (cortex_a53_advsimd_mul): Likewise.
27530         (cortex_a53_advsimd_mul_q): Likewise.
27531         (fpmac bypass): Add new bypass for fpmac-fpmac case.
27532         Add missing fmul, r2f_cvt and fconst cases.
27533
27534 2017-06-14  Richard Biener  <rguenther@suse.de>
27535
27536         PR middle-end/81088
27537         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
27538         literal constants.
27539         (fold_binary_loc): When associating do not treat pre-existing
27540         TREE_OVERFLOW on literal constants as a reason to allow
27541         TREE_OVERFLOW on associated literal constants.
27542
27543 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27544
27545         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
27546         (MASK_FEATURES): New macro.
27547         * config/sparc/sparc.c (sparc_option_override): Remove the special
27548         handling of -mfpu and generalize it to all MASK_FEATURES switches.
27549
27550 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27551
27552         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
27553         a division of 0 if non-call exceptions are enabled.
27554
27555 2017-06-14  Andrew Pinski  <apinski@cavium.com>
27556             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27557
27558         PR target/71663
27559         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
27560         Improve vector initialization code gen for only variable case.
27561
27562 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27563
27564         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
27565
27566 2017-06-14  Richard Biener  <rguenther@suse.de>
27567
27568         PR tree-optimization/81083
27569         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
27570         as values.
27571
27572 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27573
27574         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
27575         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
27576         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
27577         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
27578         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
27579         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
27580
27581 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27582
27583         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
27584         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
27585
27586 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27587
27588         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
27589
27590 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27591
27592         * config/rs6000/t-rtems: Don't handle SPE.
27593
27594 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27595
27596         * config/rs6000/t-linux: Don't handle SPE.
27597
27598 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27599
27600         * config/rs6000/eabispe.h: Delete file.
27601
27602 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27603
27604         * config/rs6000/t-spe: Delete file.
27605
27606 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27607
27608         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
27609         (rs6000_legitimate_offset_address_p): Return false for anything in
27610         V2SImode or V2SFmode.
27611
27612 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27613
27614         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
27615         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
27616         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
27617         and V4HImode.
27618         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
27619         (rs6000_legitimate_offset_address_p): Ditto.
27620         (rs6000_emit_move): Ditto.
27621         (rs6000_init_builtins): Remove V4HI_type_node.
27622
27623 2017-06-13  Martin Liska  <mliska@suse.cz>
27624
27625         PR sanitize/78204
27626         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
27627         (gate_asan): Likewise.
27628         * asan.h (asan_no_sanitize_address_p): Remove the function.
27629         (sanitize_flags_p): New function.
27630         * builtins.def: Fix coding style.
27631         * common.opt: Use renamed enum value.
27632         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
27633         * doc/extend.texi: Document no_sanitize attribute.
27634         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
27635         to SANITIZE_UNDEFINED_NONDEFAULT.
27636         * gcc.c (sanitize_spec_function): Use the renamed enum value.
27637         * gimple-fold.c (optimize_atomic_compare_exchange_p):
27638         Use sanitize_flags_p.
27639         * gimplify.c (gimplify_function_tree): Likewise.
27640         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
27641         * opts.c (parse_no_sanitize_attribute): New function.
27642         (common_handle_option): Use renamed enum value.
27643         * opts.h (parse_no_sanitize_attribute): Declare.
27644         * tree.c (sanitize_flags_p): New function.
27645         * tree.h: Declared here.
27646         * tsan.c: Use sanitize_flags_p.
27647         * ubsan.c (ubsan_expand_null_ifn): Likewise.
27648         (instrument_mem_ref): Likewise.
27649         (instrument_bool_enum_load): Likewise.
27650         (do_ubsan_in_current_function): Remove the function.
27651         (pass_ubsan::execute): Use sanitize_flags_p.
27652         * ubsan.h: Remove do_ubsan_in_current_function
27653         * tree-cfg.c (print_no_sanitize_attr_value): New function.
27654         (dump_function_to_file): Use it here.
27655
27656 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27657
27658         PR tree-optimization/80803
27659         PR tree-optimization/81063
27660         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
27661         (propagate_subaccesses_across_link): Enqueue subtree whenever
27662         necessary instead of relying on the caller.
27663
27664 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27665
27666         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
27667         that have a first_link.
27668         (sort_and_splice_var_accesses): Do not check first_link before
27669         enquing.
27670         (subtree_mark_written_and_enqueue): Likewise.
27671         (propagate_all_subaccesses): Likewise and do not stop at first
27672         parent with a first_link.
27673
27674 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27675
27676         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
27677         instead of f.
27678
27679 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27680
27681         * match.pd: New pattern.
27682
27683 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27684
27685         * tree-vrp.c (is_masked_range_test): New function.
27686         (register_edge_assert_for): Determine ranges for
27687         some bit tests.
27688
27689 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27690
27691         PR tree-optimization/67328
27692         * fold-const.c (maskable_range_p): New function.
27693         (build_range_check): Generate bittests if possible.
27694
27695 2017-06-13  Martin Liska  <mliska@suse.cz>
27696
27697         * gimple-pretty-print.c (dump_probability): Add new argument.
27698         (dump_edge_probability): Dump both probability and count.
27699         (dump_gimple_label): Likewise.
27700         (dump_gimple_bb_header): Likewise.
27701
27702 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
27703
27704         PR target/81072
27705         * config/avr/avr-devices.c: Fix indentation.
27706         * config/avr/gen-avr-mmcu-specs.c: Dito.
27707
27708 2017-06-13  Richard Biener  <rguenther@suse.de>
27709
27710         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
27711         instead get vector type from stmt_info.
27712         (vectorizable_reduction): Adjust.  Remove dead code.
27713
27714 2017-06-13  Richard Biener  <rguenther@suse.de>
27715
27716         PR middle-end/81065
27717         * fold-const.c (extract_muldiv_1): Remove bogus distribution
27718         case of C * (x * C2 + C3).
27719         (fold_addr_of_array_ref_difference): Properly fold index difference.
27720
27721 2017-06-12  David S. Miller  <davem@davemloft.net>
27722
27723         PR target/80968
27724         * config/sparc/sparc.md (return expander): Emit frame blockage if
27725         function uses alloca.
27726
27727 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
27728
27729         * combine.c (make_field_assignment): Check len rather than the mode
27730         precision when calling force_to_mode.
27731
27732 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
27733
27734         Support multilibs and devices that see flash in RAM address range.
27735
27736         PR target/81072
27737         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
27738         (avr_mcu_t) <flash_pm_offset>: New field.
27739         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
27740         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
27741         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
27742         (AVR_TINY_PM_OFFSET): Remove macro.
27743         * config/avr/avr.opt (-mshort-calls): New option.
27744         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
27745         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
27746         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
27747         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
27748         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
27749         instead of avr_arch->have_jmp_call.
27750         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
27751         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
27752         avr_arch->flash_pm_offset to define.
27753         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
27754         new field flash_pm_offset.  Add entry for avrxmega3.
27755         (avr_texinfo): Add entry for avrxmega3.
27756         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
27757         attiny212, attiny214,
27758         attiny412, attiny414, attiny416, attiny417,
27759         attiny814, attiny816, attiny817,
27760         attiny1614, attiny1616, attiny1617,
27761         attiny3214, attiny3216, attiny3217.
27762         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
27763         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
27764         (avr_print_operand_address) [AVR_TINY]: Same.
27765         (avr_asm_init_sections) <readonly_data_section>: Only patch
27766         callback if avr_arch->flash_pm_offset = 0.
27767         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
27768         for rodata if avr_arch->flash_pm_offset != 0.
27769         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
27770         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
27771         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
27772         (m_options): Append opt_rcall.
27773         (m_dirnames): Append dir_rcall.
27774         * config/avr/t-multilib: Regenerate.
27775
27776         * configure.ac [target=avr]: Check whether avrxmega3 default
27777         linker description file works as needed.
27778         * configure: Regenerate.
27779         * doc/avr-mmcu.texi: Regenerate.
27780         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
27781         <__AVR_ARCH__>: Document avrxmega3 and 103.
27782         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
27783         <__AVR_SHORT_CALLS__>: Document it.
27784         <__AVR_PM_BASE_ADDRESS__>: Document it.
27785         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
27786         (AVR Variable Attributes) <progmem>: Document this is
27787         not needed for avrxmega3.
27788         (AVR Named Address Spaces) <__flash>: Dito.
27789
27790 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
27791
27792         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
27793
27794 2017-06-12  Doug Rupp  <rupp@adacore.com>
27795
27796         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
27797         Append vxworks-stdint.h to the tm_file list.
27798         * config/vxworks-stdint.h: New file.
27799
27800 2017-06-12  Martin Liska  <mliska@suse.cz>
27801
27802         PR tree-optimization/81041
27803         * tree-profile.c (gimple_gen_ic_func_profiler):
27804         Create an extra BB in profile-generate
27805         (gimple_gen_time_profiler): Likewise.
27806
27807 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
27808
27809         PR tree-optimization/81003
27810         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
27811         (update_range_test): Use it instead of force_gimple_operand_gsi.
27812
27813 2017-06-12  Richard Biener  <rguenther@suse.de>
27814
27815         PR tree-optimization/81053
27816         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
27817         with backedge value not defined in loop.  Simplify def stmt
27818         compute.
27819
27820 2017-06-11  Tom de Vries  <tom@codesourcery.com>
27821
27822         PR target/79939
27823         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
27824         Return true.
27825         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
27826         nvptx_cannot_force_const_mem.
27827
27828 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27829
27830         * opts.c (finish_options): Move test for flag_split_stack after
27831         it has been initialized.
27832
27833 2017-06-11  Jason Merrill  <jason@redhat.com>
27834
27835         * tree.h (id_equal): New.
27836         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
27837         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
27838         instead of strcmp of IDENTIFIER_POINTER.
27839
27840 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27841
27842         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
27843         (mark_all_inlined_calls_cdtor): Fix formating.
27844         (inline_transform): Rescale profile before inlining.
27845
27846 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27847
27848         * cgraph.h (cgraph_edge::clone): Update prototype.
27849         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
27850         (cgraph_node::create_clone): Update.
27851         (cgraph_node::create_version_clone): Update.
27852         * tree-inline.c (copy_bb): Update.
27853         (expand_call_inline): Update.
27854
27855 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27856
27857         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
27858         factored out from ...
27859         (rs6000_emit_prologue): ... here.
27860
27861 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27862
27863         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
27864         factored out from ...
27865         (rs6000_emit_prologue): ... here.
27866
27867 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27868
27869         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
27870         edge counts.
27871         (handle_missing_profiles): Fix computation of tp_first_run.
27872         (counts_to_freqs): Do not touch freqs when count is 0.
27873
27874 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27875
27876         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
27877         profile.
27878
27879 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27880
27881         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
27882         attributes): Document signal effective target.
27883
27884 2017-06-10  Tom de Vries  <tom@codesourcery.com>
27885
27886         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
27887         Document effective target stack_size.
27888
27889 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
27890
27891         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
27892         to the edit_context if they can be auto-applied.
27893
27894 2017-06-9  Ian Lance Taylor  <iant@golang.org>
27895
27896         * opts.c (finish_options): If -fsplit-stack, disable implicit
27897         -forder-blocks-and-partition.
27898         * doc/invoke.texi (Optimize Options): Document that when using
27899         -fsplit-stack -forder-blocks-and-partition is not implicitly
27900         enabled.
27901
27902 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27903
27904         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
27905         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
27906         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
27907         * builtins.def (abort, trap, unreachable): Declare cold.
27908         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
27909         * tree-core.h (ECF_COLD): New.
27910         * tree.c (set_call_expr_flags): Handle ECF_COLD.
27911         (build_common_builtin_nodes): Mark unreachable and abort as cold.
27912
27913 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27914
27915         * predict.c (unlikely_executed_stmt_p): Cleanup.
27916
27917 2017-06-09  Richard Biener  <rguenther@suse.de>
27918
27919         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
27920         model if the ref is always written to.
27921
27922 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27923
27924         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
27925
27926 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
27927
27928         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
27929         than udiv.
27930
27931 2017-06-09  Tom de Vries  <tom@codesourcery.com>
27932
27933         PR target/80855
27934         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
27935         "target cannot support label values" when encountering LABEL_REF.
27936
27937 2017-06-09  Martin Liska  <mliska@suse.cz>
27938
27939         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
27940         (gimple_gen_ic_func_profiler): Emit direct comparison
27941         of __gcov_indirect_call_callee with NULL.
27942         (gimple_gen_time_profiler): Change probability from
27943         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
27944
27945 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27946
27947         * profile.c (edge_gcov_counts): Turn to pointer.
27948         (compute_branch_probabilities, compute_branch_probabilities): Update.
27949         (branch_prob): Do not clear edge_gcov_count.
27950         * profile.h (edge_gcov_counts): Turn to pointer.
27951         (edge_gcov_count): Update.
27952
27953 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
27954
27955         * gimple.h (gimple_check_failed): Mark cold.
27956
27957 2017-06-09  Richard Biener  <rguenther@suse.de>
27958
27959         PR tree-optimization/66623
27960         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
27961         refactor check_reduction into two parts, properly computing
27962         whether we have to check reduction validity for outer loop
27963         vectorization.
27964
27965 2017-06-09  Richard Biener  <rguenther@suse.de>
27966
27967         PR tree-optimization/79483
27968         * graphite-scop-detection.c (order): New global.
27969         (get_order): Compute bb to order mapping that satisfies code
27970         generation constraints.
27971         (cmp_pbbs): New helper.
27972         (build_scops): Start domwalk at entry block, sort generated
27973         pbbs.
27974
27975 2017-06-09  Richard Biener  <rguenther@suse.de>
27976
27977         PR middle-end/81007
27978         * ipa-polymorphic-call.c
27979         (ipa_polymorphic_call_context::restrict_to_inner_class):
27980         Skip FIELD_DECLs with error_mark_node type.
27981         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
27982         last again.
27983
27984 2017-06-09  Martin Liska  <mliska@suse.cz>
27985
27986         * predict.c (struct branch_predictor): New struct.
27987         (test_prediction_value_range): New test.
27988         (predict_c_tests): New function.
27989         * selftest-run-tests.c (selftest::run_tests): Run the function.
27990         * selftest.h: Declare new tests.
27991
27992 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
27993
27994         PR target/80966
27995         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
27996         gen_add3_insn did not fail.
27997         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
27998         r0, construct that number in a temporary reg and add that reg to r0.
27999         If asked to put the result in r0 as well, fail.
28000
28001 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
28002
28003         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28004         for early expansion of vec_eqv.
28005
28006 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
28007
28008         PR middle-end/81005
28009         * ubsan.c (instrument_null): Avoid pointless code temporary.
28010         (pass_ubsan::execute): Instrument aggregate arguments of calls.
28011
28012 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
28013
28014         PR target/81015
28015         Revert:
28016         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
28017
28018         PR target/59874
28019         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
28020         (*clzhi2): Ditto.
28021
28022 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28023
28024         * predict.c (unlikely_executed_edge_p): Move ahead.
28025         (probably_never_executed_edge_p): Use it.
28026
28027 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28028
28029         PR middle-end/79988
28030         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
28031         gimple_call_builtin_p call.
28032
28033 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28034
28035         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
28036         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
28037         rtl_check_failed_type2, rtl_check_failed_code1,
28038         rtl_check_failed_code2, rtl_check_failed_code_mode,
28039         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
28040         rtvec_check_failed_bounds, rtl_check_failed_flag,
28041         _fatal_insn_not_found, _fatal_insn): Likewise.
28042         * tree.h (tree_contains_struct_check_failed,
28043         tree_check_failed, tree_not_check_failed,
28044         tree_class_check_failed, tree_range_check_failed,
28045         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
28046         tree_vec_elt_check_failed, phi_node_elt_check_failed,
28047         tree_operand_check_failed, omp_clause_check_failed,
28048         omp_clause_operand_check_failed, omp_clause_range_check_failed):
28049         Likewise.
28050
28051 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28052
28053         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
28054         flag_branch_probabilities.
28055         * ipa-inline.c (edge_badness): Likewise.
28056         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
28057         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
28058         * predict.c (maybe_hot_frequency_p): Likewise.
28059         (probably_never_executed): Likewise.
28060         * sched-ebb.c (schedule_ebbs): Likewise.
28061         * sched-rgn.c (find_single_block_region): Likewise.
28062         * tracer.c (tail_duplicate): Likewise.
28063
28064 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28065
28066         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
28067         longer requires x_flag_profile_use.
28068
28069 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28070
28071         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
28072         instead of flag_reorder_blocks_and_partition.
28073         * dbxout.c (dbxout_function_end): Likewise.
28074         * dwarf2out.c (gen_subprogram_die): Likewise.
28075         * haifa-sched.c (sched_create_recovery_edges): Likewise.
28076         * hw-doloop.c (reorg_loops): Likewise.
28077         * varasm.c (assemble_start_function,
28078         assemble_end_function): Likewise.
28079         (decide_function_section): Do not check for
28080         flag_reorder_blocks_and_partition.
28081
28082 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28083
28084         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
28085         New function.
28086         (chkp_get_hard_register_fake_addr_expr): Ditto.
28087         (chkp_build_addr_expr): Add check for hard reg case.
28088         (chkp_parse_array_and_component_ref): Ditto.
28089         (chkp_find_bounds_1): Ditto.
28090         (chkp_process_stmt): Don't generate bounds store for
28091         hard reg case.
28092
28093 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28094
28095         * predict.c (maybe_hot_bb_p): Do not check profile status.
28096         (maybe_hot_edge_p): Likewise.
28097         (probably_never_executed): Check for zero counts even if profile
28098         is not read.
28099         (unlikely_executed_edge_p): New function.
28100         (unlikely_executed_stmt_p): New function.
28101         (unlikely_executed_bb_p): New function.
28102         (set_even_probabilities): Use unlikely predicates.
28103         (combine_predictions_for_bb): Likewise.
28104         (predict_paths_for_bb): Likewise.
28105         (predict_paths_leading_to_edge): Likewise.
28106         (determine_unlikely_bbs): New function.
28107         (estimate_bb_frequencies): Use it.
28108         (compute_function_frequency): Use zero counts even if profile is
28109         not read.
28110         * profile-count.h: Fix typo.
28111
28112 2017-08-08  Julia Koval  <julia.koval@intel.com>
28113
28114         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
28115         _mm512_mask_cvtsepi16_storeu_epi8,
28116         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
28117         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
28118         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
28119         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
28120         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
28121         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
28122         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
28123         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
28124         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
28125         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
28126         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
28127         __builtin_ia32_pmovuswb256mem_mask,
28128         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
28129         __builtin_ia32_pmovwb512mem_mask): New builtins.
28130
28131 2017-08-08  Julia Koval  <julia.koval@intel.com>
28132
28133         PR target/73350,80862
28134         * config/i386/subst.md (round): Fix round pattern.
28135         * config/i386/i386.c (ix86_erase_embedded_rounding):
28136         Fix erasing rounding for the fixed pattern.
28137
28138 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28139
28140         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
28141
28142 2017-06-08  Martin Liska  <mliska@suse.cz>
28143
28144         PR gcov-profile/80911
28145         * gcov.c (block_info::block_info): New constructor.
28146
28147 2017-06-07  Carl Love  <cel@us.ibm.com>
28148
28149         * config/rs6000/rs6000-c: The return type of the following
28150         built-in functions was implemented as int not long long.  Fix sign
28151         of return value for the unsigned version of vec_mulo and vec_mule.
28152         vector unsigned long long vec_bperm (vector unsigned long long,
28153                                              vector unsigned char)
28154         vector signed long long vec_mule (vector signed int,
28155                                           vector signed int)
28156         vector unsigned long long vec_mule (vector unsigned int,
28157                                             vector unsigned int)
28158         vector signed long long vec_mulo (vector signed int,
28159                                           vector signed int)
28160         vector unsigned long long vec_mulo (vector unsigned int,
28161                                             vector unsigned int)
28162         * doc/extend.texi: Fix the documentation for the built-in
28163         functions.
28164
28165 2017-06-07  Carl Love  <cel@us.ibm.com>
28166
28167         PR target/80982
28168         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
28169         for BE.
28170
28171 2017-06-07  Carl Love  <cel@us.ibm.com>
28172
28173         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
28174         support, Generate       doublehv for signed int/float for BE case only.
28175
28176 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
28177
28178         * doc/invoke.texi (mcx16): Rewrite.
28179
28180 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28181
28182         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
28183         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
28184         *mov<mode>_softfloat, and an anonymous splitter): Use
28185         nonimmediate_operand instead of rs6000_nonimmediate_operand.
28186
28187 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28188
28189         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
28190         SPEFSCR registers.
28191         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28192         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
28193         (rs6000_debug_reg_global): Adjust.
28194         (rs6000_init_hard_regno_mode_ok): Adjust.
28195         (rs6000_dbx_register_number): Adjust.
28196         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
28197         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28198         Remove SPE_ACC and SPEFSCR.
28199         (REG_ALLOC_ORDER): Ditto.
28200         (FRAME_POINTER_REGNUM): Change to 111.
28201         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
28202         (REG_CLASS_NAMES): Ditto.
28203         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
28204         (REGISTER_NAMES): Ditto.
28205         (ADDITIONAL_REG_NAMES): Ditto.
28206         (rs6000_reg_names): Ditto.
28207         * config/rs6000/rs6000.md: Renumber some register number
28208         define_constants.
28209
28210 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28211
28212         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
28213         registers.
28214         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28215         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
28216         to 117.
28217         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
28218         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28219         Delete the SPE high registers.
28220         (REG_ALLOC_ORDER): Ditto.
28221         (enum reg_class): Remove SPE_HIGH_REGS.
28222         (REG_CLASS_NAMES): Ditto.
28223         (REG_CLASS_CONTENTS): Delete the SPE high registers.
28224         (REGISTER_NAMES): Ditto.
28225         (rs6000_reg_names): Ditto.
28226         * doc/tm.texi.in: Remove SPE as example.
28227         * doc/tm.texi: Regenerate.
28228
28229 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28230
28231         * config/rs6000/8540.md (ppc8540_brinc): Delete.
28232         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
28233         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
28234         * config/rs6000/rs6000.md (type): Remove "brinc".
28235
28236 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28237
28238         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
28239         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
28240         * config/rs6000/linuxspe.h: Delete file.
28241         * config/rs6000/rs6000.md: Don't include spe.md.
28242         * config/rs6000/spe.h: Delete file.
28243         * config/rs6000/spe.md: Delete file.
28244         * config/rs6000/t-rs6000: Remove spe.md.
28245
28246 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28247
28248         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
28249         (reg_or_none500mem_operand): Delete.
28250         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
28251         instead of reg_or_none500mem_operand.
28252
28253 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28254
28255         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28256         handling of SPE flags.
28257         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
28258
28259 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28260
28261         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
28262         SPE ABI handling.
28263         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
28264         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
28265         paired_divv2sf3): Similar.
28266         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
28267         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
28268         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
28269         RS6000_BUILTIN_S.
28270         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
28271         Rename the paired_* instruction patterns.
28272         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
28273         define __SPE__.
28274         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
28275         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
28276         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
28277         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
28278         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
28279         PAIRED_VECTOR_MODE.
28280         (struct machine_function): Delete field spe_insn_chain_scanned_p.
28281         (spe_func_has_64bit_regs_p): Delete.
28282         (spe_expand_predicate_builtin): Delete.
28283         (spe_expand_evsel_builtin): Delete.
28284         (TARGET_DWARF_REGISTER_SPAN): Do not define.
28285         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
28286         (invalid_e500_subreg): Delete.
28287         (rs6000_legitimize_address): Always force_reg op2 as well, for
28288         paired single memory accesses.
28289         (rs6000_member_type_forces_blk): Delete.
28290         (rs6000_spe_function_arg): Delete.
28291         (rs6000_expand_unop_builtin): Delete SPE handling.
28292         (rs6000_expand_binop_builtin): Ditto.
28293         (spe_expand_stv_builtin): Delete.
28294         (bdesc_2arg_spe): Delete.
28295         (spe_expand_builtin): Delete.
28296         (spe_expand_predicate_builtin): Delete.
28297         (spe_expand_evsel_builtin): Delete.
28298         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
28299         (spe_init_builtins): Delete.
28300         (spe_func_has_64bit_regs_p): Delete.
28301         (savres_routine_name): Delete "info" parameter.  Adjust callers.
28302         (rs6000_emit_stack_reset): Ditto.
28303         (rs6000_dwarf_register_span): Delete.
28304         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
28305         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
28306         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
28307         Delete.
28308         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
28309         Delete.
28310         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
28311         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
28312         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
28313         mulv2sf3, divv2sf3): Delete expanders.
28314
28315 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28316
28317         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
28318
28319 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28320
28321         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
28322         * config/rs6000/rs6000.c: Ditto.
28323
28324 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28325
28326         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
28327         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
28328         comparison_operator.
28329
28330 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28331
28332         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
28333         * config/rs6000/rs6000.opt: Ditto.
28334         * config/rs6000/t-rtems: Ditto.
28335
28336 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28337
28338         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
28339         TARGET_E500_SINGLE by 0, simplify.
28340         * config/rs6000/rs6000.c: Ditto.
28341         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
28342         (spe_build_register_parallel): Delete.
28343         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
28344         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
28345         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
28346         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
28347         (E500_CONVERT): Delete.
28348         * config/rs6000/spe.md: Remove many patterns and all define_constants.
28349
28350 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28351
28352         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
28353         * config/rs6000/dfp.md: Ditto.
28354         (negdd2, *negdd2_fpr): Merge.
28355         (absdd2, *absdd2_fpr): Merge.
28356         (negtd2, *negtd2_fpr): Merge.
28357         (abstd2, *abstd2_fpr): Merge.
28358         * config/rs6000/e500.h: Delete file.
28359         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
28360         TARGET_FPRS by 1 and simplify.
28361         * config/rs6000/rs6000-c.c: Ditto.
28362         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
28363         TARGET_DF_SPE by 0.
28364         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
28365         TARGET_DF_SPE.
28366         * config/rs6000/rs6000.md: Ditto.
28367         (floatdidf2, *floatdidf2_fpr): Merge.
28368         (move_from_CR_gt_bit): Delete.
28369         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
28370         (E500_CR_IOR_COMPARE): Delete.
28371         (All patterns that require !TARGET_FPRS): Delete.
28372         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
28373
28374 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28375
28376         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
28377
28378 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28379
28380         * graphds.c (add_edge): Intitialize edge's attached data.
28381         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
28382         pointer parameter.  Call pointed function on each edge during
28383         graph traversing.  Skip traversing the edge when the function
28384         returns true.
28385         (graphds_dfs, graphds_scc): Ditto.
28386         (for_each_edge): New parameter.  Pass the new parameter to callback
28387         function.
28388         * graphds.h (skip_edge_callback): New function pointer type.
28389         (graphds_dfs, graphds_scc): New function pointer parameter.
28390         (graphds_edge_callback, for_each_edge): New parameter.
28391
28392 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28393
28394         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
28395         out code checking if runtime alias check is possible to below ...
28396         Call the new function.
28397         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
28398         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
28399
28400 2017-06-07  Marek Polacek  <polacek@redhat.com>
28401
28402         PR sanitizer/80932
28403         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
28404         TYPE_OVERFLOW_WRAPS check.
28405
28406 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28407
28408         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
28409         if versioning is required.
28410         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
28411         peeling with the check for versioning.
28412
28413 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28414
28415         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
28416         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
28417         Set true to new parameter if new ssa variable is defined.
28418         (vect_gen_vector_loop_niters): Refactor.  Set range information
28419         for the new vector loop bound variable.
28420         (vect_do_peeling): Ditto.
28421
28422 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28423
28424         * tree-affine.c (ssa.h): Include header file.
28425         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
28426         has wrapping overflow behavior.
28427
28428 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28429
28430         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
28431
28432 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28433
28434         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
28435         (tree_to_aff_combination): ... here.
28436
28437 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28438
28439         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
28440         reg_pressure model function.
28441         (ivopts_global_cost_for_size): Delete.
28442         (determine_set_costs, iv_ca_recount_cost): Call new model function
28443         ivopts_estimate_reg_pressure.
28444
28445 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28446
28447         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
28448         expensive than udiv.  Remove floating point cases from mod.
28449
28450 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28451
28452         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
28453         Increase idiv cost.
28454
28455 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28456
28457         * config/aarch64/aarch64.md
28458         (copysignsf3): Fix mask generation.
28459
28460 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
28461
28462         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
28463         TDI_gimple.
28464         (class dump_manager): Add register_dumps method.
28465         * dumpfile.c: Include langhooks.h.
28466         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
28467         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
28468         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
28469         (dump_manager::dump_register): Start with 512 entries instead of 32.
28470         (dump_manager::register_dumps): New method.
28471         * toplev.c (general_init): Instead of invoking register_dumps
28472         langhook, invoke register_dumps method on the dump manager.
28473         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
28474         TDI_generic.
28475
28476 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
28477
28478         * doc/md.texi: Clarify the restrictions on a define_insn condition.
28479         Say that # requires an associated define_split to exist, and that
28480         the define_split must be suitable for use after register allocation.
28481
28482 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28483
28484         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
28485         (compute_outgoing_frequencies): Also initialize zero counts.
28486         (find_many_sub_basic_blocks): Do not produce uninitialized profile
28487         around loops; preserve more of profile when nothing changes.
28488
28489 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
28490
28491         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
28492         here.
28493         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
28494         * config/arm/arm-cpu-cdata.h: Regenerate.
28495         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
28496         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
28497         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
28498         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
28499         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
28500         support.
28501         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
28502         support.
28503         * config/arm/t-rmprofile: Likewise.
28504         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
28505
28506 2017-06-06  David S. Miller  <davem@davemloft.net>
28507
28508         PR target/80968
28509         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
28510         blockage if function uses alloca.
28511
28512 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28513
28514         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
28515         New "uid" fields to hold pretty-print IDs of group and ref.
28516         Memory references are now identified as <group_id>:<ref_id>
28517         instead of using [random] addresses.
28518         (dump_mem_details): Simplify, no functional change.
28519         (dump_mem_ref): Simplify and make output more concise.
28520         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
28521         (find_or_create_group): Initialize group uid.
28522         (record_ref): Initialize ref uid.  Improve debug output.
28523         (prune_group_by_reuse, should_issue_prefetch_p,)
28524         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
28525         (mark_nontemporal_store, determine_loop_nest_reuse):
28526         Improve debug output.
28527
28528 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28529
28530         * dbgcnt.def (prefetch): New debug counter.
28531         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
28532         (schedule_prefetches): Stop issueing prefetches if debug counter
28533         tripped.
28534
28535 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28536
28537         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
28538         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
28539
28540 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28541
28542         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
28543         Use aarch64_reg_or_zero predicate for operand 4.
28544         (aarch64_compare_and_swap<mode> define_insn_and_split):
28545         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
28546         (aarch64_store_exclusive<mode>): Likewise for operand 2.
28547
28548 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28549
28550         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
28551         (arm_compute_save_core_reg_mask): This.
28552         (thumb1_compute_save_reg_mask): Rename into ...
28553         (thumb1_compute_save_core_reg_mask): This.
28554         (arm_compute_save_reg0_reg12_mask): Adapt comment.
28555         (arm_compute_frame_layout): Likewise.
28556
28557 2017-06-06  Richard Biener  <rguenther@suse.de>
28558
28559         PR tree-optimization/80974
28560         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
28561         keep or clear leaders SSA info.
28562
28563 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28564
28565         * config/nvptx/nvptx.c (split_mode_p): New function.
28566         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
28567
28568 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28569
28570         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
28571
28572 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28573
28574         PR bootstrap/80978
28575         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
28576         profile.
28577
28578 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28579
28580         * shrink-wrap.c (handle_simple_exit): Update profile.
28581         (try_shrink_wrapping): Upate profile.
28582
28583 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28584
28585         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
28586         (tree_guess_outgoing_edge_probabilities): New.
28587         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
28588         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
28589
28590 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28591
28592         * ipa-split.c (split_function): Initialize return bb profile.
28593
28594 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28595
28596         * profile.c (compute_branch_probabilities): Also initialize
28597         EXIT_BLOCK profile.
28598
28599 2017-06-06  Richard Biener  <rguenther@suse.de>
28600
28601         PR tree-optimization/80928
28602         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
28603         (vect_analyze_loop_operations): Properly guard analysis for
28604         pure SLP case.
28605         (vect_transform_loop): Likewise.
28606         (vect_analyze_loop_2): Also reset SLP type on PHIs.
28607         (vect_model_induction_cost): Do not cost for pure SLP.
28608         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
28609         of induction in inner loop vectorization.
28610         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
28611         (vect_get_and_check_slp_defs): Handle vect_induction_def.
28612         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
28613         recursion.
28614         (vect_analyze_slp_cost_1): Cost induction.
28615         (vect_detect_hybrid_slp_stmts): Handle PHIs.
28616         (vect_get_slp_vect_defs): Likewise.
28617         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
28618         (vect_transform_stmt): Handle SLP reductions.
28619         * tree-vectorizer.h (vectorizable_induction): Adjust.
28620
28621 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28622
28623         * config/rs6000/rs6000.c (make_resolver_func): Update
28624         init_lowered_empty_function call.
28625
28626 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28627
28628         * doc/invoke.texi: Document the -fprofile-abs-path option.
28629         * common.opt (fprofile-abs-path): New option.
28630         * gcov-io.h (gcov_write_filename): Declare.
28631         * gcov-io.c (gcov_write_filename): New function.
28632         * coverage.c (coverage_begin_function): Use gcov_write_filename.
28633         * profile.c (output_location): Likewise.
28634
28635 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28636
28637         * shring-wrap.c: Revert accidental commit.
28638
28639 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
28640
28641         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
28642
28643 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28644
28645         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
28646         new edge.
28647         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
28648         profile in callgraph edge.
28649         * profile-count.h (apply_probability): If THIS is 0, then result is 0
28650         (apply_scale): Likewise.
28651         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
28652         Also scale profile when inlining function with zero profile.
28653         (initialize_cfun): Update exit block profile even when it is zero.
28654         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
28655         when profile is read.
28656
28657 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28658
28659         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
28660         (CLONE_*): New constants to define the processors we can generate
28661         code for with the target_clone attribute.
28662         (rs6000_clone_map): New array to identify which clone processors
28663         the current program is running on.
28664         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
28665         target_clone attribute.
28666         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
28667         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
28668         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
28669         (cpu_expand_builtin): Add support for target_clone attribute.
28670         (rs6000_valid_attribute_p): Allow "default" attribute.
28671         (get_decl_name): New debug function to simplify printing the
28672         current function name in debugging statements.
28673         (rs6000_clone_priority): New functions to support the target_clone
28674         attribute, and be able to generate code to switch between ISA 2.05
28675         through ISA 3.0 (power6 through power9).
28676         (rs6000_compare_version_priority): Likewise.
28677         (rs6000_get_function_versions_dispatcher): Likewise.
28678         (make_resolver_func): Likewise.
28679         (add_condition_to_bb): Likewise.
28680         (dispatch_function_versions): Likewise.
28681         (rs6000_generate_version_dispatcher_body): Likewise.
28682         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
28683         (fusion_gpr_load_p): Fix a spacing issue.
28684         * doc/extend.texi (Common Function Attributes): Document that the
28685         PowerPC supports the target_clone attribute.
28686
28687 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28688
28689         * config/arm/arm.h: explain F symbol found in description of ARM
28690         register allocation in its legend.
28691
28692 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28693
28694         * config/mips/frame-header-opt.c: Include profile-count.h.
28695         * config/riscv/riscv.c: Include profile-count.h
28696
28697 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28698
28699         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
28700         update profile.
28701         (sm_set_flag_if_changed): Add bbs field.
28702         (execute_sm_if_changed_flag_set): Pass BBS.
28703         (execute_sm): Update.
28704
28705 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28706
28707         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
28708         New pattern.
28709
28710 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28711
28712         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
28713         (peephole2): New peephole2 to emit the above.
28714         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
28715
28716 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28717
28718         * config/aarch64/aarch64.c (define_peephole2 above
28719         *sub_<shift>_<mode>): New peephole.
28720
28721 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28722
28723         * config/i386/i386.c (make_resolver_func): Update.
28724         * Makefile.in: Add profile-count.h and profile-count.o
28725         * auto-profile.c (afdo_indirect_call): Update to new API.
28726         (afdo_set_bb_count): Update.
28727         (afdo_propagate_edge): Update.
28728         (afdo_propagate_circuit): Update.
28729         (afdo_calculate_branch_prob): Update.
28730         (afdo_annotate_cfg): Update.
28731         * basic-block.h: Include profile-count.h
28732         (struct edge_def): Turn count to profile_count.
28733         (struct basic_block_def): Likewie.
28734         (REG_BR_PROB_BASE): Move to profile-count.h
28735         (RDIV): Move to profile-count.h
28736         * bb-reorder.c (max_entry_count): Turn to profile_count.
28737         (find_traces): Update.
28738         (rotate_loop):Update.
28739         (connect_traces):Update.
28740         (sanitize_hot_paths):Update.
28741         * bt-load.c (migrate_btr_defs): Update.
28742         * cfg.c (RDIV): Remove.
28743         (init_flow): Use alloc_block.
28744         (alloc_block): Uninitialize count.
28745         (unchecked_make_edge): Uninitialize count.
28746         (check_bb_profile): Update.
28747         (dump_edge_info): Update.
28748         (dump_bb_info): Update.
28749         (update_bb_profile_for_threading): Update.
28750         (scale_bbs_frequencies_int): Update.
28751         (scale_bbs_frequencies_gcov_type): Update.
28752         (scale_bbs_frequencies_profile_count): New.
28753         * cfg.h (update_bb_profile_for_threading): Update.
28754         (scale_bbs_frequencies_profile_count): Declare.
28755         * cfgbuild.c (compute_outgoing_frequencies): Update.
28756         (find_many_sub_basic_blocks): Update.
28757         * cfgcleanup.c (try_forward_edges): Update.
28758         (try_crossjump_to_edge): Update.
28759         * cfgexpand.c (expand_gimple_tailcall): Update.
28760         (construct_exit_block): Update.
28761         * cfghooks.c (verify_flow_info): Update.
28762         (dump_bb_for_graph): Update.
28763         (split_edge): Update.
28764         (make_forwarder_block): Update.
28765         (duplicate_block): Update.
28766         (account_profile_record): Update.
28767         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
28768         (get_estimated_loop_iterations): Update.
28769         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
28770         (single_likely_exit): Update.
28771         * cfgloopmanip.c (scale_loop_profile): Update.
28772         (loopify): Update.
28773         (set_zero_probability): Update.
28774         (lv_adjust_loop_entry_edge): Update.
28775         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
28776         (purge_dead_edges): Update.
28777         (rtl_account_profile_record): Update.
28778         * cgraph.c (cgraph_node::create): Uninitialize count.
28779         (symbol_table::create_edge): Uninitialize count.
28780         (cgraph_update_edges_for_call_stmt_node): Update.
28781         (cgraph_edge::dump_edge_flags): Update.
28782         (cgraph_node::dump): Update.
28783         (cgraph_edge::maybe_hot_p): Update.
28784         * cgraph.h: Include profile-count.h
28785         (create_clone), create_edge, create_indirect_edge): Update.
28786         (cgraph_node): Turn count to profile_count.
28787         (cgraph_edge0: Likewise.
28788         (make_speculative, clone): Update.
28789         (create_edge): Update.
28790         (init_lowered_empty_function): Update.
28791         * cgraphclones.c (cgraph_edge::clone): Update.
28792         (duplicate_thunk_for_node): Update.
28793         (cgraph_node::create_clone): Update.
28794         * cgraphunit.c (cgraph_node::analyze): Update.
28795         (cgraph_node::expand_thunk): Update.
28796         * final.c (dump_basic_block_info): Update.
28797         * gimple-streamer-in.c (input_bb): Update.
28798         * gimple-streamer-out.c (output_bb): Update.
28799         * graphite.c (print_global_statistics): Update.
28800         (print_graphite_scop_statistics): Update.
28801         * hsa-brig.c: Include basic-block.h.
28802         * hsa-dump.c: Include basic-block.h.
28803         * hsa-gen.c (T sum_slice): Update.
28804         (convert_switch_statements):Update.
28805         * hsa-regalloc.c: Include basic-block.h.
28806         * ipa-chkp.c (chkp_produce_thunks): Update.
28807         * ipa-cp.c (struct caller_statistics): Update.
28808         (init_caller_stats): Update.
28809         (gather_caller_stats): Update.
28810         (ipcp_cloning_candidate_p): Update.
28811         (good_cloning_opportunity_p): Update.
28812         (get_info_about_necessary_edges): Update.
28813         (dump_profile_updates): Update.
28814         (update_profiling_info): Update.
28815         (update_specialized_profile): Update.
28816         (perhaps_add_new_callers): Update.
28817         (decide_about_value): Update.
28818         (ipa_cp_c_finalize): Update.
28819         * ipa-devirt.c (struct odr_type_warn_count): Update.
28820         (struct decl_warn_count): Update.
28821         (struct final_warning_record): Update.
28822         (possible_polymorphic_call_targets): Update.
28823         (ipa_devirt): Update.
28824         * ipa-fnsummary.c (redirect_to_unreachable): Update.
28825         * ipa-icf.c (sem_function::merge): Update.
28826         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
28827         * ipa-inline.c (compute_uninlined_call_time): Update.
28828         (compute_inlined_call_time): Update.
28829         (want_inline_small_function_p): Update.
28830         (want_inline_self_recursive_call_p): Update.
28831         (edge_badness): Update.
28832         (lookup_recursive_calls): Update.
28833         (recursive_inlining): Update.
28834         (inline_small_functions): Update.
28835         (dump_overall_stats): Update.
28836         (dump_inline_stats): Update.
28837         * ipa-profile.c (ipa_profile_generate_summary): Update.
28838         (ipa_propagate_frequency): Update.
28839         (ipa_profile): Update.
28840         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28841         * ipa-utils.c (ipa_merge_profiles): Update.
28842         * loop-doloop.c (doloop_modify): Update.
28843         * loop-unroll.c (report_unroll): Update.
28844         (unroll_loop_runtime_iterations): Update.
28845         * lto-cgraph.c (lto_output_edge): Update.
28846         (lto_output_node): Update.
28847         (input_node): Update.
28848         (input_edge): Update.
28849         (merge_profile_summaries): Update.
28850         * lto-streamer-in.c (input_cfg): Update.
28851         * lto-streamer-out.c (output_cfg): Update.
28852         * mcf.c (create_fixup_graph): Update.
28853         (adjust_cfg_counts): Update.
28854         (sum_edge_counts): Update.
28855         * modulo-sched.c (sms_schedule): Update.
28856         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
28857         * predict.c (maybe_hot_count_p): Update.
28858         (probably_never_executed): Update.
28859         (dump_prediction): Update.
28860         (combine_predictions_for_bb): Update.
28861         (propagate_freq): Update.
28862         (handle_missing_profiles): Update.
28863         (counts_to_freqs): Update.
28864         (rebuild_frequencies): Update.
28865         (force_edge_cold): Update.
28866         * predict.h: Include profile-count.h
28867         (maybe_hot_count_p, counts_to_freqs): UPdate.
28868         * print-rtl-function.c: Do not include cfg.h
28869         * print-rtl.c: Include basic-block.h
28870         * profile-count.c: New file.
28871         * profile-count.h: New file.
28872         * profile.c (is_edge_inconsistent): Update.
28873         (correct_negative_edge_counts): Update.
28874         (is_inconsistent): Update.
28875         (set_bb_counts): Update.
28876         (read_profile_edge_counts): Update.
28877         (compute_frequency_overlap): Update.
28878         (compute_branch_probabilities): Update; Initialize and deinitialize
28879         gcov_count tables.
28880         (branch_prob): Update.
28881         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
28882         (edge_gcov_count): New.
28883         (bb_gcov_count): New.
28884         * shrink-wrap.c (try_shrink_wrapping): Update.
28885         * tracer.c (better_p): Update.
28886         * trans-mem.c (expand_transaction): Update.
28887         (ipa_tm_insert_irr_call): Update.
28888         (ipa_tm_insert_gettmclone_call): Update.
28889         * tree-call-cdce.c: Update.
28890         * tree-cfg.c (gimple_duplicate_sese_region): Update.
28891         (gimple_duplicate_sese_tail): Update.
28892         (gimple_account_profile_record): Update.
28893         (execute_fixup_cfg): Update.
28894         * tree-inline.c (copy_bb): Update.
28895         (copy_edges_for_bb): Update.
28896         (initialize_cfun): Update.
28897         (freqs_to_counts): Update.
28898         (copy_cfg_body): Update.
28899         (expand_call_inline): Update.
28900         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
28901         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
28902         (try_unroll_loop_completely): Update.
28903         (try_peel_loop): Update.
28904         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
28905         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
28906         * tree-ssa-loop-split.c (connect_loops): Update.
28907         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
28908         * tree-ssa-reassoc.c (branch_fixup): Update.
28909         * tree-ssa-tail-merge.c (replace_block_by): Update.
28910         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
28911         (compute_path_counts): Update.
28912         (update_profile): Update.
28913         (recompute_probabilities): Update.
28914         (update_joiner_offpath_counts): Update.
28915         (estimated_freqs_path): Update.
28916         (freqs_to_counts_path): Update.
28917         (clear_counts_path): Update.
28918         (ssa_fix_duplicate_block_edges): Update.
28919         (duplicate_thread_path): Update.
28920         * tree-switch-conversion.c (case_bit_test_cmp): Update.
28921         (struct switch_conv_info): Update.
28922         * tree-tailcall.c (decrease_profile): Update.
28923         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
28924         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
28925         * value-prof.c (check_counter): Update.
28926         (gimple_divmod_fixed_value): Update.
28927         (gimple_mod_pow2): Update.
28928         (gimple_mod_subtract): Update.
28929         (gimple_ic_transform): Update.
28930         (gimple_stringop_fixed_value): Update.
28931         * value-prof.h (gimple_ic): Update.
28932
28933 2017-06-02  Carl Love  <cel@us.ibm.com>
28934
28935         * config/rs6000/rs6000-c: Add support for built-in functions
28936         vector double vec_doublee (vector signed int);
28937         vector double vec_doublee (vector unsigned int);
28938         vector double vec_doublee (vector float);
28939         vector double vec_doubleh (vector signed int);
28940         vector double vec_doubleh (vector unsigned int);
28941         vector double vec_doubleh (vector float);
28942         vector double vec_doublel (vector signed int);
28943         vector double vec_doublel (vector unsigned int);
28944         vector double vec_doublel (vector float);
28945         vector double vec_doubleo (vector signed int);
28946         vector double vec_doubleo (vector unsigned int);
28947         vector double vec_doubleo (vector float);.
28948         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
28949         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
28950         UNS_DOUBLEL.
28951         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
28952         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
28953         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
28954         VS_sxwsp.
28955         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
28956         vec_doublel, vec_doubleh.
28957         * doc/extend.texi: Update the built-in documentation file for the
28958         new built-in functions.
28959
28960 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
28961
28962         PR jit/80954
28963         * ipa-inline-analysis.c (free_growth_caches): Set
28964         edge_removal_hook_holder to NULL after removing it.
28965
28966 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
28967
28968         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
28969         comparision with zero.
28970
28971 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
28972         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28973         for early expansion of vec_min and vec_max builtins.
28974         (builtin_function_type): Add min/max unsigned variants to those
28975         identified as having unsigned arguments.
28976
28977 2017-06-02  Olivier Hainque  <hainque@adacore.com>
28978
28979         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
28980
28981 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28982
28983         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
28984         Use VALL_F16 iterator rather than VALL.
28985
28986 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28987
28988         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
28989         Emit CBNZ inside loop when doing a strong exchange and comparing
28990         against zero.  Generate the CC flags after the loop.
28991
28992 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
28993
28994         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
28995         (dl_section_ref): New.
28996         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
28997         On AIX, append an expression to subtract the size of the
28998         section length to dl_section_ref.
28999
29000 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
29001
29002         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
29003         for early expansion of vector absolute builtins.
29004
29005 2017-06-02  Richard Biener  <rguenther@suse.de>
29006
29007         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
29008         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
29009
29010 2017-06-02  Richard Biener  <rguenther@suse.de>
29011
29012         PR tree-optimization/80948
29013         * tree-tailcall.c (find_tail_calls): Track stmts to move in
29014         stmt order as well.
29015
29016 2017-06-02  Richard Biener  <rguenther@suse.de>
29017
29018         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
29019         PHIs are ok.
29020         * tree-vect-stmts.c (process_use): Do not mark backedge defs
29021         for inductions as relevant.
29022
29023 2017-06-02  Richard Biener  <rguenther@suse.de>
29024
29025         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
29026         (vectorizable_induction): ... this.  Remove dead code.
29027
29028 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
29029
29030         * builtins. (expand_builtin_alloca): Remove second parameter and
29031         infer its value from the first parameter instead.
29032         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
29033
29034 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
29035
29036         PR rtl-optimization/80903
29037         * loop-doloop.c (add_test): Unshare sequence.
29038
29039 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29040
29041         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
29042
29043 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29044
29045         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
29046         static.
29047         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
29048         xlogue_layout::get_instance, logue_layout::xlogue_layout,
29049         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
29050         (xlogue_layout::get_stub_rtx): Make static.
29051         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
29052         (xlogue_layout::compute_stub_managed_regs): Rename to...
29053         (xlogue_layout::count_stub_managed_regs): ...this.
29054         (xlogue_layout::is_stub_managed_reg): New function.
29055         (xlogue_layout::m_stub_names): Rename to...
29056         (xlogue_layout::s_stub_names): ...this, make static.
29057         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
29058         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
29059         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
29060         xlogue_layout::s_stub_names): Instantiate statics.
29061         (stub_managed_regs): Remove.
29062         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
29063         (disable_call_ms2sysv_xlogues): Rename to...
29064         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
29065         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
29066         warning logic.
29067         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
29068         change after reload_completed.
29069         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
29070         directly.
29071         (ix86_expand_prologue): Likewise.
29072         (ix86_expand_epilogue): Likewise.
29073         (ix86_expand_split_stack_prologue): Likewise.
29074         (ix86_compute_frame_layout): Remove frame parameter ...
29075         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
29076         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
29077         only if necessary.
29078         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
29079         (ix86_frame): Move from here ...
29080         * config/i386/i386.h (ix86_frame): ... to here.
29081         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
29082         complete ix86_frame data structure instead.  Remove some_ld_name.
29083
29084 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29085
29086         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
29087         symbols that hold a DECL_VALUE_EXPR.
29088
29089 2017-06-01  Martin Jambor  <mjambor@suse.cz>
29090
29091         PR tree-optimization/80898
29092         * tree-sra.c (process_subtree_disqualification): Removed.
29093         (disqualify_candidate): Do not acll
29094         process_subtree_disqualification.
29095         (subtree_mark_written_and_enqueue): New function.
29096         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
29097         RHS has been disqualified and re-queue LHS if necessary.  Apart
29098         from that, ignore disqualified RHS.
29099
29100 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29101
29102         * config/s390/s390.c (s390_emit_epilogue): Disable early return
29103         address fetch for z10 or later.
29104
29105 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29106
29107         * config/arc/arc.md (tst_movb): Add guard when splitting.
29108
29109 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29110
29111         * config/arc/arc.c (arc_can_eliminate): Test against
29112         arc_frame_pointer_needed.
29113
29114 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29115
29116         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
29117         to prevent store reordering.
29118         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
29119         (type): Add block type.
29120         (stack_tie): Define special instruction to be used in
29121         expand_prologue.
29122
29123 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29124
29125         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
29126         constraint. It is not valid for the pattern.
29127         (noncommutative_binary_comparison): Likewise.
29128
29129 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29130
29131         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
29132         scaled addresses.
29133
29134 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29135
29136         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
29137         be used by the reg-alloc.
29138
29139 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29140
29141         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
29142         reg-alloc when having mul64 or mul32x16 instructions.
29143         (mulsidi3): Likewise.
29144         (umulsidi3): Likewise.
29145         (mulsi32x16): New pattern.
29146         (mulsi64): Likewise.
29147         (mulsidi64): Likewise.
29148         (umulsidi64): Likewise.
29149         (MUL32x16_REG): Define.
29150         (mul64_600): Use MUL32x16_REG.
29151         (mac64_600): Likewise.
29152         (umul64_600): Likewise.
29153         (umac64_600): Likewise.
29154
29155 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29156
29157         * config/arc/arc.md (mulsi3_700): Make it commutative.
29158
29159 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
29160
29161         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
29162         type for movstouw.
29163         (*sign_extendsidi2_insn): Likewise for movstosw.
29164
29165 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29166
29167         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
29168         the type of the input discriminant value.  Convert the
29169         discriminant value of signedness vary.
29170
29171 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
29172
29173         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
29174         Add to -Wall section.
29175
29176 2017-06-01  Richard Biener  <rguenther@suse.de>
29177
29178         PR middle-end/66313
29179         * fold-const.c (fold_plusminus_mult_expr): If the factored
29180         factor may be zero use a wrapping type for the inner operation.
29181         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
29182         and handle moved defs.
29183         (process_assignment): Properly guard the unary op case.  Return a
29184         tri-state indicating that moving the stmt before the call may allow
29185         to continue.  Pass through to_move.
29186         (find_tail_calls): Handle moving unrelated defs before
29187         the call.
29188
29189 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
29190
29191         PR target/80618
29192         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
29193         splitter result in the canonical way.
29194
29195 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
29196
29197         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
29198         also for 32bit target.  Update insn attributes.
29199         (zero-extendsidi2 splitter): Allow all registers for operand 1.
29200
29201 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
29202
29203         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
29204         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
29205         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
29206         (_mm_maskz_min_ss): New intrinsics.
29207
29208 2017-05-31  Martin Liska  <mliska@suse.cz>
29209
29210         * tree-vect-loop.c (vect_create_epilog_for_reduction):
29211         Change comment style to one we normally use.
29212         (vectorizable_reduction): Likewise.
29213         (vectorizable_induction): Likewise.
29214         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
29215         (vectorizable_call): Likewise.
29216         (vectorizable_simd_clone_call): Likewise.
29217         (vectorizable_conversion): Likewise.
29218         (vectorizable_assignment): Likewise.
29219         (vectorizable_shift): Likewise.
29220         (vectorizable_operation): Likewise.
29221         (vectorizable_store): Likewise.
29222         (vectorizable_load): Likewise.
29223         * tree-vectorizer.h: Likewise.
29224
29225 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
29226
29227         * passes.c (emergency_dump_function): New.
29228         * tree-pass.h (emergency_dump_function): Declare.
29229         * plugin.c (plugins_internal_error_function): Remove.
29230         * plugin.h (plugins_internal_error_function): Remove declaration.
29231         * toplev.c (internal_error_function): New static function.  Use it...
29232         (general_init): ...here.
29233
29234 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
29235
29236         * config/arc/arc.c (arc_print_operand): Handle constant operands.
29237         (arc_rtx_costs): Add costs for new patterns.
29238         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
29239         * config/arc/predicates.md: Add _1_2_3_operand predicate.
29240
29241 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29242
29243         * tree-ssa-strlen.c (get_next_strinfo): New function.
29244         (get_stridx_plus_constant): Use it.
29245         (zero_length_string): Likewise.
29246         (adjust_related_strinfos): Likewise.
29247         (adjust_last_stmt): Likewise.
29248
29249 2017-05-31  Richard Biener  <rguenther@suse.de>
29250
29251         PR target/80880
29252         * config/i386/i386.c (ix86_expand_builtin): Remove assert
29253         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
29254
29255 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29256
29257         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
29258         loop_vinfo argument and use of dependence distance vectors.
29259         Check instead whether the two references differ only in their
29260         initial value and assume that they have the same alignment if the
29261         difference is a multiple of the vector alignment.
29262         (vect_analyze_data_refs_alignment): Update call accordingly.
29263
29264 2017-05-31  Martin Liska  <mliska@suse.cz>
29265
29266         PR target/79155
29267         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
29268
29269 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29270
29271         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
29272         (create_intersect_range_checks): Move from ...
29273         * tree-data-ref.c (create_intersect_range_checks_index)
29274         (create_intersect_range_checks): ... to here.
29275         (create_runtime_alias_checks): New function factored from ...
29276         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
29277         here.  Call above function.
29278         * tree-data-ref.h (create_runtime_alias_checks): New function.
29279
29280 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29281
29282         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
29283         segment length for dr_b and compute it in wide_int.
29284
29285 2017-05-31  Richard Biener  <rguenther@suse.de>
29286
29287         PR tree-optimization/80906
29288         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
29289         and pass through iv_map.
29290         (copy_bb_and_scalar_dependences): Adjust.
29291         (translate_pending_phi_nodes): Likewise.
29292         (copy_loop_close_phi_args): Handle code-generating IVs instead
29293         of ICEing.
29294
29295 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
29296
29297         * diagnostic-color.c (color_dict): Add "type-diff".
29298         (parse_gcc_colors): Update comment.
29299         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
29300         -fdiagnostics-show-template-tree and -fno-elide-type.
29301         (GCC_COLORS): Add type-diff to example.
29302         (type-diff=): New.
29303         (-fdiagnostics-show-template-tree): New.
29304         (-fno-elide-type): New.
29305         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
29306         the pp_format_decoder callback.  Call any m_format_postprocessor's
29307         "handle" method.
29308         (pretty_printer::pretty_printer): Initialize
29309         m_format_postprocessor.
29310         (pretty_printer::~pretty_printer): Delete any
29311         m_format_postprocessor.
29312         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
29313         (class format_postprocessor): New class.
29314         (struct pretty_printer::format_decoder): Document the new parameters.
29315         (struct pretty_printer::m_format_postprocessor): New field.
29316         * tree-diagnostic.c (default_tree_printer): Update for new
29317         bool and const char ** params.
29318         * tree-diagnostic.h (default_tree_printer): Likewise.
29319
29320 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
29321
29322         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
29323         (lwa_operand): Delete rs6000_gen_cell_microcode test.
29324         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
29325         rs6000_gen_cell_microcode code.
29326         (rs6000_final_prescan_insn): Delete.
29327         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
29328         "warn-cell-microcode" entries.
29329         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
29330         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
29331         throughout.  Change cc_reg_not_micro_cr0_operand to
29332         cc_reg_not_cr0_operand throughout.
29333         (*extendhi<mode>2_noload): Delete.
29334         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
29335         (mwarn-cell-microcode): Delete.
29336         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
29337         -mgen-cell-microcode and -mwarn-cell-microcode.
29338
29339 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
29340
29341         PR target/80833
29342         * config/i386/constraints.md (Yd): New constraint.
29343         (Ye): Ditto.
29344         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
29345         and (?Yd, r) alternatives.  Update insn attributes.
29346         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
29347         and (?*Yd, r) alternatives.  Update insn attributes.
29348         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
29349
29350 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
29351
29352         * gimplify.c (gimplify_modify_expr): Don't create a
29353         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
29354         function.
29355
29356 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
29357
29358         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
29359
29360 2017-05-30  Richard Biener  <rguenther@suse.de>
29361
29362         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
29363         and reduc_def fields.
29364         (STMT_VINFO_REDUC_TYPE): New define.
29365         (STMT_VINFO_REDUC_DEF): Likewise.
29366         (vect_force_simple_reduction): Adjust prototype.
29367         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
29368         (vect_is_simple_reduction): Remove check_reduction argument.
29369         (vect_force_simple_reduction): Adjust and set
29370         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29371         (vectorizable_reduction): Do not re-do reduction analysis
29372         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29373         * tree-parloops.c (gather_scalar_reductions): Adjust.
29374
29375 2017-05-30  Richard Biener  <rguenther@suse.de>
29376
29377         PR middle-end/80901
29378         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
29379         split_edge code.
29380
29381 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29382
29383         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
29384         Introduce unknown_misalignment parameter and remove vf.
29385         (vect_peeling_hash_get_lowest_cost):
29386         Pass unknown_misalignment parameter.
29387         (vect_enhance_data_refs_alignment):
29388         Fix unsupportable data ref treatment.
29389
29390 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29391
29392         * tree-vect-data-refs.c (vect_get_data_access_cost):
29393         Workaround for SLP handling.
29394         (vect_enhance_data_refs_alignment):
29395         Compute costs for doing no peeling at all, compare to the best
29396         peeling costs so far and avoid peeling if cheaper.
29397
29398 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29399
29400         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
29401         Return peeling info and set costs to zero for unlimited cost
29402         model.
29403         (vect_enhance_data_refs_alignment): Also inspect all datarefs
29404         with unknown misalignment. Compute and costs for unknown
29405         misalignment, compare them to the costs for known misalignment
29406         and choose the cheapest for peeling.
29407
29408 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29409
29410         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
29411         (vect_get_peeling_costs_all_drs): Create function.
29412         (vect_peeling_hash_get_lowest_cost):
29413         Use vect_get_peeling_costs_all_drs.
29414         (vect_peeling_supportable): Create function.
29415         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
29416
29417 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29418
29419         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
29420         DR_HAS_NEGATIVE_STEP.
29421         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
29422         (vect_enhance_data_refs_alignment): Use.
29423         (vect_duplicate_ssa_name_ptr_info): Use.
29424         * tree-vectorizer.h (dr_misalignment): Use.
29425         (known_alignment_for_access_p): Use.
29426
29427 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
29428
29429         PR target/78838
29430         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
29431         .lowtext.
29432         (has_section_name): New function.
29433
29434 2017-05-30  Martin Liska  <mliska@suse.cz>
29435
29436         PR other/80909
29437         * auto-profile.c (get_function_decl_from_block): Fix
29438         parenthesis.
29439
29440 2017-05-30  Richard Biener  <rguenther@suse.de>
29441
29442         PR middle-end/80876
29443         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
29444
29445 2017-05-30  Martin Liska  <mliska@suse.cz>
29446
29447         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
29448         * dumpfile.h (struct dump_file_info): Remove ctors.
29449
29450 2017-05-30  Martin Liska  <mliska@suse.cz>
29451
29452         * predict.def: Fix GNU coding style.
29453
29454 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29455
29456         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
29457         Mark 'to' argument with ATTRIBUTE_UNUSED.
29458
29459 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29460
29461         * config/xtensa/xtensa.c (xtensa_emit_call): Use
29462         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
29463         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
29464         format string.
29465
29466 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
29467
29468         * doc/install.texi (Options specification): Restore entry of
29469         --enable-sjlj-exceptions.
29470
29471 2017-05-27  Michael Eager  <eager@eagercon.com>
29472
29473         Revert:
29474         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
29475
29476         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
29477
29478         * config/microblaze/microblaze.h
29479         (FIXED_REGISTERS): Update in macro.
29480         (CALL_USED_REGISTERS): Update in macro.
29481
29482 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
29483
29484         * doc/install.texi: Add links to macOS binary distributions.
29485
29486 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
29487
29488         PR bootstrap/80887
29489         Revert:
29490         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29491
29492         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29493
29494 2017-05-26  Martin Liska  <mliska@suse.cz>
29495
29496         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
29497
29498 2017-05-26  Martin Liska  <mliska@suse.cz>
29499
29500         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
29501         always leading ';; '.
29502         (dump_bb_info): Likewise.
29503         (brief_dump_cfg): Likewise.
29504         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
29505         * dumpfile.c: Remove usage of TDF_VERBOSE.
29506         * dumpfile.h (enum dump_kind): Likewise.
29507         (dump_gimple_bb_header): Do not use TDF_COMMENT.
29508         * print-tree.c (debug_verbose): Remove.
29509         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
29510         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
29511         * tree-diagnostic.c (default_tree_printer): Replace
29512         TDF_DIAGNOSTIC with TDF_SLIM.
29513
29514 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29515
29516         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
29517         in parameter loop, rather than loop_vinfo.
29518         (create_intersect_range_checks): Ditto.
29519         (vect_create_cond_for_alias_checks): Update call to above functions.
29520
29521 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29522
29523         PR tree-optimization/80815
29524         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
29525         for merging runtime alias checks.  Handle negative DR_STEPs.
29526
29527 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29528
29529         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
29530         Move from ...
29531         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
29532         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
29533         out code pruning runtime alias checks.
29534         * tree-data-ref.c (prune_runtime_alias_test_list): New function
29535         factored out from above.
29536         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29537         Move from ...
29538         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29539         ... to here.
29540         (prune_runtime_alias_test_list): New decalaration.
29541
29542 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29543
29544         * tree-vect-data-refs.c (compare_tree): Rename and move ...
29545         * tree-data-ref.c (data_ref_compare_tree): ... to here.
29546         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
29547         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
29548         (operator==, comp_dr_with_seg_len_pair): Ditto.
29549         (vect_prune_runtime_alias_test_list): Ditto.
29550
29551 2017-05-26  Martin Liska  <mliska@suse.cz>
29552
29553         PR ipa/80663
29554         * params.def: Bound partial-inlining-entry-probability param.
29555
29556 2017-05-26  Marek Polacek  <polacek@redhat.com>
29557
29558         PR sanitizer/80875
29559         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
29560         can be negated.
29561
29562 2017-05-26  Richard Biener  <rguenther@suse.de>
29563
29564         PR tree-optimization/80842
29565         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
29566         value.
29567
29568 2017-05-26  Richard Biener  <rguenther@suse.de>
29569
29570         PR tree-optimization/80844
29571         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
29572
29573 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
29574
29575         * doc/md.texi (Machine Constraints): Update x86 family
29576         machine constraints section to match 'config/i386/constraints.md'.
29577
29578 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
29579
29580         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
29581
29582 2017-05-25  Nathan Sidwell  <nathan@acm.org>
29583
29584         * doc/invoke.texi (--enable-languages): Update documentation.
29585
29586 2017-05-25  Martin Liska  <mliska@suse.cz>
29587
29588         * dumpfile.c: Add TDF_FOLDING.
29589         * dumpfile.h (enum dump_kind): Likewise.
29590         * genmatch.c (dt_simplify::gen_1): Use it.
29591
29592 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29593
29594         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
29595
29596 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29597
29598         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29599         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
29600
29601 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29602
29603         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
29604         * match.pd (X == C): Rewrite it here.
29605         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
29606         with_certain_nonzero_bits2): New predicates.
29607         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
29608
29609 2017-05-24  Nathan Sidwell  <nathan@acm.org>
29610
29611         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
29612         avoid warning.
29613
29614         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
29615         warning.
29616
29617 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29618
29619         * config/powerpcspe: New port.  Files are copied from the rs6000
29620         port, with "rs6000" in filenames replaced by "powerpcspe".
29621
29622 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
29623
29624         PR rtl-optimization/80754
29625         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
29626
29627 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
29628
29629         * config/sparc/sparc.md (length): Return the correct value for -mflat
29630         sibcalls to match output_sibcall.
29631
29632 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29633
29634         PR bootstrap/80860
29635         PR bootstrap/80843
29636         * config/rs6000/rs6000.c (struct machine_function): Add new field
29637         n_components.
29638         (rs6000_get_separate_components): Init that field, use it.
29639         (rs6000_components_for_bb): Use the field.
29640
29641 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29642
29643         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
29644
29645 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
29646
29647         PR middle-end/80823
29648         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
29649
29650 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29651
29652         PR target/80725
29653         * config/s390/s390.c (s390_check_qrst_address): Check incoming
29654         address against address_operand predicate.
29655         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
29656
29657 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
29658
29659         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
29660         parameters passed indirectly.
29661
29662 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
29663
29664         * config/i386/i386.md (*movdi_internal): Remove SSE4
29665         alternative 18 (?r, *v).  Update insn attributes.
29666         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
29667         Update insn attributes.
29668         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
29669         Update insn attributes.
29670         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
29671         alternative 1 (r, v). Remove isa attribute.
29672         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29673         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
29674         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
29675
29676 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29677
29678         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
29679         dg-line directive.
29680
29681 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29682
29683         * cgraphunit.c (symbol_table::process_new_functions): Update.
29684         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
29685         (inline_generate_summary): Rename to ...
29686         (ipa_fn_summary_generate): ... this one.
29687         (inline_read_summary): Rename to ...
29688         (ipa_fn_summary_read): ... this one.
29689         (inline_write_summary): Rename to ...
29690         (ipa_fn_summary_write): ... this one.
29691         (inline_free_summary): Rename to ...
29692         (ipa_free_fn_summary): ... this one.
29693         (pass_data_local_fn_summary, pass_local_fn_summary,
29694         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
29695         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
29696         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
29697         make_pass_ipa_fn_summary): New.
29698         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
29699         inline_write_summary, inline_free_summary): Remove.
29700         (ipa_free_fn_summary) : New.
29701         * ipa-inline.c (ipa_inline): Update.
29702         (pass_ipa_inline): Do not generate summaries.
29703         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
29704         Remove.
29705         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
29706         and add pass_ipa_fn_summary.
29707         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
29708         New.
29709         (make_pass_inline_parameters): Remove.
29710
29711 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
29712
29713         * omp-low.c (struct omp_context): Remove "default_kind" member.
29714         Adjust all users.
29715
29716         * omp-offload.c (execute_oacc_device_lower): Remove the
29717         parallelism dimensions function attributes for unparallelized
29718         OpenACC kernels constructs.
29719
29720 2017-05-23  Martin Liska  <mliska@suse.cz>
29721
29722         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
29723         functions.
29724         (cgraph_edge::make_speculative): Likewise.
29725         (cgraph_edge::resolve_speculation): Likewise.
29726         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
29727         (cgraph_node::dump): Likewise.
29728         * cgraph.h: Likewise.
29729         * cgraphunit.c (analyze_functions): Likewise.
29730         (symbol_table::compile): Likewise.
29731         * ipa-cp.c (print_all_lattices): Likewise.
29732         (determine_versionability): Likewise.
29733         (initialize_node_lattices): Likewise.
29734         (ipcp_verify_propagated_values): Likewise.
29735         (estimate_local_effects): Likewise.
29736         (update_profiling_info): Likewise.
29737         (create_specialized_node): Likewise.
29738         (perhaps_add_new_callers): Likewise.
29739         (decide_about_value): Likewise.
29740         (decide_whether_version_node): Likewise.
29741         (identify_dead_nodes): Likewise.
29742         (ipcp_store_bits_results): Likewise.
29743         * ipa-devirt.c (dump_targets): Likewise.
29744         (ipa_devirt): Likewise.
29745         * ipa-icf.c (sem_item::dump): Likewise.
29746         (sem_function::equals): Likewise.
29747         (sem_variable::equals): Likewise.
29748         (sem_item_optimizer::read_section): Likewise.
29749         (sem_item_optimizer::execute): Likewise.
29750         (congruence_class::dump): Likewise.
29751         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
29752         (dump_inline_summary): Likewise.
29753         (estimate_node_size_and_time): Likewise.
29754         (inline_analyze_function): Likewise.
29755         * ipa-inline-transform.c (inline_call): Likewise.
29756         * ipa-inline.c (report_inline_failed_reason): Likewise.
29757         (want_early_inline_function_p): Likewise.
29758         (edge_badness): Likewise.
29759         (update_edge_key): Likewise.
29760         (inline_small_functions): Likewise.
29761         * ipa-profile.c (ipa_profile): Likewise.
29762         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29763         (ipa_make_edge_direct_to_target): Likewise.
29764         (remove_described_reference): Likewise.
29765         (ipa_impossible_devirt_target): Likewise.
29766         (propagate_controlled_uses): Likewise.
29767         (ipa_print_node_params): Likewise.
29768         (ipcp_transform_function): Likewise.
29769         * ipa-pure-const.c (pure_const_read_summary): Likewise.
29770         (propagate_pure_const): Likewise.
29771         * ipa-reference.c (generate_summary): Likewise.
29772         (read_write_all_from_decl): Likewise.
29773         (propagate): Likewise.
29774         (ipa_reference_read_optimization_summary): Likewise.
29775         * ipa-utils.c (ipa_merge_profiles): Likewise.
29776         * ipa.c (walk_polymorphic_call_targets): Likewise.
29777         (symbol_table::remove_unreachable_nodes): Likewise.
29778         (ipa_single_use): Likewise.
29779         * passes.c (execute_todo): Likewise.
29780         * predict.c (drop_profile): Likewise.
29781         * symtab.c (symtab_node::get_dump_name): New function.
29782         (symtab_node::dump_name): Likewise.
29783         (symtab_node::dump_asm_name): Likewise.
29784         (symtab_node::dump_references): Likewise.
29785         (symtab_node::dump_referring): Likewise.
29786         (symtab_node::dump_base): Likewise.
29787         (symtab_node::debug_symtab): Likewise.
29788         * tree-sra.c (convert_callers_for_node): Likewise.
29789         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29790         * value-prof.c (init_node_map): Likewise.
29791
29792 2017-05-23  Martin Liska  <mliska@suse.cz>
29793
29794         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
29795         and symtab_node::debug_symtab to symbol_table::debug.
29796         * cgraphunit.c (analyze_functions): Use the renamed function.
29797         (symbol_table::compile): Likewise.
29798         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
29799         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
29800         * passes.c (execute_todo): Likewise.
29801         * symtab.c (symbol_table::dump): New function.
29802         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
29803
29804 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29805
29806         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
29807         that nonconst implies exec.
29808
29809 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29810
29811         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29812         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29813         (inline_edge_summary_vec): Turn into ...
29814         (ipa_call_summaries): ... this one.
29815         (redirect_to_unreachable, edge_set_predicate,
29816         evaluate_properties_for_edge, inline_summary_alloc,
29817         reset_ipa_call_summary, reset_inline_summary,
29818         inline_summary_t::duplicate): Update.
29819         (inline_edge_duplication_hook): Turn to ...
29820         (ipa_call_summary_t::duplicate): ... this one.
29821         (inline_edge_removal_hook): Turn to ...
29822         (ipa_call_summary_t::remove): ... this one.
29823         (dump_inline_edge_summary): Turn to ...
29824         (dump_ipa_call_summary): ... this one.
29825         (estimate_function_body_sizes): Update.
29826         (inline_update_callee_summaries): Update.
29827         (remap_edge_change_prob): Update.
29828         (remap_edge_summaries): Update.
29829         (inline_merge_summary): Update.
29830         (do_estimate_edge_time): Update.
29831         (inline_generate_summary): Update.
29832         (inline_read_section): Update.
29833         (inline_read_summary): Update.
29834         (inline_free_summary): Update.
29835         * ipa-inline.c (can_inline_edge_p): Update.
29836         (compute_inlined_call_time): Update.
29837         (want_inline_small_function_p): Update.
29838         (edge_badness): Update.
29839         (early_inliner): Update.
29840         * ipa-inline.h (inline_edge_summary): Turn to ...
29841         (ipa_call_summary): ... this one.
29842         (ipa_call_summary_t): New class.
29843         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29844         (ipa_call_summaries): New.
29845         (inline_edge_summary): Remove.
29846         (estimate_edge_growth): Update.
29847         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29848         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29849         * ipa-split.c (execute_split_functions): Update.
29850         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29851
29852 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29853
29854         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29855         attributes): Document rdrand effective target.
29856
29857 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29858
29859         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29860         attributes): Sort alphabetically.
29861
29862 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
29863
29864         * config/avr/genmultilib.awk: Use gsub instead of gensub.
29865
29866 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
29867
29868         PR target/80718
29869         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
29870         V2DF/V2DI splat into two separate patterns, one that handles
29871         registers, and the other that only handles memory.  Drop support
29872         for splatting from a GPR on ISA 2.07 and then splitting the
29873         splat into direct move and splat.
29874         (vsx_splat_<mode>_reg): Likewise.
29875         (vsx_splat_<mode>_mem): Likewise.
29876
29877 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
29878
29879         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
29880
29881 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
29882
29883         PR middle-end/80809
29884         * omp-low.c (finish_taskreg_remap): New function.
29885         (finish_taskreg_scan): If unit size of ctx->record_type
29886         is non-constant, unshare the size expression and replace
29887         decls in it with possible outer var refs.
29888
29889         PR middle-end/80809
29890         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
29891         GOVD_SHARED rather than GOVD_PRIVATE with it.
29892         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
29893         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
29894
29895         PR middle-end/80853
29896         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
29897         as last argument to build_outer_var_ref for pointer bases of array
29898         section reductions.
29899
29900 2017-05-19  Martin Sebor  <msebor@redhat.com>
29901
29902         * print-tree.c (print_node): Print DECL_READ_P flag.
29903
29904 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29905
29906         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
29907         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
29908         * cgraph.c: Likewise.
29909         * cgraphunit.c: Likewise.
29910         * gengtype.c: Likewise.
29911         * ipa-cp.c: Likewise.
29912         * ipa-devirt.c: Likewise.
29913         * ipa-icf.c: Likewise.
29914         * ipa-predicate.c: Likewise.
29915         * ipa-profile.c: Likewise.
29916         * ipa-prop.c: Likewise.
29917         * ipa-split.c: Likewise.
29918         * ipa.c: Likewise.
29919         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
29920         edge_predicate_pool, dump_inline_hints,
29921         inline_summary::account_size_time, redirect_to_unreachable,
29922         edge_set_predicate, set_hint_predicate,
29923         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
29924         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
29925         inline_summary_t::remove, remap_hint_predicate_after_duplication,
29926         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
29927         ipa_call_summary_t::remove, initialize_growth_caches,
29928         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
29929         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
29930         mark_modified, unmodified_parm_1, unmodified_parm,
29931         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
29932         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
29933         compute_bb_predicates, will_be_nonconstant_expr_predicate,
29934         will_be_nonconstant_predicate, record_modified_bb_info,
29935         get_minimal_bb, record_modified, param_change_prob,
29936         phi_result_unknown_predicate, predicate_for_phi_result,
29937         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
29938         estimate_function_body_sizes, compute_inline_parameters,
29939         compute_inline_parameters_for_curren, pass_data_inline_parameters,
29940         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
29941         inline_update_callee_summaries, remap_edge_change_prob,
29942         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
29943         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
29944         inline_analyze_function, inline_summary_t::insert,
29945         inline_generate_summary, read_ipa_call_summary, inline_read_section,
29946         inline_read_summary, write_ipa_call_summary, inline_write_summary,
29947         inline_free_summary): Move to ipa-fnsummary.h
29948         (predicate_t): Remove.
29949         * ipa-fnsummary.c: New file.
29950         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
29951         (enum inline_hints_vals, inline_hints, agg_position_info,
29952         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
29953         inline_summaries, ipa_call_summary, ipa_call_summary_t,
29954         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
29955         dump_inline_summary, dump_inline_hints, inline_generate_summary,
29956         inline_read_summary, inline_write_summary, inline_free_summary,
29957         inline_analyze_function, initialize_inline_failed,
29958         inline_merge_summary, inline_update_overall_summary,
29959         compute_inline_parameters): Move to ipa-fnsummary.h
29960         * ipa-fnsummary.h: New file.
29961         * ipa-inline-transform.h: Include ipa-inline.h.
29962         * ipa-inline.c: LIkewise.
29963
29964 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29965
29966         * ipa-inline.c (edge_badness): Use inlined_time instead of
29967         inline_summaries->get.
29968
29969 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29970
29971         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
29972
29973 2017-05-22  Nathan Sidwell  <nathan@acm.org>
29974
29975         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
29976         (fdump-lang): Document 'raw' option.
29977         * dumpfile.h (TDI_tu): Delete.
29978         * dumpfile.c (dump_files): Remove translation-unit.
29979         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
29980
29981 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
29982
29983         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
29984         command option from $(AWK) call.
29985         * config/avr/genmultilib.awk: Simplify and rewrite so that it
29986         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
29987         [FORMAT]: Remove handling of variable.
29988         * config/avr/t-multilib: Regenerate.
29989
29990 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
29991
29992         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
29993         self_time.
29994         (dump_inline_summary): Do not print self_time.
29995         (estimate_function_body_sizes): Do not set self_time.
29996         (compute_inline_parameters): Likewise.
29997         (inline_read_section, inline_write_summary): Do not stream self_time.
29998         * ipa-inline.h (inline_summary): Drop self_time.
29999
30000 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30001
30002         * ipa-inline-analysis.c (account_size_time): Rename to ...
30003         (inline_summary::account_size_time): ... this one.
30004         (reset_ipa_call_summary): Turn to ...
30005         (ipa_call_summary::reset): ... this one.
30006         (reset_inline_summary): Turn to ...
30007         (inline_summary::reset): ... this one.
30008         (inline_summary_t::remove): Update.
30009         (inline_summary_t::duplicate): Update.
30010         (ipa_call_summary_t::remove): Update.
30011         (dump_inline_summary): Update.
30012         (estimate_function_body_sizes): Update.
30013         (compute_inline_parameters): Update.
30014         (estimate_node_size_and_time): Update.
30015         (inline_merge_summary): Update.
30016         (inline_update_overall_summary): Update.
30017         (inline_read_section): Update.
30018         (inline_write_summary): Update.
30019         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
30020         add account_size_time and reset member functions.
30021         (ipa_call_summary): Add reset function.
30022         * ipa-predicate.h (predicate::operator &): Constify.
30023
30024 2017-05-22  Richard Biener  <rguenther@suse.de>
30025
30026         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
30027
30028 2017-05-19  Jason Merrill  <jason@redhat.com>
30029
30030         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
30031
30032 2017-05-19  Marek Polacek  <polacek@redhat.com>
30033
30034         PR sanitizer/80800
30035         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
30036         TYPE_OVERFLOW_WRAPS checks.
30037
30038 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
30039
30040         * tree-core.h (enum omp_clause_default_kind): Add
30041         "OMP_CLAUSE_DEFAULT_PRESENT".
30042         * tree-pretty-print.c (dump_omp_clause): Handle it.
30043         * gimplify.c (enum gimplify_omp_var_data): Add
30044         "GOVD_MAP_FORCE_PRESENT".
30045         (gimplify_adjust_omp_clauses_1): Map it to
30046         "GOMP_MAP_FORCE_PRESENT".
30047         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
30048
30049         * gimplify.c (oacc_default_clause): Clarify.
30050
30051 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30052
30053         LANG_HOOK_REGISTER_DUMPS
30054         * toplev.c (general_init): Call register dump lang hook.
30055         * doc/invoke.texi: Document -fdump-lang option family.
30056         * dumpfile.c (dump_files): Remove class dump here.
30057         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
30058         * dumpfile.h (tree_dump_index): Remove TDI_class.
30059         * langhooks-def.h (lhd_register_dumps): Declare.
30060         (LANG_HOOKS_REGISTER_DUMPS): Define.
30061         (LANG_HOOKS_INITIALIZER): Add it.
30062         * langhooks.c (lhd_register_dumps): Define.
30063         * langhooks.h (struct lang_hooks): Add register_dumps.
30064
30065 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30066
30067         * context.h (context::set_passes): New.
30068         * context.c (context::context): Do not create pass manager.
30069         * toplev.c (general_init): Create pass manager here.
30070
30071 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
30072
30073         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
30074         use this splitter if two add or or instructions would also work for
30075         the constant we want to generate.
30076
30077 2017-05-19  Richard Biener  <rguenther@suse.de>
30078
30079         PR build/80821
30080         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
30081         predicate evaluation.
30082
30083 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30084
30085         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
30086         add ctor.
30087         * ipa-inline.c (want_inline_small_function_p): Do not cast to
30088         unsigned.
30089
30090 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30091
30092         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
30093         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
30094         (inline_edge_summary_vec): Turn into ...
30095         (ipa_call_summaries): ... this one.
30096         (redirect_to_unreachable, edge_set_predicate,
30097         evaluate_properties_for_edge, inline_summary_alloc,
30098         reset_ipa_call_summary, reset_inline_summary,
30099         inline_summary_t::duplicate): Update.
30100         (inline_edge_duplication_hook): Turn to ...
30101         (ipa_call_summary_t::duplicate): ... this one.
30102         (inline_edge_removal_hook): Turn to ...
30103         (ipa_call_summary_t::remove): ... this one.
30104         (dump_inline_edge_summary): Turn to ...
30105         (dump_ipa_call_summary): ... this one.
30106         (estimate_function_body_sizes): Update.
30107         (inline_update_callee_summaries): Update.
30108         (remap_edge_change_prob): Update.
30109         (remap_edge_summaries): Update.
30110         (inline_merge_summary): Update.
30111         (do_estimate_edge_time): Update.
30112         (inline_generate_summary): Update.
30113         (inline_read_section): Update.
30114         (inline_read_summary): Update.
30115         (inline_free_summary): Update.
30116         * ipa-inline.c (can_inline_edge_p): Update.
30117         (compute_inlined_call_time): Update.
30118         (want_inline_small_function_p): Update.
30119         (edge_badness): Update.
30120         (early_inliner): Update.
30121         * ipa-inline.h (inline_edge_summary): Turn to ...
30122         (ipa_call_summary): ... this one.
30123         (ipa_call_summary_t): New class.
30124         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
30125         (ipa_call_summaries): New.
30126         (inline_edge_summary): Remove.
30127         (estimate_edge_growth): Update.
30128         * ipa-profile.c (ipa_propagate_frequency_1): Update.
30129         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
30130         * ipa-split.c (execute_split_functions): Update.
30131         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
30132
30133 2017-05-19  Richard Biener  <rguenther@suse.de>
30134
30135         PR middle-end/80764
30136         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
30137
30138 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
30139
30140         * config/rs6000/rs6000.c (struct machine_function): Add field
30141         fpr_is_wrapped_separately.
30142         (rs6000_get_separate_components): Use 64 components.  Handle the
30143         new FPR components.
30144         (rs6000_components_for_bb): Handle the FPR components.
30145         (rs6000_emit_prologue_components): Handle the FPR components.
30146         (rs6000_emit_epilogue_components): Handle the FPR components.
30147         (rs6000_set_handled_components): Handle the FPR components.
30148         (rs6000_emit_prologue): Don't output prologue code for those FPRs
30149         that are already separately shrink-wrapped.
30150         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
30151         that are already separately shrink-wrapped.
30152
30153 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
30154
30155         PR target/80510
30156         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
30157         New predicate.
30158
30159         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
30160         (define_peephole2 for Altivec d-form load): Add peepholes to catch
30161         cases where the register allocator uses a move and an offsettable
30162         memory operation to/from a FPR register on ISA 2.06/2.07.
30163         (define_peephole2 for Altivec d-form store): Likewise.
30164
30165 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
30166
30167         PR target/80799
30168         * config/i386/mmx.md (*mov<mode>_internal): Enable
30169         alternatives 11, 12, 13 and 14 also for 32bit targets.
30170         Remove alternatives 15, 16, 17 and 18.
30171         * config/i386/sse.md (vec_concatv2di): Change
30172         alternative (!x, *y) to (x, ?!*Yn).
30173
30174 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
30175
30176         * dumpfile.h (enum dump_kind): Remove stray comma.
30177
30178 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30179
30180         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
30181         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
30182         predicate::num_conditions
30183         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
30184         (CHANGED): turn into predicate::changed.
30185         (agg_position_info): Move to ipa-predicate.h
30186         (add_condition, predicate::add_clause, predicate::operator &=,
30187         predicate::or_with, predicate::evaluate, predicate::probability,
30188         dump_condition, dump_clause, predicate::dump,
30189         predicate::remap_after_duplication, predicate::remap_after_inlining,
30190         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
30191         (evaluate_conditions_for_known_args): Update.
30192         (set_cond_stmt_execution_predicate): Update.
30193         * ipa-inline.h: Include ipa-predicate.h
30194         (condition, inline_param_summary, conditions, agg_position_info,
30195         predicate): Move to ipa-predicate.h
30196         * ipa-predicate.c: New file.
30197         * ipa-predicate.h: New file.
30198
30199 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
30200
30201         * final.c (leaf_function_p): Check we are not in a sequence.
30202
30203 2017-05-18  Martin Liska  <mliska@suse.cz>
30204
30205         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
30206         * dumpfile.c (dump_register): Use new enum dump_kind.
30207         (get_dump_file_name): Likewise.
30208         (dump_enable_all): Likewise.
30209         (dump_switch_p_1): Likewise.
30210         (enable_rtl_dump_file): Remove usage of TDF_RTL.
30211         * dumpfile.h (enum dump_kind): New enum type.
30212         (struct dump_file_info): Create constructor and
30213         format fields and comments.
30214         * passes.c (pass_manager::register_one_dump_file):
30215         Use num dump_kind.
30216         * statistics.c (statistics_early_init): Likewise.
30217         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
30218         TDF_TREE with TDF_SLIM.
30219         (gather_memory_references_ref): Likewise.
30220
30221 2017-05-18  Martin Liska  <mliska@suse.cz>
30222
30223         * vec.h (struct vnull): Use it.
30224
30225 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30226
30227         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
30228         (true_predicate, false_predicate, true_predicate_p,
30229         false_predicate_p): Remove.
30230         (single_cond_predicate, not_inlined_predicate): Turn to member function
30231         in ipa-inline.h
30232         (add_condition): Update.
30233         (add_clause): Turn to...
30234         (predicate::add_clause): ... this one; update; allow passing NULL
30235         as parameter.
30236         (and_predicates): Turn to ...
30237         (predicate::operator &=): ... this one.
30238         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
30239         (or_predicates): Turn to ...
30240         (predicate::or_with): ... this one.
30241         (evaluate_predicate): Turn to ...
30242         (predicate::evaluate): ... this one.
30243         (predicate_probability): Turn to ...
30244         (predicate::probability): ... this one.
30245         (dump_condition): Update.
30246         (dump_predicate): Turn to ...
30247         (predicate::dump): ... this one.
30248         (account_size_time): Update.
30249         (edge_set_predicate): Update.
30250         (set_hint_predicate): UPdate.
30251         (evaluate_conditions_for_known_args): Update.
30252         (evaluate_properties_for_edge): Update.
30253         (remap_predicate_after_duplication): Turn to...
30254         (predicate::remap_after_duplication): ... this one.
30255         (remap_hint_predicate_after_duplication): Update.
30256         (inline_summary_t::duplicate): UPdate.
30257         (dump_inline_edge_summary): Update.
30258         (dump_inline_summary): Update.
30259         (set_cond_stmt_execution_predicate): Update.
30260         (set_switch_stmt_execution_predicate): Update.
30261         (compute_bb_predicates): Update.
30262         (will_be_nonconstant_expr_predicate): Update.
30263         (will_be_nonconstant_predicate): Update.
30264         (phi_result_unknown_predicate): Update.
30265         (predicate_for_phi_result): Update.
30266         (array_index_predicate): Update.
30267         (estimate_function_body_sizes): Update.
30268         (estimate_node_size_and_time): Update.
30269         (estimate_ipcp_clone_size_and_time): Update.
30270         (remap_predicate): Rename to ...
30271         (predicate::remap_after_inlining): ... this one.
30272         (remap_hint_predicate): Update.
30273         (inline_merge_summary): Update.
30274         (inline_update_overall_summary): Update.
30275         (estimate_size_after_inlining): Update.
30276         (read_predicate): Rename to ...
30277         (predicate::stream_in): ... this one.
30278         (read_inline_edge_summary): Update.
30279         (write_predicate): Rename to ...
30280         (predicate::stream_out): ... this one.
30281         (write_inline_edge_summary): Update.
30282         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
30283         (clause_t): Turn to uint32_t
30284         (predicate): Turn to class; implement constructor and operators
30285         ==, !=, &
30286         (size_time_entry): Update.
30287         (inline_summary): Update.
30288         (inline_edge_summary): Update.
30289
30290 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
30291
30292         * fold-const.c (fold_binary_loc): Move transformation...
30293         * match.pd (C - X CMP X): ... here.
30294
30295 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
30296
30297         * config/sparc/sparc.c (sparc_option_override): Set function
30298         alignment for -mcpu=niagara7 to 64 to match the I$ line.
30299         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
30300         latency to 1.
30301         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
30302         latency to 2.
30303         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
30304
30305 2017-05-18  Marek Polacek  <polacek@redhat.com>
30306
30307         PR sanitizer/80797
30308         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
30309         (pass_ubsan::execute): Call gimple_assign_single_p instead of
30310         gimple_assign_load_p.
30311
30312 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
30313
30314         PR middle-end/80692
30315         * real.c (do_compare): Give decimal_do_compare preference over
30316         comparing just the signs.
30317
30318 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
30319
30320         * doc/md.texi (Canonicalization of Instructions): Describe the
30321         canonical form of instructions that inherently set a condition
30322         code register.
30323
30324 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
30325
30326         PR middle-end/80775
30327         * tree-cfg.c: Move deletion of unreachable case statements to after
30328         the merging of consecutive case labels.
30329
30330 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30331
30332         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
30333         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
30334         restoring of callee-saved registers.
30335
30336 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
30337
30338         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
30339         * config/visium/visium.c (single_set_and_flags): Likewise.
30340         * config/visium/visium.md (Substitutions): Likewise.
30341
30342 2017-05-17  Martin Liska  <mliska@suse.cz>
30343
30344         * cfg.c: Introduce dump_flags_t type and
30345         use it instead of int type.
30346         * cfg.h: Likewise.
30347         * cfghooks.c: Likewise.
30348         * cfghooks.h (struct cfg_hooks): Likewise.
30349         * cfgrtl.c: Likewise.
30350         * cfgrtl.h: Likewise.
30351         * cgraph.c (cgraph_node::get_body): Likewise.
30352         * coretypes.h: Likewise.
30353         * domwalk.c: Likewise.
30354         * domwalk.h: Likewise.
30355         * dumpfile.c (struct dump_option_value_info): Likewise.
30356         (dump_enable_all): Likewise.
30357         (dump_switch_p_1): Likewise.
30358         (opt_info_switch_p): Likewise.
30359         * dumpfile.h (enum tree_dump_index): Likewise.
30360         (struct dump_file_info): Likewise.
30361         * genemit.c: Likewise.
30362         * generic-match-head.c: Likewise.
30363         * gengtype.c (open_base_files): Likewise.
30364         * gimple-pretty-print.c: Likewise.
30365         * gimple-pretty-print.h: Likewise.
30366         * graph.c (print_graph_cfg): Likewise.
30367         * graphite-scop-detection.c (dot_all_sese): Likewise.
30368         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
30369         * loop-unroll.c (report_unroll): Likewise.
30370         * passes.c (pass_manager::register_one_dump_file): Likewise.
30371         * print-tree.c: Likewise.
30372         * statistics.c: Likewise.
30373         * tree-cfg.c: Likewise.
30374         * tree-cfg.h: Likewise.
30375         * tree-dfa.c: Likewise.
30376         * tree-dfa.h: Likewise.
30377         * tree-dump.c (dump_function): Likewise.
30378         * tree-dump.h (struct dump_info): Likewise.
30379         * tree-pretty-print.c: Likewise.
30380         * tree-pretty-print.h: Likewise.
30381         * tree-ssa-live.c: Likewise.
30382         * tree-ssa-live.h: Likewise.
30383         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
30384         * tree-vect-loop.c: Likewise.
30385         * tree-vect-slp.c: Likewise.
30386
30387 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
30388             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30389
30390         PR tree-optimization/80457
30391         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
30392         of all arguments to a statement as scalar_to_vec operations.
30393         (vectorizable_call): Adjust call to vect_model_simple_cost for
30394         new parameter.
30395         (vectorizable_conversion): Likewise.
30396         (vectorizable_assignment): Likewise.
30397         (vectorizable_shift): Likewise.
30398         (vectorizable_operation): Likewise.
30399         (vectorizable_comparison): Likewise.
30400         (vect_is_simple_cond): Record the def types for operands.
30401         (vectorizable_condition): Likewise, call vect_model_simple_cost.
30402         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
30403         for statement argument count.
30404
30405 2017-05-16  Carl Love  <cel@us.ibm.com>
30406
30407         * config/rs6000/rs6000-c: Add support for built-in functions
30408         vector unsigned long long vec_bperm (vector unsigned long long,
30409                                              vector unsigned char)
30410         vector signed long long vec_mule (vector signed int,
30411                                           vector signed int)
30412         vector unsigned long long vec_mule (vector unsigned int,
30413                                             vector unsigned int)
30414         vector signed long long vec_mulo (vector signed int,
30415                                           vector signed int)
30416         vector unsigned long long vec_mulo (vector unsigned int,
30417                                             vector unsigned int)
30418         vector signed char vec_sldw (vector signed char,
30419                                      vector signed char,
30420                                      const int)
30421         vector unsigned char vec_sldw (vector unsigned char,
30422                                        vector unsigned char,
30423                                        const int)
30424         vector signed short vec_sldw (vector signed short,
30425                                       vector signed short,
30426                                       const int)
30427         vector unsigned short vec_sldw (vector unsigned short,
30428                                         vector unsigned short,
30429                                         const int)
30430         vector signed int vec_sldw (vector signed int,
30431                                     vector signed int,
30432                                     const int)
30433         vector unsigned int vec_sldw (vector unsigned int,
30434                                       vector unsigned int,
30435                                       const int)
30436         vector signed long long vec_sldw (vector signed long long,
30437                                           vector signed long long,
30438                                           const int)
30439         vector unsigned long long vec_sldw (vector unsigned long long,
30440                                             vector unsigned long long,
30441                                             const int)
30442         * config/rs6000/rs6000-c: Add support for built-in functions
30443         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
30444         * config/rs6000/altivec.h: Add defintion for vec_sldw.
30445         * doc/extend.texi: Update the built-in documentation for the
30446         new built-in functions.
30447
30448 2017-05-16  Marek Polacek  <polacek@redhat.com>
30449
30450         PR sanitizer/80536
30451         PR sanitizer/80386
30452         * tree.c (save_expr): Don't fold the expression.
30453
30454 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
30455
30456         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
30457         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
30458         and (?*y,m).  Update insn attributes.
30459
30460 2017-05-16  Martin Liska  <mliska@suse.cz>
30461
30462         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
30463         flags argument of print_gimple_stmt, print_gimple_expr,
30464         print_generic_stmt and print_generic_expr.
30465         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
30466         * coretypes.h: Likewise.
30467         * except.c (dump_eh_tree): Likewise.
30468         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
30469         * gimple-pretty-print.h: Likewise.
30470         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
30471         (backprop::push_to_worklist): Likewise.
30472         (backprop::pop_from_worklist): Likewise.
30473         (backprop::process_use): Likewise.
30474         (backprop::intersect_uses): Likewise.
30475         (note_replacement): Likewise.
30476         * gimple-ssa-store-merging.c
30477         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
30478         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
30479         (pass_store_merging::execute): Likewise.
30480         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
30481         (ssa_base_cand_dump_callback): Likewise.
30482         (dump_incr_vec): Likewise.
30483         (replace_refs): Likewise.
30484         (replace_mult_candidate): Likewise.
30485         (create_add_on_incoming_edge): Likewise.
30486         (create_phi_basis): Likewise.
30487         (insert_initializers): Likewise.
30488         (all_phi_incrs_profitable): Likewise.
30489         (introduce_cast_before_cand): Likewise.
30490         (replace_one_candidate): Likewise.
30491         * gimplify.c (gimplify_expr): Likewise.
30492         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
30493         (set_rename): Likewise.
30494         (rename_uses): Likewise.
30495         (copy_loop_phi_nodes): Likewise.
30496         (add_close_phis_to_merge_points): Likewise.
30497         (copy_loop_close_phi_args): Likewise.
30498         (copy_cond_phi_args): Likewise.
30499         (graphite_copy_stmts_from_block): Likewise.
30500         (translate_pending_phi_nodes): Likewise.
30501         * graphite-poly.c (print_pdr): Likewise.
30502         (dump_gbb_cases): Likewise.
30503         (dump_gbb_conditions): Likewise.
30504         (print_scop_params): Likewise.
30505         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
30506         (build_cross_bb_scalars_use): Likewise.
30507         (gather_bbs::before_dom_children): Likewise.
30508         * hsa-dump.c (dump_hsa_immed): Likewise.
30509         * ipa-cp.c (print_ipcp_constant_value): Likewise.
30510         (get_replacement_map): Likewise.
30511         * ipa-inline-analysis.c (dump_condition): Likewise.
30512         (estimate_function_body_sizes): Likewise.
30513         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
30514         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
30515         * ipa-prop.c (ipa_dump_param): Likewise.
30516         (ipa_print_node_jump_functions_for_edge): Likewise.
30517         (ipa_modify_call_arguments): Likewise.
30518         (ipa_modify_expr): Likewise.
30519         (ipa_dump_param_adjustments): Likewise.
30520         (ipa_dump_agg_replacement_values): Likewise.
30521         (ipcp_modif_dom_walker::before_dom_children): Likewise.
30522         * ipa-pure-const.c (check_stmt): Likewise.
30523         (pass_nothrow::execute): Likewise.
30524         * ipa-split.c (execute_split_functions): Likewise.
30525         * omp-offload.c (dump_oacc_loop_part): Likewise.
30526         (dump_oacc_loop): Likewise.
30527         * trans-mem.c (tm_log_emit): Likewise.
30528         (tm_memopt_accumulate_memops): Likewise.
30529         (dump_tm_memopt_set): Likewise.
30530         (dump_tm_memopt_transform): Likewise.
30531         * tree-cfg.c (gimple_verify_flow_info): Likewise.
30532         (print_loop): Likewise.
30533         * tree-chkp-opt.c (chkp_print_addr): Likewise.
30534         (chkp_gather_checks_info): Likewise.
30535         (chkp_get_check_result): Likewise.
30536         (chkp_remove_check_if_pass): Likewise.
30537         (chkp_use_outer_bounds_if_possible): Likewise.
30538         (chkp_reduce_bounds_lifetime): Likewise.
30539         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
30540         (chkp_mark_completed_bounds): Likewise.
30541         (chkp_register_incomplete_bounds): Likewise.
30542         (chkp_mark_invalid_bounds): Likewise.
30543         (chkp_maybe_copy_and_register_bounds): Likewise.
30544         (chkp_build_returned_bound): Likewise.
30545         (chkp_get_bound_for_parm): Likewise.
30546         (chkp_build_bndldx): Likewise.
30547         (chkp_get_bounds_by_definition): Likewise.
30548         (chkp_generate_extern_var_bounds): Likewise.
30549         (chkp_get_bounds_for_decl_addr): Likewise.
30550         * tree-chrec.c (chrec_apply): Likewise.
30551         * tree-data-ref.c (dump_data_reference): Likewise.
30552         (dump_subscript): Likewise.
30553         (dump_data_dependence_relation): Likewise.
30554         (analyze_overlapping_iterations): Likewise.
30555         * tree-inline.c (expand_call_inline): Likewise.
30556         (tree_function_versioning): Likewise.
30557         * tree-into-ssa.c (dump_defs_stack): Likewise.
30558         (dump_currdefs): Likewise.
30559         (dump_names_replaced_by): Likewise.
30560         (dump_update_ssa): Likewise.
30561         (update_ssa): Likewise.
30562         * tree-object-size.c (pass_object_sizes::execute): Likewise.
30563         * tree-parloops.c (build_new_reduction): Likewise.
30564         (try_create_reduction_list): Likewise.
30565         (ref_conflicts_with_region): Likewise.
30566         (oacc_entry_exit_ok_1): Likewise.
30567         (oacc_entry_exit_single_gang): Likewise.
30568         * tree-pretty-print.h: Likewise.
30569         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
30570         (get_scalar_evolution): Likewise.
30571         (add_to_evolution): Likewise.
30572         (get_loop_exit_condition): Likewise.
30573         (analyze_evolution_in_loop): Likewise.
30574         (analyze_initial_condition): Likewise.
30575         (analyze_scalar_evolution): Likewise.
30576         (instantiate_scev): Likewise.
30577         (number_of_latch_executions): Likewise.
30578         (gather_chrec_stats): Likewise.
30579         (final_value_replacement_loop): Likewise.
30580         (scev_const_prop): Likewise.
30581         * tree-sra.c (dump_access): Likewise.
30582         (disqualify_candidate): Likewise.
30583         (create_access): Likewise.
30584         (reject): Likewise.
30585         (maybe_add_sra_candidate): Likewise.
30586         (create_access_replacement): Likewise.
30587         (analyze_access_subtree): Likewise.
30588         (analyze_all_variable_accesses): Likewise.
30589         (sra_modify_assign): Likewise.
30590         (initialize_constant_pool_replacements): Likewise.
30591         (find_param_candidates): Likewise.
30592         (decide_one_param_reduction): Likewise.
30593         (replace_removed_params_ssa_names): Likewise.
30594         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
30595         * tree-ssa-copy.c (dump_copy_of): Likewise.
30596         (copy_prop_visit_cond_stmt): Likewise.
30597         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
30598         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
30599         (record_equivalences_from_stmt): Likewise.
30600         * tree-ssa-dse.c (compute_trims): Likewise.
30601         (delete_dead_call): Likewise.
30602         (delete_dead_assignment): Likewise.
30603         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
30604         (forward_propagate_into_cond): Likewise.
30605         (pass_forwprop::execute): Likewise.
30606         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
30607         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
30608         Likewise.
30609         (move_computations_worker): Likewise.
30610         (execute_sm): Likewise.
30611         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
30612         (remove_exits_and_undefined_stmts): Likewise.
30613         (remove_redundant_iv_tests): Likewise.
30614         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
30615         (adjust_iv_update_pos): Likewise.
30616         * tree-ssa-math-opts.c (bswap_replace): Likewise.
30617         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
30618         (value_replacement): Likewise.
30619         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30620         * tree-ssa-pre.c (print_pre_expr): Likewise.
30621         (get_representative_for): Likewise.
30622         (create_expression_by_pieces): Likewise.
30623         (insert_into_preds_of_block): Likewise.
30624         (eliminate_insert): Likewise.
30625         (eliminate_dom_walker::before_dom_children): Likewise.
30626         (eliminate): Likewise.
30627         (remove_dead_inserted_code): Likewise.
30628         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
30629         * tree-ssa-reassoc.c (get_rank): Likewise.
30630         (eliminate_duplicate_pair): Likewise.
30631         (eliminate_plus_minus_pair): Likewise.
30632         (eliminate_not_pairs): Likewise.
30633         (undistribute_ops_list): Likewise.
30634         (eliminate_redundant_comparison): Likewise.
30635         (update_range_test): Likewise.
30636         (optimize_range_tests_var_bound): Likewise.
30637         (optimize_vec_cond_expr): Likewise.
30638         (rewrite_expr_tree): Likewise.
30639         (rewrite_expr_tree_parallel): Likewise.
30640         (linearize_expr): Likewise.
30641         (break_up_subtract): Likewise.
30642         (linearize_expr_tree): Likewise.
30643         (attempt_builtin_powi): Likewise.
30644         (attempt_builtin_copysign): Likewise.
30645         (transform_stmt_to_copy): Likewise.
30646         (transform_stmt_to_multiply): Likewise.
30647         (dump_ops_vector): Likewise.
30648         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
30649         (print_scc): Likewise.
30650         (set_ssa_val_to): Likewise.
30651         (visit_reference_op_store): Likewise.
30652         (visit_use): Likewise.
30653         (sccvn_dom_walker::before_dom_children): Likewise.
30654         (run_scc_vn): Likewise.
30655         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
30656         Likewise.
30657         (expr_hash_elt::print): Likewise.
30658         (const_and_copies::pop_to_marker): Likewise.
30659         (const_and_copies::record_const_or_copy_raw): Likewise.
30660         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
30661         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
30662         (dump_predicates): Likewise.
30663         (find_uninit_use): Likewise.
30664         (warn_uninitialized_phi): Likewise.
30665         (pass_late_warn_uninitialized::execute): Likewise.
30666         * tree-ssa.c (verify_vssa): Likewise.
30667         (verify_ssa): Likewise.
30668         (maybe_optimize_var): Likewise.
30669         * tree-vrp.c (dump_value_range): Likewise.
30670         (dump_all_value_ranges): Likewise.
30671         (dump_asserts_for): Likewise.
30672         (register_edge_assert_for_2): Likewise.
30673         (vrp_visit_cond_stmt): Likewise.
30674         (vrp_visit_switch_stmt): Likewise.
30675         (vrp_visit_stmt): Likewise.
30676         (vrp_visit_phi_node): Likewise.
30677         (simplify_cond_using_ranges_1): Likewise.
30678         (fold_predicate_in): Likewise.
30679         (evrp_dom_walker::before_dom_children): Likewise.
30680         (evrp_dom_walker::push_value_range): Likewise.
30681         (evrp_dom_walker::pop_value_range): Likewise.
30682         (execute_early_vrp): Likewise.
30683
30684 2017-05-16  Richard Biener  <rguenther@suse.de>
30685
30686         * dwarf2out.c (loc_list_from_tree_1): Do not create
30687         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
30688
30689 2017-05-16  Richard Biener  <rguenther@suse.de>
30690
30691         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
30692         just generated.
30693         (note_variable_value_in_expr): If we resolved the decl ref
30694         do not push to the stack.
30695
30696 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
30697
30698         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
30699         operations in fast-math mode.
30700         (vaddq_f16): Likewise.
30701         (vmul_f16): Likewise.
30702         (vmulq_f16): Likewise.
30703         (vsub_f16): Likewise.
30704         (vsubq_f16): Likewise.
30705         * config/arm/neon.md (add<mode>3): New.
30706         (sub<mode>3): New.
30707         (fma:<VH:mode>3): New.  Also remove outdated comment.
30708         (mul<mode>3): New.
30709
30710 2017-05-16  Martin Liska  <mliska@suse.cz>
30711
30712         PR ipa/79849.
30713         PR ipa/79850.
30714         * ipa-devirt.c (warn_types_mismatch): Fix typo.
30715         (odr_types_equivalent_p): Likewise.
30716
30717 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
30718
30719         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
30720
30721 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
30722
30723         PR target/80425
30724         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
30725         non-interunit SSE move alternatives with '?'.
30726         (zero-extendsidi peephole2): New peephole to skip intermediate
30727         general register in SSE zero-extend sequence.
30728
30729 2017-05-15  Jeff Law  <law@redhat.com>
30730
30731         * reorg.c (relax_delay_slots): Create a new variable to hold
30732         the temporary target rather than clobbering TARGET_LABEL.
30733
30734         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
30735         missing argument to extract_bit_field call.
30736         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
30737
30738 2017-05-15  Martin Liska  <mliska@suse.cz>
30739
30740         PR driver/31468
30741         * gcc.c (process_command): Do not allow empty argument of -o option.
30742
30743 2017-05-15  Renlin Li  <renlin.li@arm.com>
30744
30745         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
30746         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
30747         * config/aarch64/constraints.md (Usf): Add long call check.
30748         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
30749         (call_value): Likewise.
30750         (sibcall): Likewise.
30751         (sibcall_value): Likewise.
30752         (call_insn): New.
30753         (call_value_insn): New.
30754         (sibcall_insn): Update rtx pattern.
30755         (sibcall_value_insn): Likewise.
30756         (call_internal): Remove.
30757         (call_value_internal): Likewise.
30758         (sibcall_internal): Likewise.
30759         (sibcall_value_internal): Likewise.
30760         (call_reg): Likewise.
30761         (call_symbol): Likewise.
30762         (call_value_reg): Likewise.
30763         (call_value_symbol): Likewise.
30764
30765 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
30766
30767         PR target/80600
30768         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
30769
30770 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
30771
30772         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
30773         compatible with CCGOCmode and with CCZmode.
30774
30775 2017-05-14  Martin Sebor  <msebor@redhat.com>
30776
30777         PR middle-end/77671
30778         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
30779         (gimple_fold_builtin_snprintf): Same.
30780         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
30781         (gimple_fold_builtin_snprintf): Same.
30782         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
30783         of character types.
30784         (is_call_safe): New function.
30785         (try_substitute_return_value): Call it.
30786         (try_simplify_call): New function.
30787         (pass_sprintf_length::handle_gimple_call): Call it.
30788
30789 2017-05-14  Martin Sebor  <msebor@redhat.com>
30790
30791         PR middle-end/80669
30792         * builtins.c (expand_builtin_stpncpy): Simplify.
30793
30794 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
30795
30796         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
30797         * config/i386/i386.h
30798         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
30799         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
30800         (struct machine_function): Add new members call_ms2sysv,
30801         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
30802         (struct machine_frame_state): New fields sp_realigned and
30803         sp_realigned_offset.
30804         * config/i386/i386.c
30805         (enum xlogue_stub): New enum.
30806         (enum xlogue_stub_sets): New enum.
30807         (class xlogue_layout): New class.
30808         (struct ix86_frame): New fields stack_realign_allocate_offset,
30809         stack_realign_offset and outlined_save_offset.  Modify comments to
30810         detail stack layout when using out-of-line stubs.
30811         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
30812         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
30813         -mcall-ms2sysv-xlogues.
30814         (stub_managed_regs): New static variable.
30815         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
30816         registers managed by out-of-line stub.
30817         (disable_call_ms2sysv_xlogues): New function.
30818         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
30819         m->call_ms2sysv when appropriate and compute frame layout for
30820         out-of-line stubs.
30821         (sp_valid_at, fp_valid_at): New inline functions.
30822         (choose_basereg): New function.
30823         (choose_baseaddr): Add align parameter, use choose_basereg and modify
30824         all callers.
30825         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
30826         Use align parameter of choose_baseaddr to generated aligned SSE movs
30827         when possible.
30828         (pro_epilogue_adjust_stack): Modify to track
30829         machine_frame_state::sp_realigned.
30830         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
30831         (ix86_nsaved_sseregs): Likewise.
30832         (ix86_emit_save_regs): Likewise.
30833         (ix86_emit_save_regs_using_mov): Likewise.
30834         (ix86_emit_save_sse_regs_using_mov): Likewise.
30835         (get_scratch_register_on_entry): Likewise.
30836         (gen_frame_set): New function.
30837         (gen_frame_load): Likewise.
30838         (gen_frame_store): Likewise.
30839         (emit_outlined_ms2sysv_save): Likewise.
30840         (emit_outlined_ms2sysv_restore): Likewise.
30841         (ix86_expand_prologue): Modify stack re-alignment code and call
30842         emit_outlined_ms2sysv_save when appropriate.
30843         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
30844         parameter rtx_insn *insn, which allows the function to be used to only
30845         generate the notes.
30846         (ix86_expand_epilogue): Modify validity checks of frame and stack
30847         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
30848         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
30849         * config/i386/predicates.md
30850         (save_multiple): New predicate.
30851         (restore_multiple): Likewise.
30852         * config/i386/sse.md
30853         (save_multiple<mode>): New pattern.
30854         (save_multiple_realign<mode>): Likewise.
30855         (restore_multiple<mode>): Likewise.
30856         (restore_multiple_and_return<mode>): Likewise.
30857         (restore_multiple_leave_return<mode>): Likewise.
30858         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
30859
30860 2017-05-14  Julia Koval  <julia.koval@intel.com>
30861
30862         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
30863         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
30864         (__builtin_ia32_xsetbv): New builtins.
30865         * config/i386/i386.c (ix86_expand_special_args_builtin):
30866         Process new types.
30867         (ix86_expand_builtin): Special expand for new intrinsics.
30868         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
30869         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
30870         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
30871
30872 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30873
30874         * cfganal.c (inverted_post_order_compute): Change argument type
30875         to vec *.
30876         * cfganal.h (inverted_post_order_compute): Adjust prototype.
30877         * df-core.c (rest_of_handle_df_initialize): Adjust.
30878         (rest_of_handle_df_finish): Likewise.
30879         (df_analyze_1): Likewise.
30880         (df_analyze): Likewise.
30881         (loop_inverted_post_order_compute): Change argument to be a vec *.
30882         (df_analyze_loop): Adjust.
30883         (df_get_n_blocks): Likewise.
30884         (df_get_postorder): Likewise.
30885         * df.h (struct df_d): Change field to be a vec.
30886         * lcm.c (compute_laterin): Adjust.
30887         (compute_available): Likewise.
30888         * lra-lives.c (lra_create_live_ranges_1): Likewise.
30889         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
30890         * tree-ssa-pre.c (compute_antic): Likewise.
30891
30892 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30893
30894         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
30895         (depth_first_search::depth_first_search): Change structure init
30896         function to this constructor.
30897         (depth_first_search::add_bb): Rename function to this member.
30898         (depth_first_search::execute): Likewise.
30899         (flow_dfs_compute_reverse_finish): Adjust.
30900
30901 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30902
30903         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
30904         (longest_simple_path): Likewise.
30905         * shrink-wrap.c (spread_components): Likewise.
30906         (disqualify_problematic_components): Likewise.
30907         (emit_common_heads_for_components): Likewise.
30908         (emit_common_tails_for_components): Likewise.
30909         (insert_prologue_epilogue_for_components): Likewise.
30910
30911 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30912
30913         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
30914         auto_sbitmap.
30915
30916 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30917
30918         * df-core.c (df_set_blocks): Start using auto_bitmap.
30919         (df_compact_blocks): Likewise.
30920         * df-problems.c (df_rd_confluence_n): Likewise.
30921         * df-scan.c (df_insn_rescan_all): Likewise.
30922         (df_process_deferred_rescans): Likewise.
30923         (df_update_entry_block_defs): Likewise.
30924         (df_update_exit_block_uses): Likewise.
30925         (df_entry_block_bitmap_verify): Likewise.
30926         (df_exit_block_bitmap_verify): Likewise.
30927         (df_scan_verify): Likewise.
30928         * lra-constraints.c (lra_constraints): Likewise.
30929         (undo_optional_reloads): Likewise.
30930         (lra_undo_inheritance): Likewise.
30931         * lra-remat.c (calculate_gen_cands): Likewise.
30932         (do_remat): Likewise.
30933         * lra-spills.c (assign_spill_hard_regs): Likewise.
30934         (spill_pseudos): Likewise.
30935         * tree-ssa-pre.c (bitmap_set_and): Likewise.
30936         (bitmap_set_subtract_values): Likewise.
30937
30938 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30939
30940         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
30941         management with auto_bitmap.
30942         (fix_inter_tick): Likewise.
30943         (fix_recovery_deps): Likewise.
30944         * ira.c (add_store_equivs): Likewise.
30945         (find_moveable_pseudos): Likewise.
30946         (split_live_ranges_for_shrink_wrap): Likewise.
30947         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
30948         (rtx_reuse_manager::seen_def_p): Likewise.
30949         (rtx_reuse_manager::set_seen_def): Likewise.
30950         * print-rtl.h (class rtx_reuse_manager): Likewise.
30951
30952 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30953
30954         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
30955         lifetime.
30956         (migrate_btr_def): Likewise.
30957         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
30958         * df-core.c (loop_post_order_compute): Likewise.
30959         (loop_inverted_post_order_compute): Likewise.
30960         * hsa-common.h: Likewise.
30961         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
30962         * init-regs.c (initialize_uninitialized_regs): Likewise.
30963         * ipa-inline.c (resolve_noninline_speculation): Likewise.
30964         (inline_small_functions): Likewise.
30965         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
30966         * ira.c (combine_and_move_insns): Likewise.
30967         (build_insn_chain): Likewise.
30968         * loop-invariant.c (find_invariants): Likewise.
30969         * lower-subreg.c (propagate_pseudo_copies): Likewise.
30970         * predict.c (tree_predict_by_opcode): Likewise.
30971         (predict_paths_leading_to): Likewise.
30972         (predict_paths_leading_to_edge): Likewise.
30973         (estimate_loops_at_level): Likewise.
30974         (estimate_loops): Likewise.
30975         * shrink-wrap.c (try_shrink_wrapping): Likewise.
30976         (spread_components): Likewise.
30977         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
30978         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
30979         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
30980         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
30981         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
30982         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
30983         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
30984         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
30985         (mark_threaded_blocks): Likewise.
30986         (thread_through_all_blocks): Likewise.
30987         * tree-ssa.c (verify_ssa): Likewise.
30988         (execute_update_addresses_taken): Likewise.
30989         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
30990
30991 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30992
30993         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
30994         auto_vec.
30995         (post_order_compute): Likewise.
30996         (inverted_post_order_compute): Likewise.
30997         (pre_and_rev_post_order_compute_fn): Likewise.
30998
30999 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31000
31001         * genrecog.c (int_set::int_set): Explicitly construct our
31002         auto_vec base class.
31003         * vec.h (auto_vec::auto_vec): New constructor.
31004
31005 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31006
31007         * bitmap.h (class auto_bitmap): New constructor taking
31008         bitmap_obstack * argument.
31009
31010 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31011
31012         * bitmap.h (class auto_bitmap): Change type of m_bits to
31013         bitmap_head, and adjust ctor / dtor and member operators.
31014
31015 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
31016
31017         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
31018         when returned register mode doesn't match original mode.
31019
31020 2017-05-12  Jeff Law  <law@redhat.com>
31021             Jakub Jelinek  <jakub@redhat.com>
31022
31023         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
31024         we look for cc setter after the compare-elim changes.
31025         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
31026         within the vector to match what compare-elim now expects.
31027         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
31028         (xorsi3_flags, one_cmplsi2_flags): Likewise.
31029
31030         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
31031         after the compare-elim changes.
31032         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
31033         the vector to match what compare-elim now expects.
31034         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
31035         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
31036         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
31037         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
31038         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
31039
31040         * config/visium/visium.c (single_set_and_flags): Fix where
31041         we look for cc setter after the compare-elim changes.
31042         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
31043         with the vector to match what compare-elim now expects.
31044         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
31045         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
31046         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
31047         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
31048         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
31049         (neg<mode>2_insn_set_overflow): Likewise.
31050
31051 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
31052
31053         PR middle-end/79794
31054         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
31055         maybe_expand_insn call, set ops[0].target.  If still set after call,
31056         set alt_rtl.  Add extra arg to recursive calls.
31057         (extract_bit_field): Add alt_rtl argument.  Pass to
31058         extract_bit_field.
31059         * expmed.h (extract_bit_field): Fix prototype.
31060         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
31061         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
31062         to extract_bit_field_calls.
31063         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
31064         Pass alt_rtl to extract_bit_field calls.
31065         * calls.c (store_unaligned_arguments_into_psuedos)
31066         load_register_parameters): Pass extra NULL to extract_bit_field calls.
31067         * optabs.c (maybe_legitimize_operand): Clear op->target when call
31068         gen_reg_rtx.
31069         * optabs.h (struct expand_operand): Add target bitfield.
31070
31071 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31072
31073         * compare-elim.c (try_eliminate_compare): Canonicalize
31074         operation with embedded compare to
31075         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
31076          (set (reg) (operation)].
31077
31078         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
31079
31080 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31081
31082         PR target/80723
31083         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
31084         cost of adding a carry flag for ADC instruction.
31085         [case MINUS]: Ignore the cost of subtracting a carry flag
31086         for SBB instruction.
31087
31088 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
31089
31090         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
31091         and x86intrin.h
31092         * config/rs6000/bmiintrin.h: New file.
31093         * config/rs6000/bmi2intrin.h: New file.
31094         * config/rs6000/x86intrin.h: New file.
31095
31096 2017-05-12  Jeff Law  <law@redhat.com>
31097
31098         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
31099         markers.
31100
31101 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
31102
31103         PR middle-end/80707
31104         * tree-cfg.c: Remove cfg edges of unreachable case statements.
31105
31106 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31107
31108         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31109         early expansion of vector divide builtins.
31110         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
31111         builtins identified as having unsigned arguments.
31112
31113 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31114
31115         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
31116         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
31117         expansion of vector logical operations (and, andc, or, xor,
31118         nor, orc, nand).
31119
31120 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31121
31122         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
31123         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
31124
31125 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31126
31127         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31128         early GIMPLE expansion of vector multiplies.
31129
31130 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31131
31132         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
31133         TARGET_HAVE_MOVT conditional.
31134         (movt splitter): Likewise.
31135
31136 2017-05-12  Richard Biener  <rguenther@suse.de>
31137
31138         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
31139         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31140         Fold all stmts not inplace.
31141
31142 2017-05-12  Richard Biener  <rguenther@suse.de>
31143
31144         PR tree-optimization/80713
31145         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
31146         inserted_exprs bit for not removed stmts.
31147
31148 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
31149
31150         PR middle-end/69921
31151         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
31152         parallelized" attribute for parallelized OpenACC kernels.
31153         * omp-offload.c (execute_oacc_device_lower): Use it.
31154
31155         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
31156         Set "oacc kernels" attribute.
31157         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
31158         parameter.  Adjust all users.
31159         (oacc_fn_attrib_kernels_p): Remove function.
31160         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
31161         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
31162         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
31163         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
31164         assert "oacc kernels" attribute is set.
31165
31166 2017-05-11  Carl Love  <cel@us.ibm.com>
31167
31168         * config/rs6000/rs6000-c: Add support for built-in functions
31169         vector unsigned char vec_popcnt (vector signed char)
31170         vector unsigned char vec_popcnt (vector unsigned char)
31171         vector unsigned short vec_popcnt (vector signed short)
31172         vector unsigned short vec_popcnt (vector unsigned short)
31173         vector unsigned int vec_popcnt (vector signed int)
31174         vector unsigned int vec_popcnt (vector unsigned int)
31175         vector unsigned long long vec_popcnt (vector signed long long)
31176         vector unsigned long long vec_popcnt (vector unsigned long long)
31177         vector signed long long vec_slo (vector signed long long,
31178                                          vector signed char)
31179         vector signed long long vec_slo (vector signed long long,
31180                                          vector unsigned char)
31181         vector unsigned long long vec_slo (vector unsigned long long,
31182                                            vector signed char)
31183         vector unsigned long long vec_slo (vector unsigned long long,
31184                                            vector unsigned char)
31185         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
31186         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
31187         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
31188         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
31189         * doc/extend.texi: Update the built-in documentation file for the
31190         new built-in functions.
31191
31192 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
31193
31194         * attribs.h (sorted_attr_string): Move machine independent
31195         functions for target clone support from the i386 port to common
31196         code.  Rename ix86_function_versions to common_function_versions.
31197         Rename make_name to make_unique_name.
31198         (common_function_versions): Likewise.
31199         (make_unique_name): Likewise.
31200         (make_dispatcher_decl): Likewise.
31201         (is_function_default_version): Likewise.
31202         * attribs.c (attr_strcmp): Likewise.
31203         (sorted_attr_string): Likewise.
31204         (common_function_versions): Likewise.
31205         (make_unique_name): Likewise.
31206         (make_dispatcher_decl): Likewise.
31207         (is_function_default_version): Likewise.
31208         * config/i386/i386.c (attr_strcmp): Likewise.
31209         (sorted_attr_string): Likewise.
31210         (ix86_function_versions): Likewise.
31211         (make_name): Likewise.
31212         (make_dispatcher_decl): Likewise.
31213         (is_function_default_version): Likewise.
31214         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
31215
31216 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31217
31218         PR target/80695
31219         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
31220         Account for direct move costs for vec_construct of integer
31221         vectors.
31222
31223 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
31224
31225         PR target/80706
31226         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
31227         (UNSPEC_STX_ATOMIC): Ditto.
31228         (loaddi_via_sse): New insn.
31229         (storedi_via_sse): Ditto.
31230         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
31231         Update corresponding peephole2 patterns.
31232         (atomic_storedi_fpu): Ditto.
31233
31234 2017-05-11  Julia Koval  <julia.koval@intel.com>
31235
31236         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
31237         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
31238         New intrinsics.
31239         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
31240         (__builtin_ia32_rsqrt14ss_mask): New builtins.
31241         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
31242
31243 2017-05-11  Nathan Sidwell  <nathan@acm.org>
31244
31245         * graphite-poly.c: Include dumpfile.h.
31246
31247         * dumpfle.h (dump_function): Declare here ...
31248         * tree-dump.h (dump_function): ... not here.
31249         * dumpfile.c: #include tree-cfg.h.
31250         (dump_function): Move here from ...
31251         * tree-dump.c (dump_function): ... here.
31252         * gimplify.c: #include splay-tree.h, not tree-dump.h.
31253         * graphite-poly.c: Don't include tree-dump.h.
31254         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
31255         * print-tree.c: Likewise.
31256         * stor-layout.c: Likewise.
31257         * tree-nested.c: Likewise.
31258
31259         * dumpfile.c (dump_start): Use TDF_FLAGS.
31260         (dump_enable_all): Fix TDF_KIND check thinko.
31261
31262 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31263
31264         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31265         array entries to represent two legal parameterizations of the
31266         overloaded __builtin_cmpb function, as represented by the
31267         P6_OV_BUILTIN_CMPB constant.
31268         (altivec_resolve_overloaded_builtin): Add special case handling
31269         for the __builtin_cmpb function, as represented by the
31270         P6_OV_BUILTIN_CMPB constant.
31271         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
31272         (BU_P6_64BIT_2): New macro.
31273         (BU_P6_OVERLOAD_2): New macro
31274         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
31275         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
31276         (CMPB): Add overload support to represent both 32-bit and 64-bit
31277         compare-bytes function.
31278         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
31279         support for TARGET_CMPB.
31280         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
31281         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
31282         documentation of the __builtin_cmpb overloaded built-in function.
31283
31284 2017-05-11  Richard Biener  <rguenther@suse.de>
31285
31286         PR tree-optimization/80705
31287         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
31288         bases are not vectorizable.
31289
31290 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31291
31292         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
31293         when counting register pressure.
31294
31295 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31296
31297         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
31298         (iv_ca_more_deps): Renamed to ...
31299         (iv_ca_compare_deps): ... this.
31300         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
31301
31302 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31303
31304         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
31305         to ...
31306         (determine_group_iv_costs): ... here.
31307         (find_inv_vars_cb): Record inv var if it's not recorded before.
31308
31309 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31310
31311         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
31312         (get_shiftadd_cost): Ditto.
31313
31314 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31315
31316         * tree-ssa-address.c: Include header file.
31317         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
31318         address.
31319         (add_to_parts): Refactor.
31320         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
31321         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
31322         in new order.
31323
31324 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31325
31326         PR tree-optimization/53090
31327         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
31328         COMP_IV_EXPR_2.
31329         (extract_cond_operands): Detect condition with IV on both sides
31330         and return COMP_IV_EXPR_2.
31331         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
31332         (rewrite_use_compare): Simplify by removing call to function
31333         extract_cond_operands.
31334
31335 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31336
31337         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
31338         (extract_cond_operands): Detect condition comparing against non-
31339         invariant bound and return appropriate enum value.
31340         (find_interesting_uses_cond): Update use of extract_cond_operands.
31341         Handle its return value accordingly.
31342         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
31343
31344 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31345
31346         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
31347         nonlinear iv_use computation in loop invariant sensitive way.
31348
31349 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31350
31351         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
31352         (find_iv_candidates): Call relate_compare_use_with_all_cands.
31353
31354 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31355
31356         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
31357         (dump_cand): Support iv_cand.inv_exprs.
31358         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
31359         for candidates.
31360         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
31361         iv_cand.inv_exprs.
31362
31363 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31364
31365         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
31366         from ...
31367         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
31368         as local function.  Include necessary header files.
31369         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
31370
31371 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31372
31373         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
31374
31375 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31376
31377         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
31378         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
31379         RSHIFT_EXPR and BIT_NOT_EXPR.
31380
31381 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31382
31383         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
31384         (adjust_setup_cost): New parameter supporting round up adjustment.
31385         (struct address_cost_data): Delete.
31386         (force_expr_to_var_cost): Don't bound cost with spill_cost.
31387         (split_address_cost, ptr_difference_cost): Delete.
31388         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
31389         (struct ainc_cost_data): New struct.
31390         (get_address_cost_ainc): New function.
31391         (get_address_cost, get_computation_cost): Reimplement.
31392         (determine_group_iv_cost_address): Record inv_expr for all uses of
31393         a group.
31394         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
31395         (iv_ca_has_deps): Reimplemented to ...
31396         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
31397         than OLD_CP.
31398         (iv_ca_extend): Call iv_ca_more_deps.
31399
31400 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31401
31402         * tree-ssa-address.c (struct mem_address): Move to header file.
31403         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
31404         * tree-ssa-address.h (struct mem_address): Move from C file.
31405         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
31406
31407 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31408
31409         * tree-affine.h (aff_combination_type): New interface.
31410         (aff_combination_zero_p): Remove static.
31411         (aff_combination_const_p): New interface.
31412         (aff_combination_singleton_var_p): New interfaces.
31413
31414 2017-05-11  Richard Biener  <rguenther@suse.de>
31415
31416         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31417         Skip unreachable blocks and destinations.
31418         (eliminate): Move stmt removal and fixup ...
31419         (fini_eliminate): ... here.  Skip inserted exprs.
31420         (pass_pre::execute): Move fini_pre after fini_eliminate.
31421         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
31422         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
31423         PRE to get rid of dead code that has invalid SSA form and
31424         split critical edges again.
31425
31426 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31427
31428         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31429
31430 2017-05-11  Richard Biener  <rguenther@suse.de>
31431
31432         * passes.c (execute_function_todo): Verify loops if they are
31433         said to be up-to-date.
31434         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
31435         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
31436
31437 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
31438
31439         PR target/80090
31440         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
31441         handle calling assemble_external ourself.
31442
31443         PR target/79027
31444         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
31445         modes with zero size.  Enhance comment.
31446
31447 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31448
31449         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
31450         built-ins for vec_xl and vec_xst with short and char pointer
31451         arguments.
31452
31453 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31454
31455         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
31456         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
31457         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
31458         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
31459         (_mm_maskz_min_round_ss): New intrinsics.
31460         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
31461         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
31462         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
31463         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
31464         (__builtin_ia32_minss_mask_round): New builtins.
31465         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31466         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31467         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
31468         Rename to ...
31469         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
31470         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
31471         Change to ...
31472         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
31473         ... this.
31474
31475 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31476
31477         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
31478         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
31479         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
31480         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
31481         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
31482         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
31483         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
31484         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31485         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31486         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
31487         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
31488         (__builtin_ia32_mulss_mask_round): New builtins.
31489         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31490         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31491         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
31492         Rename to ...
31493         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
31494         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31495         Change to ...
31496         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31497         ... this.
31498
31499 2017-05-10  Julia Koval  <julia.koval@intel.com>
31500
31501         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
31502         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
31503         (_mm256_setr_m128i): New intrinsics.
31504
31505 2017-05-10  Julia Koval  <julia.koval@intel.com>
31506
31507         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
31508         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
31509         (_mm_maskz_rcp14_ss): New intrinsics.
31510         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
31511         (__builtin_ia32_rcp14ss_mask): New builtins.
31512         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
31513
31514 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
31515
31516         PR tree-optimization/51513
31517         * tree-cfg.c (gimple_seq_unreachable_p): New function.
31518         (assert_unreachable_fallthru_edge_p): Use it.
31519         (group_case_labels_stmt): Likewise.
31520         * tree-cfg.h: Prototype it.
31521         * stmt.c: Include cfghooks.h and tree-cfg.h.
31522         (emit_case_dispatch_table) <gap_label>: New local variable.
31523         Use it to fill dispatch table gaps.
31524         Test for default_label before updating probabilities.
31525         (expand_case) <default_label>: Remove unneeded initialization.
31526         Test for unreachable default case statement and remove its edge.
31527         Set default_label accordingly.
31528         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
31529
31530 2017-05-10  Carl Love  <cel@us.ibm.com>
31531
31532         * config/rs6000/rs6000-c: Add support for built-in functions
31533         vector signed char      vec_neg (vector signed char)
31534         vector signed short int vec_neg (vector short int)
31535         vector signed int       vec_neg (vector signed int)
31536         vector signed long long vec_neg (vector signed long long)
31537         vector float            vec_neg (vector float)
31538         vector double           vec_neg (vector double)
31539         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
31540         overload.
31541         * config/rs6000/altivec.h: Add define for vec_neg
31542         * doc/extend.texi: Update the built-in documentation for the
31543         new built-in functions.
31544
31545 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31546
31547         PR tree-optimization/77644
31548         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
31549
31550 2017-05-10  Nathan Sidwell  <nathan@acm.org>
31551
31552         * dumpfile.h (TDI_lang_all): New.
31553         (TDF_KIND): New. Renumber others
31554         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
31555         than bits.
31556         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
31557         lang-all.
31558         (get_dump_file_name): Adjust suffix generation.
31559         (dump_enable_all): Use TDF_KIND.
31560         * doc/invoke.texi (-fdump-lang-all): Document.
31561
31562         * dumpfile.h: Tabify.
31563
31564 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
31565
31566         PR target/80671
31567         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
31568         Move member access before delete.
31569
31570 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
31571
31572         * tree-inline.c (expand_call_inline): Split block at stmt
31573         before the call.
31574
31575 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
31576
31577         PR target/68163
31578         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
31579         are now unused after splitting mov{sf,sd}_hardfloat.
31580         (f32_lr2): Likewise.
31581         (f32_lm): Likewise.
31582         (f32_lm2): Likewise.
31583         (f32_li): Likewise.
31584         (f32_li2): Likewise.
31585         (f32_lv): Likewise.
31586         (f32_sr): Likewise.
31587         (f32_sr2): Likewise.
31588         (f32_sm): Likewise.
31589         (f32_sm2): Likewise.
31590         (f32_si): Likewise.
31591         (f32_si2): Likewise.
31592         (f32_sv): Likewise.
31593         (f32_dm): Likewise.
31594         (f32_vsx): Likewise.
31595         (f32_av): Likewise.
31596         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
31597         For movsf, order stores so the VSX stores occur before the GPR
31598         store which encourages the register allocator to use a traditional
31599         FPR instead of a GPR.  For movsd, order the stores so that the GPR
31600         store comes before the VSX stores to allow the power6 to work.
31601         This is due to the power6 not having a 32-bit integer store
31602         instruction from a FPR.
31603         (movsf_hardfloat): Likewise.
31604         (movsd_hardfloat): Likewise.
31605
31606 2017-05-09  Martin Sebor  <msebor@redhat.com>
31607
31608         PR translation/80280
31609         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
31610         added in r247778.
31611
31612         PR translation/80280
31613         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
31614         data member added in r247778.
31615         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
31616
31617 2017-05-09  Nathan Sidwell  <nathan@acm.org>
31618
31619         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
31620
31621         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
31622         typedefs.
31623
31624 2017-05-09  Marek Polacek  <polacek@redhat.com>
31625
31626         * doc/invoke.texi: Fix typo.
31627
31628 2017-05-09  Richard Biener  <rguenther@suse.de>
31629
31630         * tree-vrp.c (vrp_val_is_max): Adjust comment.
31631         (vrp_val_is_min): Likewise.
31632         (set_value_range_to_value): Likewise.
31633         (set_value_range_to_nonnegative): Likewise.
31634         (gimple_assign_nonzero_p): Likewise.
31635         (gimple_stmt_nonzero_p): Likewise.
31636         (vrp_int_const_binop): Likewise.  Remove unreachable case.
31637         (adjust_range_with_scev): Adjust comments.
31638         (compare_range_with_value): Likewise.
31639         (extract_range_from_phi_node): Likewise.
31640         (test_for_singularity): Likewise.
31641
31642 2017-05-09  Richard Biener  <rguenther@suse.de>
31643
31644         * tree-vrp.c (get_single_symbol): Add assert that we don't
31645         get overflowed constants as invariant part.
31646         (compare_values_warnv): Add comment before the TREE_NO_WARNING
31647         checks.  Use wi::cmp instead of recursing for integer constants.
31648         (compare_values): Just ignore whether we assumed undefined
31649         overflow instead of failing the compare.
31650         (extract_range_for_var_from_comparison_expr): Add comment before the
31651         TREE_NO_WARNING sets.
31652         (test_for_singularity): Likewise.
31653         (extract_range_from_comparison): Do not disable optimization
31654         when we assumed undefined overflow.
31655         (extract_range_basic): Remove init of unused var.
31656
31657 2017-05-09  Richard Biener  <rguenther@suse.de>
31658
31659         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
31660         (extract_range_from_multiplicative_op_1): Adjust.
31661         (extract_range_from_binary_expr_1): Use int_const_binop.
31662
31663 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31664
31665         PR target/80101
31666         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
31667         rs6000_store_data_bypass_p in seven define_bypass directives and
31668         in several comments.
31669         * config/rs6000/rs6000-protos.h: Add prototype for
31670         rs6000_store_data_bypass_p function.
31671         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
31672         function implements slightly different (rs6000-specific) semantics
31673         than store_data_bypass_p, returning false rather than aborting
31674         with assertion error when arguments do not satisfy the
31675         requirements of store data bypass.
31676         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
31677         rs6000_store_data_bypass_p.
31678
31679 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
31680
31681         * config/xtensa/xtensa-protos.h
31682         (xtensa_initial_elimination_offset): New declaration.
31683         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
31684         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
31685         macro definition, add case for FRAME_POINTER_REGNUM when
31686         FRAME_GROWS_DOWNWARD.
31687         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
31688         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
31689         xtensa_initial_elimination_offset.
31690
31691 2017-05-08  Nathan Sidwell  <nathan@acm.org>
31692
31693         * doc/invoke.texi: Alphabetize -fdump options.
31694
31695 2017-05-08  Martin Sebor  <msebor@redhat.com>
31696
31697         PR translation/80280
31698         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
31699
31700 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31701
31702         * target.def (compute_frame_layout): New optional target hook.
31703         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
31704         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
31705         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
31706         target hook.
31707         * reload1.c (verify_initial_elim_offsets): Likewise.
31708         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
31709         (use_simple_return_p): Call arm_compute_frame_layout if needed.
31710         (arm_get_frame_offsets): Split up into this ...
31711         (arm_compute_frame_layout): ... and this function.
31712
31713 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31714
31715         * config/aarch64/constraints.md (Usa): New constraint.
31716         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
31717
31718 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31719
31720         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
31721         with_multilib_list after it has been checked.
31722
31723 2017-05-08  Richard Biener  <rguenther@suse.de>
31724
31725         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
31726         (bitmap_set_subtract_values): Likewise.
31727
31728 2017-05-08  Richard Biener  <rguenther@suse.de>
31729
31730         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
31731         (gimple_assign_nonzero): ... this and remove strict_overflow_p
31732         argument.
31733         (gimple_stmt_nonzero_warnv_p): Rename to ...
31734         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
31735         argument.
31736         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
31737         (extract_range_basic): Adjust, do not disable propagation on
31738         strict overflow sensitive simplification.
31739         (vrp_visit_cond_stmt): Likewise.
31740
31741 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
31742
31743         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
31744         body size unconditionally.
31745
31746 2017-05-07  Jeff Law  <law@redhat.com>
31747
31748         Revert:
31749         2017-05-06  Jeff Law  <law@redhat.com>
31750         PR tree-optimization/78496
31751         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31752         code.
31753
31754         PR tree-optimization/78496
31755         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31756         (simplify_stmt_using_ranges): Call it.
31757         (vrp_dom_walker::before_dom_children): Extract equivalences
31758         from an ASSERT_EXPR with an equality comparison against a
31759         constant.
31760
31761 2017-05-06  Jeff Law  <law@redhat.com>
31762
31763         PR tree-optimization/78496
31764         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31765         code.
31766
31767         PR tree-optimization/78496
31768         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31769         (simplify_stmt_using_ranges): Call it.
31770         (vrp_dom_walker::before_dom_children): Extract equivalences
31771         from an ASSERT_EXPR with an equality comparison against a
31772         constant.
31773
31774 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31775
31776         * lra-constraints.c (lra_copy_reg_equiv): New function.
31777         (split_reg): Use it to copy equivalence information from the
31778         original register to the spill register.
31779
31780 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31781
31782         PR rtl-optimization/75964
31783         * simplify-rtx.c (simplify_const_relational_operation): Remove
31784         invalid handling of comparisons of integer ABS.
31785
31786 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
31787
31788         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
31789         initialize to zero.
31790         (init_regs): Remove declaration.
31791         (function_arg_advance_32): Initialize error_p as boolean variable.
31792
31793 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31794
31795         * store-motion.c (remove_reachable_equiv_notes): Reformat long
31796         lines.  Use for (;;).
31797
31798 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31799
31800         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
31801         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
31802         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
31803         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
31804         VF=2 that require versioning.
31805
31806 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31807
31808         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
31809         int.
31810
31811 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31812
31813         * diagnostic.h (diagnostic_override_option_index): Convert from
31814         macro to inline function.
31815
31816 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31817
31818         * diagnostic.c (last_module_changed_p): New function.
31819         (set_last_module): New function.
31820         (diagnostic_report_current_module): Convert macro usage to
31821         the above functions.
31822         * diagnostic.h (diagnostic_context::last_module): Strengthen
31823         from const line_map * to const line_map_ordinary *.
31824         (diagnostic_last_module_changed): Delete macro.
31825         (diagnostic_set_last_module): Delete macro.
31826
31827 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31828
31829         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
31830         with diagnostic_report_diagnostic.
31831         (diagnostic_n_impl_richloc): Likewise.
31832         * diagnostic.h (report_diagnostic): Delete macro.
31833         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
31834         with diagnostic_report_diagnostic.
31835         * substring-locations.c (format_warning_va): Likewise.
31836
31837 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31838
31839         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
31840         save/restor of format_spec.  Move option-printing code to...
31841         (print_option_information): ...this new function, and
31842         reimplement by simply printing to the pretty_printer,
31843         rather than appending to the format string.
31844
31845 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31846
31847         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
31848         handling logic into...
31849         (update_effective_level_from_pragmas): ...this new function.
31850
31851 2017-05-04  Andrew Waterman  <andrew@sifive.com>
31852
31853         * config/riscv/riscv.opt (mstrict-align): New option.
31854         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
31855         (SLOW_UNALIGNED_ACCESS): Define.
31856         (riscv_slow_unaligned_access): Declare.
31857         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
31858         field.
31859         (riscv_slow_unaligned_access): New variable.
31860         (rocket_tune_info): Set slow_unaligned_access to true.
31861         (optimize_size_tune_info): Set slow_unaligned_access to false.
31862         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
31863         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
31864         (riscv_option_override): Set riscv_slow_unaligned_access.
31865         * doc/invoke.texi: Add -mstrict-align to RISC-V.
31866
31867 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
31868
31869         * config/riscv/riscv.md: Unify indentation.
31870
31871 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
31872
31873         PR target/79038
31874         PR target/79202
31875         PR target/79203
31876         * config/rs6000/rs6000.md (u code attribute): Add FIX and
31877         UNSIGNED_FIX.
31878         (extendsi<mode>2): Add support for doing sign extension via
31879         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
31880         don't have ISA 3.0 instructions.
31881         (extendsi<mode>2 splitter): Likewise.
31882         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
31883         generate the normal insns since SImode can now go in vector
31884         registers.  Disallow the special UNSPECs needed for previous
31885         machines to hide SImode being used.  Add new insns
31886         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
31887         (fix_trunc<mode>si2_stfiwx): Likewise.
31888         (fix_trunc<mode>si2_internal): Likewise.
31889         (fixuns_trunc<mode>si2): Likewise.
31890         (fixuns_trunc<mode>si2_stfiwx): Likewise.
31891         (fctiw<u>z_<mode>_smallint): Likewise.
31892         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
31893         of floating point to 32-bit integer from doing a direct move to
31894         the GPR registers to do a store.
31895         (fctiwz_<mode>): Break long line.
31896
31897 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
31898
31899         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
31900         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
31901         (addr_list, addr_offset_valid_p): New.
31902         (split_address_groups): Check offset validity with above function.
31903         (gt-tree-ssa-loop-ivopts.h): Include header file.
31904
31905 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31906
31907         * config.gcc (arm*-*-*): Add missing 'fi'.
31908
31909 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
31910
31911         * doc/invoke.texi (-fopt-info): Explicitly say order of options
31912         included in -fopt-info does not matter.
31913         * doc/optinfo.texi (-fopt-info): Fix description of default
31914         behavour. Explicitly say order of options included in -fopt-info
31915         does not matter.
31916
31917 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31918
31919         * config.gcc: Allow combinations of aprofile and rmprofile values for
31920         --with-multilib-list.
31921         * config/arm/t-multilib: New file.
31922         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
31923         variables.  Remove setting of ISA and floating-point ABI in
31924         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
31925         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
31926         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
31927         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
31928         CPU options.
31929         * config/arm/t-rmprofile: Likewise except for the matches changes.
31930         * doc/install.texi (--with-multilib-list): Document the combination of
31931         aprofile and rmprofile values and warn about pitfalls in doing that.
31932
31933 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31934
31935         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
31936         (movdi_aarch64): Likewise.
31937
31938 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31939
31940         PR tree-optimization/80632
31941         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
31942         field.
31943         (build_arrays): Initialize it for virtual phis.
31944         (fix_phi_nodes): Use it for virtual phis.
31945
31946         PR tree-optimization/80558
31947         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
31948         [x, y] op z into [x op, y op z] for op & or | if conditions
31949         are met.
31950
31951 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
31952             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31953
31954         PR target/71607
31955         * config/arm/arm.md (use_literal_pool): Remove.
31956         (64-bit immediate split): No longer takes cost into consideration
31957         if arm_disable_literal_pool is enabled.
31958         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
31959         used when arm_disable_literal_pool is enabled.
31960         (arm_max_const_double_inline_cost): Remove use of
31961         arm_disable_literal_pool.
31962         (push_minipool_fix): Add assert.
31963         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
31964         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
31965         (no_literal_pool_sf_immediate): New.
31966
31967 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31968
31969         PR tree-optimization/80613
31970         * tree-ssa-dce.c (propagate_necessity): Remove cases for
31971         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
31972
31973 2017-05-05  Richard Biener  <rguenther@suse.de>
31974
31975         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
31976
31977 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
31978
31979         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
31980         of this flag from insn conditions due to removal from r247495.
31981
31982 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
31983
31984         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
31985         New function.
31986         (arm_early_store_addr_dep_ptr): Likewise.
31987         * config/arm/aarch-common-protos.h
31988         (arm_early_load_addr_dep_ptr): Add prototype.
31989         (arm_early_store_addr_dep_ptr): Likewise.
31990         * config/arm/cortex-a53.md: Add new bypasses.
31991
31992 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
31993
31994         * tree.c (next_type_uid): Change type to unsigned.
31995         (type_hash_canon): Decrement back next_type_uid if
31996         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
31997         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
31998         if possible.
31999
32000 2017-05-04  Martin Sebor  <msebor@redhat.com>
32001
32002         * builtins.c: Fix a trivial typo in a comment.
32003
32004         PR middle-end/79234
32005         * builtins.c (check_sizes): Adjust to handle reading past the end.
32006         Avoid printing excessive upper bound of ranges.  Use %E to print
32007         tree nodes instead of converting them to %wu.
32008         (expand_builtin_memchr): New function.
32009         (compute_dest_size): Rename...
32010         (compute_objsize): ...to this.
32011         (expand_builtin_memcpy): Adjust.
32012         (expand_builtin_mempcpy): Adjust.
32013         (expand_builtin_strcat): Adjust.
32014         (expand_builtin_strcpy): Adjust.
32015         (check_strncat_sizes): Adjust.
32016         (expand_builtin_strncat): Adjust.
32017         (expand_builtin_strncpy): Adjust and simplify.
32018         (expand_builtin_memset): Adjust.
32019         (expand_builtin_bzero): Adjust.
32020         (expand_builtin_memcmp): Adjust.
32021         (expand_builtin): Handle memcmp.
32022         (maybe_emit_chk_warning): Check strncat just once.
32023
32024 2017-05-04  Martin Sebor  <msebor@redhat.com>
32025
32026         PR preprocessor/79214
32027         PR middle-end/79222
32028         PR middle-end/79223
32029         * builtins.c (check_sizes): Add inlining context and issue
32030         warnings even when -Wno-system-headers is set.
32031         (check_strncat_sizes): Same.
32032         (expand_builtin_strncat): Same.
32033         (expand_builtin_memmove): New function.
32034         (expand_builtin_stpncpy): Same.
32035         (expand_builtin): Handle memmove and stpncpy.
32036
32037 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
32038
32039         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
32040         which is not used any more.
32041
32042 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32043
32044         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
32045
32046 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32047
32048         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
32049         (cortexa53_tunings): Likewise.
32050         (cortexa57_tunings): Likewise.
32051         (cortexa72_tunings): Likewise.
32052         (cortexa73_tunings): Likewise.
32053
32054 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32055
32056         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
32057         Set loop alignment to 8.
32058
32059 2017-05-04  Martin Sebor  <msebor@redhat.com>
32060
32061         PR translation/80280
32062         * builtins.c (expand_builtin_object_size): Add missing quoting to
32063         %D and like directives.
32064         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
32065         (hsa_type_for_tree_type): Same.
32066         (verify_function_arguments): Same.
32067         * symtab.c (symbol_table::change_decl_assembler_name): Same.
32068         * varasm.c (get_section): Same.
32069         (mark_weak): Same.
32070
32071 2017-05-04  Martin Sebor  <msebor@redhat.com>
32072
32073         PR translation/80280
32074         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
32075
32076 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32077
32078         * config/aarch64/aarch64.c (generic_addrcost_table):
32079         Change HI/TI mode setting.
32080
32081 2017-05-04  Martin Jambor  <mjambor@suse.cz>
32082
32083         PR tree-optimization/80622
32084         * tree-sra.c (comes_initialized_p): New function.
32085         (build_accesses_from_assign): Only set write lazily when
32086         comes_initialized_p is false.
32087         (analyze_access_subtree): Use comes_initialized_p.
32088         (propagate_subaccesses_across_link): Assert !comes_initialized_p
32089         instead of testing for PARM_DECL.
32090
32091 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32092
32093         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
32094         constraint on operand 0 to allow more general addressing modes.
32095         Adjust output template.
32096         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
32097         New function.
32098         * config/aarch64/aarch64-protos.h
32099         (aarch64_address_valid_for_prefetch_p): Declare prototype.
32100         * config/aarch64/constraints.md (Dp): New address constraint.
32101         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
32102         predicate.
32103
32104 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
32105
32106         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
32107         update use of estimate_ipcp_clone_size_and_time.
32108         (estimate_local_effects): Update use of
32109         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
32110         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
32111         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
32112         Return nonspecialized time.
32113
32114 2017-05-04  Richard Biener  <rguenther@suse.de>
32115
32116         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
32117         for the last VUSE which def dominates the PHI.  Directly call
32118         maybe_skip_until.
32119         (get_continuation_for_phi_1): Remove.
32120
32121 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
32122
32123         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
32124         to explain the use of truncating division.  Cap the number of
32125         iterations to the maximum given by nb_iterations_upper_bound,
32126         if defined.
32127
32128 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32129
32130         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
32131         * configure: Regenerate.
32132         * config.in: Regenerate.
32133         * config/i386/driver-mingw32.c: new file.
32134         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
32135         * config.host: Link driver-mingw32.o on MinGW host.
32136         * doc/install.texi: Document new --enable-mingw-wildcard configure
32137         option.
32138
32139 2017-05-04  Marek Polacek  <polacek@redhat.com>
32140
32141         PR tree-optimization/80612
32142         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
32143
32144 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32145             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
32146
32147         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
32148         (movt splitter): Likewise.
32149         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
32150         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
32151         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
32152         block for Thumb-1 with MOVT.
32153         (thumb2_legitimate_address_p): Move code block ...
32154         (can_avoid_literal_pool_for_label_p): ... into this new function.
32155         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
32156         literal pool.
32157         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
32158         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
32159         "M-profile targets with the MOVT instruction".
32160
32161 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32162
32163         * config/arm/arm-builtins.c (arm_init_builtins): Rename
32164         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
32165         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
32166
32167 2017-05-04  Martin Liska  <mliska@suse.cz>
32168
32169         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
32170         variable cond_code.
32171
32172 2017-05-04  Richard Biener  <rguenther@suse.de>
32173
32174         * tree.c (array_at_struct_end_p): Handle arrays at struct
32175         end with flexarrays more conservatively.  Refactor and treat
32176         arrays of arrays or aggregates more strict.  Fix
32177         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
32178         * tree.c (array_at_struct_end_p): Adjust prototype.
32179         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
32180         * gimple-fold.c (get_range_strlen): Likewise.
32181         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
32182
32183 2017-05-04  Richard Biener  <rguenther@suse.de>
32184
32185         PR tree-optimization/31130
32186         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
32187         false.
32188         (supports_overflow_infinity): Likewise.
32189         (is_negative_overflow_infinity): Likewise.
32190         (is_positive_overflow_infinity): Likewise.
32191         (is_overflow_infinity): Likewise.
32192         (stmt_overflow_infinity): Likewise.
32193         (overflow_infinity_range_p): Likewise.
32194         (usable_range_p): Remove as always returning true.
32195         (make_overflow_infinity): Remove.
32196         (negative_overflow_infinity): Likewise.
32197         (positive_overflow_infinity): Likewise.
32198         (avoid_overflow_infinity): Likewise.
32199         (set_value_range): Adjust accordingly.
32200         (set_value_range_to_nonnegative): Likewise, remove now unused
32201         overflow_infinity arg.
32202         (vrp_operand_equal_p): Adjust.
32203         (update_value_range): Likewise.
32204         (range_int_cst_singleton_p): Likewise.
32205         (operand_less_p): Likewise.
32206         (compare_values_warnv): Likewise.
32207         (extract_range_for_var_from_comparison_expr): Likewise.
32208         (vrp_int_const_binop): Likewise.
32209         (zero_nonzero_bits_from_vr): Likewise.
32210         (extract_range_from_multiplicative_op_1): Likewise.
32211         (extract_range_from_binary_expr_1): Likewise.
32212         (extract_range_from_unary_expr): Likewise.
32213         (extract_range_from_comparison): Likewise.
32214         (extract_range_basic): Likewise.
32215         (adjust_range_with_scev): Likewise.
32216         (compare_ranges): Likewise.
32217         (compare_range_with_value): Likewise.
32218         (dump_value_range): Likewise.
32219         (test_for_singularity): Likewise, remove strict_overflow_p parameter
32220         never used.
32221         (simplify_cond_using_ranges): Adjust.
32222
32223 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
32224
32225         * brig-builtins.def: Added a builtin for class_f64.
32226         * builtin-types.def: Added a builtin type needed by class_f64.
32227
32228 2017-05-03  Jason Merrill  <jason@redhat.com>
32229
32230         * timevar.def: Add TV_CONSTEXPR.
32231
32232 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32233
32234         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
32235
32236 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32237
32238         * ipa-prop.c (ipa_update_after_lto_read): Removed.
32239         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
32240         * ipa-cp.c (ipcp_propagate_stage): Do not call
32241         ipa_update_after_lto_read.
32242         * ipa-inline.c (ipa_inline): Likewise.
32243
32244 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32245
32246         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
32247         tag.  Added a default constructor and a destructor.
32248         (ipa_edge_args_sum_t): New class;
32249         (ipa_edge_args_sum): Declare.
32250         (ipa_edge_args_vector): Remove declaration.
32251         (IPA_EDGE_REF): Use ipa_edge_args_sum.
32252         (ipa_free_edge_args_substructures): Remove declaration.
32253         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
32254         (ipa_edge_args_info_available_for_edge_p): Likewise.
32255         * ipa-prop.c (ipa_edge_args_vector): Removed.
32256         (edge_removal_hook_holder): Likewise.
32257         (edge_duplication_hook_holder): Likewise.
32258         (ipa_edge_args_sum): New variable.
32259         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
32260         ipa_edge_args_vector.
32261         (ipa_free_edge_args_substructures): Likewise.
32262         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
32263         ipa_edge_args_vector.
32264         (ipa_edge_removal_hook): Turned into method
32265         ipa_edge_args_sum_t::remove.
32266         (ipa_edge_duplication_hook): Turned into method
32267         ipa_edge_args_sum_t::duplicate.
32268         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
32269         registering edge hooks.
32270         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
32271         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
32272         ipa_edge_args_sum instead of ipa_edge_args_vector.
32273         * ipa-profile.c (ipa_profile): Likewise.
32274
32275 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32276
32277         * symbol-summary.h (function_summary): New method exists.
32278         (function_summary::symtab_removal): Deallocate through release.
32279         (call_summary): New class.
32280         (gt_ggc_mx): New overload.
32281         (gt_pch_nx): Likewise.
32282         (gt_pch_nx): Likewise.
32283
32284 2017-05-03  Jeff Law  <law@redhat.com>
32285
32286         PR tree-optimization/78496
32287         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
32288         from simplify_cond_using_ranges.  Split off code to walk
32289         backwards through casts into ...
32290         (simplify_cond_using_ranges_2): New function.
32291         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
32292         (execute_vrp): After identifying jump threads, call
32293         simplify_cond_using_ranges_2.
32294
32295 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
32296
32297         PR bootstrap/80609
32298         * ipa-inline.h (inline_summary): Add ctor.
32299         (create_ggc): Do not use ggc_cleared_alloc.
32300
32301 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
32302             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32303
32304         * gcc.c (handle_braces): Support escaping in switch matching
32305         text.
32306         * doc/invoke.texi (Spec Files): Document it.
32307         Remove superfluous @code markup in items.
32308
32309 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32310
32311         * diagnostic-show-locus.c (struct column_range): New struct.
32312         (get_affected_columns): New function.
32313         (get_printed_columns): New function.
32314         (struct correction): New struct.
32315         (correction::ensure_capacity): New function.
32316         (correction::ensure_terminated): New function.
32317         (struct line_corrections): New struct.
32318         (line_corrections::~line_corrections): New dtor.
32319         (line_corrections::add_hint): New function.
32320         (layout::print_trailing_fixits): Reimplement in terms of the new
32321         classes.
32322         (selftest::test_overlapped_fixit_printing): New function.
32323         (selftest::diagnostic_show_locus_c_tests): Call it.
32324
32325 2017-05-03  Nathan Sidwell  <nathan@acm.org>
32326
32327         Canonicalize canonical type hashing
32328         * tree.h (type_hash_canon_hash): Declare.
32329         * tree.c (type_hash_list, attribute_hash_list): Move into
32330         type_hash_canon_hash.
32331         (build_type_attribute_qual_variant): Break out hash code calc into
32332         type_hash_canon_hash.
32333         (type_hash_canon_hash): New.  Generic type hash computation.
32334         (build_range_type_1, build_array_type_1, build_function_type,
32335         build_method_type_directly, build_offset_type, build_complex_type,
32336         make_vector_type): Call it.
32337
32338 2017-05-03  Richard Biener  <rguenther@suse.de>
32339
32340         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32341         When all DRs have unknown misaligned do not always peel
32342         when there is a store but apply the same costing model as if
32343         there were only loads.
32344
32345 2017-05-03  Richard Biener  <rguenther@suse.de>
32346
32347         Revert
32348         PR tree-optimization/80492
32349         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32350         compare_base_decls returning dont-know properly.
32351
32352 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32353
32354         * config/arm/iterators.md (CCSI): New mode iterator.
32355         (arch): New mode attribute.
32356         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
32357         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
32358         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
32359         code iterator for success result mode.
32360         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
32361         the corresponding new insn generators.
32362
32363 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
32364
32365         Revert r247509
32366         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32367         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32368
32369 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
32370
32371         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
32372         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
32373         (DDR_A): Wrap DDR argument in brackets.
32374         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
32375         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
32376         (DDR_REVERSED_P): Likewise.
32377
32378 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
32379
32380         PR tree-optimization/79472
32381         * tree-switch-conversion.c (struct switch_conv_info): Add
32382         contiguous_range and default_case_nonstandard fields.
32383         (collect_switch_conv_info): Compute contiguous_range and
32384         default_case_nonstandard fields, don't clear final_bb if
32385         contiguous_range and only the default case doesn't have the required
32386         structure.
32387         (check_all_empty_except_final): Set default_case_nonstandard instead
32388         of failing if contiguous_range and the default case doesn't have empty
32389         block.
32390         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
32391         and only the default case doesn't have the required constants.  Skip
32392         virtual phis.
32393         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
32394         if default_case_nonstandard.
32395         (build_constructors): Build constant 1 just once.  Assert that default
32396         values aren't inserted in between cases if contiguous_range.  Skip
32397         virtual phis.
32398         (build_arrays): Skip virtual phis.
32399         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
32400         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
32401         Handle virtual phis.
32402         (gen_inbound_check): Handle default_case_nonstandard case.
32403         (process_switch): Adjust check_final_bb caller.  Call
32404         gather_default_values with the first non-default case instead of
32405         default case if default_case_nonstandard.
32406
32407 2017-05-02  Nathan Sidwell  <nathan@acm.org>
32408
32409         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
32410         check.  Fix formatting.
32411
32412 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
32413
32414         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
32415         errors when comparing specialized and unspecialized times.
32416
32417 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
32418
32419         * diagnostic-show-locus.c
32420         (layout::should_print_annotation_line_p): Make private.
32421         (layout::print_annotation_line): Make private.
32422         (layout::annotation_line_showed_range_p): Make private.
32423         (layout::show_ruler): Make private.
32424         (layout::print_source_line): Make private.  Pass in line and
32425         line_width, rather than calling location_get_source_line.  Drop
32426         returned value.
32427         (layout::print_leading_fixits): New method.
32428         (layout::print_any_fixits): Rename to...
32429         (layout::print_trailing_fixits): ...this, and make private.
32430         Don't print newline fixits.
32431         (diagnostic_show_locus): Move logic for printing one row into...
32432         (layout::print_line): ...this new function.  Move the
32433         location_get_source_line call and error-handling from
32434         print_source_line to here.  Call print_leading_fixits, and rename
32435         print_any_fixits to print_trailing_fixits.
32436         (selftest::test_fixit_insert_containing_newline): Update now that
32437         newlines are partially supported.
32438         (selftest::test_fixit_insert_containing_newline_2): New test.
32439         (selftest::test_fixit_replace_containing_newline): Update comments.
32440         (selftest::diagnostic_show_locus_c_tests): Call the new test.
32441         * edit-context.c (class added_line): New class.
32442         (class edited_line): Describe newline handling in comment.
32443         (edited_line::actually_edited_p): New method.
32444         (edited_line::print_content): Delete redundant decl.
32445         (edited_line::m_predecessors): New field.
32446         (edited_file::print_content): Call edited_line::print_content.
32447         (edited_file::print_diff): Update to support newlines.
32448         (edited_file::print_diff_hunk): Likewise.
32449         (edited_file::print_run_of_changed_lines): New function.
32450         (edited_file::print_diff_line): Convert to...
32451         (print_diff_line): ...this.
32452         (edited_file::get_effective_line_count): New function.
32453         (edited_line::edited_line): Initialize new field m_predecessors.
32454         (edited_line::~edited_line): Clean up m_predecessors.
32455         (edited_line::apply_fixit): Handle newlines.
32456         (edited_line::get_effective_line_count): New function.
32457         (edited_line::print_content): New function.
32458         (edited_line::print_diff_lines): New function.
32459         (selftest::test_applying_fixits_insert_containing_newline): New
32460         test.
32461         (selftest::test_applying_fixits_replace_containing_newline): New
32462         test.
32463         (selftest::insert_line): New function.
32464         (selftest::test_applying_fixits_multiple_lines): Add example of
32465         inserting a line.
32466         (selftest::edit_context_c_tests): Call the new tests.
32467
32468 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32469
32470         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
32471         parameter cand.  Update dump information.
32472         (get_computation_cost): Update uses.
32473
32474 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32475
32476         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
32477         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
32478         (get_computation_at, rewrite_use_address): Update use of
32479         get_computation_aff.
32480
32481 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32482
32483         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
32484         (get_computation): Delete.
32485         (get_computation_cost): Implement like get_computation_cost_at.
32486         Use get_computation_at.
32487         (get_computation_cost_at): Delete.
32488         (rewrite_use_nonlinear_expr): Use get_computation_at.
32489         (rewrite_use_compare, remove_unused_ivs): Ditto.
32490
32491 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32492
32493         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
32494
32495 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32496
32497         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
32498         (ivopts_global_cost_for_size): Rename parameter and update uses.
32499         (iv_ca_recount_cost): Update uses.
32500         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
32501         candidates seperately in n_invs and n_cands.
32502         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
32503
32504 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32505
32506         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
32507         (find_inv_vars_cb): New.
32508         (find_depends): Renamed to ...
32509         (find_inv_vars): ... this.
32510         (add_candidate_1, force_var_cost): Call find_inv_vars.
32511         (split_address_cost, determine_group_iv_cost_cond): Ditto.
32512
32513 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32514
32515         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
32516         inv_vars.  Add inv_exprs.
32517         (struct iv_cand): Rename depends_on to inv_vars.
32518         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
32519         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
32520         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
32521         (dump_cand): Dump inv_vars.
32522         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
32523         (record_invariant, find_depends, add_candidate_1): Ditto.
32524         (set_group_iv_cost, force_var_cost): Ditto.
32525         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
32526         (get_computation_cost_at, get_computation_cost): Ditto.
32527         (determine_group_iv_cost_generic): Ditto.
32528         (determine_group_iv_cost_address): Ditto.
32529         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
32530         (determine_group_iv_costs): Ditto.
32531         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
32532         (iv_ca_set_remove_invariants): Renamed to ...
32533         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
32534         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
32535         (iv_ca_set_add_invariants):  Renamed to ...
32536         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
32537         (iv_ca_set_cp): Use iv_ca_set_add_invs.
32538         (iv_ca_has_deps): Support inv_vars and inv_exprs.
32539         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
32540         (create_new_ivs): Remove useless dump.
32541
32542 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32543
32544         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
32545         iv_cand code.
32546         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
32547         (iv_ca_set_no_cp, create_new_iv): Ditto.
32548
32549 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32550
32551         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32552
32553 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32554
32555         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
32556         function tree_check2.
32557
32558 2017-05-02  Martin Liska  <mliska@suse.cz>
32559
32560         * doc/gcov.texi: Add missing preposition.
32561         * gcov.c (function_info::function_info): Properly fill up
32562         all member variables.
32563
32564 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32565
32566         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
32567
32568 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32569
32570         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
32571
32572 2017-05-02  Martin Liska  <mliska@suse.cz>
32573
32574         PR lto/77954.
32575         * lto-streamer-in.c (lto_read_tree_1): Remove
32576         LTO_STREAMER_DEBUG.
32577         * lto-streamer.c (struct tree_hash_entry): Likewise.
32578         (struct tree_entry_hasher): Likewise.
32579         (tree_entry_hasher::hash): Likewise.
32580         (tree_entry_hasher::equal): Likewise.
32581         (lto_streamer_init): Likewise.
32582         (lto_orig_address_map): Likewise.
32583         (lto_orig_address_get): Likewise.
32584         (lto_orig_address_remove): Likewise.
32585         * lto-streamer.h: Likewise.
32586         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
32587         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
32588
32589 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
32590
32591         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
32592         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
32593         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
32594         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
32595         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
32596         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
32597         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
32598         (mm_maskz_sub_ss): New intrinsics.
32599         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32600         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
32601         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
32602         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
32603         (__builtin_ia32_subss_mask_round): New builtins.
32604         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32605         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
32606         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
32607         Renamed to ...
32608         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
32609         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
32610         Changed to ...
32611         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
32612         ... this.
32613
32614 2017-05-02  Martin Jambor  <mjambor@suse.cz>
32615
32616         PR tree-optimization/78687
32617         * tree-sra.c (access): New field parent.
32618         (process_subtree_disqualification): New function.
32619         (disqualify_candidate): Call it.
32620         (build_accesses_from_assign): Reset write flag if creating an
32621         assighnment link.
32622         (build_access_subtree): Fill in parent field and also prpagate
32623         down grp_write flag.
32624         (create_artificial_child_access): New parameter set_grp_write, set
32625         grp_write to its value.
32626         (propagate_subaccesses_across_link): Also propagate grp_write flag
32627         values.
32628         (propagate_all_subaccesses): Push the closest parent back to work
32629         queue if add_access_to_work_queue returned true.
32630
32631 2017-05-02  Richard Biener  <rguenther@suse.de>
32632
32633         * common.opt (fstrict-overflow): Alias negative to fwrapv.
32634         * doc/invoke.texi (fstrict-overflow): Remove all traces of
32635         -fstrict-overflow documentation.
32636         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
32637         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
32638         flag_strict_overflow.
32639         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
32640         * lto-opts.c (lto_write_options): Do not stream it.
32641         * lto-wrapper.c (merge_and_complain): Do not handle it.
32642         * opts.c (default_options_table): Do not set -fstrict-overflow.
32643         (finish_options): Likewise do not clear it when sanitizing.
32644         * simplify-rtx.c (simplify_const_relational_operation): Do not
32645         test flag_strict_overflow.
32646
32647 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32648
32649         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
32650         using enabled attribute.
32651         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
32652         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
32653         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
32654         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
32655         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
32656         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
32657         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
32658         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
32659         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
32660         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
32661
32662 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32663
32664         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
32665
32666 2017-05-02  Richard Biener  <rguenther@suse.de>
32667
32668         PR tree-optimization/80591
32669         Revert
32670         2017-04-10  Richard Biener  <rguenther@suse.de>
32671
32672         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32673         asm inputs.
32674
32675 2017-05-02  Richard Biener  <rguenther@suse.de>
32676
32677         PR tree-optimization/80549
32678         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
32679         (cleanup_tree_cfg_noloop): Create forwarders to known loop
32680         headers if they do not have a preheader.
32681
32682 2017-05-02  Martin Liska  <mliska@suse.cz>
32683
32684         PR other/80589
32685         * common.opt: Fix typo.
32686         * doc/invoke.texi: Likewise.
32687
32688 2017-05-01  Jan Beulich  <jbeulich@suse.com>
32689
32690         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
32691         swapping, add (x,x,m,x,n) alternative.
32692
32693 2017-05-01  Nathan Sidwell  <nathan@acm.org>
32694
32695         * calls.c (combine_pending_stack_adjustment_and_call): Remove
32696         unnecessary unadjusted_alignment check.
32697
32698 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32699
32700         PR c++/80038
32701         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
32702         operations here.
32703         * gimplify.c (gimplify_cilk_detach): New function.
32704         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
32705         * tree-core.h: Document EXPR_CILK_SPAWN.
32706         * tree.h (EXPR_CILK_SPAWN): Define.
32707
32708 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
32709
32710         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
32711         to use new fixit_hint representation, using the "replace" logic.
32712         (get_line_span_for_fixit_hint): Likewise.
32713         (layout::print_any_fixits): Likewise.
32714         (selftest::test_one_liner_many_fixits): Rename to...
32715         (selftest::test_one_liner_many_fixits_1): ...this, and update
32716         comment and expected output to reflect that the multiple fix-it
32717         hints are now consolidated into one insertion.
32718         (selftest::test_one_liner_many_fixits_2): New test.
32719         (selftest::test_diagnostic_show_locus_one_liner): Update for
32720         above.
32721         (selftest::test_fixit_consolidation): Update for fix-it API
32722         change.
32723         * diagnostic.c (print_parseable_fixits): Likewise.
32724         * edit-context.c (edited_line::m_line_events): Convert from
32725         auto_vec <line_event *> to auto_vec <line_event>.
32726         (class line_event): Convert from abstract base class to a concrete
32727         class, taking over the role of replace_event.
32728         (class insert_event): Delete.
32729         (class replace_event): Rename to class line_event.  Convert to
32730         half-open range.
32731         (edit_context::add_fixits): Reimplement.
32732         (edit_context::apply_insert): Delete.
32733         (edit_context::apply_replace): Rename to...
32734         (edit_context::apply_fixit): ...this.  Convert to half-open range.
32735         (edited_file::apply_insert): Delete.
32736         (edited_file::apply_replace): Rename to...
32737         (edited_file::apply_fixit): ...this.
32738         (edited_line::~edited_line): Drop deletion of events.
32739         (edited_line::apply_insert): Delete.
32740         (edited_line::apply_replace): Rename to...
32741         (edited_line::apply_fixit): ...this.  Convert to half-open range.
32742         Update for change to type of m_line_events.
32743         * edit-context.h (edit_context::apply_insert): Delete.
32744         (edit_context::apply_replace): Rename to...
32745         (edit_context::apply_fixit): ...this.
32746
32747 2017-05-01  Martin Sebor  <msebor@redhat.com>
32748
32749         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
32750         known.
32751
32752 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
32753
32754         PR target/68491
32755         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
32756         __get_cpuid_max returns 0.
32757         (__get_cpuid_count): Ditto.
32758
32759 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
32760
32761         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
32762         replacement expression is another instance of one of its arguments.
32763
32764 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
32765
32766         PR target/79430
32767         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
32768         check for stack push/pop autoinc.
32769         * config/i386/i386.c (ix86_agi_dependent): Return false
32770         if the only reason why modified_in_p returned true is that
32771         addr is SP based and set_insn is a push or pop.
32772
32773 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32774
32775         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
32776         overflow check.
32777
32778 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32779
32780         PR ipa/79224
32781         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
32782         (account_size_time): Use two predicates - exec_pred and
32783         nonconst_pred_ptr.
32784         (evaluate_conditions_for_known_args): Compute both clause and
32785         nonspec_clause.
32786         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
32787         (inline_summary_t::duplicate): Update.
32788         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
32789         separately.
32790         (compute_inline_parameters): Likewise.
32791         (estimate_edge_size_and_time): Update caluclation of time.
32792         (estimate_node_size_and_time): Compute both time and nonspecialized
32793         time.
32794         (estimate_ipcp_clone_size_and_time): Update.
32795         (inline_merge_summary): Update.
32796         (do_estimate_edge_time): Update.
32797         (do_estimate_edge_size): Update.
32798         (do_estimate_edge_hints): Update.
32799         (inline_read_section, inline_write_summary): Stream both new predicates.
32800         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
32801         as argument.
32802         (compute_inlined_call_time): Cleanup.
32803         (big_speedup_p): Update.
32804         (edge_badness): Update.
32805         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
32806         (size_time_entry): Replace predicate by exec_predicate and
32807         nonconst_predicate.
32808         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
32809         (estimate_edge_time): Return also nonspec_time.
32810         (reset_edge_growth_cache): Update.
32811
32812 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
32813
32814         PR rtl-optimization/80491
32815         * ifcvt.c (noce_process_if_block): When looking for x setter
32816         with missing else_bb, don't check only the insn right before
32817         cond_earliest, but look for the last insn that x is modified in
32818         within the same bb.
32819
32820         PR rtl-optimization/80491
32821         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
32822
32823 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
32824
32825         PR tree-optimization/80487
32826         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
32827
32828 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32829
32830         PR tree-optimization/79697
32831         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
32832         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
32833         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
32834         BUILT_IN_STRNDUP.
32835         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
32836         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
32837
32838 2017-04-28  Martin Sebor  <msebor@redhat.com>
32839
32840         PR tree-optimization/80523
32841         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
32842         (init_target_to_host_charmap, target_to_host, target_strtol10): New
32843         functions.
32844         (maybe_warn, format_directive, parse_directive): Use new functions.
32845         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
32846
32847 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
32848
32849         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
32850
32851 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32852
32853         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
32854         target_header_dir): Set correctly.
32855         * configure: Regenerated.
32856         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32857         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32858         instead of SYSTEM_HEADER_DIR.
32859
32860 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
32861
32862         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
32863         (estimate_local_effects): Likewise.
32864         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
32865         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
32866         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
32867         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
32868         do_estimate_edge_time, estimate_edge_time): Likewise.
32869         * ipa-inline-analysis.c (estimate_node_size_and_time,
32870         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
32871         (estimate_time_after_inlining): Remove.
32872
32873 2017-04-28  Martin Liska  <mliska@suse.cz>
32874
32875         * doc/gcov.texi: Enhance documentation of gcov.
32876
32877 2017-04-28  Martin Liska  <mliska@suse.cz>
32878
32879         * doc/gcov.texi: Sort options in alphabetic order.
32880         * doc/gcov-dump.texi: Likewise.
32881         * doc/gcov-tool.texi: Likewise.
32882         * gcov.c (print_usage): Likewise.
32883         * gcov-dump.c (print_usage): Likewise.
32884         * gcov-tool.c (print_merge_usage_message): Likewise.
32885         (print_rewrite_usage_message): Likewise.
32886         (print_overlap_usage_message): Likewise.
32887
32888 2017-04-28  Martin Liska  <mliska@suse.cz>
32889
32890         PR gcov-profile/53915
32891         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
32892
32893 2017-04-28  Martin Liska  <mliska@suse.cz>
32894
32895         PR gcov-profile/79891
32896         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
32897         is marked by compiler as living on a line.
32898         (get_cycles_count): Remove usage of the union.
32899         (output_intermediate_file): Likewise.
32900         (find_source): Fix GNU coding style.
32901         (accumulate_line_counts): Remove old non-all block mode.
32902         (output_lines): Remove usage of the union.
32903         * profile.c (output_location): Include all BBs, even if
32904         belonging to a same line (and file) as a previous BB.
32905
32906 2017-04-28  Martin Liska  <mliska@suse.cz>
32907
32908         * gcov.c (process_args): Handle new argument 'w'.
32909         (read_graph_file): Assign ID to BBs.
32910         (output_branch_count): Display BB # if verbose flag is set.
32911         (output_lines): Likewise for arcs.
32912         (print_usage): Add '--verbose' option help.
32913         * doc/gcov.texi: Document --verbose (-w) option.
32914
32915 2017-04-28  Martin Liska  <mliska@suse.cz>
32916
32917         * gcov.c (struct block_location_info): New struct.
32918         (process_file): Fill up the new structure.
32919         (read_graph_file): Replace usage of encoding by the newly added
32920         struct.
32921         (add_line_counts): Likewise.
32922         (accumulate_line_counts): Remove usage of the union.
32923         (function_info::function_info): New function.
32924         (function_info::~function_info): Likewise.
32925         (process_file): Call delete instead of release_function.
32926         (release_function): Release the function.
32927         (release_structures): Call delete instead of release_function.
32928         (solve_flow_graph): Replace usage of num_blocks.
32929         (find_exception_blocks): Likewise.
32930         (output_lines): Fix GNU coding style.
32931
32932 2017-04-28  Martin Liska  <mliska@suse.cz>
32933
32934         PR driver/56469
32935         * coverage.c (coverage_remove_note_file): New function.
32936         * coverage.h: Declare the function.
32937         * toplev.c (finalize): Clean if an error has been seen.
32938
32939 2017-04-28  Martin Liska  <mliska@suse.cz>
32940
32941         PR gcov-profile/80031
32942         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
32943         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
32944         * gcov.c (read_graph_file): Read just number of blocks.
32945         * profile.c (branch_prob): Do not stream 0 flags per a basic
32946         block.
32947
32948 2017-04-28  Martin Liska  <mliska@suse.cz>
32949
32950         * gcov-dump.c (tag_*): Add new argument to declarations.
32951         (dump_gcov_file): Likewise.
32952         (tag_blocks): Add and use new argument depth.
32953         (tag_arcs): Likewise.
32954         (tag_lines): Likewise.
32955         (tag_counters): Likewise.
32956         (tag_summary): Likewise.
32957         (dump_working_sets): Use depth to do a proper indentation.
32958
32959 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
32960
32961         PR bootstrap/80531
32962         * cgraph.h (symtab_node::debug_symtab): No longer inline.
32963         * symtab.c (symtab_node::debug_symtab): Move definition here.
32964
32965 2017-04-28  Richard Biener  <rguenther@suse.de>
32966
32967         * lto-streamer.h (LTO_major_version): Bump to 7.
32968
32969 2017-04-28  Richard Biener  <rguenther@suse.de>
32970
32971         * tree-vrp.c (assert_info): New struct.
32972         (add_assert_info): New helper.
32973         (register_edge_assert_for_2): Refactor to add asserts to a vector
32974         of assert_info.
32975         (register_edge_assert_for_1): Likewise.
32976         (register_edge_assert_for): Likewise.
32977         (finish_register_edge_assert_for): New helper actually registering
32978         asserts where live on edge.
32979         (find_conditional_asserts): Adjust.
32980         (find_switch_asserts): Likewise.
32981         (evrp_dom_walker::try_find_new_range): Generalize.
32982         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
32983
32984 2017-04-27  Marek Polacek  <polacek@redhat.com>
32985
32986         PR sanitizer/80349
32987         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
32988         arg10 and arg11 to itype.
32989
32990 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
32991
32992         * doc/extend.texi (Object Size Checking): Improve grammar.
32993
32994 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
32995
32996         PR target/80530
32997         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
32998         that the logic for permitting reciprocal estimates matches that
32999         in use_rsqrt_p.
33000
33001 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
33002
33003         PR c++/80534
33004         * tree.c (type_cache_hasher::equal): Only compare
33005         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
33006         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
33007         non-aggregate element types.
33008         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
33009         about the flag on ARRAY_TYPEs in the comment, formatting fix.
33010
33011 2017-04-27  Richard Biener  <rguenther@suse.de>
33012
33013         PR middle-end/80533
33014         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
33015         stripping ARRAY_REFs from MEM_EXPR make sure we're not
33016         keeping a reference to a trailing array.
33017
33018 2017-04-27  Richard Biener  <rguenther@suse.de>
33019
33020         PR middle-end/80539
33021         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
33022         being in loop-closed SSA form conservatively.
33023         (chrec_fold_multiply_poly_poly): Likewise.
33024
33025 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
33026
33027         PR middle-end/79665
33028         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
33029         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
33030
33031 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
33032
33033         PR target/77728
33034         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
33035         (aarch64_function_arg_alignment): Return unsigned int again, but still
33036         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
33037         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
33038         Don't emit -Wpsabi note.
33039         (aarch64_function_arg_boundary): Likewise.
33040         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
33041         caller.
33042
33043 2017-04-26  Nathan Sidwell  <nathan@acm.org>
33044
33045         * tree.h (crc32_unsigned_n): Declare.
33046         (crc32_unsigned, crc32_unsigned): Make inline.
33047         * tree.c (crc32_unsigned_bits): Replace with ...
33048         (crc32_unsigned_n): ... this.
33049         (crc32_unsigned, crc32_byte): Remove.
33050         (crc32_string): Remove unnecessary braces.
33051
33052 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33053
33054         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
33055         * ipa-inline-analysis.c (MAX_TIME): Remove.
33056         (account_size_time): Use sreal for time.
33057         (dump_inline_summary): Update.
33058         (estimate_function_body_sizes): Update.
33059         (estimate_edge_size_and_time): Update.
33060         (estimate_calls_size_and_time): Update.
33061         (estimate_node_size_and_time): Update.
33062         (inline_merge_summary): Update.
33063         (inline_update_overall_summary): Update.
33064         (estimate_time_after_inlining): Update.
33065         (inline_read_section): Update.
33066         (inline_write_summary): Update.
33067         * ipa-inline.c (compute_uninlined_call_time): Update.
33068         (compute_inlined_call_time): Update.
33069         (recursive_inlining): Update.
33070         (inline_small_functions): Update.
33071         (dump_overall_stats): Update.
33072         * ipa-inline.h: Include sreal.h.
33073         (size_time_entry): Turn time to sreal.
33074         (inline_summary): Turn self_time nad time to sreal.
33075
33076 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33077
33078         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
33079         data-streamer.h
33080         (sreal::stream_out, sreal::stream_in): New.
33081         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
33082
33083 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33084
33085         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
33086         environment.
33087
33088 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
33089
33090         PR target/70799
33091         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
33092         Handle ASHIFTRT.
33093         (dimode_scalar_chain::compute_convert_gain): Ditto.
33094         (dimode_scalar_chain::make_vector_copies): Ditto.
33095         (dimode_scalar_chain::convert_reg): Ditto.
33096         (dimode_scalar_chain::convert_insn): Ditto.
33097         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
33098         (VI248_AVX512BW_1): New mode iterator.
33099         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
33100         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
33101         mode iterator.
33102
33103 2017-04-25  Martin Sebor  <msebor@redhat.com>
33104
33105         PR tree-optimization/80497
33106         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
33107         constants are representable in HOST_WIDE_INT.
33108         (parse_directive): Ditto.
33109
33110 2017-04-25  Martin Sebor  <msebor@redhat.com>
33111
33112         PR bootstrap/80486
33113         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
33114         (new_zero_array): Adjust signature.
33115         (dom_info::dom_init): Used unsigned rather that size_t.
33116         (dom_info::dom_info): Same.
33117
33118 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33119             Jakub Jelinek  <jakub@redhat.com>
33120
33121         PR target/77728
33122         * config/arm/arm.c: Include gimple.h.
33123         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33124         returns negative, increment ncrn only if it returned positive.
33125         (arm_needs_doubleword_align): Return int instead of bool,
33126         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
33127         members, but if there is any such non-FIELD_DECL
33128         > PARM_BOUNDARY aligned decl, return -1 instead of false.
33129         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33130         returns negative, increment nregs only if it returned positive.
33131         (arm_setup_incoming_varargs): Likewise.
33132         (arm_function_arg_boundary): Emit -Wpsabi note if
33133         arm_needs_doubleword_align returns negative, return
33134         DOUBLEWORD_ALIGNMENT only if it returned positive.
33135
33136 2017-04-25  Marek Polacek  <polacek@redhat.com>
33137
33138         PR sanitizer/80349
33139         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33140         first argument to type.
33141
33142 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
33143
33144         PR target/80482
33145         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
33146         type checks to test for compatibility instead of equality.
33147
33148 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33149             Jakub Jelinek  <jakub@redhat.com>
33150
33151         PR target/77728
33152         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
33153         type.
33154         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
33155         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
33156         the alignment computation, but return their maximum in warn_alignment.
33157         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
33158         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
33159         is smaller.
33160         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
33161         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
33162         caller.
33163
33164 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33165
33166         * config/arc/simdext.md (dmpyh): Fix typo.
33167
33168 2017-04-25  Richard Biener  <rguenther@suse.de>
33169
33170         PR tree-optimization/80492
33171         * alias.c (compare_base_decls): Handle registers with asm
33172         specification conservatively.
33173         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
33174         compare_base_decls returning dont-know properly.
33175
33176 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33177
33178         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
33179         (legitimate_offset_address_p): New function.
33180         (arc_legitimate_address_p): Use above function.
33181
33182 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33183
33184         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
33185
33186 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33187
33188         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
33189         ACCH registers whenever they are available.
33190
33191 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33192
33193         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
33194         double regs fix when not used.
33195
33196 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33197
33198         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
33199         core registers.
33200         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
33201         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
33202
33203 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33204
33205         * config/arc/arc.c (arc_output_addsi): Check for h-register class
33206         when emitting short ADD instructions.
33207
33208 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33209
33210         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
33211         constraint.
33212         (cmpsi_cc_c_insn): Likewise.
33213         (cbranchsi4_scratch): Compute proper instruction length using
33214         compact_hreg_operand.
33215         * config/arc/predicates.md (compact_hreg_operand): New predicate.
33216
33217 2017-04-25  Richard Biener  <rguenther@suse.de>
33218
33219         PR middle-end/80509
33220         * passes.c (pass_manager::pass_manager): Initialize
33221         m_name_to_pass_map.
33222
33223 2017-04-25  Richard Biener  <rguenther@suse.de>
33224
33225         PR tree-optimization/79201
33226         * tree-ssa-sink.c (statement_sink_location): Handle calls.
33227
33228 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33229
33230         PR target/80464
33231         * config/s390/vector.md: Split MEM->GPR vector moves for
33232         non-s_operand addresses.
33233
33234 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33235
33236         PR target/79895
33237         * config/s390/predicates.md (reload_const_wide_int_operand): New
33238         predicate.
33239         * config/s390/s390.md ("movti"): Remove d/P alternative.
33240         ("movti_bigconst"): New pattern definition.
33241
33242 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33243
33244         PR target/80080
33245         * s390-protos.h (s390_expand_cs_hqi): Removed.
33246         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
33247         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
33248         modes as well as CCZ1mode and CCZmode.
33249         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
33250         signature of s390_emit_compare_and_swap.
33251         (s390_expand_cs_hqi): Likewise, make static.
33252         (s390_expand_cs_tdsi): Generate an explicit compare before trying
33253         compare-and-swap, in some cases.
33254         (s390_expand_cs): Wrapper function.
33255         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
33256         atomic_exchange.
33257         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
33258         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
33259         patterns for small and large integers.  Forbid symref memory operands.
33260         Move expander to s390.c.  Require cc register.
33261         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
33262         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
33263         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
33264         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
33265         symref memory operands.  Remove CC mode and call s390_match_ccmode
33266         instead.
33267         ("atomic_exchange<mode>"): Allow and implement all integer modes.
33268
33269 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33270
33271         * config/s390/s390.md (define_peephole2): New peephole to help
33272         combining the load-and-test pattern with volatile memory.
33273
33274 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33275
33276         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
33277         with CCZmode for TARGET_Z196.
33278
33279 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33280
33281         PR rtl-optimization/80501
33282         * combine.c (make_compound_operation_int): Set subreg_code to SET
33283         even for AND with mask of the sign bit of mode.
33284
33285         PR rtl-optimization/80500
33286         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
33287         sum's initial value.
33288
33289 2017-04-25  Julian Brown  <julian@codesourcery.com>
33290             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33291
33292         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
33293
33294 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
33295
33296         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
33297
33298 2017-04-25  Julian Brown  <julian@codesourcery.com>
33299             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33300
33301         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
33302         (thunderx2t99_sha): New Reservation.
33303
33304 2017-04-25  Julian Brown  <julian@codesourcery.com>
33305             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33306
33307         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
33308         type for 1-element load.
33309
33310 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
33311
33312         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
33313
33314 2017-04-24  Martin Jambor  <mjambor@suse.cz>
33315
33316         PR tree-optimization/80293
33317         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
33318         char arrays not totally scalarizable if it is false.
33319         (analyze_all_variable_accesses): Pass correct value in the new
33320         parameter.  Add a statistics counter.
33321
33322 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
33323
33324         PR middle-end/79931
33325         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
33326
33327 2017-04-24  Richard Biener  <rguenther@suse.de>
33328
33329         PR tree-optimization/80494
33330         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
33331         out for complex types.
33332
33333 2017-04-24  Richard Biener  <rguenther@suse.de>
33334
33335         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
33336         * tree-ssa-sccvn.c (print_scc): Print SCC size.
33337         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
33338         (DFS): Adjust and never fail.
33339         (sccvn_dom_walker::fail): Remove.
33340         (sccvn_dom_walker::before_dom_children): Adjust.
33341         (run_scc_vn): Likewise and never fail.
33342         * tree-ssa-pre.c (pass_pre::execute): Adjust.
33343         (pass_fre::execute): Likewise.
33344
33345 2017-04-24  Richard Biener  <rguenther@suse.de>
33346
33347         PR tree-optimization/79725
33348         * tree-ssa-sink.c (statement_sink_location): Return whether
33349         failure reason was zero uses.  Move that check later.
33350         (sink_code_in_bb): Deal with zero uses by removing the stmt
33351         if possible.
33352
33353 2017-04-24  Richard Biener  <rguenther@suse.de>
33354
33355         PR c++/2972
33356         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
33357         pointer-based references.
33358
33359 2017-04-24  Richard Biener  <rguenther@suse.de>
33360
33361         PR bootstrap/79814
33362         * pass_manager.h (pass_manager::operator new): Remove.
33363         (pass_manager::operator delete): Likewise.
33364         * passes.c (pass_manager::operator new): Remove.
33365         (pass_manager::operator delete): Likewise.
33366         (pass_manager::pass_manager): Zero individual pass members.
33367
33368 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
33369
33370         PR target/70799
33371         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
33372         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
33373         Check "XEXP (src, 1)" operand here.
33374         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
33375         Check "XEXP (src, 1)" operand here.
33376         (dimode_scalar_chain::make_vector_copies): Detect count register
33377         of a shift instruction.  Zero extend count register from QImode
33378         to DImode to satisfy vector shift pattern count operand predicate.
33379         Substitute vector shift count operand with a DImode copy.
33380         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
33381         vector register.
33382
33383 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
33384
33385         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
33386         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33387         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
33388         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33389         (UNSPEC_NOREX_MEM): Remove definition.
33390
33391 2017-04-21  Richard Biener  <rguenther@suse.de>
33392
33393         PR tree-optimization/79547
33394         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33395         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
33396         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
33397         without any constraints.
33398
33399 2017-04-21  Richard Biener  <rguenther@suse.de>
33400
33401         PR tree-optimization/78847
33402         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
33403
33404 2017-04-21  Richard Biener  <rguenther@suse.de>
33405
33406         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
33407         (build_distinct_type_copy): Likewise.
33408         (build_variant_type_copy): Likewise.
33409         * tree.c (build_qualified_type): Pass down mem-stat info.
33410         (build_distinct_type_copy): Likewise.
33411         (build_variant_type_copy): Likewise.
33412
33413 2017-04-21  Richard Biener  <rguenther@suse.de>
33414
33415         PR tree-optimization/80237
33416         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
33417         defaulted to NULL.
33418         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
33419         for a simplified result.
33420
33421 2016-04-21  Richard Biener  <rguenther@suse.de>
33422
33423         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
33424         sth as strict as a simple_iv but a chrec without symbols and an
33425         operand defined in the loop we are peeling (and not some subloop).
33426         (propagate_constants_for_unrolling): Propagate all constants.
33427
33428 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33429
33430         PR target/79804
33431         * config/i386/i386.c (print_reg): Remove assert for disalowed
33432         regno values, call output_operand_lossage instead.
33433
33434 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33435
33436         PR target/78090
33437         * config/i386/constraints.md (Yc): New register constraint.
33438         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
33439         Use Yc constraint for alternative 2 of operand 0.  Remove
33440         preferred_for_speed attribute.
33441
33442 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33443
33444         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
33445         lastprivate clauses in SIMT case.
33446
33447 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
33448
33449         * doc/invoke.texi (-Wextra-semi): Document new warning option.
33450
33451 2017-04-20  Richard Biener  <rguenther@suse.de>
33452
33453         PR tree-optimization/57796
33454         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
33455         as N scalar stores.
33456         (vect_model_load_cost): Cost gathers as N scalar loads.
33457
33458 2017-04-20  Richard Biener  <rguenther@suse.de>
33459
33460         * ggc-page.c (ggc_allocated_p): Rename to ...
33461         (safe_lookup_page_table_entry): ... this and return the lookup
33462         result.
33463         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
33464
33465 2017-04-20  Richard Biener  <rguenther@suse.de>
33466
33467         PR tree-optimization/80453
33468         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
33469         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
33470         from the conditions.
33471         (vn_phi_eq): Pass them down.
33472         (vn_phi_lookup): Record them.
33473         (vn_phi_insert): Likewise.
33474
33475 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
33476
33477         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
33478         uninitialized variable warning to avoid buffer overrun.
33479
33480 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33481
33482         PR other/71250
33483         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
33484         is suppressed for '{ 0 }' in C.
33485
33486 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33487
33488         * BASE-VER: Set to 8.0.0.
33489
33490 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33491
33492         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
33493         priority .init_array and .fini_array section with SECTION_NOTYPE
33494         flag.
33495
33496 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33497
33498         PR middle-end/80423
33499         * tree.h (build_array_type): Add typeless_storage default argument.
33500         * tree.c (type_cache_hasher::equal): Also compare
33501         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
33502         (build_array_type): Add typeless_storage argument, set
33503         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
33504         recursive call.
33505         (build_nonshared_array_type): Adjust build_array_type_1 caller.
33506         (build_array_type): Likewise.  Add typeless_storage argument.
33507
33508 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33509             Jakub Jelinek  <jakub@redhat.com>
33510
33511         PR tree-optimization/80426
33512         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
33513         operation on symbolic operands, also compute the overflow for the
33514         invariant part when the operation degenerates into a negation.
33515
33516 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
33517
33518         PR debug/80461
33519         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
33520         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
33521
33522         PR debug/80436
33523         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
33524
33525 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
33526
33527         PR target/80462
33528         * config/avr/avr.c (tree.h): Include it.
33529         (cgraph.h): Include it.
33530         (avr_encode_section_info): Don't warn for uninitialized progmem
33531         variable if it's just an alias.
33532
33533 2017-04-19  Richard Biener  <rguenther@suse.de>
33534
33535         PR ipa/65972
33536         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
33537         when needed by AutoPGO.
33538
33539 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
33540
33541         PR lto/50345
33542         * doc/lto.texi: Remove an extra 'that'.
33543
33544 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
33545
33546         PR rtl-optimization/80429
33547         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
33548         are only used in debug insns.
33549
33550 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33551             Vladimir Makarov  <vmakarov@redhat.com>
33552
33553         * config/sparc/predicates.md (input_operand): Add comment.  Return
33554         true for any memory operand when LRA is in progress.
33555         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
33556
33557 2017-04-18  Jeff Law  <law@redhat.com>
33558
33559         PR target/74563
33560         * mips.md ({return,simple_return}_internal): Do not overwrite
33561         operands[0].
33562
33563 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33564
33565         PR tree-optimization/80443
33566         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
33567         instead of adding 1, subtract -1 and similarly instead of subtracting
33568         1 add -1.
33569
33570 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
33571
33572         PR rtl-optimization/80357
33573         * haifa-sched.c (tmp_bitmap): New variable.
33574         (model_recompute): Handle duplicate use records.
33575         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
33576         (free_global_sched_pressure_data): Free it.
33577
33578 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33579
33580         Revert:
33581         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33582         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
33583         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
33584         instead of SYSTEM_HEADER_DIR.
33585
33586 2017-04-18  Jeff Law  <law@redhat.com>
33587
33588         PR middle-end/80422
33589         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
33590         predecessors after walking up the insn chain.
33591
33592 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33593
33594         PR debug/80263
33595         * dwarf2out.c (modified_type_die): Try harder not to emit internal
33596         sizetype type into debug info.
33597
33598 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
33599
33600         PR target/80099
33601         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
33602         unneeded test for TARGET_UPPER_REGS_SF.
33603         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
33604
33605 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33606
33607         PR sanitizer/80444
33608         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
33609         instead of gsi_after_labels.
33610
33611 2017-04-18  Jeff Law  <law@redhat.com>
33612
33613         * regcprop.c (maybe_mode_change): Avoid creating copies of the
33614         stack pointer.
33615
33616         Revert:
33617         2017-04-13  Jeff Law  <law@redhat.com>
33618         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33619         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33620
33621 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
33622
33623         PR target/79453
33624         * config/avr/avr.c (intl.h): Include it.
33625         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
33626
33627 2017-04-18  Martin Liska  <mliska@suse.cz>
33628
33629         PR gcov-profile/78783
33630         * gcov-tool.c (gcov_output_files): Validate that destination
33631         file is either removed by the tool or by a user.
33632
33633 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33634             Guy Benyei  <guybe@mellanox.com>
33635
33636         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
33637         block, and do not negate it, the stored id is already negative.
33638
33639 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33640
33641         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
33642
33643 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33644
33645         PR target/80098
33646         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
33647         masks of options that should be turned off if the VSX vector
33648         options are turned off.
33649         (OTHER_P8_VECTOR_MASKS): Likewise.
33650         (OTHER_VSX_VECTOR_MASKS): Likewise.
33651         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
33652         rs6000_disable_incompatible_switches to validate no type switches
33653         like -mvsx.
33654         (rs6000_incompatible_switch): New function to disallow turning on
33655         other vector options if -mno-vsx, -mno-power8-vector, or
33656         -mno-power9-vector are specified.
33657
33658 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33659
33660         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
33661
33662 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33663
33664         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
33665         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
33666         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
33667         (ARG_POINTER_CFA_OFFSET): Likewise.
33668
33669 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33670
33671         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
33672         conditions to take advantage of various optimizations.
33673
33674 2017-04-13  Jeff Law  <law@redhat.com>
33675
33676         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33677         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33678         (zero_extendsidi2_dext): Likewise.
33679
33680 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33681
33682         PR sanitizer/80403
33683         * fold-const.c (fold_ternary_loc): Revert
33684         use op0 instead of fold_convert_loc (loc, type, arg0) part of
33685         2017-04-12 change.
33686
33687 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
33688
33689         PR rtl-optimization/80343
33690         * lra-remat.c (update_scratch_ops): Assign original hard reg to
33691         new scratch pseudo.
33692
33693 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
33694
33695         PR sanitizer/80414
33696         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
33697         to ubsan_encode_value.
33698
33699 2017-04-13  Jeff Law  <law@redhat.com>
33700
33701         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
33702         appearing in DEBUG_INSNs.
33703
33704 2017-04-13  Martin Liska  <mliska@suse.cz>
33705
33706         PR gcov-profile/80413
33707         * gcov-io.c (gcov_write_string): Copy to buffer just when
33708         allocated size is greater than zero.
33709
33710 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33711
33712         PR debug/80321
33713         * dwarf2out.c (decls_for_scope): Ignore declarations of
33714         current_function_decl in BLOCK_NONLOCALIZED_VARS.
33715
33716 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
33717
33718         PR lto/69953
33719         * ipa-visibility.c (non_local_p): Fix typos.
33720         (localize_node): When localizing symbol in same comdat group,
33721         dissolve the group only when we know external symbols are going
33722         to be privatized.
33723         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
33724
33725 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33726
33727         PR tree-optimization/79390
33728         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
33729         order does not result in usable sequence, retry with reversed operand
33730         order.
33731
33732         PR sanitizer/80403
33733         PR sanitizer/80404
33734         PR sanitizer/80405
33735         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
33736         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
33737         op0 instead of fold_convert_loc (loc, type, arg0).
33738
33739 2017-04-12  Jeff Law  <law@redhat.com>
33740
33741         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
33742         has a delay slot in the generated code.
33743
33744         * config/cris/cris.md (cris_preferred_reload_class): Return
33745         GENNONACR_REGS rather than GENERAL_REGS.
33746
33747 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33748
33749         PR c/80163
33750         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
33751         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
33752         signedness of the result type.
33753
33754 2017-04-12  Richard Biener  <rguenther@suse.de>
33755             Jeff Law  <law@redhat.com>
33756
33757         PR tree-optimization/80359
33758         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
33759         trim stores to TARGET_MEM_REFs.
33760
33761 2017-04-12  Richard Biener  <rguenther@suse.de>
33762
33763         PR tree-optimization/79390
33764         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
33765         threading case even more.
33766
33767 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
33768
33769         PR target/80382
33770         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
33771         for quad_address_p for TImode, instead of just not indexed_address.
33772
33773 2017-04-12  Richard Biener  <rguenther@suse.de>
33774             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33775
33776         PR middle-end/79671
33777         * alias.c (component_uses_parent_alias_set_from): Handle
33778         TYPE_TYPELESS_STORAGE.
33779         (get_alias_set): Likewise.
33780         * tree-core.h (tree_type_common): Add typeless_storage flag.
33781         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
33782         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
33783         for types containing members with TYPE_TYPELESS_STORAGE.
33784         (place_field): Likewise.
33785         (layout_type): Likewise for ARRAY_TYPE.
33786         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
33787         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
33788         TYPE_TYPELESS_STORAGE.
33789         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
33790
33791 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33792
33793         PR sanitizer/80349
33794         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33795         first argument to type.
33796
33797 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33798
33799         PR target/80376
33800         PR target/80315
33801         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
33802         CONST0_RTX (mode) rather than const0_rtx where appropriate.
33803         (rs6000_expand_binop_builtin): Likewise.
33804         (rs6000_expand_ternop_builtin): Likewise; also add missing
33805         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
33806         vshasigma built-ins.
33807         * doc/extend.texi: Document that vec_xxpermdi's third argument
33808         must be a constant.
33809
33810 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
33811
33812         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
33813         Use shift_const cost parameter when calculating gain of STV shifts.
33814
33815 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
33816
33817         PR rtl-optimization/70478
33818         * lra-constraints.c (process_alt_operands): Check memory for
33819         disfavoring memory insn operand.
33820
33821 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33822
33823         PR middle-end/80100
33824         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
33825         left shift in unsigned HOST_WIDE_INT type.
33826
33827         PR rtl-optimization/80385
33828         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
33829         (not (neg X)) into (plus X -1) for complex or non-integral modes.
33830
33831         PR libgomp/80394
33832         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
33833         if they have any depend clauses.
33834
33835 2017-04-11  Martin Liska  <mliska@suse.cz>
33836
33837         PR ipa/80212
33838         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
33839         * ipa-split.c (split_function): Create a local comdat symbol
33840         if caller is in a comdat group.
33841
33842 2017-04-11  Martin Liska  <mliska@suse.cz>
33843
33844         PR ipa/80212
33845         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
33846         flags.
33847
33848 2017-04-11  Martin Sebor  <msebor@redhat.com>
33849
33850         PR middle-end/80364
33851         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
33852         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
33853         for INTEGER_TYPE.
33854         (directive::set_width, directive::set_precision, format_character):
33855         Adjust.
33856         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
33857         INTEGER_TYPE.
33858
33859 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
33860
33861         PR target/80389
33862         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
33863         conflict, set target->arch_name instead of target->cpu_name.
33864
33865 2017-04-11  Richard Biener  <rguenther@suse.de>
33866
33867         PR tree-optimization/80374
33868         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
33869         build_zero_cst, remove fold_convertible_p check again.
33870
33871 2017-04-11  Martin Liska  <mliska@suse.cz>
33872
33873         PR sanitizer/70878
33874         * ubsan.c (instrument_object_size): Do not instrument register
33875         variables.
33876
33877 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33878
33879         PR target/80381
33880         * config/i386/i386-builtin-types.def
33881         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
33882         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
33883         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
33884         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
33885         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
33886         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
33887         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
33888         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
33889         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
33890         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
33891         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
33892         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
33893         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
33894         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
33895         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
33896         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
33897         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
33898         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
33899         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
33900         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
33901         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
33902         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
33903         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
33904         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
33905         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
33906         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
33907         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
33908         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
33909         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
33910         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
33911         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
33912         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
33913         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
33914         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
33915         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
33916         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
33917         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
33918         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
33919         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
33920         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
33921         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
33922         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
33923         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
33924         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
33925         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
33926         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
33927         aliases.
33928         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
33929         flag to second_arg_count, handle 4 argument function type _COUNT
33930         aliases, handle second_arg_count on second argument rather than last.
33931
33932 2017-04-10  Jeff Law  <law@redhat.com>
33933
33934         PR tree-optimization/80374
33935         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
33936         record anything if we can not convert integer_zero_node to the
33937         desired type.
33938
33939 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
33940
33941         PR target/80108
33942         * config/rs6000/rs6000.c (rs6000_option_override_internal):
33943         Enhance special handling given to the TARGET_P9_MINMAX option in
33944         relation to certain other options.
33945
33946 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
33947
33948         PR tree-optimization/80153
33949         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
33950         remove POINTER_PLUS_EXPR's base part directly, rather than through
33951         aff_tree.
33952
33953 2017-04-10  Richard Biener  <rguenther@suse.de>
33954             Bin Cheng  <bin.cheng@arm.com>
33955
33956         PR tree-optimization/80153
33957         * tree-affine.c (aff_combination_to_tree): Get base pointer from
33958         the first element of pointer type aff_tree.  Build result expr in
33959         aff_tree's type.
33960         (add_elt_to_tree): Convert to type unconditionally.  Remove other
33961         fold_convert calls.
33962         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
33963         (rewrite_use_nonlinear_expr): Check invariant using iv information.
33964
33965 2017-04-10  Richard Biener  <rguenther@suse.de>
33966
33967         * tree-ssa-structalias.c (find_func_aliases): Properly handle
33968         asm inputs.
33969
33970 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
33971
33972         PR rtl-optimization/70478
33973         * lra-constraints.c (curr_small_class_check): New.
33974         (update_and_check_small_class_inputs): New.
33975         (process_alt_operands): Update curr_small_class_check.  Disfavor
33976         alternative insn memory operands.  Check available regs for small
33977         class operands.
33978
33979 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
33980
33981         PR target/80057
33982         * config/mips/mips.opt (-mvirt): Update description.
33983         * doc/invoke.texi (-mvirt): Likewise.
33984
33985 2017-04-10  Richard Biener  <rguenther@suse.de>
33986
33987         PR middle-end/80362
33988         * fold-const.c (fold_binary_loc): Look at unstripped ops when
33989         looking for NEGATE_EXPR in -A / -B to A / B folding.
33990
33991 2017-04-10  Martin Liska  <mliska@suse.cz>
33992
33993         PR gcov-profile/80224
33994         * gcov.c (print_usage): Fix usage string.
33995         (get_gcov_intermediate_filename): Remove.
33996         (output_gcov_file): Use both for normal and intermediate format.
33997         (generate_results): Do not initialize special file for
33998         intermediate format.
33999
34000 2017-04-10  Richard Biener  <rguenther@suse.de>
34001
34002         PR tree-optimization/80304
34003         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
34004         for safelen.
34005
34006 2017-04-10  Nathan Sidwell  <nathan@acm.org>
34007
34008         PR target/79905
34009         * config/rs6000/rs6000.c (rs6000_vector_type): New.
34010         (rs6000_init_builtins): Use it.
34011
34012 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34013
34014         * config/arm/arm.md (<mrc>): Add mode to SET source.
34015         (<mrrc>): Likewise.
34016
34017 2017-04-10  Richard Biener  <rguenther@suse.de>
34018
34019         PR middle-end/80344
34020         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
34021
34022 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
34023
34024         PR target/80324
34025         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
34026         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
34027         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
34028         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
34029         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
34030         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
34031         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
34032         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
34033         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
34034         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
34035         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
34036         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
34037         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
34038         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
34039         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
34040         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
34041         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
34042         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
34043         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
34044         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
34045         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
34046         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
34047         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
34048
34049 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
34050
34051         PR rtl-optimization/70478
34052         * lra-constraints.c: Reverse the last patch.
34053
34054 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
34055
34056         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
34057         Add comment for WCHAR_T.
34058
34059 2017-04-08  Martin Liska  <mliska@suse.cz>
34060
34061         Revert:
34062         2017-04-07  Martin Liska  <mliska@suse.cz>
34063
34064         PR ipa/80212
34065         * ipa-split.c (split_function): Add function part to a same comdat
34066         group.
34067
34068 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34069
34070         PR target/80358
34071         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
34072
34073 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
34074
34075         * rs6000/rs6000.c (vec_load_pendulum): Rename...
34076         (vec_pairing): ...to this.
34077         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
34078         (rs6000_sched_init): Adjust for name change.
34079         (struct rs6000_sched_context): Likewise.
34080         (rs6000_init_sched_context): Likewise.
34081         (rs6000_set_sched_context): Likewise.
34082
34083 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
34084
34085         PR target/80322
34086         PR target/80323
34087         PR target/80325
34088         PR target/80326
34089         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
34090         intrinsics.
34091         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
34092         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
34093         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
34094
34095 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
34096
34097         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
34098
34099 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34100
34101         PR rtl-optimization/70703
34102         * ira-color.c (update_conflict_hard_regno_costs): Use
34103         int64_t instead of HOST_WIDE_INT.
34104
34105 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34106
34107         PR rtl-optimization/70478
34108         * lra-constraints.c (process_alt_operands): Disfavor alternative
34109         insn memory operands.
34110
34111 2017-04-07  Jeff Law  <law@redhat.com>
34112
34113         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
34114         CALL and NOTE_INSN_CALL_ARG_LOCATION.
34115
34116 2017-04-07  Martin Liska  <mliska@suse.cz>
34117
34118         PR target/79889
34119         * config/aarch64/aarch64.c (aarch64_process_target_attr):
34120         Show error message instead of an ICE.
34121
34122 2017-04-07  Martin Liska  <mliska@suse.cz>
34123
34124         PR ipa/80212
34125         * ipa-split.c (split_function): Add function part to a same comdat
34126         group.
34127
34128 2017-04-07  Richard Biener  <rguenther@suse.de>
34129
34130         PR middle-end/80341
34131         * tree.c (get_unwidened): Also handle ! for_type case for
34132         INTEGER_CSTs.
34133         * convert.c (do_narrow): Split out from ...
34134         (convert_to_integer_1): ... here.  Do not pass final truncation
34135         type to get_unwidened for TRUNC_DIV_EXPR.
34136
34137 2017-04-07  Richard Biener  <rguenther@suse.de>
34138
34139         * tree-affine.c (wide_int_ext_for_comb): Take type rather
34140         than aff_tree.
34141         (aff_combination_const): Adjust.
34142         (aff_combination_scale): Likewise.
34143         (aff_combination_add_elt): Likewise.
34144         (aff_combination_add_cst): Likewise.
34145         (aff_combination_convert): Likewise.
34146         (add_elt_to_tree): Likewise.  Remove unused argument.
34147         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
34148
34149 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34150
34151         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
34152         definition.
34153         * config/arm/arm.c (arm_default_short_enums): Use
34154         ARM_DEFAULT_SHORT_ENUMS.
34155         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
34156
34157 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
34158
34159         PR debug/80234
34160         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
34161         members with redundant out-of-class redeclaration.
34162
34163 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34164
34165         PR target/80286
34166         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
34167         * config/i386/i386.md (*zero_extendsidi2):
34168         Add (?*x,*x) and (?*v,*v) alternatives.
34169
34170 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34171
34172         PR target/79733
34173         * config/i386/i386.c (ix86_expand_builtin)
34174         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
34175         mode from insn data. Convert operands to insn operand mode.
34176         Copy operands that don't satisfy insn predicate to a register.
34177
34178 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
34179
34180         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
34181         Update comments.
34182
34183 2017-04-06  Richard Biener  <rguenther@suse.de>
34184
34185         PR tree-optimization/80334
34186         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
34187         preserve alignment of accesses.
34188
34189 2017-04-06  Richard Biener  <rguenther@suse.de>
34190
34191         PR tree-optimization/80262
34192         * tree-sra.c (build_ref_for_offset): Preserve address-space
34193         information.
34194         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
34195         Drop useless address-space information on MEM_REF offsets.
34196
34197 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
34198
34199         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
34200
34201 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34202
34203         PR rtl-optimization/70703
34204         * ira-color.c (update_conflict_hard_regno_costs): Use
34205         HOST_WIDE_INT instead of long.
34206
34207 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
34208
34209         PR target/80298
34210         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
34211         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
34212         is not defined.
34213         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
34214         for x86_64 target.  Handle -m3dnowa option.
34215
34216 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34217
34218         PR rtl-optimization/70703
34219         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
34220         (update_conflict_hard_regno_costs): Use long instead of unsigned
34221         arithmetic for cost calculation.
34222
34223 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34224             Bernd Edlinger  <bernd.edlinger@hotmail.de>
34225
34226         PR sanitizer/80308
34227         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
34228         for big endian.
34229
34230 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
34231
34232         PR target/78002
34233         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
34234         ptr_mode with Pmode throughout.
34235         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
34236         into probe_stack_range and use DImode.
34237
34238 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34239
34240         PR target/79890
34241         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
34242         call_eh_return is true.
34243
34244 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34245
34246         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
34247         Initialize last_match_fntype_index.
34248
34249 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34250
34251         PR target/80310
34252         * tree-nvr.c: Include internal-fn.h.
34253         (pass_return_slot::execute): Ignore internal calls without
34254         direct optab.
34255
34256 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34257             Richard Biener  <rguenther@suse.de>
34258
34259         PR c++/80297
34260         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
34261         captures used multiple times, except for the last use.
34262         * generic-match-head.c: Include gimplify.h.
34263
34264 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34265
34266         PR tree-optimization/79390
34267         * target.h (struct noce_if_info): Declare.
34268         * targhooks.h (default_noce_conversion_profitable_p): Declare.
34269         * target.def (noce_conversion_profitable_p): New target hook.
34270         * ifcvt.h (struct noce_if_info): New type, moved from ...
34271         * ifcvt.c (struct noce_if_info): ... here.
34272         (noce_conversion_profitable_p): Renamed to ...
34273         (default_noce_conversion_profitable_p): ... this.  No longer
34274         static nor inline.
34275         (noce_try_store_flag_constants, noce_try_addcc,
34276         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
34277         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
34278         instead of noce_conversion_profitable_p.
34279         * config/i386/i386.c: Include ifcvt.h.
34280         (ix86_option_override_internal): Don't override
34281         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
34282         (ix86_noce_conversion_profitable_p): New function.
34283         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
34284         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
34285         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
34286         * doc/tm.texi: Regenerated.
34287
34288 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34289
34290         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
34291         correction.
34292
34293 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34294
34295         PR target/80307
34296         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
34297         instructions for small multiply cores.
34298
34299 2017-04-04  Jeff Law  <law@redhat.com>
34300
34301         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
34302         added member.
34303         (mips_expand_vec_perm_const): Initialize elements in orig_perm
34304         that are not set by the loop over the elements.
34305
34306 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34307
34308         PR target/80286
34309         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
34310         int mode, convert_modes it to mode as unsigned, otherwise use
34311         lowpart_subreg to mode rather than SImode.
34312         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
34313         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
34314         Use DImode instead of SImode for the shift count operand.
34315         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
34316         Likewise.
34317
34318 2017-04-04  Richard Biener  <rguenther@suse.de>
34319
34320         PR middle-end/80281
34321         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
34322         arithmetic done for the negate or the plus.  Simplify.
34323         (A - (-B) -> A + B): Likewise.
34324         * fold-const.c (split_tree): Make sure to not negate pointers.
34325
34326 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
34327
34328         PR rtl-optimization/60818
34329         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
34330         a compare of comparisons with the thing compared if this results
34331         in a different machine mode.
34332
34333 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
34334
34335         * alias.c (base_alias_check): Fix typo in comment.
34336         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
34337         * cgraphunit.c (symbol_table::compile): Likewise.
34338         * collect2.c (maybe_run_lto_and_relink): Likewise.
34339         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
34340         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
34341         * config/avr/avr.c (avr_map_op_t): Likewise.
34342         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
34343         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
34344         * config/epiphany/epiphany.md (movcc): Likewise.
34345         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
34346         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
34347         Likewise.
34348         * config/mips/mips.c (mips_save_restore_reg): Likewise.
34349         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
34350         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
34351         * config/sh/sh.c (sh_rtx_costs): Likewise.
34352         * fold-const.c (fold_truth_andor): Likewise.
34353         * genautomata.c (collapse_flag): Likewise.
34354         * gengtype.h (struct type::u::s): Likewise.
34355         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
34356         * input.c (FORMAT_AMOUNT): Likewise.
34357         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
34358         (known_aggs_to_agg_replacement_list): Likewise.
34359         * ipa-inline-analysis.c: Likewise.
34360         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
34361         * ipa-polymorphic-call.c
34362         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
34363         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
34364         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
34365         Likewise.
34366         * modulo-sched.c (apply_reg_moves): Likewise.
34367         * omp-expand.c (build_omp_regions_1): Likewise.
34368         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
34369         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
34370         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
34371         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
34372         * value-prof.c: Likewise.
34373         * var-tracking.c (val_reset): Likewise.
34374
34375 2017-04-03  Richard Biener  <rguenther@suse.de>
34376
34377         PR tree-optimization/80275
34378         * fold-const.c (split_address_to_core_and_offset): Handle
34379         POINTER_PLUS_EXPR.
34380
34381 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
34382
34383         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
34384         descriptors is at least equal to that of functions.
34385
34386 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34387
34388         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
34389
34390 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34391
34392         PR target/80250
34393         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
34394         (mov<IMOD4:mode>): New expander.
34395         (*mov<IMOD4:mode>_internal): New insn and split pattern.
34396
34397 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
34398
34399         PR rtl-optimization/79405
34400         * fwprop.c (propagations_left): New variable.
34401         (forward_propagate_into): Decrement it.
34402         (fwprop_init): Initialize it.
34403         (fw_prop): If the variable has reached zero, stop propagating.
34404         (fwprop_addr): Ditto.
34405
34406 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34407
34408         PR debug/79255
34409         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
34410         a FUNCTION_DECL, pass it as decl instead of origin to
34411         process_scope_var.
34412
34413 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
34414
34415         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
34416         string.
34417
34418 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
34419
34420         PR target/80107
34421         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
34422         TARGET_VSX_SMALL_INTEGER.
34423
34424 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34425
34426         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
34427         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
34428
34429 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
34430
34431         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
34432         extraction from odd-numbered MSA register.
34433
34434 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34435
34436         PR middle-end/80173
34437         * expmed.c (store_bit_field_1): Don't attempt to create
34438         a word subreg out of hard registers wider than word if they
34439         have HARD_REGNO_NREGS of 1 for their mode.
34440
34441         PR middle-end/80163
34442         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
34443         conversions to integer types wider than word and pointer.
34444
34445         PR debug/80025
34446         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
34447         (rtx_equal_for_cselib_p): Pass 0 to it.
34448         * cselib.c (cselib_hasher::equal): Likewise.
34449         (rtx_equal_for_cselib_1): Add depth argument.  If depth
34450         is 128, don't look up VALUE locs and punt.  Increment
34451         depth in recursive calls when walking VALUE locs.
34452
34453 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34454
34455         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
34456         (make_gcov_file_name): Use the canonical path name for generating
34457         the MD5 value.
34458         (read_line): Fix handling of files with ascii null bytes.
34459
34460 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
34461
34462         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
34463         to initialise a vector register instead
34464         of using a const_int.
34465
34466 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34467
34468         PR translation/80189
34469         * gimplify.c (omp_default_clause): Use %qs instead of %s in
34470         diagnostic messages.
34471
34472 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
34473
34474         PR target/80246
34475         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
34476         (dfp_diex_<mode>): Update mode of operand 1.
34477         * doc/extend.texi (dxex, dxexq): Document change to return type.
34478         (diex, diexq): Document change to argument type.
34479
34480 2017-03-30  Martin Jambor  <mjambor@suse.cz>
34481
34482         PR ipa/77333
34483         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
34484         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
34485         it reflects the signature changes performed at the callee side.
34486         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
34487         to cgraph_build_function_type_skip_args.
34488         (build_function_decl_skip_args): Adjust call to the above function.
34489
34490 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34491
34492         PR target/80206
34493         * config/i386/sse.md
34494         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
34495         register as dest whenever it is a MEM not rtx_equal_p to the
34496         corresponding dup operand, and when forcing into reg move the
34497         reg into the memory afterwards.
34498         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
34499         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
34500         for the force_reg mode.
34501         (avx512vl_vextractf128<mode>): Use register as dest either
34502         always when a MEM, or when it is a MEM not rtx_equal_p to the
34503         corresponding dup operand, or even not when it is a CONST_VECTOR
34504         depending on the mode and lo vs. hi.
34505         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
34506         parens.
34507         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
34508         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
34509         Likewise.  Require that operands[2] is even.
34510         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
34511         Remove extraneous parens.  Require that operands[2] is a multiple
34512         of 4.
34513         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
34514         operands[0] is a MEM if <mask_applied>, the predicates/constraints
34515         disallow memory then.
34516
34517 2017-03-30  Richard Biener  <rguenther@suse.de>
34518
34519         PR tree-optimization/77498
34520         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
34521         to non-constants over backedges.
34522
34523 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
34524
34525         PR rtl-optimization/80233
34526         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
34527         as last_combined_insn.  Do not test for BARRIER_P separately.
34528
34529 2017-03-29  Andreas Schwab  <schwab@suse.de>
34530
34531         PR ada/80146
34532         * calls.c (prepare_call_address): Convert funexp to Pmode before
34533         copying to temp reg.
34534
34535 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34536
34537         PR tree-optimization/80158
34538         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
34539         Handle possible future case of more than one alternate
34540         interpretation.
34541         (replace_rhs_if_not_dup): Likewise.
34542         (replace_one_candidate): Likewise.
34543
34544 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
34545
34546         PR rtl-optimization/80193
34547         * ira.c (ira): Do not check allocation for LRA.
34548
34549 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
34550
34551         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
34552         (nvptx_output_simt_exit): Declare.
34553         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
34554         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
34555         (init_softstack_frame): Move initialization of crtl->is_leaf to...
34556         (nvptx_declare_function_name): ...here.  Emit declaration of local
34557         memory space buffer for omp_simt_enter insn.
34558         (nvptx_output_unisimt_switch): New.
34559         (nvptx_output_softstack_switch): New.
34560         (nvptx_output_simt_enter): New.
34561         (nvptx_output_simt_exit): New.
34562         * config/nvptx/nvptx.h (struct machine_function): New fields
34563         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
34564         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
34565         (UNSPECV_SIMT_EXIT): Ditto.
34566         (omp_simt_enter_insn): New insn.
34567         (omp_simt_enter): New expansion.
34568         (omp_simt_exit): New insn.
34569         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
34570
34571         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
34572         (expand_GOMP_SIMT_ENTER_ALLOC): New.
34573         (expand_GOMP_SIMT_EXIT): New.
34574         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
34575         (GOMP_SIMT_ENTER_ALLOC): Ditto.
34576         (GOMP_SIMT_EXIT): Ditto.
34577         * target-insns.def (omp_simt_enter): New insn.
34578         (omp_simt_exit): Ditto.
34579         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
34580         simt_dlist.
34581         (lower_rec_simd_input_clauses): Implement SIMT privatization.
34582         (lower_rec_input_clauses): Likewise.
34583         (lower_lastprivate_clauses): Handle SIMT privatization.
34584
34585         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
34586         (ompdevlow_adjust_simt_enter): New.
34587         (find_simtpriv_var_op): New.
34588         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
34589         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
34590
34591         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
34592         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
34593         (copy_decl_for_dup_finish): Ditto.
34594
34595         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
34596
34597 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
34598
34599         PR target/53383
34600         * config/i386/i386.c (ix86_option_override_internal): Always
34601         allow -mpreferred-stack-boundary=3 for 64-bit targets.
34602
34603 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34604
34605         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
34606
34607 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34608
34609         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
34610         mark new edge's irreducible flag accordign to it.
34611         (vect_do_peeling): Check loop preheader edge's irreducible flag
34612         and pass it to function slpeel_add_loop_guard.
34613
34614 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
34615
34616         PR tree-optimization/80218
34617         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
34618         Update block frequencies and counts.
34619
34620 2017-03-28  Richard Biener  <rguenther@suse.de>
34621
34622         PR tree-optimization/78644
34623         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
34624         of a simplification result we may not use it at all.
34625
34626 2017-03-28  Richard Biener  <rguenther@suse.de>
34627
34628         PR ipa/80205
34629         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
34630         without arguments, generate default definition of a SSA name.
34631
34632 2017-03-28  Richard Biener  <rguenther@suse.de>
34633
34634         PR middle-end/80222
34635         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
34636         TYPE_REF_CAN_ALIAS_ALL references.
34637         * fold-const.c (fold_indirect_ref_1): Likewise.
34638
34639 2017-03-28  Martin Liska  <mliska@suse.cz>
34640
34641         PR ipa/80104
34642         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
34643         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
34644
34645 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34646             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
34647
34648         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
34649         (EXTRA_SPECS): Define.
34650         (SUBTARGET_EXTRA_SPECS): Likewise.
34651         (SUBTARGET_CPP_SPEC): Likewise.
34652         * config/arc/elf.h (EXTRA_SPECS): Renamed to
34653         SUBTARGET_EXTRA_SPECS.
34654         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
34655
34656 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34657
34658         * config/arc/simdext.md (vst64_insn): Update pattern.
34659         (vld32wh_insn): Likewise.
34660         (vld32wl_insn): Likewise.
34661         (vld64_insn): Likewise.
34662         (vld32_insn): Likewise.
34663
34664 2017-03-28  Marek Polacek  <polacek@redhat.com>
34665
34666         PR sanitizer/80067
34667         * fold-const.c (fold_comparison): Use protected_set_expr_location
34668         instead of SET_EXPR_LOCATION.
34669
34670 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
34671
34672         * tree.c (add_expr): Avoid name lookup warning.
34673
34674 2017-03-27  Jeff Law  <law@redhat.com>
34675
34676         PR tree-optimization/80216
34677         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
34678         function name.  Limit recursion depth.
34679         (record_temporary_equivalences): Corresponding changes.
34680
34681 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
34682
34683         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
34684         covered first.
34685
34686 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34687
34688         PR target/80102
34689         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
34690         notes.
34691         * cfgcleanup.c (reg_note_cfa_p): New array.
34692         (insns_have_identical_cfa_notes): New function.
34693         (old_insns_match_p): Don't cross-jump in between /f
34694         and non-/f instructions.  If both i1 and i2 are frame related,
34695         verify all CFA notes, their order and content.
34696
34697 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
34698
34699         PR target/78543
34700         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
34701         HImode and SImode with zero extend to DImode to one insn.
34702         (bswap<mode>2_extenddi): Likewise.
34703         (bswapsi2_extenddi): Likewise.
34704         (bswaphi2_extendsi): Likewise.
34705         (bswaphi2): Combine bswap HImode and SImode into one insn.
34706         Separate memory insns from swapping register.
34707         (bswapsi2): Likewise.
34708         (bswap<mode>2): Likewise.
34709         (bswaphi2_internal): Delete, no longer used.
34710         (bswapsi2_internal): Likewise.
34711         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
34712         store, and gpr<-gpr swap insns.
34713         (bswap<mode>2_store): Likewise.
34714         (bswaphi2_reg): Register only splitter, combine with the splitter.
34715         (bswaphi2 splitter): Likewise.
34716         (bswapsi2_reg): Likewise.
34717         (bswapsi2 splitter): Likewise.
34718         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
34719         the insns into load, store, and register/register insns.
34720         (bswapdi2_ldbrx): Likewise.
34721         (bswapdi2_load): Likewise.
34722         (bswapdi2_store): Likewise.
34723         (bswapdi2_reg): Likewise.
34724
34725 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
34726
34727         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
34728         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
34729
34730 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34731
34732         PR target/80103
34733         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
34734         add comments.
34735         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34736         special handling for target option conflicts between dform
34737         options (-mpower9-dform, -mpower9-dform-vector,
34738         -mpower9-dform-scalar) and -mno-direct-move.
34739
34740 2017-03-27  Richard Biener  <rguenther@suse.de>
34741
34742         PR tree-optimization/80181
34743         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
34744
34745 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34746
34747         * config/arc/predicates.md (move_double_src_operand): Replace the
34748         call to move_double_src_operand with a call to address_operand.
34749
34750 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34751
34752         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
34753         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
34754         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
34755
34756 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34757
34758         * config/arc/predicates.md (long_immediate_loadstore_operand):
34759         Consider scaled addresses cases.
34760
34761 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34762
34763         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
34764         restored when in interrupt.
34765         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
34766         doesn't have delay slot.
34767
34768 2017-03-27  Richard Biener  <rguenther@suse.de>
34769
34770         PR ipa/79776
34771         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
34772         inlined thunk clones.
34773
34774 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34775
34776         PR sanitizer/80168
34777         * asan.c (instrument_derefs): Copy over last operand from
34778         original COMPONENT_REF to the new COMPONENT_REF with
34779         DECL_BIT_FIELD_REPRESENTATIVE.
34780         * ubsan.c (instrument_object_size): Likewise.
34781
34782 2017-03-27  Richard Biener  <rguenther@suse.de>
34783
34784         PR tree-optimization/80170
34785         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
34786         sure DR/SCEV didnt fold in constants we do not see when looking
34787         at the reference base alignment.
34788
34789 2017-03-27  Richard Biener  <rguenther@suse.de>
34790
34791         PR middle-end/80171
34792         * gimple-fold.c (fold_ctor_reference): Properly guard against
34793         NULL return value from canonicalize_constructor_val.
34794
34795 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
34796
34797         PR target/80180
34798         * config/i386/i386.c (ix86_expand_builtin)
34799         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
34800         flags reg setting and flags reg using instructions.
34801         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
34802         clobbering instructions to zero extend op2.
34803
34804 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
34805
34806         * doc/install.texi (Configuration) <--with-aix-soname>:
34807         Update link to AIX ld.
34808
34809 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
34810
34811         PR rtl-optimization/80160
34812         PR rtl-optimization/80159
34813         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
34814         reg_alternate_class into account.
34815
34816 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
34817
34818         PR target/80148
34819         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
34820         to consider in curr_insn_transform.
34821
34822 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34823
34824         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
34825         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
34826         and emit_mode_inner.
34827
34828 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34829
34830         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
34831         argument to the overloaded builtin variants.  Use the new flag to
34832         deprecate certain builtin variants.
34833         * config/s390/s390-builtin-types.def: Add new builtin types.
34834         * config/s390/s390-builtins.h: Support new flags field for
34835         overloaded builtins.
34836         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
34837         (s390_macro_to_expand): Enable vector float data type.
34838         (s390_cpu_cpp_builtins_internal): Indicate support of the new
34839         builtins by incrementing the __VEC__ version number.
34840         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
34841         vec_xst.
34842         (s390_resolve_overloaded_builtin): Emit error messages depending
34843         on the builtin flags.
34844         * config/s390/s390.c (s390_expand_builtin): Support additional
34845         flags argument.  Change error message to match the messages
34846         emitted in s390-c.c.
34847         * config/s390/s390.md: New UNSPEC_* constants.
34848         (op_type): Add new instruction types.
34849         * config/s390/vecintrin.h: Add new builtins and test data class
34850         constants.
34851         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
34852         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
34853         (VEC_INEXACT, VEC_NOINEXACT): New constants.
34854         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
34855         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
34856         ("vec_mergel<mode>"): V_HW -> VEC_HW.
34857
34858         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
34859         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
34860         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
34861         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
34862
34863         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
34864         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
34865         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
34866         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
34867
34868         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
34869         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
34870         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
34871         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
34872         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
34873         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
34874         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
34875
34876         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
34877         ("vec_scatter_element<V_HW_4:mode>_DI")
34878         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
34879         ("vec_fpint<mode>", "vflls")
34880         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
34881         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
34882         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
34883         ("*vec_cmphe<mode>_cc"): ... these.
34884
34885         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
34886         mode constant instead of magic value.
34887
34888 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34889
34890         * config/s390/s390.c (s390_expand_vec_compare): Support other
34891         vector floating point modes than just V2DF.
34892         (s390_expand_vcond): Likewise.
34893         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
34894         (s390_cannot_change_mode_class): Prevent mode changes between TF
34895         and V1TF in vector registers.
34896         * config/s390/s390.md (DF, SF): New mode attributes.
34897         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
34898         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
34899         SFmode support for VRs.
34900         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
34901         vector fp modes.
34902         (VFT, VF_HW): New mode iterators.
34903         (vw, sdx): New mode attributes.
34904         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
34905         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
34906         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
34907         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
34908         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
34909         also the new vector floating point modes.  Renaming to ...
34910
34911         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
34912         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
34913         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
34914         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
34915         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
34916         ("vec_unordered<mode>"): ... these.
34917
34918         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
34919         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
34920         ("*vec_extendv2df"): New insn definitions.
34921
34922 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34923
34924         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
34925         ("mulditi3_2", "*muldi3_sign"): New patterns.
34926         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
34927         rename the pattern definition.
34928
34929 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34930
34931         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
34932         expander.
34933         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
34934
34935 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34936
34937         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
34938         instruction if possible.
34939         * config/s390/vector.md (vec_halfnumelts): New mode
34940         attribute.
34941         ("*vec_vllezlf<mode>"): New pattern.
34942
34943 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34944
34945         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
34946         ("popcountv4si2", "popcountv2di2"): Rename to ...
34947         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
34948         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
34949         condition.
34950         ("popcount<mode>2_vxe"): New pattern.
34951
34952 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34953
34954         * common/config/s390/s390-common.c (processor_flags_table): Add
34955         arch12.
34956         * config.gcc: Add arch12.
34957         * config/s390/driver-native.c (s390_host_detect_local_cpu):
34958         Default to arch12 for unknown CPU model numbers.
34959         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
34960         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
34961         PROCESSOR_max sanity check.
34962         * config/s390/s390-opts.h (enum processor_type): Add
34963         PROCESSOR_ARCH12.
34964         * config/s390/s390.c (processor_table): Add arch12.
34965         (s390_expand_builtin): Add check for B_VXE flag.
34966         (s390_issue_rate): Add PROCESSOR_ARCH12.
34967         (s390_get_sched_attrmask): Likewise.
34968         (s390_get_unit_mask): Likewise.
34969         (s390_sched_score): Enable z13 scheduling for arch12.
34970         (s390_sched_reorder): Likewise.
34971         (s390_sched_variable_issue): Likewise.
34972         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
34973         PF_VXE.
34974         (s390_tune_attr): Use z13 scheduling also for arch12.
34975         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
34976         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
34977         (TARGET_VXE_P): New macros.
34978         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
34979         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
34980         * config/s390/s390.opt: Add arch12 as processor_type.
34981
34982 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34983
34984         * config/s390/s390.md
34985         ("fixuns_truncdddi2", "fixuns_trunctddi2")
34986         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
34987         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
34988
34989         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
34990         Rename expanders to ...
34991
34992         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
34993         ("fixuns_truncdddi2_emu"): ... these.
34994
34995         ("fixuns_trunc<mode>si2_emu"): New expander.
34996
34997         ("*fixuns_truncdfdi2_z13"): Rename to ...
34998         ("*fixuns_truncdfdi2_vx"): ... this.
34999
35000 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35001
35002         * config/s390/2964.md: Remove the single element vector compare
35003         instructions which are no longer used.
35004         * config/s390/s390.c (s390_select_ccmode): Remove handling of
35005         vector CCmodes.
35006         (s390_canonicalize_comparison): Remove handling of DFmode
35007         compares.
35008         (s390_expand_vec_compare_scalar): Remove function.
35009         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
35010         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
35011         pattern.
35012         ("*cmp<mode>_ccs"): Add wfcdb instruction.
35013
35014 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35015
35016         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
35017         FP zero.
35018         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
35019         will anyway by matched by mov<mode>_64dfp.
35020
35021 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35022
35023         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
35024         vlef/vstef.  Add missing operand to vleif.
35025
35026 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35027
35028         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
35029         pair for all vector types with 64 bit elements.
35030         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
35031         * config/s390/vector.md (V_HW_64): ... here.
35032         (V_128_NOSINGLE): New mode iterator.
35033         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
35034         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
35035         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
35036         ("*vec_load_pairv2di"): Change to ...
35037         ("*vec_load_pair<mode>"): ... this one.
35038
35039 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35040
35041         * config/s390/constraints.md: Add comments.
35042         (jKK): Reject element sizes > 8 bytes.
35043         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
35044         s_operands.
35045         * config/s390/s390.md: Add the s_operand checks formerly in
35046         s390_split_ok_p to various splitters where they are still
35047         required.
35048         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
35049         for 128 bit vectors.  Plus two splitters.
35050
35051 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35052
35053         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
35054         the file.
35055
35056 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35057
35058         PR target/79893
35059         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
35060         error if the boundary argument is not constant.
35061
35062 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
35063
35064         PR rtl-optimization/80112
35065         * loop-doloop.c (doloop_condition_get): Don't check condition
35066         if cmp isn't SET with IF_THEN_ELSE src.
35067
35068 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35069
35070         PR tree-optimization/80158
35071         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
35072         replacing a candidate statement, also replace it for the
35073         candidate's alternate interpretation.
35074         (replace_rhs_if_not_dup): Likewise.
35075         (replace_one_candidate): Likewise.
35076
35077 2017-03-24  Richard Biener  <rguenther@suse.de>
35078
35079         PR tree-optimization/80167
35080         * graphite-isl-ast-to-gimple.c
35081         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
35082         properly.
35083         (translate_isl_ast_to_gimple::get_rename): Likewise.
35084
35085 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35086
35087         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
35088         handling of certain combinations of target options, including the
35089         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
35090         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
35091
35092 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35093
35094         PR target/71436
35095         * config/arm/arm.md (*load_multiple): Add reload_completed to
35096         matching condition.
35097
35098 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35099             Richard Biener  <rguenth@suse.de>
35100
35101         PR tree-optimization/79908
35102         PR tree-optimization/80136
35103         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35104         been cast away, gimplify_and_add suffices.
35105
35106 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
35107
35108         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
35109
35110 2017-03-23  Richard Biener  <rguenther@suse.de>
35111
35112         PR tree-optimization/80032
35113         * gimplify.c (gimple_push_cleanup): Forced unconditional
35114         cleanups still have to go to the conditional_cleanups
35115         sequence.
35116
35117 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
35118
35119         PR tree-optimization/80072
35120         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
35121         to unsigned int.
35122         (next_operand_entry_id): Change type to unsigned int.
35123         (sort_by_operand_rank): Make sure to return the right return value
35124         even if unsigned fields are bigger than INT_MAX.
35125         (struct oecount): Change cnt and id type to unsigned int.
35126         (oecount_hasher::equal): Formatting fix.
35127         (oecount_cmp): Make sure to return the right return value
35128         even if unsigned fields are bigger than INT_MAX.
35129         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
35130
35131         PR c++/80129
35132         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
35133         TREE_READONLY on result if writing it more than once.
35134
35135         PR sanitizer/80110
35136         * doc/invoke.texi (-fsanitize=thread): Document that with
35137         -fnon-call-exceptions atomics are not able to throw
35138         exceptions.
35139
35140         PR sanitizer/80110
35141         * tsan.c: Include tree-eh.h.
35142         (instrument_builtin_call): Call maybe_clean_eh_stmt or
35143         maybe_clean_or_replace_eh_stmt where needed.
35144         (instrument_memory_accesses): Add cfg_changed argument.
35145         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
35146         if it returned true.
35147         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
35148
35149         PR rtl-optimization/63191
35150         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
35151         wrapper function, moved the whole old content into ...
35152         (ix86_delegitimize_address_1): ... this.  New inline function.
35153         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
35154         true as last argument instead of ix86_delegitimize_address.
35155
35156 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35157
35158         * config/aarch64/aarch64.c (generic_branch_cost): Copy
35159         cortexa57_branch_cost.
35160
35161 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35162
35163         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
35164
35165 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35166
35167         PR target/80123
35168         * doc/md.texi (Constraints): Document wA constraint.
35169         * config/rs6000/constraints.md (wA): New.
35170         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
35171         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
35172         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
35173         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
35174
35175 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
35176
35177         PR c++/80029
35178         * gimplify.c (is_oacc_declared): New function.
35179         (oacc_default_clause): Use it to set default flags for acc declared
35180         variables inside parallel regions.
35181         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
35182         declared variables.
35183         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
35184         declare attribute to any decl as necessary.
35185
35186 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35187
35188         PR target/80082
35189         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
35190         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
35191         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
35192         (arm_arch_lpae): This.
35193         * config/arm/arm.c (arm_arch7ve): Rename into ...
35194         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
35195         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
35196         arm_arch_lpae.
35197
35198 2017-03-22  Martin Liska  <mliska@suse.cz>
35199
35200         PR target/79906
35201         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
35202         error message instead of an ICE.
35203
35204 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35205
35206         * doc/extend.texi (6.11 Additional Floating Types): Revise.
35207
35208 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35209
35210         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35211         comments.
35212         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
35213         comments.
35214
35215 2017-03-21  Martin Sebor  <msebor@redhat.com>
35216
35217         * doc/extend.texi: Use "cannot" instead of "can't."
35218         * doc/hostconfig.texi: Same.
35219         * doc/install.texi: Same.
35220         * doc/invoke.texi: Same.
35221         * doc/loop.texi: Same.
35222         * doc/md.texi: Same.
35223         * doc/objc.texi: Same.
35224         * doc/rtl.texi: Same.
35225         * doc/tm.texi: Same.
35226         * doc/tm.texi.in: Same.
35227         * doc/trouble.texi: Same.
35228
35229 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
35230
35231         PR debug/63238
35232         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
35233         (collect_checksum_attributes): Set it.
35234         (die_checksum_ordered): Use it.
35235
35236 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35237
35238         PR tree-optimization/79908
35239         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
35240         change: For a VA_ARG whose LHS has been cast away, use
35241         force_gimple_operand to construct the side effects.
35242
35243 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
35244
35245         PR translation/80001
35246         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
35247         more amenable to translation.
35248         (oacc_loop_auto_partitions): Likewise.
35249
35250 2017-03-21  Marek Polacek  <polacek@redhat.com>
35251             Martin Sebor  <msebor@redhat.com>
35252
35253         PR tree-optimization/80109
35254         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
35255         on INTEGRAL_TYPE_P.
35256
35257 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35258             Segher Boessenkool  <segher@kernel.crashing.org>
35259
35260         PR target/80125
35261         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
35262         check reg_used_between_p between insn and one of succ or succ2
35263         depending on if succ is artificial insn not inserted into insn
35264         stream.
35265
35266 2017-03-21  Martin Liska  <mliska@suse.cz>
35267
35268         PR gcov-profile/80081
35269         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
35270         * doc/gcc.texi: Include gcov-dump stuff.
35271         * doc/gcov-dump.texi: New file.
35272
35273 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
35274
35275         PR rtl-optimization/79150
35276         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
35277         conditional jump, if the jump is the last insn of the loop.
35278
35279 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35280             Richard Biener  <rguenth@suse.de>
35281
35282         PR tree-optimization/79908
35283         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35284         been cast away, use force_gimple_operand to construct the side
35285         effects.
35286
35287 2017-03-21  Martin Liska  <mliska@suse.cz>
35288
35289         PR libfortran/79956
35290         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
35291         to NULL.
35292
35293 2017-03-21  Brad Spengler <spender@grsecurity.net>
35294
35295         PR plugins/80094
35296         * plugin.c (htab_hash_plugin): New function.
35297         (add_new_plugin): Use it and adjust.
35298         (parse_plugin_arg_opt): Adjust.
35299         (init_one_plugin): Likewise.
35300
35301 2017-03-21  Richard Biener  <rguenther@suse.de>
35302
35303         PR tree-optimization/80032
35304         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
35305         if set force the cleanup to happen unconditionally.
35306         (gimplify_target_expr): Push inserted clobbers with force_uncond
35307         to avoid them being removed by control-dependent DCE.
35308
35309 2017-03-21  Richard Biener  <rguenther@suse.de>
35310
35311         PR tree-optimization/80122
35312         * tree-inline.c (copy_bb): Do not expans va-arg packs or
35313         va_arg_pack_len when the inlined call stmt requires pack
35314         expansion itself.
35315         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
35316
35317 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35318
35319         PR sanitizer/78158
35320         * tsan.c (instrument_builtin_call): If the memory model argument
35321         is not a constant, assume it is valid.
35322
35323         PR c/67338
35324         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
35325         avoid UB.
35326
35327 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35328
35329         PR rtl-optimization/79910
35330         * combine.c (can_combine_p): Do not allow combining an I0 or I1
35331         if its dest is used by an insn before I2 (other than the combined
35332         insns themselves, which are properly handled already).
35333
35334 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35335
35336         Revert:
35337         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35338
35339         * combine.c (record_used_regs): New static function.
35340         (try_combine): Handle situations where there is an additional
35341         instruction between I2 and I3 which needs to have a LOG_LINK
35342         updated.
35343
35344         Revert:
35345         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35346
35347         * combine.c (try_combine): Delete redundant i1 test.  Call
35348         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35349
35350 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35351
35352         PR target/80083
35353         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
35354         alternatives 13/14.
35355
35356 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35357
35358         PR tree-optimization/80054
35359         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
35360         the optimization if a PHI or any of its arguments is not dominated
35361         by the candidate's basis.  Use gphi* rather than gimple* as
35362         appropriate.
35363         (replace_profitable_candidates): Clean up a gimple* variable that
35364         should be a gphi* variable.
35365
35366 2017-03-20  Martin Sebor  <msebor@redhat.com>
35367
35368         PR c++/52477
35369         * doc/extend.texi (attribute constructor): Document present limitation.
35370
35371 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35372
35373         PR target/79963
35374         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
35375         __POWER9_VECTOR__ #ifdef control, change template definition to
35376         use Power9-specific built-in function.
35377         (vec_any_eq): Likewise.
35378         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
35379         to control outcomes from this test.
35380         (vector_ae_<mode>p): For VEC_F modes, likewise.
35381
35382 2017-03-20  Ian Lance Taylor  <iant@google.com>
35383
35384         * config/i386/i386.c (ix86_function_regparm): Save an extra
35385         register for -fsplit-stack with DECL_STATIC_CHAIN.
35386
35387 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35388
35389         PR target/79912
35390         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
35391         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
35392
35393 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35394
35395         * config/riscv/riscv.c (riscv_print_operand): Use "fence
35396         iorw,ow".
35397         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
35398         iorw,iorw".
35399
35400 2017-03-20  Marek Polacek  <polacek@redhat.com>
35401
35402         PR sanitizer/80063
35403         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
35404
35405 2017-03-20  Richard Biener  <rguenther@suse.de>
35406
35407         PR tree-optimization/80113
35408         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
35409         allocate extra SSA name for PHI def.
35410         (add_close_phis_to_outer_loops): Likewise.
35411         (add_close_phis_to_merge_points): Likewise.
35412         (copy_loop_close_phi_args): Likewise.
35413         (copy_cond_phi_nodes): Likewise.
35414
35415 2017-03-20  Martin Liska  <mliska@suse.cz>
35416
35417         PR middle-end/79753
35418         * tree-chkp.c (chkp_build_returned_bound): Do not build
35419         returned bounds for a LHS that's not a BOUNDED_P type.
35420
35421 2017-03-20  Martin Liska  <mliska@suse.cz>
35422
35423         PR target/79769
35424         PR target/79770
35425         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
35426         COMPLEX_CST and VECTOR_CST.
35427
35428 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35429
35430         PR target/78857
35431         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
35432         target operand.  A new splitter adds the clobber statement in case
35433         the target operand is dead anyway.
35434
35435 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
35436
35437         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
35438         to age-old versions of binutils and glibc.
35439
35440 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
35441
35442         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
35443
35444 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35445
35446         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
35447
35448 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35449
35450         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
35451         requirement for binutils 2.13.
35452
35453 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35454
35455         * combine.c (try_combine): Delete redundant i1 test.  Call
35456         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35457
35458 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
35459
35460         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
35461         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
35462         contents.
35463         <riscv64-*-elf>: Re-arrange section
35464         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
35465         <riscv32-*-linux>: Likewise.
35466         <riscv64-*-elf>: Likewise
35467         <riscv64-*-linux>: Likewise.
35468
35469 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
35470
35471         PR target/80052
35472         * aarch64.opt(verbose-cost-dump): Fix typo.
35473
35474 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
35475
35476         PR target/79951
35477         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
35478         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
35479
35480 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35481
35482         * reload.c (find_reloads): When reloading a nonoffsettable address,
35483         use RELOAD_OTHER for it and its address reloads.
35484
35485         PR rtl-optimization/79910
35486         * combine.c (record_used_regs): New static function.
35487         (try_combine): Handle situations where there is an additional
35488         instruction between I2 and I3 which needs to have a LOG_LINK
35489         updated.
35490
35491 2017-03-17  Jeff Law  <law@redhat.com>
35492
35493         PR tree-optimization/71437
35494         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
35495         conditional in the hash table first.
35496         (vrp_dom_walker::before_dom_children): Extract condition from
35497         ASSERT_EXPR.  Record condition, its inverion and any implied
35498         conditions as well.
35499
35500 2017-03-17  Marek Polacek  <polacek@redhat.com>
35501             Markus Trippelsdorf  <markus@trippelsdorf.de>
35502
35503         PR tree-optimization/80079
35504         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
35505         m_stores_head.
35506
35507 2017-03-17  Richard Biener  <rguenther@suse.de>
35508
35509         PR middle-end/80075
35510         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
35511         Properly verify the LHS before the RHS possibly claims to be
35512         handled.
35513         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
35514         do not throw.
35515
35516 2017-03-17  Martin Jambor  <mjambor@suse.cz>
35517
35518         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
35519         (List of -O2 options): Likewise.
35520         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
35521         (-fipa-vrp) New.
35522
35523 2017-03-17  Tom de Vries  <tom@codesourcery.com>
35524
35525         * gcov-dump.c (print_usage): Print bug_report_url.
35526
35527 2017-03-17  Richard Biener  <rguenther@suse.de>
35528
35529         PR middle-end/80050
35530         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
35531         (parser::peek): Likewise.
35532
35533 2017-03-17  Richard Biener  <rguenther@suse.de>
35534
35535         PR tree-optimization/80048
35536         * sese.c (free_sese_info): Properly release rename_map and
35537         copied_bb_map elements.
35538
35539 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
35540
35541         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
35542         Add linked-list forward and backlinks.  Insert on
35543         construction, remove on destruction.
35544         (class pass_store_merging): Add m_stores_head field.
35545         (pass_store_merging::terminate_and_process_all_chains):
35546         Iterate over m_stores_head list.
35547         (pass_store_merging::terminate_all_aliasing_chains):
35548         Likewise.
35549         (pass_store_merging::execute): Check for debug stmts first.
35550         Push new chains onto the m_stores_head stack.
35551
35552 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35553
35554         PR target/71294
35555         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
35556         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
35557         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
35558
35559 2017-03-16  Jeff Law  <law@redhat.com>
35560
35561         PR tree-optimization/71437
35562         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
35563         member function.  Implementation moved into after_dom_children
35564         member function and into the threader's thread_outgoing_edges
35565         function.
35566         (dom_opt_dom_walker::after_dom_children): Simplify by moving
35567         some code into new thread_outgoing_edges.
35568         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
35569         definition.  Simplify marker handling (do it here).   Assume we always
35570         have the available expression and the const/copies tables.
35571         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
35572         and tree-vrp.c
35573         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
35574         * tree-vrp.c (equiv_stack): No longer file scoped.
35575         (vrp_dom_walker): New class.
35576         (vrp_dom_walker::before_dom_children): New member function.
35577         (vrp_dom_walker::after_dom_children): Likewise.
35578         (identify_jump_threads):  Setup domwalker.  Use it rather than
35579         walking edges in a random order by hand.  Simplify setup/finalization.
35580         (finalize_jump_threads): Remove.
35581         (vrp_finalize): Do not call identify_jump_threads here.
35582         (execute_vrp): Do it here instead and call thread_through_all_blocks
35583         here too.
35584
35585         PR tree-optimization/71437
35586         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
35587         callers changed.
35588         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
35589         callers changed.
35590         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
35591         (dom_opt_dom_walker::thread_across_edge): Remove
35592         handle_dominating_asserts argument.  All callers changed.
35593         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
35594         changes.  Remove calls to lhs_of_dominating_assert.  Other
35595         uses of handle_dominating_asserts turn into unconditional code
35596         (simplify_control_stmt_condition_1): Likewise.
35597         (simplify_control_stmt_condition): Likewise.
35598         (thread_through_normal_block, thread_across_edge): Likewise.
35599         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
35600         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
35601         object if it is not an SSA_NAME.
35602         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
35603         before calling into the VRP specific simplifiers.
35604         (identify_jump_threads): Remove handle_dominating_asserts
35605         argument.
35606
35607 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
35608
35609         PR fortran/79886
35610         * tree-diagnostic.c (default_tree_printer): No longer static.
35611         * tree-diagnostic.h (default_tree_printer): New prototype.
35612
35613 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
35614
35615         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
35616         Change ins into fmov.
35617
35618 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35619
35620         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
35621         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
35622         Use h_con constraint for operand 1.
35623         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
35624         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
35625
35626 2017-03-15  Jeff Law  <law@redhat.com>
35627
35628         PR tree-optimization/71437
35629         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
35630         (record_temporary_equivalences): Use it.
35631
35632         PR tree-optimization/71437
35633         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
35634         tree-ssa-scopedtables.
35635         (lookup_avail_expr, build_and_record_new_cond): Likewise.
35636         (record_conditions, record_cond, vuse_eq): Likewise.
35637         (record_edge_info): Adjust to API tweak of record_conditions.
35638         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
35639         (record_temporary_equivalences, optimize_stmt): Likewise.
35640         (eliminate_redundant_computations): Likewise.
35641         (record_equivalences_from_stmt): Likewise.
35642         * tree-ssa-scopedtables.c: Include options.h and params.h.
35643         (vuse_eq): New function, moved from tree-ssa-dom.c
35644         (build_and_record_new_cond): Likewise.
35645         (record_conditions): Likewise.  Accept vector of conditions rather
35646         than edge_equivalence structure for first argument.
35647         for the first argument.
35648         (avail_exprs_stack::lookup_avail_expr): New member function, moved
35649         from tree-ssa-dom.c.
35650         (avail_exprs_stack::record_cond): Likewise.
35651         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
35652         from tree-ssa-dom.c.
35653         (avail_exprs_stack): Add new member functions lookup_avail_expr
35654         and record_cond.
35655         (record_conditions): Declare.
35656
35657 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
35658
35659         PR target/80017
35660         * lra-constraints.c (process_alt_operands): Increase reject for
35661         reloading an input/output operand.
35662
35663 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35664
35665         PR target/79038
35666         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
35667         insns to convert from signed/unsigned char/short to IEEE 128-bit
35668         floating point.
35669         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
35670
35671 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
35672
35673         PR target/80019
35674         * config/i386/i386.c (ix86_vector_duplicate_value): Create
35675         subreg of inner mode for values already in registers.
35676
35677 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
35678
35679         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
35680         iteration reg is used after the loop.
35681
35682 2017-03-14  Martin Sebor  <msebor@redhat.com>
35683
35684         PR tree-optimization/79800
35685         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
35686         precision in negative-positive range.
35687         (format_floating): Call non-const overload with adjusted precision.
35688
35689 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35690
35691         PR target/79947
35692         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
35693         -mpowerpc-gfxopt.
35694
35695 2017-03-14  Martin Sebor  <msebor@redhat.com>
35696
35697         PR middle-end/80020
35698         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
35699         * builtins.def (aligned_alloc): Use it.
35700
35701         PR c/79936
35702         * Makefile.in (GTFILES): Add calls.c.
35703         * calls.c: Include "gt-calls.h".
35704
35705 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
35706
35707         PR rtl-optimization/79728
35708         * regs.h (struct target_regs): New field
35709         x_contains_allocatable_regs_of_mode.
35710         (contains_allocatable_regs_of_mode): New macro.
35711         * reginfo.c (init_reg_sets_1): Initialize it, and change
35712         contains_reg_of_mode so it includes global regs as well.
35713         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
35714         rather than contains_regs_of_mode.
35715
35716 2017-03-14  Martin Liska  <mliska@suse.cz>
35717
35718         * doc/invoke.texi: Document options that can't be combined with
35719         -fcheck-pointer-bounds.
35720
35721 2017-03-14  Martin Liska  <mliska@suse.cz>
35722
35723         PR middle-end/79831
35724         * doc/invoke.texi (-Wchkp): Document the option.
35725
35726 2017-03-14  Martin Liska  <mliska@suse.cz>
35727
35728         * Makefile.in: Install gcov-dump.
35729
35730 2017-03-14  Martin Liska  <mliska@suse.cz>
35731
35732         * multiple_target.c (expand_target_clones): Bail out for
35733         an invalid attribute.
35734
35735 2017-03-14  Richard Biener  <rguenther@suse.de>
35736
35737         * alias.c (struct alias_set_entry): Pack properly.
35738         * cfgloop.h (struct loop): Likewise.
35739         * cse.c (struct set): Likewise.
35740         * ipa-utils.c (struct searchc_env): Likewise.
35741         * loop-invariant.c (struct invariant): Likewise.
35742         * lra-remat.c (struct cand): Likewise.
35743         * recog.c (struct change_t): Likewise.
35744         * rtl.h (struct address_info): Likewise.
35745         * symbol-summary.h (function_summary): Likewise.
35746         * tree-loop-distribution.c (struct partition): Likewise.
35747         * tree-object-size.c (struct object_size_info): Likewise.
35748         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
35749         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
35750         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
35751         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
35752         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
35753         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
35754         (struct _stmt_vec_info): Likewise.
35755
35756 2017-03-14  Martin Liska  <mliska@suse.cz>
35757
35758         PR target/79892
35759         * multiple_target.c (create_dispatcher_calls): Check that
35760         a target can create a function dispatcher.
35761
35762 2017-03-14  Martin Liska  <mliska@suse.cz>
35763
35764         PR lto/66295
35765         * multiple_target.c (expand_target_clones): Drop local.local
35766         flag for default implementation.
35767
35768 2017-03-14  Richard Biener  <rguenther@suse.de>
35769
35770         PR tree-optimization/80030
35771         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
35772
35773 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
35774
35775         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
35776         gcc_fallthrough() instead of __attribute__((fallthrough));
35777
35778 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35779
35780         * doc/gcc.texi: Remove "up" link to (DIR).
35781         * doc/gccint.texi: Ditto.
35782
35783 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35784
35785         * doc/install.texi (Specific) <avr>: Remove reference to
35786         binutils 2.13.
35787
35788 2017-03-13  Jeff Law  <law@redhat.com>
35789
35790         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
35791         attribute rather than comments.
35792
35793         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
35794         match_scratch operand is highest.
35795
35796 2017-03-13  Martin Liska  <mliska@suse.cz>
35797
35798         PR middle-end/78339
35799         * ipa-pure-const.c (warn_function_noreturn): If the declarations
35800         is a CHKP clone, use original declaration.
35801
35802 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35803
35804         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
35805         (arc_conditional_register_usage): Use a different allocation order
35806         when optimizing for size.
35807         * common/config/arc/arc-common.c (arc_option_optimization_table):
35808         Section anchors default on when optimizing for size.
35809
35810 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35811
35812         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
35813
35814 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35815
35816         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
35817         * config/arc/arc.md (cpu_facility): Add cd variant.
35818         (*movqi_insn): Add code density variant.
35819         (*movhi_insn): Likewise.
35820         (*movqi_insn): Likewise.
35821         (*addsi3_mixed): Likewise.
35822         (subsi3_insn): Likewise.
35823
35824 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35825
35826         * config/arc/arc.md (movsi_cond_exec): Update constraint.
35827
35828 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35829
35830         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
35831         expressions with MINUS and UNARY ops.
35832
35833 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35834
35835         PR target/79911
35836         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
35837         Rename to...
35838         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
35839         between vec_select and vector argument.
35840         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
35841         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
35842         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
35843         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
35844         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
35845         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
35846
35847 2017-03-13  Richard Biener  <rguenther@suse.de>
35848
35849         PR other/79991
35850         * params.def (vect-max-peeling-for-alignment): Fix typo.
35851
35852 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35853
35854         * doc/install.texi (Specific) <mips-*-*>: Remove description of
35855         issue that only occurred with binutils below 2.18.
35856
35857 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35858
35859         * doc/install.texi (Specific) <cris-axis-elf>: No longer
35860         refer to binutils 2.11/2.12 minimum.
35861
35862 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35863
35864         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
35865         ftp.kernel.org and simplify binutils requirement.
35866
35867 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
35868
35869         * doc/invoke.texi (Warning Options): Fix spelling of link-time
35870         optimization.
35871         (Optimize Options): Ditto.  Also remove redundancy.
35872
35873 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35874
35875         PR translation/79848
35876         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
35877         "%qs".
35878         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
35879         to G_ to avoid double translation.
35880
35881 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35882
35883         PR translation/79923
35884         * auto-profile.c (get_combined_location): Convert leading
35885         character of diagnostics to lower case and remove trailing period.
35886         (read_profile): Likewise for various diagnostics.
35887         * config/arm/arm.c (arm_option_override): Remove trailing period
35888         from various diagnostics.
35889         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
35890         (msp430_expand_delay_cycles): Likewise.
35891
35892 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35893
35894         PR target/79925
35895         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
35896         full command-line argument, rather than just "str".
35897         (aarch64_validate_march): Likewise.
35898         (aarch64_validate_mtune): Likewise.
35899
35900 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
35901
35902         PR rtl-optimization/78911
35903         * lra-assigns.c (must_not_spill_p): New function.
35904         (spill_for): Use it.
35905
35906 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35907
35908         PR tree-optimization/79981
35909         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
35910         ATOMIC_COMPARE_EXCHANGE ifn result.
35911         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
35912         IFN_ATOMIC_COMPARE_EXCHANGE.
35913
35914 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35915
35916         PR driver/79875
35917         * opts.c (parse_sanitizer_options): Add missing question mark to
35918         "did you mean" message.
35919
35920 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35921
35922         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
35923         built-in.
35924         (VMULEUH_UNS): Likewise.
35925         (VMULOUB_UNS): Likewise.
35926         (VMULOUH_UNS): Likewise.
35927         * config/rs6000/rs6000.c (builtin_function_type): Remove
35928         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
35929
35930 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
35931
35932         PR bootstrap/79952
35933         * read-rtl-function.c (function_reader::read_rtx_operand): Update
35934         x with result of extra_parsing_for_operand_code_0.
35935         (function_reader::extra_parsing_for_operand_code_0): Convert
35936         return type from void to rtx, returning x.  When reading
35937         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
35938         larger size containing struct block_symbol.
35939
35940 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
35941
35942         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
35943         -mfloat128-hardware without -m64.
35944
35945 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
35946
35947         PR target/79941
35948         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
35949         entries to the case statement that marks unsigned arguments to
35950         overloaded functions.
35951
35952 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35953
35954         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
35955         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
35956
35957 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
35958
35959         PR target/79907
35960         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
35961         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
35962
35963 2017-03-10  Martin Liska  <mliska@suse.cz>
35964
35965         PR target/65705
35966         PR target/69804
35967         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
35968         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
35969         FIELD != NULL.
35970
35971 2017-03-10  Olivier Hainque  <hainque@adacore.com>
35972
35973         * tree-switch-conversion (array_value_type): Start by resetting
35974         candidate type to it's main variant.
35975
35976 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
35977
35978         PR rtl-optimization/79909
35979         * combine.c (try_combine): Use simplify_replace_rtx on individual
35980         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
35981         of the whole CALL_INSN_FUNCTION_USAGE.
35982
35983         PR tree-optimization/79972
35984         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
35985         get_range_info on SSA_NAMEs.  Formatting fixes.
35986
35987 2017-03-10  Richard Biener  <rguenther@suse.de>
35988             Jakub Jelinek  <jakub@redhat.com>
35989
35990         PR tree-optimization/77975
35991         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
35992         edge to be constant.
35993         (get_val_for): For constant x return it.  Formatting fix.
35994         (loop_niter_by_eval): Avoid pointless looping if the next iteration
35995         would use the same bases as the current one.
35996
35997 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35998
35999         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
36000         instead of vec_select for V1TImode.
36001         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
36002         longer needed.
36003         (VSX_LE_128): Add V1TI to this mode iterator.
36004         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
36005         (*vsx_le_perm_store_<mode>): Likewise.
36006         (pre-reload splitter for VSX stores): Likewise.
36007         (post-reload splitter for VSX stores): Likewise.
36008         (*vsx_xxpermdi2_le_<mode>): Likewise.
36009         (*vsx_lxvd2x2_le_<mode>): Likewise.
36010         (*vsx_stxvd2x2_le_<mode>): Likewise.
36011
36012 2017-03-09  Michael Eager  <eager@eagercon.com>
36013
36014         Correct failures with --enable-checking=yes,rtl.
36015
36016         * config/microblaze/microblaze.c (microblaze_expand_shift):
36017         Replace GET_CODE test with CONST_INT_P and INTVAL test with
36018         test for const0_rtx.
36019         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
36020         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
36021
36022 2017-03-09  Richard Biener  <rguenther@suse.de>
36023
36024         PR tree-optimization/79977
36025         * graphite-scop-detection.c (scop_detection::merge_sese):
36026         Handle the case of extra exits to blocks dominating the entry.
36027
36028 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
36029
36030         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
36031         Document rdynamic.
36032
36033 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
36034
36035         PR rtl-optimization/79949
36036         * lra-constraints.c (process_alt_operands): Check memory when
36037         trying to predict a cycle.  Print about the overall increase.
36038
36039 2017-03-09  Richard Biener  <rguenther@suse.de>
36040
36041         PR middle-end/79971
36042         * gimple-expr.c (useless_type_conversion_p): Preserve
36043         TYPE_SATURATING for fixed-point types.
36044
36045 2017-03-09  Richard Biener  <rguenther@suse.de>
36046
36047         PR ipa/79970
36048         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
36049         alignment of BLKmode params.
36050
36051 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36052
36053         PR target/79913
36054         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
36055         (VALL_NO_V2Q): Likewise.
36056         (VDQF_DF): Delete.
36057         * config/aarch64/aarch64-simd.md
36058         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
36059         iterator.
36060         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
36061         VALL_NO_V2Q mode iterator.
36062         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
36063
36064 2017-03-09  Martin Liska  <mliska@suse.cz>
36065
36066         PR tree-optimization/79631
36067         * tree-chkp-opt.c (chkp_is_constant_addr): Call
36068         tree_int_cst_sign_bit just for INTEGER constants.
36069
36070 2017-03-09  Martin Liska  <mliska@suse.cz>
36071
36072         PR target/65705
36073         PR target/69804
36074         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
36075         sanitizers.
36076
36077 2017-03-09  Marek Polacek  <polacek@redhat.com>
36078
36079         PR c++/79672
36080         * tree.c (inchash::add_expr): Handle TREE_VEC.
36081
36082 2017-03-09  Martin Liska  <mliska@suse.cz>
36083
36084         PR ipa/79764
36085         (chkp_narrow_size_and_offset): New function.
36086         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
36087         (void chkp_parse_bit_field_ref): New function.
36088         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
36089         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
36090
36091 2017-03-09  Martin Liska  <mliska@suse.cz>
36092
36093         PR ipa/79761
36094         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
36095         (chkp_find_bounds_1): Remove gcc_unreachable.
36096
36097 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
36098
36099         PR sanitizer/79944
36100         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
36101         BUILT_IN_SYNC*, determine the access type from the size suffix and
36102         always build a MEM_REF with that type.  Handle forgotten
36103         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
36104
36105         PR target/79932
36106         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
36107         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
36108         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
36109         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
36110         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
36111         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
36112         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
36113         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
36114         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
36115         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
36116         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
36117         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
36118         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
36119         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
36120         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
36121         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
36122         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
36123         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
36124         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
36125         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
36126         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
36127         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
36128         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
36129         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
36130         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
36131         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
36132         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
36133         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
36134         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
36135         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
36136         definitions outside of __OPTIMIZE__ guarded section.
36137
36138         PR target/79932
36139         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
36140         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
36141         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
36142         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
36143         guarded section.
36144
36145 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36146
36147         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
36148         ("vfenez<mode>"): Add missing constraints.
36149
36150 2017-03-08  Martin Sebor  <msebor@redhat.com>
36151
36152         PR target/79928
36153         * config/nds32/nds32.c (nds32_option_override):
36154         Fix misspelled diagnostic.
36155
36156 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36157
36158         PR c/79940
36159         * gimplify.c (gimplify_omp_for): Replace index var in outer
36160         taskloop statement with an artificial variable and add
36161         OMP_CLAUSE_PRIVATE clause for it.
36162
36163 2017-03-08  Richard Biener  <rguenther@suse.de>
36164
36165         PR tree-optimization/79955
36166         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
36167         for accesses that are completely outside of the variable.
36168
36169 2017-03-08  Andrew Haley  <aph@redhat.com>
36170
36171         PR tree-optimization/79943
36172         * tree-ssa-loop-split.c (compute_new_first_bound): When
36173         calculating the new upper bound, (END-BEG) should be added, not
36174         subtracted.
36175
36176 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36177
36178         * config/avr/avr.md (setmemhi): Make sure match_dup
36179         operand number comes before match_scratch.
36180
36181 2017-03-08  Richard Biener  <rguenther@suse.de>
36182
36183         PR tree-optimization/79920
36184         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
36185         with ncopies == 1 to ...
36186         (vect_transform_slp_perm_load): ... here.  Properly compute
36187         all element loads by iterating VF times over the group.  Do
36188         not handle ncopies (computed in a broken way) in
36189         vect_create_mask_and_perm.
36190
36191 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36192
36193         PR sanitizer/79904
36194         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
36195         is a uniform vector, use uniform_vector_p return value instead of
36196         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
36197
36198 2017-03-07  Marek Polacek  <polacek@redhat.com>
36199
36200         PR middle-end/79809
36201         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
36202         (alloca_call_type): Likewise.
36203
36204 2017-03-07  Martin Liska  <mliska@suse.cz>
36205
36206         * gcov.c (process_args): Put comment to correct location.
36207
36208 2017-03-07  Martin Liska  <mliska@suse.cz>
36209
36210         PR middle-end/68270
36211         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
36212         Use array_at_struct_end_p instead of DECL_CHAIN (field).
36213         (chkp_narrow_bounds_for_field): Likewise.
36214         (chkp_parse_array_and_component_ref): Pass one more argument to
36215         call.
36216
36217 2017-03-07  Richard Biener  <rguenther@suse.de>
36218
36219         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
36220         preheaders.
36221
36222 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
36223
36224         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
36225         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
36226
36227 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36228
36229         PR c/79855
36230         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
36231         to end of description.
36232         (PARAM_MAX_STORES_TO_MERGE): Likewise.
36233
36234 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
36235
36236         PR rtl-optimization/79901
36237         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
36238         ...
36239         (*avx512f_<code><mode>3<mask_name>): ... this.
36240         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
36241         iterator instead of VI8_AVX2_AVX512BW.
36242
36243         PR rtl-optimization/79901
36244         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
36245         min/max expander, expand it using expand_vec_cond_expr.
36246
36247         PR sanitizer/79897
36248         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
36249         temporary.
36250
36251 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36252
36253         PR c++/79821
36254         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
36255         to void * for PCH reasons.
36256         * dwarf2out.c (output_loc_operands, output_die): Cast
36257         v.val_vec.array to unsigned char *.
36258
36259 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
36260
36261         PR target/77850
36262         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
36263         vector types.
36264
36265 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
36266
36267         PR rtl-optimization/79571
36268         * lra-constraints.c (process_alt_operands): Calculate static
36269         reject and subtract it from overall when only addresses will be
36270         reloaded.
36271
36272 2017-03-06  Julia Koval  <julia.koval@intel.com>
36273
36274         PR target/79793
36275         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
36276         incoming stack boundary to 128 for 64-bit targets.
36277
36278 2017-03-06  Richard Biener  <rguenther@suse.de>
36279
36280         PR tree-optimization/79894
36281         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
36282         to NULL after folding it.
36283
36284 2017-03-06  Richard Biener  <rguenther@suse.de>
36285
36286         PR tree-optimization/79824
36287         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
36288         check disabling peeling for gaps.
36289
36290 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
36291
36292         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
36293         attributes): Document gettimeofday.
36294
36295 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36296
36297         * config/s390/s390.c (s390_option_override_internal): Set
36298         PARAM_MIN_VECT_LOOP_BOUND
36299
36300 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36301
36302         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
36303         * config/s390/s390.md: Likewise.
36304
36305 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36306
36307         PR target/79812
36308         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
36309         (<avx2_avx512>_perm<mode>): Rename to ...
36310         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
36311         of VI8F_256_512.
36312         (<avx512>_perm<mode>_mask): Rename to ...
36313         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
36314         of VI8F_256_512.
36315         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
36316         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
36317         instead of VI8F_256_512.
36318         (avx512f_perm<mode>): New define_expand.
36319         (avx512f_perm<mode>_mask): Likewise.
36320         (avx512f_perm<mode>_1<mask_name>): New define_insn.
36321         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
36322
36323 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36324
36325         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
36326         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
36327         if_then_else.
36328         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
36329
36330 2017-03-06  Martin Liska  <mliska@suse.cz>
36331
36332         PR sanitize/79783
36333         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
36334         when having a SSA NAME w/o VAR_DECL assigned to it.
36335
36336 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36337
36338         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
36339         msa_dpsub_<su>_d): Fix MODE for vec_select.
36340
36341 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36342
36343         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
36344         argument.
36345         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
36346
36347 2017-03-06  Richard Biener  <rguenther@suse.de>
36348
36349         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
36350         * plugin.c (register_plugin_info): Likewise.
36351         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
36352
36353 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
36354
36355         * config/i386/sse.md (sse_storehps, sse_storelps,
36356         avx_<castmode><avxsizesuffix>_<castmode>,
36357         avx512f_<castmode><avxsizesuffix>_<castmode>,
36358         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
36359         in condition that at least one operand is not a MEM.
36360
36361 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36362
36363         PR middle-end/79805
36364         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
36365         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
36366         ECF_NOTHROW.
36367         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
36368         gimple_call_nothrow_p flag based on whether original builtin can throw.
36369         If it can, emit following stmts on the fallthrough edge.
36370         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
36371         don't create new bb if inserting just debug stmts on the edge, try to
36372         insert them on the fallthru bb or just reset debug stmts.
36373
36374 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
36375
36376         PR target/43763
36377         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
36378         restore recog_data (including the operand rtxes inside it) around
36379         the call to get_insn_template.
36380
36381 2017-03-03  Martin Sebor  <msebor@redhat.com>
36382
36383         PR tree-optimization/79699
36384         * context.c (context::~context): Free MPFR caches to avoid
36385         a memory leak on program exit.
36386
36387 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36388
36389         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
36390         Use wide_int::ulow () instead of .elt (0).
36391
36392 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36393
36394         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
36395         (*pushxf): Limit oF constraint to 32bit targets and add oC
36396         constraint for 64bit targets.
36397         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
36398         (*pushdf): Change rmF constraint to rmC.
36399
36400 2017-03-03  Martin Liska  <mliska@suse.cz>
36401
36402         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
36403         Remove unused variable.
36404
36405 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36406
36407         PR target/79807
36408         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
36409         is a memory operand, increase num_memory.
36410         (ix86_expand_args_builtin): Likewise.
36411
36412 2017-03-03  Jan Hubicka  <jh@suse.cz>
36413
36414         PR lto/79760
36415         * ipa-devirt.c (maybe_record_node): Properly handle
36416         __cxa_pure_virtual visibility.
36417
36418 2017-03-03  Martin Liska  <mliska@suse.cz>
36419
36420         PR tree-optimization/79803
36421         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
36422         assert.
36423         (pass_loop_prefetch::execute): Disabled optimization if an
36424         assumption about L1 cache size is not met.
36425
36426 2017-03-03  Martin Liska  <mliska@suse.cz>
36427
36428         PR rtl-optimization/79574
36429         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
36430         (hash_scan_set): Likewise.
36431         (dump_hash_table): Likewise.
36432         (hoist_code): Likewise.
36433
36434 2017-03-03  Richard Biener  <rguenther@suse.de>
36435
36436         * fixed-value.c (fixed_from_string): Restore use of elt (1)
36437         in place of uhigh ().
36438         (fixed_convert_from_real): Likewise.
36439
36440 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36441
36442         PR target/79514
36443         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
36444
36445 2017-03-03  Richard Biener  <rguenther@suse.de>
36446
36447         PR middle-end/79818
36448         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
36449         TYPE_OVERFLOW_UNDEFINED check.
36450
36451 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36452
36453         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
36454         numbers.
36455         (vector_ae_<mode>_p): Likewise.
36456         (vector_nez_<mode>_p): Likewise.
36457         (vector_ne_v2di_p): Likewise.
36458         (vector_ae_v2di_p): Likewise.
36459         (vector_ne_<mode>_p): Likewise.
36460         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
36461         numbers.
36462         (vsx_tsqrt<mode>2_fe): Likewise.
36463
36464 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
36465
36466         PR target/79514
36467         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
36468
36469 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36470
36471         PR rtl-optimization/79780
36472         * cprop.c (one_cprop_pass): When second and further conditional trap
36473         in a single basic block is turned into an unconditional trap, turn it
36474         into a deleted note to avoid RTL verification failures.
36475
36476 2017-03-02  Richard Biener  <rguenther@suse.de>
36477
36478         * fold-const.c (const_binop): Use ulow () instead of elt (0).
36479
36480 2017-03-02  Richard Biener  <rguenther@suse.de>
36481
36482         PR tree-optimization/79345
36483         PR c++/42000
36484         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
36485         param and abort the walk, returning -1 if it is hit.
36486         (walk_aliased_vdefs): Take a limit param and pass it on.
36487         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
36488         defaulting to 0 and return a signed int.
36489         * tree-ssa-uninit.c (struct check_defs_data): New struct.
36490         (check_defs): New helper.
36491         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
36492         about uninitialized memory.
36493         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
36494         bogus uninitialized warning.
36495         (fixed_convert_from_real): Likewise.
36496
36497 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
36498
36499         PR tree-optimization/66768
36500         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
36501         iv_use if base object can't be determined.
36502
36503 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36504
36505         PR tree-optimization/79345
36506         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
36507         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
36508         (get_pattern_stats): Initialize it.
36509         * genemit.c (gen_expand): Verify match_scratch numbers come after
36510         match_operand/match_dup numbers.
36511         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
36512         match_scratch numbers.
36513         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
36514         Likewise.
36515         * config/s390/s390.md (trunctdsd2): Likewise.
36516
36517 2017-03-02  Richard Biener  <rguenther@suse.de>
36518
36519         * wide-int.h (wide_int_storage::operator=): Implement in terms
36520         of wi::copy.
36521
36522 2017-03-02  Richard Biener  <rguenther@suse.de>
36523
36524         PR tree-optimization/79777
36525         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
36526         the to insert expression to sth existing.
36527
36528 2017-03-01  Martin Sebor  <msebor@redhat.com>
36529
36530         PR middle-end/79692
36531         * gimple-ssa-sprintf.c
36532         (directive::known_width_and_precision): New function.
36533         (format_integer): Use it.
36534         (get_mpfr_format_length): Consider the full range of precision
36535         when computing %g output with the # flag.  Set the likely byte
36536         count to 3 rather than 1 when precision is indeterminate.
36537         (format_floating): Correct the lower bound of precision.
36538
36539 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36540
36541         * doc/invoke.texi: Document default code model for 64-bit Linux.
36542
36543 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36544
36545         PR target/79752
36546         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
36547         udiv rather than div since input pattern is unsigned.
36548
36549 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
36550
36551         * config/i386/i386.c (print_reg): Warn for values of
36552         unsupported size in integer register.
36553
36554 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
36555
36556         PR target/79439
36557         * config/rs6000/predicates.md (current_file_function_operand): Do
36558         not allow self calls to be local if the function is replaceable.
36559
36560 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
36561
36562         PR target/79395
36563         * config/rs6000/altivec.h (vec_ctz and others): Change the
36564         preprocessor macro that controls conditional compilation from
36565         _ARCH_PWR9 to __POWER9_VECTOR__.
36566         (vec_all_ne): Change parameterization of __altivec_scalar_pred
36567         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
36568         control (instead of _ARCH_PWR9 control) so that template
36569         definition uses power9-specific function.
36570         (vec_any_eq): Likewise.
36571         (vec_all_ne): Change macro definition to use a power9-specific
36572         expansion under #ifdef __POWER9_VECTOR__ control (instead of
36573         _ARCH_PWR9 control).
36574         (vec_any_eq) Likewise.
36575         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
36576         expansion for CMPNEF to remove support for xvcmpnesp instruction.
36577         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
36578         support for xvcmpnedp instruction.
36579         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
36580         macro expansion so that Power9 implementation of vec_all_ne does
36581         not use the AltiVec predicate framework.
36582         (VCMPNEH_P): Likewise.
36583         (VCMPNEW_P): Likewise.
36584         (VCMPNED_P): Likewise.
36585         (VCMPNEFP_P): Likewise.
36586         (VCMPNEDP_P): Likewise.
36587         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
36588         implementation of vec_any_eq to not use AltiVec predicate
36589         framework.
36590         (VCMPAEH_P): Likewise.
36591         (VCMPAEW_P): Likewise.
36592         (VCMPAED_P): Likewise.
36593         (VCMPAEFP_P): Likewise.
36594         (VCMPAEDP_P): Likewise.
36595         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
36596         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
36597         not use the AltiVec predicate framework.
36598         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
36599         of vec_any_eq to not use AltiVec predicate framework.
36600         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
36601         support for predefined __POWER9_VECTOR__ macro to indicate that
36602         Power9 instruction selection is enabled.
36603         (altivec_overloaded_builtins): Remove extraneous
36604         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
36605         function argument types RS6000_BTI_bool_V16QI and
36606         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
36607         entry for overloaded function argument types RS6000_BTI_bool_V4SI
36608         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
36609         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
36610         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
36611         Power9 for implementations of vec_cmpne.  Change the signature for
36612         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
36613         (representing vec_all_ne) to remove the previously described first
36614         argument of type RS6000_BTI_INTSI, as this was an artifact of
36615         reliance on the AltiVec predicate framework, which is no longer
36616         used in the implementation of these functions.  Add
36617         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
36618         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
36619         since, unlike the AltiVec predicate framework implementation, we
36620         do not share function descriptors between vec_alle and vec_anyeq.
36621         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
36622         set of modes that receive special treatment even when
36623         TARGET_P9_VECTOR is true.  The special treatment emits code that
36624         does not depend on Power9 instructions.
36625         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
36626         define_expand to not rely on AltiVec predicate framework.
36627         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36628         function.
36629         (vector_ne_v2di_p): Change this define_expand to not rely on
36630         AltiVec predicate framework.
36631         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
36632         function.
36633         (vector_ne_<mode>_p): Change this define_expand to not rely on
36634         AltiVec predicate framework.
36635         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36636         function.
36637         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
36638         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
36639         define_insn pattern.
36640         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
36641         define_insn pattern because the xvcmpne<VSs>. instruction is not
36642         supported.
36643         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
36644         instruction is not supported.
36645
36646 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36647
36648         * config/nvptx/nvptx.c: Include intl.h.
36649
36650 2017-03-01  Martin Jambor  <mjambor@suse.cz>
36651
36652         PR lto/78140
36653         * ipa-prop.h (ipa_bits): Removed field known.
36654         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
36655         to pointers.  Adjusted their comments to warn about their sharing.
36656         (ipcp_transformation_summary): Change bits to a vector of pointers.
36657         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
36658         (ipa_get_ipa_bits_for_value): Declare.
36659         * tree-vrp.h (value_range): Mark as GTY((for_user)).
36660         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
36661         (ipa_bits_hash_table): Likewise.
36662         (ipa_vr_ggc_hash_traits): Likewise.
36663         (ipa_vr_hash_table): Likewise.
36664         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
36665         being pointers and vr_known being removed.
36666         (ipa_set_jf_unknown): Likewise.
36667         (ipa_get_ipa_bits_for_value): New function.
36668         (ipa_set_jfunc_bits): Likewise.
36669         (ipa_get_value_range): New overloaded functions.
36670         (ipa_set_jfunc_vr): Likewise.
36671         (ipa_compute_jump_functions_for_edge): Use the above functions to
36672         construct bits and vr parts of jump functions.
36673         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
36674         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36675         exist.
36676         (ipcp_grow_transformations_if_necessary): Also allocate
36677         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36678         exist.
36679         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
36680         them.  Fix too long lines.
36681         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
36682         vr_known being removed.
36683         (ipa_read_jump_function): Use new setter functions to construct bits
36684         and vr parts of jump functions or set them to NULL.
36685         (write_ipcp_transformation_info): Adjust for bits being pointers.
36686         (read_ipcp_transformation_info): Likewise.
36687         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
36688         space.
36689         Include gt-ipa-prop.h.
36690         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
36691         being pointers.
36692         (ipcp_store_bits_results): Likewise.
36693         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
36694         Do not write to existing jump functions but use a temporary instead.
36695
36696 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36697
36698         PR c++/79681
36699         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
36700         attempt to use its first operand as BIT_FIELD_REF base.
36701
36702 2017-03-01  Richard Biener  <rguenther@suse.de>
36703
36704         PR middle-end/79721
36705         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
36706         interpolating formula in wrapping arithmetic.
36707         (chrec_apply): Convert chrec_evaluate return value to wanted type.
36708
36709 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36710
36711         PR tree-optimization/79734
36712         * tree-vect-generic.c (expand_vector_condition): Optimize
36713         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
36714         Handle VEC_COND_EXPR where comparison has different inner width from
36715         type's inner width.
36716
36717 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
36718
36719         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
36720         markup, and similar issues.  Remove @opindex entries for things
36721         that aren't options.  Add missing -mmpy-option entries.
36722
36723 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36724
36725         PR tree-optimization/79737
36726         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
36727         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
36728         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
36729         instead of byte_size.  Formatting fix.
36730         (shift_bytes_in_array_right): Formatting fix.
36731
36732 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
36733
36734         PR target/79749
36735         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
36736         condition on optimize for the leaf function test.
36737
36738 2017-02-28  Martin Liska  <mliska@suse.cz>
36739
36740         PR lto/79625
36741         * read-rtl-function.c (function_reader::handle_unknown_directive):
36742         Bail out when one uses -flto.
36743
36744 2017-02-28  Martin Liska  <mliska@suse.cz>
36745
36746         * common.opt: Replace space with tabular for options of <number>
36747         type.
36748         * config/i386/i386.opt: Show <number> value for
36749         -mlarge-data-threshold.
36750         * opts.c (print_filtered_help): Do not display number in hexadecimal
36751         format.
36752
36753 2017-02-28  Martin Liska  <mliska@suse.cz>
36754
36755         * common.opt: Fix --help=option -Q for options which are of
36756         an enum type.
36757
36758 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
36759
36760         * config/i386/i386.c (print_reg): Error out for values
36761         of 8-bit size in invalid integer register.
36762
36763 2017-02-28  Martin Sebor  <msebor@redhat.com>
36764
36765         PR tree-optimization/79691
36766         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
36767
36768 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36769
36770         PR target/79729
36771         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
36772         gcc_unreachable with output_operand_lossage.
36773
36774 2017-02-28  Richard Biener  <rguenther@suse.de>
36775
36776         PR tree-optimization/79740
36777         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
36778         inserts.
36779         (visit_nary_op): Insert the nary into the hashtable if we
36780         pattern-matched sth.
36781         * tree-ssa-pre.c (eliminate_insert): Robustify.
36782
36783 2017-02-28  Richard Biener  <rguenther@suse.de>
36784
36785         PR middle-end/79731
36786         * fold-const.c (decode_field_reference): Reject out-of-bound
36787         accesses.
36788
36789 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36790
36791         * config/i386/i386.c: Include intl.h.
36792         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
36793         instead of just cond ? "..." : "...".
36794         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
36795         * coverage.c (read_counts_file): Likewise.
36796         * omp-offload.c: Include intl.h.
36797         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
36798         of just cond ? "..." : "...".
36799         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
36800         of just cond ? "..." : "...".
36801
36802 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
36803
36804         PR target/79742
36805         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
36806         entry, if present.
36807         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
36808         'tune for' CPU name.
36809         * config/arm/arm-cpu-data.h: Regenerated.
36810
36811 2017-02-28  Richard Biener  <rguenther@suse.de>
36812
36813         PR tree-optimization/79732
36814         * tree-inline.c (expand_call_inline): Do not shadow var.
36815
36816 2017-02-28  Richard Biener  <rguenther@suse.de>
36817
36818         PR tree-optimization/79723
36819         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
36820         address-space properly.
36821
36822 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
36823
36824         * doc/optinfo.texi (Optimization groups): Fix option used for
36825         OPTGROUP_ALL.
36826         * doc/invoke.texi (-fopt-info): Document "omp".
36827         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
36828         (OPTGROUP_ALL): Add OPTGROUP_OMP.
36829         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
36830         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
36831         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
36832
36833         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
36834         all users.
36835         * dumpfile.c (optgroup_options): Instead of "openmp", associate
36836         OPTGROUP_OMP with "omp".
36837
36838 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
36839
36840         PR target/79544
36841         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
36842         for arithmetic shift of unsigned V2DI.
36843
36844 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
36845
36846         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
36847         arc/linux.h headers.
36848         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
36849         (LINK_SPEC): Likewise.
36850         (ARC_TLS_EXTRA_START_SPEC): Likewise.
36851         (EXTRA_SPECS): Likewise.
36852         (STARTFILE_SPEC): Likewise.
36853         (ENDFILE_SPEC): Likewise.
36854         (LIB_SPEC): Likewise.
36855         (TARGET_SDATA_DEFAULT): Likewise.
36856         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
36857         (MULTILIB_DEFAULTS): Likewise.
36858         (DWARF2_UNWIND_INFO): Likewise.
36859         * config/arc/big.h: New file.
36860         * config/arc/elf.h: Likewise.
36861         * config/arc/linux.h: Likewise.
36862         * config/arc/t-uClibc: Remove.
36863
36864 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
36865
36866         PR tree-optimization/77536
36867         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
36868         (tree_transform_and_unroll_loop): Use above function to compute the
36869         estimated niter of unrolled loop and use it when scaling profile.
36870         Also use count info rather than frequency if it's non-zero.
36871         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
36872         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
36873         (vect_transform_loop): Call above function.
36874
36875 2017-02-27  Richard Biener  <rguenther@suse.de>
36876
36877         PR tree-optimization/45397
36878         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
36879         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
36880         (visit_nary_op): Add pattern matching for CSEing sign-changed
36881         or truncated operations with wider ones.
36882
36883 2017-02-27  Richard Biener  <rguenther@suse.de>
36884
36885         PR tree-optimization/79690
36886         * tree-vect-stmts.c (vectorizable_store): Use vector type
36887         built from the DR with address-space.
36888
36889 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
36890
36891         * doc/invoke.texi (Optimize Options): Refine the description
36892         of asan-use-after-return.
36893
36894 2017-02-25  Alan Modra  <amodra@gmail.com>
36895
36896         PR rtl-optimization/79584
36897         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
36898         base, not ad->base_term, the reg within base.  Remove assertion
36899         that ad->base == ad->base_term.  Replace gen_int_mode using
36900         bogus mode with const0_rtx.
36901
36902 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
36903
36904         PR middle-end/79396
36905         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
36906         FMA_EXPR like tcc_binary or tcc_unary.
36907
36908         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
36909
36910         PR debug/77589
36911         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
36912         bitfield.
36913         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
36914         (output_loc_operands): Handle DW_OP_call_ref and
36915         DW_OP_GNU_variable_value.
36916         (struct variable_value_struct): New type.
36917         (struct variable_value_hasher): Likewise.
36918         (variable_value_hash): New variable.
36919         (string_types): Remove.
36920         (copy_loc_descr): New function.
36921         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
36922         (prepend_loc_descr_to_each): New function.
36923         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
36924         instead of add_loc_descr_to_each if the first argument is single
36925         location list and the second has multiple.
36926         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
36927         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
36928         when looking for variable value which doesn't have other location info.
36929         (loc_list_from_tree): Formatting fix.
36930         (gen_array_type_die): Simplify DW_AT_string_length handling.
36931         (adjust_string_types): Remove.
36932         (gen_subprogram_die): Don't call adjust_string_types nor test/set
36933         string_types.  Call resolve_variable_values.
36934         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
36935         (resolve_addr_in_expr): Likewise.  Add A argument.
36936         (copy_deref_exprloc): Remove deref argument.  Adjust for the
36937         original expression being DW_OP_GNU_variable_value with optionally
36938         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
36939         optionally after it.
36940         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
36941         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
36942         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
36943         (variable_value_hasher::hash, variable_value_hasher::equal): New
36944         methods.
36945         (resolve_variable_value_in_expr, resolve_variable_value,
36946         resolve_variable_values, note_variable_value_in_expr,
36947         note_variable_value): New functions.
36948         (dwarf2out_early_finish): Call note_variable_value on all toplevel
36949         DIEs.
36950
36951 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
36952
36953         PR c/79677
36954         * opts.h (handle_generated_option): Add GENERATED_P argument.
36955         * opts-common.c (handle_option): Adjust function comment.
36956         (handle_generated_option): Add GENERATED_P argument, pass it to
36957         handle_option.
36958         (control_warning_option): Pass false to handle_generated_option
36959         GENERATED_P.
36960         * opts.c (maybe_default_option): Pass true to handle_generated_option
36961         GENERATED_P.
36962         * optc-gen.awk: Likewise.
36963
36964 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36965
36966         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
36967         a REG, look at the REG it is a SUBREG of.
36968         (splitter for cmpeqsi_t): Ditto.
36969
36970 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36971
36972         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
36973         the special USEs with the pattern of the insn, not the insn itself.
36974
36975 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
36976
36977         PR target/79473
36978         * doc/invoke.texi: Document -mload-store-pairs.
36979
36980 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36981             Sandra Loosemore  <sandra@codesourcery.com>
36982
36983         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
36984         argument isn't a CONST_INT.
36985         (nios2_alternate_compare_const): Assert op is a CONST_INT.
36986         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
36987         (nios2_validate_compare): Bypass alternate compare logic if *op2
36988         is not a CONST_INT.
36989         (ldstwm_operation_p): Return false if first_base is not a REG or
36990         if first_offset is not a CONST_INT.
36991
36992 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36993
36994         * config/cris/cris.md: Use correct operand in a define_peephole2.
36995
36996 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
36997
36998         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
36999
37000 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37001
37002         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
37003         this_insn if it is an INSN or JUMP_INSN.
37004         (force_offsettable): Look at base, not at addr.
37005         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
37006         on things that aren't necessarily CONST_INTs.
37007
37008 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
37009
37010         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
37011         -mfpmath=sse is the default also for x86-32 targets with SSE2
37012         instruction set when @option{-ffast-math} is enabled
37013
37014 2017-02-24  Jeff Law  <law@redhat.com>
37015
37016         PR rtl-optimizatoin/79286
37017         * ira.c (update_equiv_regs): Drop may_trap_p exception to
37018         dominance test.
37019
37020 2017-02-24  Richard Biener  <rguenther@suse.de>
37021
37022         PR tree-optimization/79389
37023         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
37024         debug insns.
37025
37026 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
37027
37028         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
37029         function comment to reflect reality.
37030         (loop_exits_before_overflow): Fix typo in function description.
37031
37032 2017-02-24  Richard Biener  <rguenther@suse.de>
37033
37034         PR tree-optimization/79389
37035         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
37036         properly that a threading opportunity exists.  Detect conditional
37037         copy/constant propagation opportunities.
37038
37039 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
37040
37041         * config/visium/visium.md (type): Add trap.
37042         (b): New mode attribute.
37043         (*btst): Rename into...
37044         (*btst<mode>): ...this and adjust.
37045         (*cbranchsi4_btst_insn): Rename into...
37046         (*cbranch<mode>4_btst_insn): ...this and adjust.
37047         (trap): New define_insn.
37048
37049 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37050
37051         PR tree-optimization/79389
37052         * ifcvt.c (struct noce_if_info): Add rev_cond field.
37053         (noce_reversed_cond_code): New function.
37054         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
37055         reversed_comparison_code.  Formatting fix.
37056         (noce_try_store_flag): Test rev_cond != NULL in addition to
37057         reversed_comparison_code.
37058         (noce_try_store_flag_constants): Likewise.
37059         (noce_try_store_flag_mask): Likewise.
37060         (noce_try_addcc): Use rev_cond if non-NULL instead of
37061         reversed_comparison_code.
37062         (noce_try_cmove_arith): Likewise.  Formatting fixes.
37063         (noce_try_minmax, noce_try_abs): Clear rev_cond.
37064         (noce_find_if_block): Initialize rev_cond.
37065         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
37066         instead of false as last argument never attempt to reverse it
37067         afterwards.
37068
37069 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
37070
37071         PR tree-optimization/79663
37072         * tree-predcom.c (combine_chains): Process refs in reverse order
37073         only for ZERO length chains, and add explaining comment.
37074
37075 2017-02-23  Jeff Law  <law@redhat.com>
37076
37077         PR tree-optimization/79578
37078         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
37079         in call to operand_equal_p.
37080
37081 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
37082
37083         PR target/71017
37084         * config/i386/cpuid.h: Fix another undefined behavior.
37085
37086 2017-02-23  Richard Biener  <rguenther@suse.de>
37087
37088         PR tree-optimization/79683
37089         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
37090         vector types for data-refs.
37091
37092 2017-02-23  Martin Liska  <mliska@suse.cz>
37093
37094         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
37095
37096 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37097
37098         PR middle-end/79665
37099         * internal-fn.c (get_range_pos_neg): Moved to ...
37100         * tree.c (get_range_pos_neg): ... here.  No longer static.
37101         * tree.h (get_range_pos_neg): New prototype.
37102         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
37103         are known to be in between 0 and signed maximum inclusive, try to
37104         expand both unsigned and signed divmod and use the cheaper one from
37105         those.
37106
37107 2017-02-22  Jeff Law  <law@redhat.com>
37108
37109         PR tree-optimization/79578
37110         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
37111         to compare base operands.
37112
37113 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
37114
37115         PR target/79211
37116         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
37117         gpc_reg_operand instead of fpr_reg_operand.
37118
37119 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
37120
37121         * config/mips/mips.c (mips_return_in_memory): Force FP
37122         vector types to be returned in memory for o32 ABI.
37123
37124 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37125
37126         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
37127         instead of DW_TAG_member for static data member declarations and don't
37128         set no_linkage_name for static inline data members.
37129         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
37130         to DW_TAG_member.
37131
37132 2017-02-22  Martin Liska  <mliska@suse.cz>
37133
37134         * doc/invoke.texi: Replace inequality signs with square brackets
37135         for -Wnormalized.
37136
37137 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
37138
37139         PR target/78660
37140         * lra-constraints.c (simplify_operand_subreg): Handle
37141         WORD_REGISTER_OPERATIONS targets.
37142
37143 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37144
37145         PR target/70465
37146         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
37147         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
37148         elimination by swapping fld*.
37149
37150 2017-02-22  Richard Biener  <rguenther@suse.de>
37151
37152         PR tree-optimization/79673
37153         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
37154         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
37155         irrelevant address-space qualifiers and avoiding a
37156         ADDR_SPACE_CONVERT_EXPR from fold_convert.
37157
37158 2017-02-22  Richard Biener  <rguenther@suse.de>
37159
37160         PR tree-optimization/79666
37161         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
37162         to not symbolically negate if that may introduce undefined
37163         overflow.
37164
37165 2017-02-22  Martin Liska  <mliska@suse.cz>
37166
37167         PR lto/79587
37168         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
37169         * data-streamer-out.c (streamer_write_gcov_count_stream):
37170         Likewise.
37171         * value-prof.c (stream_out_histogram_value): Make assert more
37172         precise based on type of counter.
37173
37174 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
37175
37176         PR target/79593
37177         * config/i386/i386.md (standard_x87sse_constant_load splitter):
37178         Use nonimmediate_operand instead of memory_operand for operand 1.
37179         (float-extend standard_x87sse_constant_load splitter): Ditto.
37180
37181 2017-02-21  Jeff Law  <law@redhat.com>
37182
37183         PR tree-optimization/79621
37184         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
37185         blocks with edges to themselves.
37186
37187 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37188
37189         PR target/79633
37190         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
37191         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
37192         Use gimple_call_builtin_p.
37193
37194         PR target/79570
37195         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
37196         on temporarily removed DEBUG_INSNs.
37197
37198         PR tree-optimization/79649
37199         * tree-loop-distribution.c (classify_partition): Give up on
37200         non-generic address space loads/stores.
37201
37202 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
37203
37204         * doc/loop.texi (Loop manipulation): Remove nonexistent
37205         tree_ssa_loop_version from the documentation.
37206         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
37207
37208 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37209
37210         PR target/79494
37211         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
37212         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
37213         * config/rs6000/rs6000.c: Include except.h.
37214         (rs6000_expand_split_stack_prologue): Call
37215         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
37216
37217 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37218
37219         PR lto/79579
37220         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
37221         have been analyzed.
37222
37223 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37224
37225         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
37226         for backward compatibility only.
37227         * doc/invoke.texi (Option Summary): Remove all references to
37228         -fipa-cp-alignment.
37229
37230 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
37231
37232         PR target/78660
37233         Revert:
37234         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37235
37236         * lra-constraints.c (curr_insn_transform): Handle
37237         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37238
37239 2017-02-21  Martin Liska  <mliska@suse.cz>
37240
37241         * config/i386/i386.opt: Replace -masm-dialect with -masm.
37242
37243 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
37244
37245         PR translation/79638
37246         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
37247
37248 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
37249
37250         PR ada/67205
37251         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
37252         (arm_function_ok_for_sibcall): Return false for an indirect call by
37253         descriptor if all the argument registers are used.
37254         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
37255         alignment of the function.
37256
37257 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37258
37259         PR tree-optimization/61441
37260         * simplify-rtx.c (simplify_const_unary_operation): For
37261         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
37262         the sNaN unmodified.
37263
37264 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37265
37266         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
37267         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
37268         instead of SYSTEM_HEADER_DIR.
37269
37270 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
37271             Martin LiÅ¡ka  <mliska@suse.cz>
37272
37273         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
37274         Fix typos and grammar, use active voice, and clarify.
37275
37276 2017-02-20  Marek Polacek  <polacek@redhat.com>
37277
37278         PR middle-end/79537
37279         * gimplify.c (gimplify_expr): Handle unused *&&L;.
37280
37281         PR sanitizer/79558
37282         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
37283
37284 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
37285
37286         PR target/79568
37287         * config/i386/i386.c (ix86_expand_builtin): Handle
37288         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
37289         ix86_builtins_isa[fcode].isa as a requirement of those
37290         flags and any other flag in the bitmask.
37291         (ix86_init_mmx_sse_builtins): Use 0 instead of
37292         ~OPTION_MASK_ISA_64BIT as mask.
37293         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
37294         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
37295         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
37296         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
37297
37298 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37299
37300         PR target/78012
37301         * lra-constraints.c (split_reg): Check requested split mode
37302         is supported by the register.
37303
37304 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37305
37306         * lra-constraints.c (simplify_operand_subreg): Remove early
37307         return false.
37308
37309 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37310
37311         PR target/78660
37312         * lra-constraints.c (curr_insn_transform): Tighten condition
37313         for converting SUBREG reloads from OP_OUT to OP_INOUT.
37314
37315 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37316
37317         PR target/78660
37318         * lra-constraints.c (curr_insn_transform): Handle
37319         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37320
37321 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
37322
37323         Revert:
37324         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
37325
37326         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
37327
37328 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
37329
37330         PR c++/69523
37331         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
37332         description.
37333
37334 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37335
37336         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
37337         for FMA_EXPR.
37338
37339 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
37340
37341         * final.c (last_columnnum, override_columnnum): New variables.
37342         (final_start_function): Set last_columnnum, pass it to begin_prologue
37343         hook and pass 0 to dwarf2out_begin_prologue.
37344         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
37345         to source_line debug hook.
37346         (notice_source_line): Compute last_columnnum and for debug_column_info
37347         return true on column changes.
37348         * debug.h (struct gcc_debug_hooks): Add column argument to
37349         source_line and begin_prologue hooks.
37350         (debug_nothing_int_charstar_int_bool): Remove prototype.
37351         (debug_nothing_int_int_charstar,
37352         debug_nothing_int_int_charstar_int_bool): New prototypes.
37353         (dwarf2out_begin_prologue): Add column argument.
37354         * debug.c (do_nothing_debug_hooks): Adjust source_line and
37355         begin_prologue hooks.
37356         (debug_nothing_int_charstar_int_bool): Remove.
37357         (debug_nothing_int_int_charstar,
37358         debug_nothing_int_int_charstar_int_bool): New functions.
37359         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
37360         through to dwarf2out_source_line.
37361         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
37362         (dwarf2out_source_line): Add column argument, emit it if requested.
37363         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
37364         arguments.
37365         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37366         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37367         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
37368         through to dwarf2out_begin_prologue.
37369         (vmsdbgout_source_line): Add column argument, pass it through to
37370         dwarf2out_source_line.
37371         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
37372         dbxout_source_line caller.
37373         (dbxout_source_line): Add column argument.
37374
37375         * common.opt (gno-column-info, gcolumn-info): New options.
37376         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
37377         (check_die): Also test for multiple DW_AT_decl_column attributes.
37378         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
37379         DW_AT_decl_column if requested.
37380         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
37381         if requested.
37382         (gen_variable_die): Likewise.
37383         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
37384         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
37385
37386         PR target/79569
37387         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
37388         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
37389         (ix86_handle_option): Handle OPT_m3dnowa.
37390         * doc/invoke.texi (-m3dnowa): Document.
37391         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
37392         -m3dnowa instead of -m3dnow -march=athlon.
37393
37394         PR target/79559
37395         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
37396         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
37397
37398 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37399
37400         PR target/79261
37401         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
37402         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
37403         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
37404         generator for vsx_xxpermdi_<mode>_be.
37405         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
37406         force big-endian semantics.
37407         (vsx_xxpermdi_<mode>_be): New define_expand with same
37408         implementation as previous version of vsx_xxpermdi_<mode>.
37409
37410 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
37411
37412         PR tree-optimization/79327
37413         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
37414         variable, its initialization and use.
37415
37416 2017-02-17  Julia Koval  <julia.koval@intel.com>
37417
37418         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
37419         (OPTION_MASK_ISA_PKU_UNSET): New.
37420         (ix86_handle_option): Handle -mrdpid.
37421         * config/i386/cpuid.h (bit_RDPID): New.
37422         * config/i386/driver-i386.c (host_detect_local_cpu):
37423         Detect RDPID feature.
37424         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
37425         * config/i386/i386-c.c (ix86_target_macros_internal):
37426         Handle RDPID flag.
37427         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
37428         (ix86_valid_target_attribute_inner_p): Add "rdpid".
37429         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
37430         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
37431         * config/i386/i386.md (define_insn "rdpid"): New.
37432         * config/i386/i386.opt Add -mrdpid.
37433         * config/i386/immintrin.h (_rdpid_u32): New.
37434
37435 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
37436
37437         PR rtl-optimization/79541
37438         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
37439         instead of transforming it into USE.
37440
37441 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
37442
37443         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
37444         If HONOR_SNANS (SFmode) force the input to a register.
37445         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
37446         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
37447         an frsp or similar insn.
37448
37449 2017-02-17  Martin Liska  <mliska@suse.cz>
37450
37451         PR rtl-optimization/79577
37452         * params.def (selsched-max-sched-times): Increase minimum to 1.
37453
37454 2017-02-17  Martin Liska  <mliska@suse.cz>
37455
37456         PR rtl-optimization/79574
37457         * gcse.c (want_to_gcse_p): Prevent integer overflow.
37458
37459 2017-02-17  Martin Liska  <mliska@suse.cz>
37460
37461         PR tree-optimization/79529
37462         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
37463         ssa_defined_default_def_p to handle cases which are implicitly
37464         defined.
37465         * tree-ssa.c (ssa_defined_default_def_p): New function.
37466         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
37467         which are implicitly defined.
37468         * tree-ssa.h (ssa_defined_default_def_p): Declare.
37469
37470 2017-02-17  Richard Biener  <rguenther@suse.de>
37471
37472         PR middle-end/79576
37473         * params.def (max-ssa-name-query-depth): Limit to 10.
37474
37475 2017-02-17  Richard Biener  <rguenther@suse.de>
37476
37477         PR tree-optimization/79552
37478         * tree-ssa-structalias.c (visit_loadstore): Properly verify
37479         default defs.
37480
37481 2017-02-17  Richard Biener  <rguenther@suse.de>
37482
37483         PR bootstrap/79567
37484         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
37485
37486 2017-02-17  Marek Polacek  <polacek@redhat.com>
37487
37488         PR middle-end/79536
37489         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
37490         (fold_negate_expr): New wrapper.
37491
37492 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
37493
37494         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
37495         Correct terminology and de-emphasize pre-standard behavior.
37496
37497 2017-02-16  Alan Modra  <amodra@gmail.com>
37498
37499         PR rtl-optimization/79286
37500         * ira.c (def_dominates_uses): New function.
37501         (update_equiv_regs): Don't create an equivalence for insns that
37502         may trap where the register def does not dominate the use.
37503
37504 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
37505
37506         PR rtl-optimization/78127
37507         * lra.c (lra): Call lra_eliminate before finish the loop after
37508         lra_constraint.
37509
37510 2017-02-16  Richard Biener  <rguenther@suse.de>
37511
37512         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
37513         isl/isl_val.h.
37514         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
37515         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
37516         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
37517         (isl_val_int_from_wi): New function.
37518         (extract_affine_gmp): Rename to ...
37519         (extract_affine_wi): ... this, take a widest_int.
37520         (extract_affine_int): Just wrap extract_affine_wi.
37521         (add_param_constraints): Use isl_val_int_from_wi.
37522         (add_loop_constraints): Likewise, and extract_affine_wi.
37523
37524 2017-02-15  Jeff Law  <law@redhat.com>
37525
37526         PR middle-end/79521
37527         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
37528         ira_init_register_move_cost_if_necessary.
37529
37530 2017-02-15  Martin Sebor  <msebor@redhat.com>
37531
37532         PR middle-end/32003
37533         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
37534         removed in a prior commit.
37535
37536 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
37537
37538         PR tree-optimization/79347
37539         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
37540         counters during peeling.
37541
37542 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
37543
37544         * Makefile.in (site.exp): Remove "set ISLVER".
37545
37546 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
37547
37548         PR target/79487
37549         * real.c (real_from_integer): Call real_convert even for decimal.
37550
37551 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37552
37553         PR target/79421
37554         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
37555
37556 2017-02-14  Andrew Pinski  <apinski@cavium.com>
37557
37558         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
37559         cores and change the partno/implementer to be correct.
37560         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
37561         the 'B" as the implementer.
37562         * config/aarch64/aarch64-tune.md: Regenerate.
37563
37564 2017-02-14  Carl Love  <cel@us.ibm.com>
37565
37566         * config/rs6000/rs6000.c: Add case statement entry to make the
37567         xvcvuxdsp built-in argument unsigned.
37568         * config/rs6000/vsx.md: Fix the source and return operand types so they
37569         match the instruction definitions from the ISA document.  Fix typo
37570         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
37571         statement.
37572
37573 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
37574
37575         PR target/79282
37576         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
37577         member early_clobber_alts.
37578         * lra-lives.c (reg_early_clobber_p): New.
37579         (process_bb_lives): Use it.
37580         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
37581         (debug_operand_data): Initialize early_clobber_alts.
37582         (setup_operand_alternative): Set up early_clobber_alts.
37583         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
37584         alternatives to new_insn_reg.
37585         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
37586         it.
37587         (lra_update_insn_regno_info): Pass the new arg.
37588
37589 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37590
37591         PR middle-end/79505
37592         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
37593         (new_oacc_loop_raw): Don't clear already cleared fields.
37594
37595         PR target/79481
37596         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
37597         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
37598         _mm512_prefetch_i64gather_ps): New inline functions and macros.
37599
37600 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
37601
37602         PR target/79495
37603         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
37604
37605 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
37606
37607         PR target/79498
37608         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
37609         the extra instruction to the right place to store 128-bit constant
37610         when needed.
37611
37612 2017-02-14  Martin Sebor  <msebor@redhat.com>
37613
37614         PR middle-end/79448
37615         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
37616           warning for strings of unknown length.
37617
37618 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
37619
37620         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
37621
37622 2017-02-14  Jeff Law  <law@redhat.com>
37623
37624         PR target/79404
37625         * ira-costs.c (scan_one_insn): Initialize register move costs
37626         for pseudos seen in USE/CLOBBER insns.
37627
37628         PR tree-optimization/79095
37629         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
37630         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
37631         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
37632         if the operands are known to be not equal, then the resulting range
37633         is ~[0,0].
37634         (intersect_ranges): If the new range is ~[0,0] and the old range is
37635         wide, then prefer ~[0,0].
37636         * tree-vrp.c (overflow_comparison_p_1): New function.
37637         (overflow_comparison_p): New function.
37638         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
37639         if NAME is used in an overflow test.
37640         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
37641         overflow check that can be expressed as an equality test, then adjust
37642         ops to be that equality test.
37643
37644 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37645
37646         * config/s390/s390-builtin-types.def: Remove flags argument.
37647         * config/s390/s390.c (s390_init_builtins): Likewise.
37648
37649 2017-02-14  Martin Liska  <mliska@suse.cz>
37650
37651         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
37652         vector.  Fix trailing white spaces.
37653
37654 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
37655
37656         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
37657         HFmode.
37658
37659 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37660
37661         PR rtl-optimization/68664
37662         * config/arm/arm.c (arm_sched_can_speculate_insn):
37663         New function.  Declare prototype.
37664         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37665
37666 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37667
37668         PR rtl-optimization/68664
37669         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
37670         New function.
37671         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37672
37673 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
37674
37675         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
37676         max skip bytes for function, loop and jump.
37677
37678 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37679
37680         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
37681         ABS_EXPR for gimple dump.
37682
37683 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37684
37685         PR target/79462
37686         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
37687
37688         PR tree-optimization/79408
37689         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
37690         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
37691         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
37692         also if rhs1 is INTEGER_CST.
37693
37694 2017-02-14  Richard Biener  <rguenther@suse.de>
37695
37696         PR middle-end/79432
37697         * tree-into-ssa.c (insert_phi_nodes): When the function can
37698         have abnormal edges rewrite SSA names with broken use-def
37699         dominance out of SSA and register them for PHI insertion.
37700
37701 2017-02-13  Martin Sebor  <msebor@redhat.com>
37702
37703         PR middle-end/79496
37704         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
37705         clearing info.nowrite flag when snprintf size argument is a range.
37706
37707 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37708
37709         * cprop.c (cprop_jump): Add missing space in string literal.
37710         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
37711         (get_constraint_for_component_ref): Likewise.
37712         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
37713         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
37714         * lra-constraints.c (process_alt_operands): Likewise.
37715         * ipa-inline.c (inline_small_functions): Likewise.
37716         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
37717         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37718         * trans-mem.c (diagnose_tm_1_op): Likewise.
37719         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
37720         (grid_parallel_clauses_gridifiable): Likewise.
37721
37722         * config/nvptx/mkoffload.c (process): Add space in between
37723         , and %d.
37724
37725         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
37726         "MOD4_SSE_REGS" and "ALL_REGS".
37727
37728         * spellcheck.c (test_data): Add , in between "foo" and "food".
37729
37730 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37731
37732         PR target/79449
37733         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
37734         boundary crossing check and subsequent code generation agree.
37735
37736 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37737
37738         * config/aarch64/aarch64.c (has_memory_op): Delete.
37739         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
37740         has_memory_op.
37741
37742 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37743
37744         PR rtl-optimization/79388
37745         PR rtl-optimization/79450
37746         * combine.c (distribute_notes): When removing TEM_INSN for which
37747         corresponding dest has last value recorded, invalidate that last
37748         value.
37749
37750 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37751
37752         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
37753         of explicit '@'.  Add missing assembly comment marker on branch costs
37754         printout.
37755
37756 2017-02-13  Nathan Sidwell  <nathan@acm.org>
37757
37758         * gengtype-lex.l (<in_struct>): Add '/'.
37759
37760 2017-02-13  Martin Liska  <mliska@suse.cz>
37761
37762         PR c/79471
37763         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
37764
37765 2017-02-13  Richard Biener  <rguenther@suse.de>
37766
37767         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
37768         Remove.
37769         * configure: Re-generate.
37770         * config.in: Likewise.
37771         * graphite-dependences.c: Simplify as if
37772         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
37773         * graphite-isl-ast-to-gimple.c: Likewise.
37774         * graphite-optimize-isl.c: Likewise.
37775         * graphite-poly.c: Likewise.
37776         * graphite-sese-to-poly.c: Likewise.
37777         * graphite.h: Likewise.
37778         * toplev.c: Include isl/version.h and use isl_version () for
37779         printing the ISL version.
37780         * doc/install.texi: Update ISL requirement.
37781
37782 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37783
37784         * doc/standards.texi (Standards): Update reference to
37785         Objective-C 2.0.
37786
37787 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37788
37789         * doc/extend.texi (Named Address Spaces): sourceware.org now
37790         defaults to https.
37791         * doc/install.texi (Binaries): Ditto.
37792         (Specific): Ditto.
37793
37794 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37795
37796         * doc/cpp.texi: Replace "stringify"/"stringification" with C
37797         standard terminology "stringize"/"stringizing" throughout.
37798         * doc/cppinternals.texi: Likewise.
37799
37800 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37801
37802         * doc/extend.texi: Fix some spelling mistakes and typos.
37803         * doc/invoke.texi: Likewise.
37804
37805 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37806
37807         PR ipa/79224
37808         * params.def (inline-min-speedup) Change from 10 to 8.
37809
37810 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37811
37812         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
37813         4.5.
37814
37815 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37816
37817         PR ipa/79224
37818         * ipa-inline-analysis.c (get_minimal_bb): New function.
37819         (record_modified): Use it.
37820         (remap_edge_change_prob): Handle also ancestor functions.
37821
37822 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
37823
37824         * doc/contrib.texi (Contributors): Remove broken link into
37825         the Mauve CVS repository.
37826
37827 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37828
37829         PR middle-end/79454
37830         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
37831         result computation whenever lhs doesn't have vector mode, not
37832         just when it has BLKmode.
37833
37834 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37835
37836         * doc/makefile.texi (profiledbootstrap): Refer to the
37837         installation instructions only in textual form.
37838
37839 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37840
37841         PR target/79295
37842         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
37843
37844 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37845
37846         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
37847         (Specific): Update mingw-w64 reference.
37848         (Binaries): Ditto.
37849         (Specific): Remove broken link to Renesas RX processor.
37850
37851 2017-02-10  Richard Biener  <rguenther@suse.de>
37852
37853         * toplev.c (process_options): Do not mention obsolete graphite
37854         options when printing sorry message about missing graphite support.
37855         Mention -floop-nest-optimize.
37856
37857 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
37858
37859         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
37860         (vtst_p16): Likewise.
37861         (vtstq_p8): Likewise.
37862         (vtstq_p16): Likewise.
37863         (vtst_p64): New.
37864         (vtstq_p64): Likewise.
37865         * config/arm/arm_neon.h (vgetq_lane_p64): New.
37866         (vset_lane_p64): New.
37867         (vsetq_lane_p64): New.
37868
37869 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
37870
37871         PR tree-optimization/79411
37872         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
37873         stmt operands are SSA_NAMEs used in abnormal phis.
37874         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
37875         phis.
37876
37877 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37878
37879         PR ipa/70795
37880         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
37881         flag if needed.
37882
37883 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
37884
37885         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
37886
37887 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
37888
37889         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
37890         to avoid warning.
37891
37892         PR c/79413
37893         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
37894         not arbitrary TREE_CONSTANT.
37895
37896         PR c/79431
37897         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
37898         "omp declare target link" attribute unless is_global_var.
37899         * omp-offload.c (find_link_var_op): Likewise.
37900
37901 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
37902             Chung-Lin Tang  <cltang@codesourcery.com>
37903
37904         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
37905         OMP_CLAUSE_TILE.
37906         (gimplify_adjust_omp_clauses): Don't delete TILE.
37907         (gimplify_omp_for): Deal with TILE.
37908         * internal-fn.c (expand_GOACC_TILE): New function.
37909         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
37910         (GOACC_TILE): New.
37911         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
37912         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
37913         element fields.
37914         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
37915         avoid DIV for outermost collapse var.
37916         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
37917         Remove out of date comments, fix whitespace.
37918         * omp-general.c (omp_extract_for_data): Deal with tiling.
37919         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
37920         adjust OLF_DIM_BASE value.
37921         (struct omp_for_data): Add tiling field.
37922         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
37923         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
37924         for auto loops.  Remove default auto determining, moved to
37925         oacc_loop_fixed_partitions.
37926         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
37927         stmts, add e_mask field.
37928         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
37929         (oacc_thread_numbers): Use oacc_dim_call.
37930         (oacc_xform_tile): New.
37931         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
37932         (finish_oacc_loop): Adjust for ifns vector.
37933         (oacc_loop_discover_walk): Append loop abstraction sites to list,
37934         add case for GOACC_TILE fns.
37935         (oacc_loop_xform_loop): Delete.
37936         (oacc_loop_process): Iterate over call list directly, and add
37937         handling for GOACC_TILE fns.
37938         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
37939         dump partitioning.
37940         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
37941         vector partitioning to outer loops.  Assign 2 partitions to loops
37942         when available. Add TILE handling.
37943         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
37944         (execite_oacc_device_lower): Process GOACC_TILE fns,
37945         ignore unknown specs.
37946         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
37947         * tree.c (omp_clause_num_ops): Adjust TILE ops.
37948         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
37949
37950 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
37951
37952         * configure.ac (ACX_BUGURL): Update.
37953         * configure: Regenerate.
37954
37955 2017-02-09  Richard Biener  <rguenther@suse.de>
37956
37957         PR tree-optimization/69823
37958         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
37959         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
37960
37961 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37962
37963         * config/arc/arc-c.def: Add __NPS400__ definition.
37964         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
37965         (TARGET_NPS400): Define.
37966
37967 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
37968
37969         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
37970         file.
37971         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
37972         pointer, arch_info.
37973         (arc_cpu_types): Fill the arch_info field with a pointer into the
37974         arc_arch_types table.
37975         (arc_selected_cpu): Declare.
37976         * config/arc/arc.c (arc_selected_cpu): Make global.
37977         (arc_selected_arch): Delete.
37978         (arc_base_cpu): Delete.
37979         (arc_override_options): Remove references to deleted variables,
37980         update access to arch information.
37981         (ARC_OPT): Update access to arch information.
37982         (ARC_OPTX): Likewise.
37983         * config/arc/arc.h (arc_base_cpu): Remove declaration.
37984         (TARGET_ARC600): Update access to arch information.
37985         (TARGET_ARC601): Likewise.
37986         (TARGET_ARC700): Likewise.
37987         (TARGET_EM): Likewise.
37988         (TARGET_HS): Likewise.
37989         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
37990         information.
37991
37992 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
37993
37994         PR target/78604
37995         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
37996         condition/operands for integer GE/LE/GEU/LEU operations.
37997
37998 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
37999
38000         PR translation/79397
38001         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
38002         of AltiVec.
38003
38004 2017-02-08  Martin Jambor  <mjambor@suse.cz>
38005
38006         PR ipa/79375
38007         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
38008         whether allocation happened.
38009         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
38010         nothing was allocated.
38011
38012 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
38013
38014         PR tree-optimization/79408
38015         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
38016         constant, but SSA_NAME with a known integer range, use the minimum
38017         of that range instead of op1 to determine if modulo can be replaced
38018         with its first operand.
38019
38020 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38021
38022         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
38023
38024 2017-02-08  Richard Biener  <rguenther@suse.de>
38025
38026         PR tree-optimization/71824
38027         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38028         Check all loops contained in the merged region.
38029
38030 2017-02-07  Andrew Pinski  <apinski@cavium.com>
38031
38032         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
38033
38034 2017-02-07  Andrew Pinski  <apinski@cavium.com>
38035
38036         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
38037         (thunderxt88): Likewise.
38038         (thunderxt81): Disable LSE and change v8.1 to v8.
38039         (thunderxt83): Likewise.
38040
38041 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
38042             Richard Biener  <rguenther@suse.de>
38043
38044         PR middle-end/79399
38045         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
38046         type from int to size_t.
38047         * ira-costs.c (struct_costs_size): Change type from int to size_t.
38048
38049 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
38050
38051         PR rtl-optimization/79386
38052         * cprop.c (bypass_conditional_jumps): Initialize
38053         bypass_last_basic_block already before splitting bbs after
38054         unconditional traps...
38055         (bypass_conditional_jumps): ... rather than here.
38056
38057         PR target/79299
38058         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
38059         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
38060         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
38061         fix -masm=intel patterns.
38062
38063 2017-02-07  Richard Biener  <rguenther@suse.de>
38064
38065         PR tree-optimization/79256
38066         PR middle-end/79278
38067         * builtins.c (get_object_alignment_2): Use min_align_of_type
38068         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
38069         and ADJUST_FIELD_ALIGN.
38070
38071         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
38072         type parameter.
38073         * doc/tm.texi: Regenerate.
38074         * stor-layout.c (layout_decl): Adjust.
38075         (update_alignment_for_field): Likewise.
38076         (place_field): Likewise.
38077         (min_align_of_type): Likewise.
38078         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
38079         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
38080         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
38081         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
38082         * config/frv/frv.c (frv_adjust_field_align): Likewise.
38083         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
38084         * config/i386/i386.c (x86_field_alignment): Likewise.
38085         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
38086         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
38087         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
38088         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
38089         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
38090         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
38091          Likewise.
38092
38093         Revert
38094         2017-01-30  Richard Biener  <rguenther@suse.de>
38095
38096         PR tree-optimization/79256
38097         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38098         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38099         alignment on TYPE.
38100
38101 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
38102
38103         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
38104         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
38105         builtins to SImode and emit a zero-extend, if necessary.
38106
38107 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38108
38109         * docs/invoke.texi (RISC-V Options): Alphabetize.
38110
38111 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38112
38113         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
38114         options.
38115
38116 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38117
38118         * config/riscv/riscv.c: New file.
38119         * common/config/riscv/riscv-common.c: Likewise.
38120         * config.gcc: Likewise.
38121         * config/riscv/constraints.md: Likewise.
38122         * config/riscv/elf.h: Likewise.
38123         * config/riscv/generic.md: Likewise.
38124         * config/riscv/linux.h: Likewise.
38125         * config/riscv/multilib-generator: Likewise.
38126         * config/riscv/peephole.md: Likewise.
38127         * config/riscv/pic.md: Likewise.
38128         * config/riscv/predicates.md: Likewise.
38129         * config/riscv/riscv-builtins.c: Likewise.
38130         * config/riscv/riscv-c.c: Likewise.
38131         * config/riscv/riscv-ftypes.def: Likewise.
38132         * config/riscv/riscv-modes.def: Likewise.
38133         * config/riscv/riscv-opts.h: Likewise.
38134         * config/riscv/riscv-protos.h: Likewise.
38135         * config/riscv/riscv.h: Likewise.
38136         * config/riscv/riscv.md: Likewise.
38137         * config/riscv/riscv.opt: Likewise.
38138         * config/riscv/sync.md: Likewise.
38139         * config/riscv/t-elf-multilib: Likewise.
38140         * config/riscv/t-linux: Likewise.
38141         * config/riscv/t-linux-multilib: Likewise.
38142         * config/riscv/t-riscv: Likewise.
38143         * configure.ac: Likewise.
38144         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
38145         Waterman as RISC-V maintainers.
38146         * doc/install.texi: Add RISC-V entries.
38147         * doc/invoke.texi: Add RISC-V options section.
38148         * doc/md.texi: Add RISC-V constraints section.
38149         * configure: Regenerated.
38150
38151 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
38152
38153         PR target/66144
38154         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
38155         false values to be constant vectors with all 0 or all 1 bits set.
38156         (vcondu<mode><mode>): Likewise.
38157         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
38158         predicate.
38159         (fpmask_comparison_operator): Update comment.
38160         (vecint_comparison_operator): New predicate.
38161         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
38162         vector conditionals when the true and false values are constant
38163         vectors with all 0 bits or all 1 bits set.
38164
38165 2017-02-06  Martin Sebor  <msebor@redhat.com>
38166
38167         PR  tree-optimization/79376
38168         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
38169
38170 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
38171
38172         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
38173         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
38174         to simplify split condition.
38175
38176 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38177
38178         * omp-expand.c (oxpand_omp_atomic_fetch_op,
38179         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
38180         false.
38181
38182 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
38183
38184         PR rtl-optimization/68664
38185         * target.def (can_speculate_insn): New hook.
38186         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
38187         * doc/tm.texi: Regenerate.
38188         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
38189         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
38190         (rs6000_sched_can_speculate_insn): New function.
38191
38192 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38193
38194         PR tree-optimization/79284
38195         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
38196         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
38197         vectorizable_mask_load_store, vectorizable_operation,
38198         vect_is_simple_cond, get_same_sized_vectype): Use it instead
38199         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
38200         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
38201         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
38202         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
38203         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
38204         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
38205         is_gimple_assign (stmt).  Replace another such test with
38206         is_gimple_assign (stmt).
38207
38208 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38209
38210         PR target/78883
38211         * config/avr/avr.c (rtl-iter.h): Include it.
38212         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
38213         (avr_legitimate_combined_insn): ...and implementation.
38214
38215 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38216
38217         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
38218         * config/s390/s390.c (s390_const_operand_ok)
38219         (s390_canonicalize_comparison, s390_extract_part)
38220         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
38221         (s390_contiguous_bitmask_p, s390_rtx_costs)
38222         (legitimize_pic_address): Likewise.
38223         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
38224         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
38225         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
38226         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
38227         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
38228
38229 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38230
38231         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
38232         REGNO($0) == REGNO($1).
38233
38234 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38235
38236         * config/s390/linux.h(SIZE_TYPE): Add comment.
38237
38238 2017-02-06  Julian Brown  <julian@codesourcery.com>
38239             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38240             Virendra Pathak  <virendra.pathak@broadcom.com>
38241
38242         * config/aarch64/aarch64-cores.def: Change the scheduler
38243         to Thunderx2t99.
38244         * config/aarch64/aarch64.md: Include thunderx2t99.md.
38245         * config/aarch64/thunderx2t99.md: New file.
38246
38247 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38248
38249         * doc/standards.texi (Go Language): Update link to language
38250         standard.
38251
38252 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38253
38254         * tree-eh.c (lower_resx): Sanitize profile.
38255         (cleanup_empty_eh_move_lp): Likewise.
38256
38257 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38258
38259         PR tree-ssa/79347
38260         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
38261         ELSE_PROB.
38262         * cfgloopmanip.h (loop_version): Update prototype.
38263         * modulo-sched.c (sms_schedule): Update call of loop_version.
38264         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
38265         * tree-parloops.c (gen_parallel_loop): Likewise.
38266         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
38267         * tree-ssa-loop-split.c (split_loop): Likewise.
38268         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
38269         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
38270
38271 2017-02-05  Martin Liska  <mliska@suse.cz>
38272
38273         PR bootstrap/78985
38274         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
38275         variable to NULL.
38276         (print_operand_address): Initialize a struct to zero.
38277
38278 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38279
38280         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
38281         garbage collector only in textual form.
38282
38283 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38284
38285         * doc/extend.texi (x86 specific memory model extensions for
38286         transactional memory): Simplify a phrase.
38287
38288 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
38289
38290         PR target/79353
38291         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
38292         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
38293         (atomic_storedi_1): Likewise.
38294
38295 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
38296
38297         PR tree-optimization/79338
38298         * tree-parloops.c (gather_scalar_reductions): Don't call
38299         vect_analyze_loop_form for loop->inner before destroying loop's
38300         loop_vinfo.
38301
38302 2017-02-03  Martin Sebor  <msebor@redhat.com>
38303
38304         PR tree-optimization/79327
38305         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
38306         when precision has resulted in leading zeros.
38307         (format_integer): Adjust the likely counter to assume an unknown
38308         argument that may be zero is non-zero.
38309
38310 2017-02-03  Jason Merrill  <jason@redhat.com>
38311
38312         PR c++/78689
38313         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
38314         avoid copying non-taken branch.
38315
38316 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38317
38318         PR tree-optimization/79340
38319         * tree-vect-loop.c (vectorizable_reduction): Release
38320         vec_defs elements after safe_splicing them into other vectors.
38321         Formatting fixes.
38322
38323         PR tree-optimization/79327
38324         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
38325         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
38326         dirtype.
38327         (format_integer): Use wide_int_to_tree instead of build_int_cst
38328         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
38329         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
38330         of shortest and longest sequence.
38331
38332 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
38333
38334         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
38335         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
38336
38337 2017-02-03  Walter Lee  <walt@tilera.com>
38338
38339         PR target/78862
38340         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
38341         after initial stackframe link reg save.
38342         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
38343
38344 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38345
38346         PR target/79354
38347         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
38348         wu for stxssp alternative.
38349
38350 2017-02-03  Martin Sebor  <msebor@redhat.com>
38351
38352         PR tree-optimization/79352
38353         * gimple-fold.c (get_range_strlen): Add argument.
38354         (get_range_strlen): Change return type to bool.
38355         (get_maxval_strlen): Pass in a dummy argument.
38356         * gimple-fold.h (get_range_strlen): Change return type to bool.
38357         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
38358         * tree.h (array_at_struct_end_p): Add argument.
38359         * tree.c (array_at_struct_end_p): Handle it.
38360
38361 2017-02-03  Martin Liska  <mliska@suse.cz>
38362
38363         PR lto/66295
38364         * multiple_target.c (create_dispatcher_calls): Redirect edge
38365         from a caller of a dispatcher.
38366         (expand_target_clones): Make the clones local.
38367         (ipa_target_clone): Do both target clones and resolvers.
38368         (ipa_dispatcher_calls): Remove the pass.
38369         (pass_dispatcher_calls::gate): Likewise.
38370         (make_pass_dispatcher_calls): Likewise.
38371         * passes.def (pass_target_clone): Put as very first IPA early
38372         pass.
38373
38374 2017-02-03  Martin Liska  <mliska@suse.cz>
38375
38376         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
38377         in case of a function with ifunc attribute.
38378
38379 2017-02-03  Martin Liska  <mliska@suse.cz>
38380
38381         * cgraph.c (cgraph_node::dump): Dump function version info.
38382         * symtab.c (symtab_node::dump_base): Add missing new line.
38383
38384 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38385
38386         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
38387         (ifcombine_ifandif): Use it.
38388
38389 2017-02-03  Martin Liska  <mliska@suse.cz>
38390
38391         * doc/invoke.texi: Document default value for
38392         use-after-scope-direct-emission-threshold.
38393
38394 2017-02-03  Martin Liska  <mliska@suse.cz>
38395
38396         PR tree-optimization/79339
38397         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
38398         (format_floating): Likewise.
38399
38400 2017-02-03  Martin Liska  <mliska@suse.cz>
38401
38402         PR ipa/79337
38403         * ipa-prop.c (ipa_node_params_t::insert): Remove current
38404         implementation.
38405         (ipa_node_params_t::remove): Likewise.
38406         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
38407         initialization from removed ipa_node_params_t::insert.
38408         (ipa_node_params::~ipa_node_params): Move from removed
38409         ipa_node_params_t::release.
38410         * symbol-summary.h (symbol_summary::m_released): New member.
38411         Do not release a summary twice.  Do not allow to call finalizer
38412         for types of a summary that live in GGC memory.
38413
38414 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38415
38416         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
38417         cmp_branch fusion.
38418
38419 2017-02-02  Martin Sebor  <msebor@redhat.com>
38420
38421         PR middle-end/79275
38422         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
38423         (format_string): Tighten up the range of output for non-constant
38424         strings and correct the expected range for wide non-constant strings.
38425
38426 2017-02-02  Martin Sebor  <msebor@redhat.com>
38427
38428         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
38429
38430         PR middle-end/32003
38431         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
38432         index.
38433         (-fdump-tree-@var): Add to index and document how to come up
38434         with pass-specific option and dump file names.
38435         (-fdump-passes): Clarify where to look for output.
38436
38437 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38438
38439         PR middle-end/77445
38440         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
38441         statistics of the analyzed path; allow threading for speed when
38442         any of BBs along the path are optimized for speed.
38443
38444 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
38445
38446         PR middle-end/78468
38447         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
38448         settings of the virtual registers.
38449
38450         Revert again
38451         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38452
38453         * explow.c (get_dynamic_stack_size): Take known alignment of stack
38454         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
38455         needed.
38456
38457 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38458
38459         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
38460         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
38461
38462 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38463
38464         * config/s390/s390.md: Add missing comments with the expanded
38465         mnemonics.
38466         * config/s390/vector.md: Likewise.
38467         * config/s390/vx-builtins.md: Likewise.
38468
38469 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
38470
38471         PR target/79197
38472         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
38473         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
38474         conditions on a single line.
38475
38476 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38477
38478         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38479         __S390_VX__ to __VX__.
38480
38481 2017-02-01  Andrew Pinski  <apinski@cavium.com>
38482
38483         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
38484         stmt_info to record_stmt_cost.
38485         (vect_get_known_peeling_cost): Pass stmt_info if known to
38486         record_stmt_cost.
38487         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
38488         cpu_vector_cost field into
38489         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
38490         field into vec_int_stmt_cost and vec_fp_stmt_cost.
38491         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
38492         splitting of scalar_stmt_cost and vec_stmt_cost.
38493         (thunderx_vector_cost): Likewise.
38494         (cortexa57_vector_cost): LIkewise.
38495         (exynosm1_vector_cost): Likewise.
38496         (xgene1_vector_cost): Likewise.
38497         (thunderx2t99_vector_cost): Improve after the splitting of the two
38498         fields.
38499         (aarch64_builtin_vectorization_cost): Update for the splitting of
38500         scalar_stmt_cost and vec_stmt_cost.
38501
38502 2017-02-01  Torvald Riegel  <triegel@redhat.com>
38503             Richard Henderson  <rth@redhat.com>
38504
38505         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
38506         conditional on existance of a fast atomic load.
38507         * optabs-query.c (can_atomic_load_p): New function.
38508         * optabs-query.h (can_atomic_load_p): Declare it.
38509         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
38510         no fast atomic load is available for the particular size of access.
38511         (expand_atomic_compare_and_swap): Likewise.
38512         (expand_atomic_load): Likewise.
38513         (expand_atomic_store): Likewise.
38514         (expand_atomic_fetch_op): Likewise.
38515         * testsuite/lib/target-supports.exp
38516         (check_effective_target_sync_int_128): Remove x86 because it provides
38517         no fast atomic load.
38518         (check_effective_target_sync_int_128_runtime): Likewise.
38519
38520 2017-02-01  Richard Biener  <rguenther@suse.de>
38521
38522         * graphite.c: Include tree-vectorizer.h for find_loop_location.
38523         (graphite_transform_loops): Provide opt-info for optimized nests.
38524         * tree-parloop.c (parallelize_loops): Provide opt-info for
38525         parallelized loops.
38526
38527 2017-02-01  Richard Biener  <rguenther@suse.de>
38528
38529         PR middle-end/79315
38530         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
38531         was not set before.
38532
38533 2017-02-01  Richard Biener  <rguenther@suse.de>
38534
38535         PR tree-optimization/71824
38536         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38537         Verify the loops are valid in the merged SESE region.
38538         (scop_detection::can_represent_loop_1): Check analyzing the
38539         evolution of the number of iterations in the region succeeds.
38540
38541 2017-01-31  Ian Lance Taylor  <iant@golang.org>
38542
38543         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
38544         REG_ARGS_SIZE note to 32-bit push insns and call insn.
38545
38546 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
38547
38548         PR preprocessor/79210
38549         * input.c (get_substring_ranges_for_loc): Replace line_width
38550         assertion with error-handling.
38551
38552 2017-01-31  Richard Biener  <rguenther@suse.de>
38553
38554         PR tree-optimization/77318
38555         * graphite-sese-to-poly.c (extract_affine): Fix assert.
38556         (create_pw_aff_from_tree): Take loop parameter.
38557         (add_condition_to_pbb): Pass loop of the condition to
38558         create_pw_aff_from_tree.
38559
38560 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38561
38562         * config/s390/s390.c (s390_asan_shadow_offset): New function.
38563         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
38564
38565 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
38566
38567         PR target/78597
38568         PR target/79038
38569         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
38570         no longer used.
38571         (convert_int_to_float128): Likewise.
38572         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
38573         (convert_int_to_float128): Likewise.
38574         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
38575         (UNSPEC_IEEE128_CONVERT): Likewise.
38576         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
38577         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
38578         Use local variables for IBM extended format.
38579         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
38580         (fix_trunc<mode>si2_fprs): Likewise.
38581         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
38582         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
38583         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
38584         to know that we can now have integers of all sizes in vector
38585         registers.
38586         (fix<uns>_<mode>di2_hw): Likewise.
38587         (float<uns>_<mode>si2_hw): Likewise.
38588         (fix_<mode>si2_hw): Likewise.
38589         (fixuns_<mode>si2_hw): Likewise.
38590         (float<uns>_<mode>di2_hw): Likewise.
38591         (float_<mode>di2_hw): Likewise.
38592         (float_<mode>si2_hw): Likewise.
38593         (floatuns_<mode>di2_hw): Likewise.
38594         (floatuns_<mode>si2_hw): Likewise.
38595         (xscvqp<su>wz_<mode>): Delete, no longer used.
38596         (xscvqp<su>dz_<mode>): Likewise.
38597         (xscv<su>dqp_<mode>): Likewise.
38598         (ieee128_mfvsrd_64bit): Likewise.
38599         (ieee128_mfvsrd_32bit): Likewise.
38600         (ieee128_mfvsrwz): Likewise.
38601         (ieee128_mtvsrw): Likewise.
38602         (ieee128_mtvsrd_64bit): Likewise.
38603         (ieee128_mtvsrd_32bit): Likewise.
38604
38605 2017-01-31  Martin Liska  <mliska@suse.cz>
38606
38607         PR ipa/79285
38608         * ipa-prop.c (ipa_free_all_node_params): Call release method
38609         instead of ~sumbol_summary to not to trigger double times
38610         dtor of hash_map.
38611
38612 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
38613
38614         PR tree-optimization/71691
38615         * bitmap.h (class auto_bitmap): New.
38616         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
38617         is_maybe_undefined instead of ssa_undefined_value_p.
38618
38619 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38620
38621         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38622         __S390_ARCH_LEVEL__ to __ARCH__.
38623
38624 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38625
38626         PR tree-optimization/79267
38627         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
38628         if should_remove_lhs_p is true.
38629
38630 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
38631
38632         PR debug/63238
38633         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
38634         (add_alignment_attribute): New.
38635         (base_type_die): Add alignment attribute.
38636         (subrange_type_die): Likewise.
38637         (modified_type_die): Likewise.
38638         (gen_array_type_die): Likewise.
38639         (gen_descr_array_type_die: Likewise.
38640         (gen_enumeration_type_die): Likewise.
38641         (gen_subprogram_die): Likewise.
38642         (gen_variable_die): Likewise.
38643         (gen_field_die): Likewise.
38644         (gen_ptr_to_mbr_type_die): Likewise.
38645         (gen_struct_or_union_type_die): Likewise.
38646         (gen_subroutine_type_die): Likewise.
38647         (gen_typedef_die): Likewise.
38648         (base_type_cmp): Compare alignment attribute.
38649
38650 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38651
38652         PR target/79170
38653         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
38654         (setb_unsigned) New pattern for setb with CCUNS.
38655         * config/rs6000/rs6000.c (expand_block_compare): Use a different
38656         subfc./subfe sequence to avoid overflow problems.  Generate a
38657         shorter sequence with cmpld/setb for power9.
38658         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
38659         for generating subfc. instruction.
38660         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
38661         now uses this instruction.
38662
38663 2017-01-30  Ian Lance Taylor  <iant@google.com>
38664
38665         PR debug/79289
38666         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
38667         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
38668
38669 2017-01-30  Martin Sebor  <msebor@redhat.com>
38670
38671         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
38672         Move constant to the right of a relational operator.
38673         (get_mpfr_format_length, format_character, format_string): Ditto.
38674         (should_warn_p, maybe_warn): Same.
38675
38676         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
38677
38678 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
38679
38680         PR lto/79061
38681         * asan.c (get_translation_unit_decl): Remove function.
38682         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
38683
38684 2017-01-30  Martin Liska  <mliska@suse.cz>
38685
38686         PR gcov-profile/79259
38687         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
38688         -fprofile-generate.
38689
38690 2017-01-30  Martin Liska  <mliska@suse.cz>
38691
38692         PR bootstrap/78985
38693         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
38694         Initialize variables with NULL value.
38695
38696 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
38697
38698         PR target/79260
38699         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
38700         tm_p_file.
38701         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
38702
38703 2017-01-30  Richard Biener  <rguenther@suse.de>
38704
38705         PR tree-optimization/79276
38706         * tree-vrp.c (process_assert_insertions): Properly adjust common
38707         when removing a duplicate.
38708
38709 2017-01-30  Richard Biener  <rguenther@suse.de>
38710
38711         PR tree-optimization/79256
38712         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38713         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38714         alignment on TYPE.
38715         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
38716
38717 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38718
38719         PR target/79240
38720         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
38721         ("*r<noxa>sbg_<mode>_sll_bitmask")
38722         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
38723         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
38724         Use contiguous_bitmask_nowrap_operand.
38725
38726 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38727
38728         PR target/79268
38729         * config/rs6000/altivec.h (vec_xl): Revise #define.
38730         (vec_xst): Likewise.
38731
38732 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
38733
38734         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
38735
38736 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
38737
38738         PR rtl-optimization/79194
38739         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
38740         traps before call to bypass_conditional_jumps.
38741
38742 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38743
38744         PR tree-optimization/71374
38745         * lra-constraints.c (check_conflict_input_operands): New.
38746         (match_reload): Use it.
38747
38748 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38749
38750         PR target/79131
38751         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
38752         account to calculate conflict_set.
38753
38754 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
38755
38756         PR rtl-optimization/78559
38757         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
38758         other_insn in combine.
38759
38760 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
38761
38762         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
38763         uint16_type_node for BT_UINT16.
38764
38765 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
38766
38767         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
38768         "RTL Tests" to menu.
38769         (GIMPLE Tests): New node.
38770         (RTL Tests): New node.
38771
38772 2017-01-27  Richard Biener  <rguenther@suse.de>
38773
38774         PR tree-optimization/79245
38775         * tree-loop-distribution.c (distribute_loop): Apply cost
38776         modeling also to detected patterns.
38777
38778 2017-01-27  Richard Biener  <rguenther@suse.de>
38779
38780         PR tree-optimization/71433
38781         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
38782         (compare_assert_loc): New function.
38783         (process_assert_insertions): Sort and optimize assert locations
38784         to remove duplicates and push down identical assertions on
38785         edges to their destination block.
38786
38787 2017-01-27  Richard Biener  <rguenther@suse.de>
38788
38789         PR tree-optimization/79244
38790         * tree-vrp.c (remove_range_assertions): Forcefully propagate
38791         out SSA names even if abnormal.
38792
38793 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
38794
38795         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
38796         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
38797         instead of MPFR_RNDN.
38798
38799 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
38800
38801         PR target/79239
38802         * arm.c (arm_option_override): Don't call build_target_option_node
38803         until after doing all option overrides.
38804         (arm_valid_target_attribute_tree): Likewise.
38805
38806 2017-01-27  Martin Liska  <mliska@suse.cz>
38807
38808         * doc/invoke.texi (-fprofile-arcs): Document profiling support
38809         for {cd}tors and C++ {cd}tors.
38810
38811 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38812
38813         * config/s390/s390.md ("*setmem_long_and")
38814         ("*setmem_long_and_31z"): Use zero_extend instead of and.
38815
38816 2017-01-26  Martin Sebor  <msebor@redhat.com>
38817
38818         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
38819         of precision.
38820
38821 2017-01-26  Martin Sebor  <msebor@redhat.com>
38822
38823         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
38824         HAVE_DFmode before using XFmode or DFmode.
38825         (parse_directive): Avoid using the z length modifier to avoid
38826         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
38827
38828         PR middle-end/78703
38829         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
38830         to accept adjustment as an array.
38831         (get_int_range): New function.
38832         (struct directive): Make width and prec arrays.
38833         (directive::set_width, directive::set_precision): Call get_int_range.
38834         (format_integer, format_floating): Handle width and precision ranges.
38835         (format_string, parse_directive): Same.
38836
38837 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38838
38839         PR debug/79129
38840         * dwarf2out.c (generate_skeleton_bottom_up): For children with
38841         comdat_type_p set, just clone them, but keep the children in the
38842         original DIE.
38843
38844         PR debug/78835
38845         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
38846         which have direct callers with -fvar-tracking-assignments enabled
38847         in the current TU.
38848         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
38849         inside of type units.
38850
38851 2017-01-26  Martin Sebor  <msebor@redhat.com>
38852
38853         PR middle-end/78703
38854         * gimple-ssa-sprintf.c (struct result_range): Add likely and
38855         unlikely counters.
38856         (struct format_result): Replace number_chars, number_chars_min,
38857         and number_chars_max with a single member of struct result_range.
38858         Remove bounded.
38859         (format_result::operator+=): Adjust.
38860         (struct fmtresult): Remove bounded.  Handle likely and unlikely
38861         counters.
38862         (fmtresult::adjust_for_width_or_precision): New function.
38863         (fmtresult:type_max_digits): New function.
38864         (bytes_remaining): Handle likely and unlikely counters.
38865         (min_bytes_remaining): Remove.
38866         (format_percent): Simplify.
38867         (format_integer, format_floating): Set likely and unlikely counters.
38868         (get_string_length, format_character, format_string): Same.
38869         (format_plain, should_warn_p): New function.
38870         (maybe_warn): Call should_warn_p.  Update diagnostic messages
38871         and handle those for all directives, including plain strings.
38872         (format_directive): Handle likely and unlikely counters.
38873         Remove unnecessary quoting from diagnostics.  Add an informational
38874         note.
38875         (add_bytes): Remove.
38876         (pass_sprintf_length::compute_format_length): Simplify.
38877         (try_substitute_return_value): Handle likely and unlikely counters.
38878
38879 2017-01-26  Carl Love  <cel@us.ibm.com>
38880
38881         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
38882         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
38883
38884 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
38885
38886         PR target/79131
38887         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
38888         endianess for subregs into account.
38889         * lra-constraints.c (lra_constraints): Do risky transformations
38890         always on the first iteration.
38891         * lra-lives.c (check_pseudos_live_through_calls): Add arg
38892         last_call_used_reg_set.
38893         (process_bb_lives): Define and use last_call_used_reg_set.
38894         * lra.c (lra): Always continue after lra_constraints on the first
38895         iteration.
38896
38897 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
38898
38899         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
38900         constant.
38901         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
38902
38903 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38904
38905         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
38906         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
38907         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
38908         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
38909         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
38910         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
38911         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
38912         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
38913         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
38914
38915 2017-01-26  Marek Polacek  <polacek@redhat.com>
38916
38917         PR c/79199
38918         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
38919         for the third operand.
38920
38921 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38922
38923         PR middle-end/79236
38924         * omp-low.c (struct omp_context): Add simt_stmt field.
38925         (scan_omp_for): Return omp_context *.
38926         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
38927         context to the _simt_ SIMD stmt.
38928         (lower_omp_for): For combined SIMD with sibling _simt_
38929         SIMD, make sure to use the same decls in _looptemp_
38930         clauses as in the sibling.
38931
38932 2017-01-26  David Sherwood  <david.sherwood@arm.com>
38933
38934         PR middle-end/79212
38935         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
38936         all contexts.
38937
38938 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38939
38940         PR target/70465
38941         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
38942         emit fld b; fld a; if possible.
38943
38944         * brig-builtins.def: Update copyright years.
38945         * config/arm/arm_acle_builtins.def: Update copyright years.
38946
38947 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
38948
38949         PR target/79179
38950         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
38951         constraint instead of o for the stxsd instruction.
38952
38953 2017-01-25  Carl Love  <cel@us.ibm.com>
38954
38955         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
38956         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
38957
38958 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
38959
38960         * doc/invoke.texi (C++ Dialect Options): Fix typo.
38961
38962 2017-01-25  Richard Biener  <rguenther@suse.de>
38963
38964         PR tree-optimization/69264
38965         * target.def (vector_alignment_reachable): Improve documentation.
38966         * doc/tm.texi: Regenerate.
38967         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
38968         and add a comment.
38969         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
38970         earlier changes with respect to TYPE_USER_ALIGN.
38971         (vector_alignment_reachable_p): Likewise.  Improve dumping.
38972
38973 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38974
38975         PR target/79145
38976         * config/arm/arm.md (xordi3): Force constant operand into a register
38977         for TARGET_IWMMXT.
38978
38979 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38980
38981         * doc/invoke.texi (-fstore-merging): Correct default optimization
38982         levels at which it is enabled.
38983         (-O): Move -fstore-merging from list to...
38984         (-O2): ... Here.
38985
38986 2017-01-25  Richard Biener  <rguenther@suse.de>
38987
38988         PR debug/78363
38989         * omp-expand.c: Include debug.h.
38990         (expand_omp_taskreg): Make sure to generate early debug before
38991         outlining anything from a function.
38992         (expand_omp_target): Likewise.
38993         (grid_expand_target_grid_body): Likewise.
38994
38995 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
38996
38997         PR lto/79061
38998         * asan.c (get_translation_unit_decl): New function.
38999         (asan_add_global): Extract modules file name from globals
39000         TRANSLATION_UNIT_DECL name.
39001
39002 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
39003
39004         PR target/77439
39005         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
39006         for long calls with APCS frame and VFP.
39007
39008 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
39009
39010         * cfg.c (original_copy_tables_initialized_p): New function.
39011         * cfg.h (original_copy_tables_initialized_p): New decl.
39012         * cfgrtl.c (relink_block_chain): Guard the call to
39013         free_original_copy_tables with a call to
39014         original_copy_tables_initialized_p.
39015         * cgraph.h (symtab_node::native_rtl_p): New decl.
39016         * cgraphunit.c (symtab_node::native_rtl_p): New function.
39017         (symtab_node::needed_p): Don't assert for early assembly output
39018         for __RTL functions.
39019         (cgraph_node::finalize_function): Set "force_output" for __RTL
39020         functions.
39021         (cgraph_node::analyze): Bail out early for __RTL functions.
39022         (analyze_functions): Update assertion to support __RTL functions.
39023         (cgraph_node::expand): Bail out early for __RTL functions.
39024         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
39025         __RTL functions.
39026         * function.h (struct function): Update comment for field
39027         "pass_startwith".
39028         * gimple-expr.c: Include "tree-pass.h".
39029         (gimple_has_body_p): Return false for __RTL functions.
39030         * Makefile.in (OBJS): Add run-rtl-passes.o.
39031         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
39032         accessor.
39033         (gcc::pass_manager::get_clean_slate): New accessor.
39034         * passes.c: Include "insn-addr.h".
39035         (should_skip_pass_p): Add logging.  Update logic for running
39036         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
39037         property-provider override so it is only done for gimple passes.
39038         Don't skip dfinit.
39039         (skip_pass): New function.
39040         (execute_one_pass): Call skip_pass when skipping passes.
39041         * read-md.c (md_reader::read_char): Support filtering
39042         the input to a subset of line numbers.
39043         (md_reader::md_reader): Initialize fields
39044         m_first_line and m_last_line.
39045         (md_reader::read_file_fragment): New function.
39046         * read-md.h (md_reader::read_file_fragment): New decl.
39047         (md_reader::m_first_line): New field.
39048         (md_reader::m_last_line): New field.
39049         * read-rtl-function.c (function_reader::create_function): Only
39050         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
39051         curr_properties.  Set DECL_INITIAL to a dummy block.
39052         (read_rtl_function_body_from_file_range): New function.
39053         * read-rtl-function.h (read_rtl_function_body_from_file_range):
39054         New decl.
39055         * run-rtl-passes.c: New file.
39056         * run-rtl-passes.h: New file.
39057
39058 2017-01-24  Jeff Law  <law@redhat.com>
39059
39060         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
39061         buffer size.
39062
39063 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
39064
39065         PR tree-optimization/79159
39066         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
39067         (record_nonwrapping_iv): Improve boundary using above function if no
39068         value range information.
39069
39070 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
39071             Martin Jambor  <mjambor@suse.cz>
39072
39073         * brig-builtins.def: New file.
39074         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
39075         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
39076         (DEF_HSAIL_SAT_BUILTIN): Likewise.
39077         (DEF_HSAIL_INTR_BUILTIN): Likewise.
39078         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
39079         * builtin-types.def (BT_INT8): New.
39080         (BT_INT16): Likewise.
39081         (BT_UINT8): Likewise.
39082         (BT_UINT16): Likewise.
39083         (BT_FN_ULONG): Likewise.
39084         (BT_FN_UINT_INT): Likewise.
39085         (BT_FN_UINT_ULONG): Likewise.
39086         (BT_FN_UINT_LONG): Likewise.
39087         (BT_FN_UINT_PTR): Likewise.
39088         (BT_FN_ULONG_PTR): Likewise.
39089         (BT_FN_INT8_FLOAT): Likewise.
39090         (BT_FN_INT16_FLOAT): Likewise.
39091         (BT_FN_UINT32_FLOAT): Likewise.
39092         (BT_FN_UINT16_FLOAT): Likewise.
39093         (BT_FN_UINT8_FLOAT): Likewise.
39094         (BT_FN_UINT64_FLOAT): Likewise.
39095         (BT_FN_UINT16_UINT32): Likewise.
39096         (BT_FN_UINT32_UINT16): Likewise.
39097         (BT_FN_UINT16_UINT16_UINT16): Likewise.
39098         (BT_FN_INT_PTR_INT): Likewise.
39099         (BT_FN_UINT_PTR_UINT): Likewise.
39100         (BT_FN_LONG_PTR_LONG): Likewise.
39101         (BT_FN_ULONG_PTR_ULONG): Likewise.
39102         (BT_FN_VOID_UINT64_UINT64): Likewise.
39103         (BT_FN_UINT8_UINT8_UINT8): Likewise.
39104         (BT_FN_INT8_INT8_INT8): Likewise.
39105         (BT_FN_INT16_INT16_INT16): Likewise.
39106         (BT_FN_INT_INT_INT): Likewise.
39107         (BT_FN_UINT_FLOAT_UINT): Likewise.
39108         (BT_FN_FLOAT_UINT_UINT): Likewise.
39109         (BT_FN_ULONG_UINT_UINT): Likewise.
39110         (BT_FN_ULONG_UINT_PTR): Likewise.
39111         (BT_FN_ULONG_ULONG_ULONG): Likewise.
39112         (BT_FN_UINT_UINT_UINT): Likewise.
39113         (BT_FN_VOID_UINT_PTR): Likewise.
39114         (BT_FN_UINT_UINT_PTR: Likewise.
39115         (BT_FN_UINT32_UINT64_PTR): Likewise.
39116         (BT_FN_INT_INT_UINT_UINT): Likewise.
39117         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
39118         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
39119         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
39120         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
39121         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
39122         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
39123         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
39124         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
39125         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
39126         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
39127         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
39128         * doc/frontends.texi: List BRIG FE.
39129         * doc/install.texi (Testing): Add BRIG tesring requirements.
39130         * doc/invoke.texi (Overall Options): Mention BRIG.
39131         * doc/standards.texi (Standards): Doucment BRIG HSA version.
39132
39133 2017-01-24  Richard Biener  <rguenther@suse.de>
39134
39135         PR translation/79208
39136         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
39137
39138 2017-01-24  Martin Jambor  <mjambor@suse.cz>
39139
39140         PR bootstrap/79198
39141         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
39142         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
39143         and known_contexts.
39144
39145 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
39146
39147         PR middle-end/79123
39148         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
39149         casts from signed to unsigned really don't have a range.
39150
39151 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
39152
39153         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
39154         GMP_RNDx for compatiblity.
39155
39156 2017-01-24  Martin Liska  <mliska@suse.cz>
39157
39158         PR bootstrap/79132
39159         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
39160         that would prevent us to call alloca with -1 as argument.
39161
39162 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
39163
39164         * dwarf2out.c (output_compilation_unit_header, output_file_names):
39165         Avoid -Wformat-security warning.
39166
39167 2017-01-23  Andrew Pinski  <apinski@cavium.com>
39168
39169         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
39170         cost table.
39171
39172 2017-01-23  Martin Sebor  <msebor@redhat.com>
39173
39174         PR middle-end/78703
39175         * gimple-ssa-sprintf.c (warn_level): New global.
39176         (format_integer): Use it here and throughout the rest of the file.
39177         Use the same switch to compute sign as base.
39178         (maybe_warn): New function.
39179         (format_directive): Factor out warnings into maybe_warn.
39180         Add debugging output.  Use warn_level.
39181         (add_bytes): Use warn_level.
39182         (pass_sprintf_length::compute_format_length): Add debugging output.
39183         (try_substitute_return_value): Same.
39184         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
39185
39186         PR middle-end/78703
39187         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
39188         (struct fmtresult, format_integer, format_floating): Adjust.
39189         (fmtresult::fmtresult): Set max correctly in two argument ctor.
39190         (get_string_length, format_string,format_directive): Same.
39191         (pass_sprintf_length::compute_format_length): Same.
39192         (try_substitute_return_value): Simplify slightly.
39193
39194         PR middle-end/78703
39195         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
39196         (fmtresult::operator+=): Outlined.
39197         (struct fmtresult): Add ctors.
39198         (struct conversion_spec): Rename...
39199         (struct directive): ...to this.  Add and remove data members.
39200         (directive::set_width, directive::set_precision): New functions.
39201         (format_percent): Use fmtresult ctor.
39202         (get_width_and_precision): Remove.
39203         (format_integer): Make naming changes.  Avoid computing width and
39204         precision.
39205         (format_floating): Same.  Adjust indentation.
39206         (format_character, format_none): New functions.
39207         (format_string): Moved character handling to format_character.
39208         (format_directive): Remove arguments, change return type.
39209         (parse_directive): New function.
39210         (pass_sprintf_length::compute_format_length): Move directive
39211         parsing to parse_directive.
39212
39213 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39214
39215         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
39216         (assign_assembler_name_if_needed): ... this.
39217         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
39218         (assign_assembler_name_if_needed): ... this.
39219         (free_lang_data_in_cgraph): Adjust callers.
39220         * cgraphunit.c (cgraph_node::analyze): Likewise.
39221         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
39222         Likewise.
39223
39224 2017-01-23  Richard Biener  <rguenther@suse.de>
39225
39226         PR tree-optimization/79088
39227         PR tree-optimization/79188
39228         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
39229         resetting loop bounds after last path deletion.  Reset loop
39230         bounds of the target loop, make code match the comments.
39231         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
39232         Make sure loops need no fixups.
39233
39234 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
39235
39236         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
39237         exponent support with double type for first argument.
39238         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
39239         type returned by __builtin_vec_extract_sig,
39240         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
39241         functions from "vector int" to "vector unsigned int" or from
39242         "vector long long int" to "vector unsigned long long int".
39243         Changed type returned by __builtin_vec_extract_exp,
39244         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
39245         functions from "vector int" to "vector unsigned int" or from
39246         "vector long long int" to "vector unsigned long long int".
39247         Changed return type of __builtin_vec_test_data_class,
39248         __builtin_vec_test_data_class_sp, and
39249         __builtin_vec_test_data_class_dp from "vector int" to
39250         "vector bool int" or from "vector long long int" to "vector bool
39251         long long int" and changed second argument type from "unsigned
39252         int" to "int".  Added new overloaded function forms "vector float
39253         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
39254         "vector float __builtin_vec_insert_exp_sp (vector float, vector
39255         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
39256         double, vector unsigned long long int)" and "vector double
39257         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
39258         long int)".  Changed return type of
39259         __builtin_scalar_test_data_class and
39260         __builtin_scalar_test_data_class_sp and
39261         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
39262         int" and changed second argument from "unsigned int" to "int".
39263         Changed type returned by __builtin_scalar_test_neg,
39264         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
39265         from "int" to "bool int".  Added new overloaded function form
39266         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
39267         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
39268         exponent double-precision with floating point first argument.
39269         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
39270         documentation of scalar_test_data_class, scalar_test_neg,
39271         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
39272         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
39273         vec_test_data_class built-in functions to reflect refinements in
39274         their type signatures.
39275
39276 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
39277
39278         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
39279         size of buf.
39280         (aarch64_elf_asm_destructor): Likewise.
39281
39282 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
39283
39284         PR rtl-optimization/78634
39285         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
39286         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
39287         * ifcvt.c (noce_try_cmove): Add missing cost check.
39288
39289         PR rtl-optimization/71724
39290         * combine.c (if_then_else_cond): Look for situations where it is
39291         beneficial to undo the work of one of the recursive calls.
39292
39293 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
39294
39295         PR tree-optimization/70754
39296         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
39297         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
39298         combined stmt before it if not NULL.
39299         (combine_chains): Process refs reversely and compute dominance point
39300         for root ref.
39301
39302 2017-01-23  Martin Liska  <mliska@suse.cz>
39303
39304         PR tree-optimization/79196
39305         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
39306         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
39307         instead of memcmp.
39308         (strlen_optimize_stmt): Call the renamed function.
39309
39310 2017-01-23  Michael Matz  <matz@suse.de>
39311
39312         PR tree-optimization/78384
39313         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
39314
39315 2017-01-23  Richard Biener  <rguenther@suse.de>
39316
39317         PR tree-optimization/79186
39318         * tree-vrp.c (register_new_assert_for): Make sure we've seen
39319         both incoming edges before moving an assert.
39320
39321 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39322
39323         * ipa-prop.c (load_from_param_1): Removed.
39324         (load_from_unmodified_param): Bits from load_from_param_1 put back
39325         here.
39326         (load_from_param): Removed.
39327         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
39328         with stmt.  Reverted back to use of load_from_unmodified_param.
39329
39330 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39331
39332         PR ipa/79108
39333         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
39334         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
39335         field a pointer to garbage collected vector, mark lattices and
39336         ipcp_orig_node with GTY((skip)).
39337         (ipa_get_param_count): Adjust to descriptors being a pointer.
39338         (ipa_get_param): Likewise.
39339         (ipa_get_type): Likewise.
39340         (ipa_get_param_move_cost): Likewise.
39341         (ipa_set_param_used): Likewise.
39342         (ipa_get_controlled_uses): Likewise.
39343         (ipa_set_controlled_uses): Likewise.
39344         (ipa_is_param_used): Likewise.
39345         (ipa_node_params_t): Move into garbage collector.  New methods insert
39346         and remove.
39347         (ipa_node_params_sum): Annotate wth GTY(()).
39348         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
39349         garbage collected.
39350         (ipa_load_from_parm_agg): Adjust declaration.
39351         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
39352         * ipa-profile.c (ipa_profile): Likewise.
39353         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
39354         (ipa_populate_param_decls): Make descriptors parameter garbage
39355         collected.
39356         (ipa_dump_param): Adjust to descriptors being a pointer.
39357         (ipa_alloc_node_params): Likewise.
39358         (ipa_initialize_node_params): Likewise.
39359         (load_from_param_1): Make descriptors parameter garbage collected.
39360         (load_from_unmodified_param): Likewise.
39361         (load_from_param): Likewise.
39362         (ipa_load_from_parm_agg): Likewise.
39363         (ipa_node_params::~ipa_node_params): Removed.
39364         (ipa_free_all_node_params): Remove call to delete operator.
39365         (ipa_node_params_t::insert): New.
39366         (ipa_node_params_t::remove): Likewise.
39367         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
39368         copy known_csts and known_contexts vectors.
39369         (ipa_read_node_info): Adjust to descriptors being a pointer.
39370         (ipcp_modif_dom_walker): Make m_descriptors field garbage
39371         collected.
39372         (ipcp_transform_function): Make descriptors variable garbage
39373         collected.
39374
39375 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
39376
39377         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
39378         * config/i386/avx512dqintrin.h: Ditto.
39379         * config/i386/avx512fintrin.h: Ditto.
39380         * config/i386/i386.c: Handle new builtins.
39381         * config/i386/i386-builtin.def: Add new builtins.
39382         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
39383         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
39384
39385 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39386             Martin Liska  <mliska@suse.cz>
39387
39388         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
39389         * asan.c (asan_expand_poison_ifn): Support stores and use
39390         appropriate ASAN report function.
39391         * internal-fn.c (expand_ASAN_POISON_USE): New function.
39392         * internal-fn.def (ASAN_POISON_USE): Declare.
39393         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
39394         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
39395         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
39396         ASAN_POISON calls w/o LHS.
39397         * tree-ssa.c (execute_update_addresses_taken): Create clobber
39398         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
39399         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
39400         * gimplify.c (asan_poison_variables): Add attribute
39401         use_after_scope_memory to variables that really needs to live
39402         in memory.
39403         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
39404         having the attribute.
39405
39406 2017-01-23  Martin Liska  <mliska@suse.cz>
39407
39408         * asan.c (create_asan_shadow_var): New function.
39409         (asan_expand_poison_ifn): Likewise.
39410         * asan.h (asan_expand_poison_ifn): New declaration.
39411         * internal-fn.c (expand_ASAN_POISON): Likewise.
39412         * internal-fn.def (ASAN_POISON): New builtin.
39413         * sanopt.c (pass_sanopt::execute): Expand
39414         asan_expand_poison_ifn.
39415         * tree-inline.c (copy_decl_for_dup_finish): Make function
39416         external.
39417         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
39418         * tree-ssa.c (is_asan_mark_p): New function.
39419         (execute_update_addresses_taken): Rewrite local variables
39420         (identified just by use-after-scope as addressable) into SSA.
39421
39422 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39423
39424         * doc/install.texi (Specific): opensource.apple.com uses https
39425         now. Remove trailing slash.
39426
39427 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39428
39429         * README.Portability: Remove note on an Irix compatibility issue.
39430
39431 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
39432
39433         * gcov.c (INCLUDE_ALGORITHM): Define.
39434         (INCLUDE_VECTOR): Define.
39435         No longer include <vector> and <algorithm> directly.
39436
39437 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
39438
39439         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
39440         to https.
39441         * doc/invoke.texi (Code Gen Options): Ditto.
39442
39443 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
39444
39445         PR lto/78407
39446         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
39447
39448 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
39449
39450         rtl-optimization/79125
39451         * cprop.c (local_cprop_pass): Handle cases where we make an
39452         unconditional trap.
39453
39454 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
39455
39456         PR target/61729
39457         PR target/77850
39458         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
39459         read from, for big endian.
39460
39461 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
39462
39463         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
39464         register pauth builtins for LP64 only.
39465
39466 2017-01-20  Marek Polacek  <polacek@redhat.com>
39467
39468         PR c/79152
39469         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
39470         non-case labels.
39471
39472 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39473
39474         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
39475         of safelen status.
39476         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
39477         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
39478         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
39479
39480 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39481
39482         PR target/71270
39483         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
39484         in big-endian mode when they are not a single duplicated value.
39485
39486 2017-01-20  Richard Biener  <rguenther@suse.de>
39487
39488         * BASE-VER: Bump to 7.0.1.
39489
39490 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39491
39492         * omp-low.c (omplow_simd_context): New struct.  Use it...
39493         (lower_rec_simd_input_clauses): ...here and...
39494         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
39495         references to idx, lane, max_vf, is_simt.
39496
39497 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
39498
39499         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
39500         mcpu=nps400.
39501
39502 2017-01-20  Martin Jambor  <mjambor@suse.cz>
39503
39504         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
39505         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
39506         gt-hsa-common.h.
39507         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
39508         (GTFILES): Rename hsa.c to hsa-common.c.
39509         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
39510         * hsa-dump.c: Likewise.
39511         * hsa-gen.c: Likewise.
39512         * hsa-regalloc.c: Likewise.
39513         * ipa-hsa.c: Likewise.
39514         * omp-expand.c: Likewise.
39515         * omp-low.c: Likewise.
39516         * toplev.c: Likewise.
39517
39518 2017-01-20  Marek Polacek  <polacek@redhat.com>
39519
39520         PR c/64279
39521         * doc/invoke.texi: Document -Wduplicated-branches.
39522         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
39523         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
39524         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
39525         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
39526         return 0 only when not OEP_LEXICOGRAPHIC.
39527         (fold_build_cleanup_point_expr): Use the expression
39528         location when building CLEANUP_POINT_EXPR.
39529         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
39530         * tree.c (add_expr): Handle error_mark_node.
39531
39532 2017-01-20  Martin Liska  <mliska@suse.cz>
39533
39534         PR lto/69188
39535         * tree-profile.c (init_ic_make_global_vars): Do not call
39536         finalize_decl.
39537         (gimple_init_gcov_profiler): Likewise.
39538
39539 2017-01-20  Martin Liska  <mliska@suse.cz>
39540
39541         PR ipa/71190
39542         * cgraph.h (maybe_create_reference): Remove argument and
39543         update comment.
39544         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
39545         argument.
39546         * ipa-cp.c (create_specialized_node): Likewise.
39547         * symtab.c (symtab_node::maybe_create_reference): Handle
39548         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
39549
39550 2017-01-20  Martin Liska  <mliska@suse.cz>
39551
39552         * read-rtl-function.c (function_reader::create_function): Use
39553         build_decl instread of build_decl_stat.
39554
39555 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
39556
39557         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
39558         * config/i386/avx512dqintrin.h: Ditto.
39559         * config/i386/avx512fintrin.h: Ditto.
39560         * config/i386/i386-builtin-types.def: Add new types.
39561         * config/i386/i386.c: Handle new types.
39562         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
39563         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
39564         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
39565         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
39566         (__builtin_ia32_kshiftridi): New.
39567         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
39568
39569 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
39570
39571         PR target/78875
39572         PR target/79140
39573         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
39574         define to rs6000_init_stack_protect_guard.
39575         (rs6000_init_stack_protect_guard): New function.
39576
39577 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39578             Yunqiang Su  <yunqiang.su@imgtec.com>
39579
39580         * config.gcc (supported_defaults): Add madd4.
39581         (with_madd4): Add validation.
39582         (all_defaults): Add madd4.
39583         * config/mips/mips.opt (mmadd4): New option.
39584         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39585         mmadd4.
39586         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39587         __mips_no_madd4.
39588         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
39589         (ISA_HAS_FUSED_MADD4): Likewise.
39590         * doc/invoke.texi (-mmadd4): Document the new option.
39591         * doc/install.texi (--with-madd4): Document the new option.
39592
39593 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39594
39595         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
39596         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
39597         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
39598         (aarch64_init_pauth_hint_builtins): New.
39599         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
39600         (aarch64_expand_builtin): Expand new builtins.
39601
39602 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39603
39604         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
39605         * combine-stack-adj.c (no_unhandled_cfa): Handle
39606         REG_CFA_TOGGLE_RA_MANGLE.
39607         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
39608         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
39609         info for return address signing.
39610         (aarch64_expand_epilogue): Likewise.
39611
39612 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39613
39614         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
39615         * config/aarch64/aarch64-protos.h
39616         (aarch64_return_address_signing_enabled): New declaration.
39617         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
39618         New function.
39619         (aarch64_expand_prologue): Sign return address before it's pushed onto
39620         stack.
39621         (aarch64_expand_epilogue): Authenticate return address fetched from
39622         stack.
39623         (aarch64_override_options): Sanity check for ILP32 and ISA level.
39624         (aarch64_attributes): New function attributes for "sign-return-address".
39625         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
39626         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
39627         ("*do_return"): Generate combined instructions according to key index.
39628         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
39629         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
39630         iterators.
39631         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
39632         * config/aarch64/aarch64.opt (msign-return-address=): New.
39633         * doc/extend.texi (AArch64 Function Attributes): Documents
39634         "sign-return-address=".
39635         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
39636
39637 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39638
39639         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
39640         overall option summary.
39641
39642 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39643
39644         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
39645         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
39646         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
39647         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
39648
39649 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
39650
39651         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
39652         -mpower9-minmax by default for -mcpu=power9.
39653         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
39654         128-bit floating point.
39655
39656 2017-01-20  Alan Modra  <amodra@gmail.com>
39657
39658         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
39659         optimizing for size.
39660
39661 2017-01-20  Alan Modra  <amodra@gmail.com>
39662
39663         PR target/79144
39664         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
39665         for strcmp and strncmp from corresponding builtin decl.
39666
39667 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39668
39669         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
39670         instead of i386/rtems-64.h.
39671         * config/i386/rtems-64.h: Remove.
39672
39673 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39674
39675         PR target/78478
39676         Revert:
39677         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
39678
39679         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
39680
39681 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
39682
39683         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
39684         Change int to HOST_WIDE_INT.
39685         * config/aarch64/aarch64-protos.h
39686         (aarch64_simd_gen_const_vector_dup): Likewise.
39687         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
39688
39689 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
39690
39691         * langhooks-def.h (lhd_type_for_size): New decl.
39692         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
39693         * langhooks.c (lhd_type_for_size): New function, taken from
39694         lto_type_for_size.
39695
39696 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
39697
39698         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
39699         define_bypass for CR latency.
39700         (power9-cracked-alu): Update bypass latency and remove power9-branch.
39701         (power9-alu2): Add define_bypass for CR latency.
39702         (power9-cmp): New.
39703         (power9-mul): Update insn latency.
39704         (power9-mul-compare): Update insn latency, bypass latency and remove
39705         power9-branch.
39706
39707 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39708
39709         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
39710         Delete.
39711         * config/aarch64/aarch64.md
39712         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
39713         aarch64_nopcrelative_literal_loads.
39714         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
39715
39716 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
39717
39718         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
39719         TARGET_LOONGSON_3A.
39720         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
39721
39722 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
39723
39724         PR target/78176
39725         * config.gcc (supported_defaults): Add lxc1-sxc1.
39726         (with_lxc1_sxc1): Add validation.
39727         (all_defaults): Add lxc1-sxc1.
39728         * config/mips/mips.opt (mlxc1-sxc1): New option.
39729         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39730         mlxc1-sxc1.
39731         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39732         __mips_no_lxc1_sxc1.
39733         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
39734         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
39735         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
39736
39737 2017-01-19  Richard Biener  <rguenther@suse.de>
39738
39739         PR tree-optimization/72488
39740         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
39741         sure to restore SSA info.
39742         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
39743
39744 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
39745
39746         PR rtl-optimization/79121
39747         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
39748         of the inner type when shifting an extended value.
39749
39750 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39751
39752         PR lto/78407
39753         * symtab.c (symtab_node::equal_address_to): Fix comparing of
39754         interposable aliases.
39755
39756 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
39757
39758         PR target/78516
39759         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
39760         Use the evmergelohi instruction.
39761         (mov_si<mode>_e500_subreg4_2_le): Likewise.
39762         (mov_sitf_e500_subreg8_2_be): Likewise.
39763         (mov_sitf_e500_subreg12_2_le): Likewise.
39764         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
39765         (mov_si<mode>_e500_subreg4_2_be): Likewise.
39766         (mov_sitf_e500_subreg8_2_le): Likewise.
39767         (mov_sitf_e500_subreg12_2_be): Likewise.
39768
39769 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39770
39771         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
39772         attribute from vecsimple to vecperm.
39773         (altivec_vbpermq2): Likewise.
39774
39775 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39776
39777         PR target/79040
39778         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
39779
39780 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
39781         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
39782         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
39783         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
39784         case where N arg is SIZE_MAX.
39785         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
39786         (cmpstrsi): Add pattern.
39787
39788 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
39789
39790         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39791         __builtin_vec_revb builtins.
39792         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
39793         built-in functions to support generation of the ISA 3.0 XXBR<x>
39794         vector byte reverse instructions.
39795         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
39796         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
39797         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
39798         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
39799         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
39800         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
39801         (P9V_BUILTIN_VEC_REVB): Likewise.
39802         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
39803         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
39804         (p9_xxbrq_v16qi): Likewise.
39805         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
39806         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
39807         (p9_xxbrh_v8hi): Likewise.
39808         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
39809         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
39810         vec_revb built-in functions.
39811
39812 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
39813
39814         PR rtl-optimization/78952
39815         * config/i386/i386.md (any_extract): New code iterator.
39816         (*insvqi_2): Use any_extract for source operand.
39817         (*insvqi_3): Use any_shiftrt for source operand.
39818
39819 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
39820
39821         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
39822         New function.
39823         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
39824
39825 2017-01-18  Matthias Klose  <doko@ubuntu.com>
39826
39827         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
39828
39829 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39830
39831         * config/rs6000/altivec.h (vec_bperm): Change #define.
39832         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
39833         (altivec_vbpermq2): New define_insn.
39834         (altivec_vbpermd): Likewise.
39835         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
39836         function interface.
39837         (VBPERMD): Likewise.
39838         (VBPERM): New polymorphic function interface.
39839         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
39840         Add entries for P9V_BUILTIN_VEC_VBPERM.
39841         * doc/extend.texi: Add interfaces for vec_bperm.
39842
39843 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39844
39845         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
39846         first letter of error messages.
39847         (s390_resolve_overloaded_builtin): Likewise.
39848         * config/s390/s390.c (s390_expand_builtin): Likewise.
39849         (s390_invalid_arg_for_unprototyped_fn): Likewise.
39850         (s390_valid_target_attribute_inner_p): Likewise.
39851         * config/s390/s390.md ("tabort"): Likewise.
39852
39853 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
39854
39855         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
39856         (ISA_AVOID_DIV_HILO): New macro.
39857         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
39858         (ISA_HAS_DDIV): Likewise.
39859
39860 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39861
39862         * doc/invoke.texi (fabi-version): Correct number of occurrences.
39863
39864 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39865
39866         * doc/invoke.texi (fabi-version): Spelling fix.
39867
39868 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39869
39870         PR c++/70182
39871         * doc/invoke.texi (fabi-version): Mention mangling fix for
39872         operator names.
39873
39874 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39875
39876         PR c++/77489
39877         * doc/invoke.texi (fabi-version): Document discriminator mangling.
39878
39879 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
39880
39881         PR target/78875
39882         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
39883         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
39884         the new options.
39885         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
39886         flexible settings.
39887         (stack_protect_test): Ditto.
39888         * config/rs6000/rs6000.opt (mstack-protector-guard=,
39889         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
39890         options.
39891         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
39892         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
39893         -mstack-protector-guard-offset=.
39894         (RS/6000 and PowerPC Options): Ditto.
39895
39896 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
39897
39898         * config/i386/i386.h (MASK_CLASS_P): New define.
39899         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
39900         there are no registers from different register sets also when
39901         mask registers are used.  Update function comment.
39902         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
39903         to (*k/*r) and (*k/*km) alternatives.
39904
39905 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
39906
39907         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
39908         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
39909         (EH_RETURN_HANDLER_RTX): New define.
39910         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
39911         Force frame pointer in EH return functions.
39912         (aarch64_expand_epilogue): Add barrier for eh_return.
39913         (aarch64_final_eh_return_addr): Remove.
39914         (aarch64_eh_return_handler_rtx): New function.
39915         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
39916         Remove.
39917         (aarch64_eh_return_handler_rtx): New prototype.
39918
39919 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39920
39921         * config/rs6000/altivec.h (vec_rlmi): New #define.
39922         (vec_vrlnm): Likewise.
39923         (vec_rlnm): Likewise.
39924         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
39925         (UNSPEC_VRLNM): Likewise.
39926         (VIlong): New mode iterator.
39927         (altivec_vrl<VI_char>mi): New define_insn.
39928         (altivec_vrl<VI_char>nm): Likewise.
39929         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
39930         function entry.
39931         (VRLDNM): Likewise.
39932         (RLNM): New polymorphic function entry.
39933         (VRLWMI): New monomorphic function entry.
39934         (VRLDMI): Likewise.
39935         (RLMI): New polymorphic function entry.
39936         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
39937         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
39938         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
39939         vec_vrlnm.
39940
39941 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39942
39943         PR debug/78839
39944         * dwarf2out.c (field_byte_offset): Restore the
39945         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
39946         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
39947         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
39948         of build2 + fold.
39949
39950 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39951
39952         PR ada/67205
39953         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
39954
39955 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
39956
39957         PR debug/71669
39958         * dwarf2out.c (add_data_member_location_attribute): For constant
39959         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
39960         instead of DW_AT_data_member_location, DW_AT_bit_offset and
39961         DW_AT_byte_size attributes.
39962
39963 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
39964
39965         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
39966         after forcing to constant memory when the code model is medium.
39967
39968 2017-01-17  Julia Koval  <julia.koval@intel.com>
39969
39970         PR target/76731
39971         * config/i386/avx512fintrin.h
39972         (_mm512_i32gather_ps): Change __addr type to void const*.
39973         (_mm512_mask_i32gather_ps): Ditto.
39974         (_mm512_i32gather_pd): Ditto.
39975         (_mm512_mask_i32gather_pd): Ditto.
39976         (_mm512_i64gather_ps): Ditto.
39977         (_mm512_mask_i64gather_ps): Ditto.
39978         (_mm512_i64gather_pd): Ditto.
39979         (_mm512_mask_i64gather_pd): Ditto.
39980         (_mm512_i32gather_epi32): Ditto.
39981         (_mm512_mask_i32gather_epi32): Ditto.
39982         (_mm512_i32gather_epi64): Ditto.
39983         (_mm512_mask_i32gather_epi64): Ditto.
39984         (_mm512_i64gather_epi32): Ditto.
39985         (_mm512_mask_i64gather_epi32): Ditto.
39986         (_mm512_i64gather_epi64): Ditto.
39987         (_mm512_mask_i64gather_epi64): Ditto.
39988         (_mm512_i32scatter_ps): Change __addr type to void*.
39989         (_mm512_mask_i32scatter_ps): Ditto.
39990         (_mm512_i32scatter_pd): Ditto.
39991         (_mm512_mask_i32scatter_pd): Ditto.
39992         (_mm512_i64scatter_ps): Ditto.
39993         (_mm512_mask_i64scatter_ps): Ditto.
39994         (_mm512_i64scatter_pd): Ditto.
39995         (_mm512_mask_i64scatter_pd): Ditto.
39996         (_mm512_i32scatter_epi32): Ditto.
39997         (_mm512_mask_i32scatter_epi32): Ditto.
39998         (_mm512_i32scatter_epi64): Ditto.
39999         (_mm512_mask_i32scatter_epi64): Ditto.
40000         (_mm512_i64scatter_epi32): Ditto.
40001         (_mm512_mask_i64scatter_epi32): Ditto.
40002         (_mm512_i64scatter_epi64): Ditto.
40003         (_mm512_mask_i64scatter_epi64): Ditto.
40004         * config/i386/avx512pfintrin.h
40005         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
40006         (_mm512_mask_prefetch_i32gather_ps): Ditto.
40007         (_mm512_mask_prefetch_i64gather_pd): Ditto.
40008         (_mm512_mask_prefetch_i64gather_ps): Ditto.
40009         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
40010         (_mm512_prefetch_i32scatter_ps): Ditto.
40011         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
40012         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
40013         (_mm512_prefetch_i64scatter_pd): Ditto.
40014         (_mm512_prefetch_i64scatter_ps): Ditto.
40015         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
40016         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
40017         * config/i386/avx512vlintrin.h
40018         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
40019         (_mm_mmask_i32gather_ps): Ditto.
40020         (_mm256_mmask_i32gather_pd): Ditto.
40021         (_mm_mmask_i32gather_pd): Ditto.
40022         (_mm256_mmask_i64gather_ps): Ditto.
40023         (_mm_mmask_i64gather_ps): Ditto.
40024         (_mm256_mmask_i64gather_pd): Ditto.
40025         (_mm_mmask_i64gather_pd): Ditto.
40026         (_mm256_mmask_i32gather_epi32): Ditto.
40027         (_mm_mmask_i32gather_epi32): Ditto.
40028         (_mm256_mmask_i32gather_epi64): Ditto.
40029         (_mm_mmask_i32gather_epi64): Ditto.
40030         (_mm256_mmask_i64gather_epi32): Ditto.
40031         (_mm_mmask_i64gather_epi32): Ditto.
40032         (_mm256_mmask_i64gather_epi64): Ditto.
40033         (_mm_mmask_i64gather_epi64): Ditto.
40034         (_mm256_i32scatter_ps): Change __addr type to void*.
40035         (_mm256_mask_i32scatter_ps): Ditto.
40036         (_mm_i32scatter_ps): Ditto.
40037         (_mm_mask_i32scatter_ps): Ditto.
40038         (_mm256_i32scatter_pd): Ditto.
40039         (_mm256_mask_i32scatter_pd): Ditto.
40040         (_mm_i32scatter_pd): Ditto.
40041         (_mm_mask_i32scatter_pd): Ditto.
40042         (_mm256_i64scatter_ps): Ditto.
40043         (_mm256_mask_i64scatter_ps): Ditto.
40044         (_mm_i64scatter_ps): Ditto.
40045         (_mm_mask_i64scatter_ps): Ditto.
40046         (_mm256_i64scatter_pd): Ditto.
40047         (_mm256_mask_i64scatter_pd): Ditto.
40048         (_mm_i64scatter_pd): Ditto.
40049         (_mm_mask_i64scatter_pd): Ditto.
40050         (_mm256_i32scatter_epi32): Ditto.
40051         (_mm256_mask_i32scatter_epi32): Ditto.
40052         (_mm_i32scatter_epi32): Ditto.
40053         (_mm_mask_i32scatter_epi32): Ditto.
40054         (_mm256_i32scatter_epi64): Ditto.
40055         (_mm256_mask_i32scatter_epi64): Ditto.
40056         (_mm_i32scatter_epi64): Ditto.
40057         (_mm_mask_i32scatter_epi64): Ditto.
40058         (_mm256_i64scatter_epi32): Ditto.
40059         (_mm256_mask_i64scatter_epi32): Ditto.
40060         (_mm_i64scatter_epi32): Ditto.
40061         (_mm_mask_i64scatter_epi32): Ditto.
40062         (_mm256_i64scatter_epi64): Ditto.
40063         (_mm256_mask_i64scatter_epi64): Ditto.
40064         (_mm_i64scatter_epi64): Ditto.
40065         (_mm_mask_i64scatter_epi64): Ditto.
40066         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
40067         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
40068         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
40069         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
40070         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
40071         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
40072         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
40073         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
40074         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
40075         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
40076         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
40077         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
40078         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
40079         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
40080         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
40081         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
40082         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
40083         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
40084         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
40085         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
40086         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
40087         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
40088         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
40089         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
40090         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
40091         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
40092         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
40093         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
40094         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
40095         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
40096         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
40097         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
40098         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
40099         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
40100         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
40101         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
40102         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
40103         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
40104         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
40105         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
40106         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
40107         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
40108         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
40109         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
40110         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
40111         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
40112         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
40113         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
40114         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
40115         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
40116         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
40117         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
40118         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
40119         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
40120         definitions accordingly.
40121
40122 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
40123             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
40124
40125         PR target/79079
40126         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
40127         gen_lowpart.
40128
40129 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
40130
40131         PR target/79058
40132         * ira-conflicts.c (ira_build_conflicts): Update total conflict
40133         hard regs for inner regno.
40134
40135 2017-01-17  Martin Liska  <mliska@suse.cz>
40136
40137         PR ipa/71207
40138         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
40139         assumption and add comment.
40140
40141 2017-01-17  Nathan Sidwell  <nathan@acm.org>
40142
40143         * ipa-visibility.c (localize_node): New function, broken out of ...
40144         (function_and_variable_visibility): ... here. Call it.
40145
40146 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
40147
40148         PR middle-end/77445
40149         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
40150         correctly set frequency of oudgoing edge.
40151         (duplicate_thread_path): Fix profile updating.
40152
40153 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
40154
40155         PR other/79046
40156         * configure.ac: Add GCC_BASE_VER.
40157         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
40158         version from BASE-VER file.
40159         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
40160         (gcc.o): Depend on $(BASEVER).
40161         * common.opt (dumpfullversion): New option.
40162         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
40163         * doc/invoke.texi: Document -dumpfullversion.
40164         * doc/install.texi: Document --with-gcc-major-version-only.
40165         * configure: Regenerated.
40166
40167 2017-01-17  Richard Biener  <rguenther@suse.de>
40168
40169         PR tree-optimization/71433
40170         * tree-vrp.c (register_new_assert_for): Merge same asserts
40171         on all incoming edges.
40172         (process_assert_insertions_for): Handle insertions at the
40173         beginning of BBs.
40174
40175 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
40176
40177         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
40178         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
40179
40180 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
40181
40182         PR target/78633
40183         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
40184         RTL sharing.
40185
40186 2017-01-17  Alan Modra  <amodra@gmail.com>
40187
40188         PR target/79066
40189         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
40190         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
40191         symbolic stack limit when pic.
40192
40193 2017-01-16  Martin Sebor  <msebor@redhat.com>
40194
40195         PR tree-optimization/78608
40196         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
40197
40198 2017-01-16  Jeff Law  <law@redhat.com>
40199
40200         Revert:
40201         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
40202         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
40203         for several include directories that may be relative to sysroot.
40204         * config/i386/x-mingw32 (gplus_includedir): Define.
40205         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
40206         (native_system_includedir): Likewise.
40207         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
40208         override if TARGET_SYSTEM_ROOT is defined.
40209         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
40210
40211         PR tree-optimization/79090
40212         PR tree-optimization/33562
40213         PR tree-optimization/61912
40214         PR tree-optimization/77485
40215         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
40216         and computed trims into the dump file.
40217
40218 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
40219
40220         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
40221
40222 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
40223
40224         PR c/79089
40225         * gimplify.c (gimplify_init_constructor): If want_value and
40226         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
40227         fix.
40228
40229         PR target/79080
40230         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
40231         sequence.  Formatting fixes.
40232         (doloop_optimize): Formatting fixes.
40233
40234         PR driver/49726
40235         * gcc.c (debug_level_greater_than_spec_func): New function.
40236         (static_spec_functions): Add debug-level-gt spec function.
40237         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
40238         !g0.
40239         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40240         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40241         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
40242         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
40243         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
40244         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
40245
40246 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
40247
40248         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
40249         QImode fixups to general and mask registers only.
40250
40251 2017-01-16  Carl Love  <cel@us.ibm.com>
40252
40253         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
40254         for built-in functions
40255         vector signed char vec_nabs (vector signed char)
40256         vector signed short vec_nabs (vector signed short)
40257         vector signed int vec_nabs (vector signed int)
40258         vector signed long long vec_nabs (vector signed long long)
40259         vector float vec_nabs (vector float)
40260         vector double vec_nabs (vector double)
40261         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
40262         and NABS overload.
40263         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
40264         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
40265         * doc/extend.texi: Update the documentation file for the new built-in
40266         functions.
40267
40268 2017-01-16  Martin Sebor  <msebor@redhat.com>
40269
40270         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
40271         message.
40272
40273 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40274
40275         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
40276         UNSPEC_VSX__XXSPLTD to require special splat handling.
40277
40278 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
40279
40280         PR bootstrap/78616
40281         * system.h: Poison strndup.
40282
40283 2017-01-16  Alan Modra  <amodra@gmail.com>
40284
40285         PR target/79098
40286         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
40287         use a switch.
40288
40289 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
40290
40291         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
40292
40293 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
40294
40295         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
40296         call recog here.  Assert that INSN_CODE (insn) is non-negative.
40297
40298 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40299
40300         PR target/72749
40301         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
40302         fallthrough.
40303         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
40304         in the currently scheduled RTL fragment.
40305
40306 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40307
40308         PR rtl-optimization/78751
40309         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
40310         give up.
40311
40312 2017-01-14  Jeff Law  <law@redhat.com>
40313
40314         PR tree-optimization/79090
40315         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
40316         variable length stores.
40317         (compute_trims): Delete dead assignment to *trim_tail.
40318         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
40319         zero length.
40320
40321 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
40322
40323         PR rtl-optimization/78626
40324         PR rtl-optimization/78727
40325         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
40326         of a block, and split such blocks after everything else is finished.
40327
40328 2017-01-14  Alan Modra  <amodra@gmail.com>
40329
40330         PR target/72749
40331         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
40332         target legitimate_combined_insn.
40333         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
40334         (rs6000_legitimate_combined_insn): New function.
40335         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
40336         all uses.
40337         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
40338         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
40339         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
40340
40341 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
40342
40343         * doc/frontends.texi (G++ and GCC): Remove references to Java.
40344
40345 2017-01-13  Jeff Law  <law@redhat.com>
40346
40347         PR tree-optimization/33562
40348         PR tree-optimization/61912
40349         PR tree-optimization/77485
40350         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
40351         a statement.
40352         (delete_dead_assignment): Likewise.
40353         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
40354         statement to delete_dead_call and delete_dead_assignment.
40355
40356 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
40357
40358         PR c/78304
40359         * substring-locations.c (format_warning_va): Strengthen case 1 so
40360         that both endpoints of the substring must be within the format
40361         range for just the substring to be printed.
40362
40363 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
40364
40365         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
40366         * config/i386/i386.c (ix86_target_string): Add missing options
40367         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
40368         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
40369         flags_other and ix86_target_other to flags2_other.  Display unknown
40370         isa2 options.
40371         (ix86_valid_target_attribute_inner_p): Add missing options and
40372         reorder options by implied ISAs, as in ix86_target_string.
40373
40374 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40375
40376         * hash-table.h (hash_table::too_empty_p): New function.
40377         (hash_table::expand): Use it.
40378         (hash_table::traverse): Likewise.
40379         (hash_table::empty_slot): Use sizeof (value_type) instead of
40380         sizeof (PTR) to convert bytes to elements.  Shrink the table
40381         if the current size is excessive for the current number of
40382         elements.
40383
40384 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40385
40386         * ira-costs.c (record_reg_classes): Break from the inner loop
40387         early once alt_fail is known to be true.  Update outer loop
40388         handling accordingly.
40389
40390 2017-01-13  Jeff Law  <law@redhat.com>
40391
40392         * tree-ssa-dse.c (decrement_count): New function.
40393         (increment_start_addr, maybe_trim_memstar_call): Likewise.
40394         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
40395         when we know the partially dead statement is a mem* function.
40396
40397         PR tree-optimization/61912
40398         PR tree-optimization/77485
40399         * tree-ssa-dse.c: Include expr.h.
40400         (maybe_trim_constructor_store): New function.
40401         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
40402
40403         PR tree-optimization/33562
40404         PR tree-optimization/61912
40405         PR tree-optimization/77485
40406         * doc/invoke.texi: Document new dse-max-object-size param.
40407         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
40408         * tree-ssa-dse.c: Include params.h.
40409         (dse_store_status): New enum.
40410         (initialize_ao_ref_for_dse): New, partially extracted from
40411         dse_optimize_stmt.
40412         (valid_ao_ref_for_dse, normalize_ref): New.
40413         (setup_live_bytes_from_ref, compute_trims): Likewise.
40414         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
40415         (maybe_trim_partially_dead_store): Likewise.
40416         (maybe_trim_complex_store): Likewise.
40417         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
40418         Track what bytes live from the original store.  Return tri-state
40419         for dead, partially dead or live.
40420         (dse_dom_walker): Add constructor, destructor and new private members.
40421         (delete_dead_call, delete_dead_assignment): New extracted from
40422         dse_optimize_stmt.
40423         (dse_optimize_stmt): Make a member of dse_dom_walker.
40424         Use initialize_ao_ref_for_dse.
40425
40426         PR tree-optimization/33562
40427         PR tree-optimization/61912
40428         PR tree-optimization/77485
40429         * sbitmap.h (bitmap_count_bits): Prototype.
40430         (bitmap_clear_range, bitmap_set_range): Likewise.
40431         * sbitmap.c (bitmap_clear_range): New function.
40432         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
40433
40434 2017-01-13  Martin Liska  <mliska@suse.cz>
40435
40436         PR ipa/79043
40437         * function.c (set_cfun): Add new argument force.
40438         * function.h (set_cfun): Likewise.
40439         * ipa-inline-transform.c (inline_call): Use the function when
40440         strict alising from is dropped for function we inline to.
40441
40442 2017-01-13  Richard Biener  <rguenther@suse.de>
40443
40444         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
40445         for dumping GIMPLE INTEGER_CSTs.
40446
40447 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40448
40449         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
40450         to 201112L since C++17.
40451
40452 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
40453
40454         PR sanitizer/78887
40455         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
40456         if -fsanitize=kernel-address is present.
40457
40458 2017-01-13  Richard Biener  <rguenther@suse.de>
40459
40460         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
40461         as _Literal ( type ) number in case usual suffixes do not
40462         preserve all information.
40463
40464 2017-01-13  Richard Biener  <rguenther@suse.de>
40465
40466         PR tree-optimization/77283
40467         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
40468         and ssa-iterators.h.
40469         (is_feasible_trace): Implement a cost model based on joiner
40470         PHI node uses.
40471
40472 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
40473
40474         PR target/79004
40475         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
40476         char or short to __float128/_Float128 directly.
40477
40478 2017-01-12  Martin Sebor  <msebor@redhat.com>
40479
40480         to -Wformat-overflow.
40481         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
40482         (min_bytes_remaining): Same.
40483         (get_string_length): Same.
40484         (format_string): Same.
40485         (format_directive): Same.
40486         (add_bytes): Same.
40487         (pass_sprintf_length::handle_gimple_call): Same.
40488
40489 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
40490
40491         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
40492         info.nowrite calls with no lhs that can't throw.  Return bool
40493         whether gsi_remove has been called or not.
40494         (pass_sprintf_length::handle_gimple_call): Return bool whether
40495         try_substitute_return_value called gsi_remove.  Formatting fix.
40496         (pass_sprintf_length::execute): Don't use gsi_remove if
40497         handle_gimple_call returned true.
40498
40499         PR bootstrap/79069
40500         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
40501         be removed due to side-effects, don't remove following barrier nor
40502         turn the successor edge into fallthru edge.
40503
40504 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40505
40506         PR target/79044
40507         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
40508         element-reversing loads and stores as not swappable.
40509
40510 2017-01-12  Nathan Sidwell  <nathan@acm.org>
40511             Nicolai Stange  <nicstange@gmail.com>
40512
40513         * combine.c (try_combine): Don't ignore result of overlap checking
40514         loop.  Combine overlap & asm check into single loop.
40515
40516 2017-01-12  Richard Biener  <rguenther@suse.de>
40517
40518         * tree-pretty-print.c (dump_generic_node): Provide -gimple
40519         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
40520
40521 2017-01-12  Richard Biener  <rguenther@suse.de>
40522
40523         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
40524         and TS_TARGET_OPTION directly derive from TS_BASE.
40525         * tree-core.h (tree_optimization_option): Derive from tree_base.
40526         (tree_target_option): Likewise.
40527
40528 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
40529
40530         * config/i386/i386.c (memory_address_length): Increase len
40531         only when rip_relative_addr_p returns false.
40532
40533 2017-01-11  Julia Koval  <julia.koval@intel.com>
40534
40535         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
40536         (OPTION_MASK_ISA_SGX_SET): New.
40537         (ix86_handle_option): Handle OPT_msgx.
40538         * config.gcc: Added sgxintrin.h.
40539         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
40540         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
40541         * config/i386/i386.c (ix86_target_string): Add -msgx.
40542         (PTA_SGX): New.
40543         (ix86_option_override_internal): Handle new options.
40544         (ix86_valid_target_attribute_inner_p): Add sgx.
40545         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
40546         * config/i386/i386.opt: Add msgx.
40547         * config/i386/sgxintrin.h: New file.
40548         * config/i386/x86intrin.h: Add sgxintrin.h.
40549
40550 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40551
40552         PR c++/71537
40553         * fold-const.c (maybe_nonzero_address): Return 1 for function
40554         local objects.
40555         (tree_single_nonzero_warnv_p): Don't handle function local objects
40556         here.
40557
40558         PR c++/72813
40559         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
40560         of c-header.
40561
40562 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
40563
40564         PR driver/78877
40565         * opts.c: Include "spellcheck.h"
40566         (struct string_fragment): New struct.
40567         (struct edit_distance_traits<const string_fragment &>): New
40568         struct.
40569         (get_closest_sanitizer_option): New function.
40570         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
40571
40572 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40573
40574         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
40575         by 12.
40576         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
40577         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
40578         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
40579         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
40580         for initial die_offset if dwarf_split_debug_info.
40581         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
40582         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
40583         fields.
40584         (output_skeleton_debug_sections): Formatting fix.  Use
40585         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
40586         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
40587
40588 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
40589
40590         * config/arm/cortex-a53.md: Add bypasses for
40591         cortex_a53_r2f_cvt.
40592         (cortex_a53_r2f): Only use for transfers.
40593         (cortex_a53_f2r): Likewise.
40594         (cortex_a53_r2f_cvt): Add reservation for conversions.
40595         (cortex_a53_f2r_cvt): Likewise.
40596
40597 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
40598
40599         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
40600         to all inlined functions, change static to extern.
40601
40602 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
40603
40604         PR target/78253
40605         * config/arm/arm.c (legitimize_pic_address): Handle reference to
40606         weak symbol.
40607         (arm_assemble_integer): Likewise.
40608
40609 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
40610
40611         * config.gcc: Use new awk script to check CPU, FPU and architecture
40612         parameters for --with-... options.
40613         * config/arm/parsecpu.awk: New file
40614         * config/arm/arm-cpus.in: New file.
40615         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
40616         files.
40617         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
40618         files.
40619         * config/arm/t-arm: Update dependency rules.
40620         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
40621         of processing .def files.
40622         * config/arm/genopt.sh: Deleted.
40623         * config/arm/gentune.sh: Deleted.
40624         * config/arm/arm-cores.def: Deleted.
40625         * config/arm/arm-arches.def: Deleted.
40626         * config/arm/arm-fpus.def: Deleted.
40627         * config/arm/arm-tune.md: Regenerated.
40628         * config/arm/arm-tables.opt: Regenerated.
40629         * config/arm/arm-cpu.h: New generated file.
40630         * config/arm/arm-cpu-data.h: New generated file.
40631         * config/arm/arm-cpu-cdata.h: New generated file.
40632
40633 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
40634
40635         PR lto/79042
40636         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
40637         bit.
40638         (input_varpool_node): Unpack dynamically_initialized bit.
40639
40640 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
40641
40642         PR rtl-optimization/79032
40643         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
40644         the alignment of the adjusted memory reference against that of MODE,
40645         instead of the alignment of the original memory reference.
40646
40647 2017-01-11  Martin Jambor  <mjambor@suse.cz>
40648
40649         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
40650         test.
40651         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
40652         decorated functions.
40653
40654 2017-01-11  Richard Biener  <rguenther@suse.de>
40655
40656         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
40657         set range/nonnull info for PHI results.  Do not set it on
40658         stmts marked for removal.
40659
40660 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
40661
40662         * expr.c (store_field): In the bitfield case, fetch the return value
40663         from the registers before applying a single big-endian adjustment.
40664         Always do a final load for a BLKmode value not larger than a word.
40665
40666 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
40667
40668         PR c++/77949
40669         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40670         that we correctly handle column numbers greater than
40671         LINE_MAP_MAX_COLUMN_NUMBER.
40672
40673 2017-01-10  Martin Sebor  <msebor@redhat.com>
40674
40675         PR middle-end/78245
40676         * gimple-ssa-sprintf.c (get_destination_size): Call
40677         {init,fini}object_sizes.
40678         * tree-object-size.c (addr_object_size): Adjust.
40679         (pass_through_call): Adjust.
40680         (pass_object_sizes::execute): Adjust.
40681         * tree-object-size.h (fini_object_sizes): Declare.
40682
40683 2017-01-10  Martin Sebor  <msebor@redhat.com>
40684
40685         PR tree-optimization/78775
40686         * builtins.c (get_size_range): Move...
40687         * calls.c: ...to here.
40688         (alloc_max_size): Accept zero argument.
40689         (operand_signed_p): Remove.
40690         (maybe_warn_alloc_args_overflow): Call get_size_range.
40691         * calls.h (get_size_range): Declare.
40692
40693 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
40694
40695         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
40696         from TI's devices.csv file as of September 2016.
40697         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
40698
40699 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40700
40701         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
40702         * doc/invoke.texi: Likewise.
40703         * doc/md.texi: Likewise.
40704         * doc/objc.texi: Likewise.
40705
40706 2017-01-10  Joshua Conner  <joshconner@google.com>
40707
40708         * config/arm/fuchsia-elf.h: New file.
40709         * config/fuchsia.h: New file.
40710         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
40711         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
40712         targets.
40713         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
40714
40715 2016-01-10  Richard Biener  <rguenther@suse.de>
40716
40717         PR tree-optimization/79034
40718         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
40719         Propagate out degenerate PHIs in the joiner.
40720
40721 2017-01-10  Martin Liska  <mliska@suse.cz>
40722
40723         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
40724         (sort_congruence_classes_by_decl_uid): Likewise.
40725         (sort_congruence_class_groups_by_decl_uid): Likewise.
40726         (sem_item_optimizer::merge_classes): Sort class, groups in these
40727         classes and members in the groups by DECL_UID of declarations.
40728         This would make merge operations stable.
40729
40730 2017-01-10  Martin Liska  <mliska@suse.cz>
40731
40732         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
40733         usage of m_classes_vec.
40734         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
40735         (sem_item_optimizer::get_group_by_hash): Likewise.
40736         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
40737         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
40738         (sem_item_optimizer::verify_classes): Likewise.
40739         (sem_item_optimizer::process_cong_reduction): Likewise.
40740         (sem_item_optimizer::dump_cong_classes): Likewise.
40741         (sem_item_optimizer::merge_classes): Likewise.
40742         * ipa-icf.h (congruence_class_hash): Rename from
40743         congruence_class_group_hash.  Remove declaration of m_classes_vec.
40744
40745 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
40746
40747         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
40748         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
40749         * config.gcc: Add avx512vpopcntdqintrin.h.
40750         * config/i386/avx512vpopcntdqintrin.h: New.
40751         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
40752         * config/i386/i386-builtin-types.def: Add new types.
40753         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
40754         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
40755         __builtin_ia32_vpopcountq_v8di_mask): New.
40756         * config/i386/i386-c.c (ix86_target_macros_internal): Define
40757         __AVX512VPOPCNTDQ__.
40758         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
40759         (PTA_AVX512VPOPCNTDQ): Define.
40760         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
40761         TARGET_AVX512VPOPCNTDQ_P): Define.
40762         * config/i386/i386.opt: Add mavx512vpopcntdq.
40763         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
40764         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
40765
40766 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40767
40768         PR middle-end/77484
40769         * predict.def (PRED_CALL): Set to 67.
40770
40771 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
40772
40773         * expr.c (store_field): In the bitfield case, if the value comes from
40774         a function call and is of an aggregate type returned in registers, do
40775         not modify the field mode; extract the value in all cases if the mode
40776         is BLKmode and the size is not larger than a word.
40777
40778 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
40779
40780         PR target/71017
40781         * config/i386/cpuid.h: Fix undefined behavior.
40782
40783 2017-01-04  Jeff Law  <law@redhat.com>
40784
40785         PR tree-optimization/79007
40786         PR tree-optimization/67955
40787         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
40788         conservative for pt.null when flag_non_call_exceptions is on.
40789
40790 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40791
40792         PR translation/79019
40793         PR translation/79020
40794         * params.def (PARAM_INLINE_MIN_SPEEDUP,
40795         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
40796         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
40797         in descriptions.
40798         * config/avr/avr.opt (maccumulate-args): Likewise.
40799         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
40800         * common.opt (freport-bug): Likewise.
40801         * cif-code.def (CIF_FINAL_ERROR): Likewise.
40802         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
40803         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
40804         translatable string.
40805         * config/i386/i386.c (function_value_32): Likewise.
40806         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
40807         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
40808         Likewise.
40809         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
40810         * common/config/msp430/msp430-common.c (msp430_handle_option):
40811         Likewise.
40812         * symtab.c (symtab_node::verify_base): Likewise.
40813         * opts.c (set_debug_level): Likewise.
40814         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
40815         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
40816         missing whitespace to translatable strings.
40817         * config/avr/avr.md (bswapsi2): Fix typo in comment.
40818         * config/sh/superh.h: Likewise.
40819         * config/i386/xopintrin.h: Likewise.
40820         * config/i386/znver1.md: Likewise.
40821         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
40822         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
40823         * double-int.h (struct double_int): Likewise.
40824         * double-int.c (div_and_round_double): Likewise.
40825         * wide-int.cc: Likewise.
40826         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40827         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
40828         * cfgcleanup.c (crossjumps_occured): Renamed to ...
40829         (crossjumps_occurred): ... this.
40830         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
40831         Adjust all uses.
40832
40833         PR tree-optimization/78899
40834         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
40835         returning bool return struct loop *, NULL for failure and the new
40836         loop on success.
40837         (versionable_outer_loop_p): Don't version outer loop if it has
40838         dont_vectorized bit set.
40839         (tree_if_conversion): When versioning outer loop, ensure
40840         tree_if_conversion is performed also on the inner loop of the
40841         non-vectorizable outer loop copy.
40842         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
40843         LOOP_VECTORIZED in inner loop of the scalar outer loop and
40844         prevent vectorization of it.
40845         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
40846         the outer loop vectorization of the non-scalar version is attempted
40847         before vectorization of the inner loop in scalar version.  If
40848         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
40849         vectorization of its inner loop.
40850         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
40851         has 2 inner loops, rename also on edges from bb whose single pred
40852         is outer_loop->header.  Fix typo in function comment.
40853
40854 2017-01-09  Martin Sebor  <msebor@redhat.com>
40855
40856         PR bootstrap/79033
40857         * asan.c (asan_emit_stack_protection): Increase local buffer size
40858         to avoid snprintf truncation warning.
40859
40860 2017-01-09  Andrew Pinski  <apinski@cavium.com>
40861
40862         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
40863         to reference thunderx2t99 for the tuning structure
40864         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
40865         Rename to ...
40866         (thunderx2t99_extra_costs): This.
40867         * config/aarch64/aarch64-tune.md: Regenerate.
40868         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
40869         (vulcan_addrcost_table): This.
40870         (vulcan_regmove_cost): Rename to ...
40871         (thunderx2t99_regmove_cost): This.
40872         (vulcan_vector_cost): Rename to ...
40873         (thunderx2t99_vector_cost): this.
40874         (vulcan_branch_cost): Rename to ...
40875         (thunderx2t99_branch_cost): This.
40876         (vulcan_tunings): Rename to ...
40877         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
40878         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
40879
40880 2017-01-09  Martin Jambor  <mjambor@suse.cz>
40881
40882         PR ipa/78365
40883         PR ipa/78599
40884         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
40885         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
40886         (propagate_vr_accross_jump_function): Use the above function for all
40887         value range computations for pass-through jump functions and type
40888         converasion from explicit value range values.
40889         (ipcp_propagate_stage): Do not attempt to deduce types of formal
40890         parameters from TYPE_ARG_TYPES.
40891         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
40892         (ipa_write_node_info): Stream type of the actual argument.
40893         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
40894
40895 2017-01-09  Martin Liska  <mliska@suse.cz>
40896
40897         PR pch/78970
40898         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
40899         (lookup_compiler): Do not show error message with have_E.
40900
40901 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40902
40903         PR tree-optimization/78938
40904         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
40905         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
40906         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
40907         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
40908         fixes.
40909
40910 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40911
40912         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
40913         is const0_rtx.
40914
40915 2017-01-09  Richard Biener  <rguenther@suse.de>
40916
40917         PR tree-optimization/78997
40918         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
40919         name condition properly.
40920
40921 2017-01-09  Richard Biener  <rguenther@suse.de>
40922
40923         PR debug/79000
40924         * dwarf2out.c (is_cxx): New overload with context.
40925         (is_naming_typedef_decl): Use it.
40926
40927 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40928
40929         * invoke.texi (Option Summary): Correct spacing in option lists
40930         and add line breaks to fix over-long lines.
40931
40932 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40933
40934         PR middle-end/17660
40935
40936         * extend.texi (Common Variable Attributes): Add xref to GCC
40937         Internals manual to explain mode attribute keywords.
40938
40939 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
40940
40941         PR other/16519
40942         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
40943         and Preprocessor Options.
40944         (Options for Linking): Document -pthread here....
40945         (RS/6000 and PowerPC Options): ...not here.
40946         (Solaris 2 Options): ...or here.
40947         * doc/cppopts.texi: Document -pthread.
40948
40949 2017-01-08  Martin Sebor  <msebor@redhat.com>
40950
40951         PR middle-end/77708
40952         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
40953         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
40954         New member functions.
40955         (format_directive): Used them.
40956         (add_bytes): Same.
40957         (pass_sprintf_length::handle_gimple_call): Same.
40958         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
40959         to avoid truncation for any argument.
40960         (extract_affine_mul): Same.
40961         * tree.c (get_file_function_name): Same.
40962
40963 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40964
40965         PR middle-end/77484
40966         * predict.def (PRED_INDIR_CALL): Set to 86.
40967
40968 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40969
40970         PR preprocessor/54124
40971         * doc/cppopts.texi: Reformat -d subtable to list the full name
40972         of the options.  Add cross-reference to the docs for the general
40973         compiler -d options.
40974         * doc/invoke.texi (Developer Options): Add cross-reference to the
40975         preprocessor-specific -d option documentation.
40976
40977 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40978
40979         PR preprocessor/13498
40980         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
40981         redudant material, and reflect new command-line options.
40982         (System Headers): Likewise.
40983
40984 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40985
40986         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
40987         -isystem, and -idirafter.  Copy-edit.
40988         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
40989         default for -ftrack-macro-expansion.  Delete obsolete and
40990         badly-formatted implementation details about -fdebug-cpp output.
40991         * doc/cppwarnopts.texi: Copy-edit.
40992
40993 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
40994
40995         PR c++/72803
40996         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40997         that the transition from a max line width >= 1<<10 to narrower
40998         lines works correctly.
40999
41000 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
41001
41002         * doc/options.texi (PerFunction): New.
41003         * opt-functions.awk (switch_flags): Map both Optimization and
41004         PerFunction to CL_OPTIMIZATION.
41005         * opth-gen.awk: Test for PerFunction flag along with
41006         Optimization.
41007         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
41008         it only when the latter is present.  Skip those that don't in
41009         the hash function generator.
41010         * common.opt (fvar-tracking): Mark as PerFunction instead of
41011         Optimization.
41012         (fvar-tracking-assignments): Likewise.
41013         (fvar-tracking-assignments-toggle): Likewise.
41014         (fvar-tracking-uninit): Likewise.
41015
41016 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
41017
41018         PR translation/79018
41019         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
41020         the and store.
41021
41022 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
41023
41024         PR target/57583
41025         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
41026         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
41027         TARGET_LONG_JUMP_TABLE_OFFSETS.
41028         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
41029         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
41030         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
41031         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
41032         * config/m68k/m68k.md (tablejump expander): Likewise.
41033         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
41034         TARGET_LONG_JUMP_TABLE_OFFSETS.
41035         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
41036         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
41037
41038 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
41039             David Holsgrove <david.holsgrove@xilinx.com>
41040
41041         * common/config/microblaze/microblaze-common.c
41042         (TARGET_EXCEPT_UNWIND_INFO): Remove.
41043         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
41044         New prototype.
41045         * config/microblaze/microblaze.c (microblaze_must_save_register)
41046         (microblaze_expand_epilogue, microblaze_return_addr): Handle
41047         calls_eh_return.
41048         (microblaze_eh_return): New function.
41049         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
41050         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
41051         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
41052         * config/microblaze/microblaze.md (eh_return): New pattern.
41053
41054 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
41055
41056         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
41057         GCC_DIAGNOSTIC_STRINGIFY): Define.
41058
41059         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
41060
41061 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41062
41063         * config/arm/arm.md (<mcrr>): New.
41064         (<mrrc>): New.
41065         * config/arm/arm.c (arm_arch5te): New.
41066         (arm_option_override): Set arm_arch5te.
41067         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
41068         and mrrc2.
41069         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
41070         (arm_mcrr_qualifiers): ... this. New.
41071         (MRRC_QUALIFIERS): Define to...
41072         (arm_mrrc_qualifiers): ... this. New.
41073         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
41074         __arm_mrrc2): New.
41075         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
41076         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
41077         (MRRCI, mrrc, MRRC): New.
41078         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
41079         VUNSPEC_MRRC2): New.
41080
41081 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41082
41083         * config/arm/arm.md (<mcr>): New.
41084         (<mrc>): New.
41085         * config/arm/arm.c (arm_coproc_builtin_available): Add
41086         support for mcr, mrc, mcr2 and mrc2.
41087         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
41088         (arm_mcr_qualifiers): ... this. New.
41089         (MRC_QUALIFIERS): Define to ...
41090         (arm_mrc_qualifiers): ... this. New.
41091         (MCR_QUALIFIERS): Define to ...
41092         (arm_mcr_qualifiers): ... this. New.
41093         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
41094         __arm_mrc2): New.
41095         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
41096         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
41097         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
41098         VUNSPEC_MRC2): New.
41099
41100 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41101
41102         * config/arm/arm.md (*ldc): New.
41103         (*stc): New.
41104         (<ldc>): New.
41105         (<stc>): New.
41106         * config/arm/arm.c (arm_coproc_builtin_available): Add
41107         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
41108         (arm_coproc_ldc_stc_legitimate_address): New.
41109         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
41110         'qualifier_const_pointer'.
41111         (LDC_QUALIFIERS): Define to...
41112         (arm_ldc_qualifiers): ... this. New.
41113         (STC_QUALIFIERS): Define to...
41114         (arm_stc_qualifiers): ... this. New.
41115         * config/arm/arm-protos.h
41116         (arm_coproc_ldc_stc_legitimate_address): New.
41117         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
41118         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
41119         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
41120         stc2, stcl, stc2l): New.
41121         * config/arm/constraints.md (Uz): New.
41122         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
41123         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
41124         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
41125         VUNSPEC_STC2L): New.
41126
41127 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41128
41129         * config/arm/arm.md (<cdp>): New.
41130         * config/arm/arm.c (neon_const_bounds): Rename this ...
41131         (arm_const_bounds): ... this.
41132         (arm_coproc_builtin_available): New.
41133         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
41134         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
41135         (CDP_QUALIFIERS): Define to...
41136         (arm_cdp_qualifiers): ... this. New.
41137         (void_UP): Define.
41138         (arm_expand_builtin_args): Add case for 6 arguments.
41139         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
41140         (arm_const_bounds): ... this.
41141         (arm_coproc_builtin_available): New.
41142         * config/arm/arm_acle.h (__arm_cdp): New.
41143         (__arm_cdp2): New.
41144         * config/arm/arm_acle_builtins.def (cdp): New.
41145         (cdp2): New.
41146         * config/arm/iterators.md (CDPI,CDP,cdp): New.
41147         * config/arm/neon.md: Rename all 'neon_const_bounds' to
41148         'arm_const_bounds'.
41149         * config/arm/types.md (coproc): New.
41150         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
41151         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
41152         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
41153         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
41154
41155 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41156
41157         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
41158         (UBINOP_QUALIFIERS): New.
41159         (si_UP): Define.
41160         (acle_builtin_data): New. Change comment.
41161         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
41162         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
41163         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
41164         arm_acle_builtins.def.
41165         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
41166         (arm_init_acle_builtins): New.
41167         (CRC32_BUILTIN): Remove.
41168         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
41169         crc32cb, crc32ch and crc32cw.
41170         (arm_init_crc32_builtins): Remove.
41171         (arm_init_builtins): Use arm_init_acle_builtins rather
41172         than arm_init_crc32_builtins.
41173         (arm_expand_acle_builtin): New.
41174         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
41175         * config/arm/arm_acle_builtins.def: New.
41176
41177 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41178
41179         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
41180         (arm_builtin_datum): ... this.
41181         (arm_init_neon_builtin): Rename to ...
41182         (arm_init_builtin): ... this. Add a new parameters PREFIX
41183         and USE_SIG_IN_NAME.
41184         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
41185         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
41186         'arm_builtin_datum'.
41187         (arm_init_vfp_builtins): Likewise.
41188         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
41189         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
41190         (arm_expand_neon_args): Rename to ...
41191         (arm_expand_builtin_args): ... this. Rename builtin_arg
41192         enum values and differentiate between ARG_BUILTIN_MEMORY
41193         and ARG_BUILTIN_NEON_MEMORY.
41194         (arm_expand_neon_builtin_1): Rename to ...
41195         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
41196         values, arm_expand_builtin_args and add bool parameter NEON.
41197         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
41198         (arm_expand_vfp_builtin): Likewise.
41199         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
41200
41201 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41202
41203         PR middle-end/77484
41204         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
41205         * predict.c (tree_estimate_probability_bb): Reverse direction of
41206         polymorphic call predictor.
41207
41208 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
41209
41210         * passes.c (execute_one_pass): Split out pass-skipping logic into...
41211         (determine_pass_name_match): ...this new function and...
41212         (should_skip_pass_p): ...this new function.
41213
41214 2017-01-06  Nathan Sidwell  <nathan@acm.org>
41215
41216         * ipa-visibility.c (function_and_variable_visibility): Reformat
41217         comments and long lines.  Remove extrneous if.
41218         * symtab.c (symtab_node::make_decl_local): Fix code format.
41219         (symtab_node::set_section_for_node): Fix comment typo.
41220
41221 2017-01-06  Martin Liska  <mliska@suse.cz>
41222
41223         PR bootstrap/79003
41224         * lra-constraints.c: Rename invariant to lra_invariant.
41225         * predict.c (set_even_probabilities): Initialize e to NULL.
41226
41227 2017-01-05  Martin Sebor  <msebor@redhat.com>
41228
41229         PR tree-optimization/78910
41230         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
41231         (format_integer): Correct off-by-one error in the handling
41232         of precision with negative numbers in signed conversions..
41233
41234 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41235
41236         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
41237
41238 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41239
41240         PR tree-optimization/71016
41241         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
41242         factor_out_conditional_conversion.  Formatting fix.
41243         (factor_out_conditional_conversion): Add cond_stmt argument.
41244         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
41245         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
41246         Formatting fix.
41247
41248 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
41249
41250         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
41251         read-rtl-function.o, and selftest-rtl.o.
41252         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
41253         (selftest::aarch64_test_loading_full_dump): New function.
41254         (selftest::aarch64_run_selftests): New function.
41255         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
41256         selftest::aarch64_run_selftests.
41257         * config/i386/i386.c
41258         (selftest::ix86_test_loading_dump_fragment_1): New function.
41259         (selftest::ix86_test_loading_call_insn): New function.
41260         (selftest::ix86_test_loading_full_dump): New function.
41261         (selftest::ix86_test_loading_unspec): New function.
41262         (selftest::ix86_run_selftests): Call the new functions.
41263         * emit-rtl.c (maybe_set_max_label_num): New function.
41264         * emit-rtl.h (maybe_set_max_label_num): New decl.
41265         * function.c (instantiate_decls): Guard call to
41266         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
41267         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
41268         "static".
41269         * gensupport.c (gen_reader::gen_reader): Pass "false"
41270         for new "compact" param of rtx_reader.
41271         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
41272         rather than an empty string for NULL strings.
41273         * read-md.c: Potentially include config.h rather than bconfig.h.
41274         Wrap include of errors.h with #ifdef GENERATOR_FILE.
41275         (have_error): New global, copied from errors.c.
41276         (md_reader::read_name): Rename to...
41277         (md_reader::read_name_1): ...this, adding "out_loc" param,
41278         and converting "missing name or number" to returning false, rather
41279         than failing.
41280         (md_reader::read_name): Reimplement in terms of read_name_1.
41281         (md_reader::read_name_or_nil): New function.
41282         (md_reader::read_string): Handle "(nil)" by returning NULL.
41283         (md_reader::md_reader): Add new param "compact".
41284         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
41285         (md_reader::read_file): New method.
41286         * read-md.h (md_reader::md_reader): Add new param "compact".
41287         (md_reader::read_file): New method.
41288         (md_reader::is_compact): New accessor.
41289         (md_reader::read_name): Convert return type from void to file_location.
41290         (md_reader::read_name_or_nil): New decl.
41291         (md_reader::read_name_1): New decl.
41292         (md_reader::m_compact): New field.
41293         (noop_reader::noop_reader): Pass "false" for new "compact" param
41294         of rtx_reader.
41295         (rtx_reader::rtx_reader): Add new "compact" param.
41296         (rtx_reader::read_rtx_operand): Make virtual and convert return
41297         type from void to rtx.
41298         (rtx_reader::read_until): New decl.
41299         (rtx_reader::handle_any_trailing_information): New virtual function.
41300         (rtx_reader::postprocess): New virtual function.
41301         (rtx_reader::finalize_string): New virtual function.
41302         (rtx_reader::m_in_call_function_usage): New field.
41303         (rtx_reader::m_reuse_rtx_by_id): New field.
41304         * read-rtl-function.c: New file.
41305         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
41306         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
41307         (selftest::verify_three_block_rtl_cfg): New decl.
41308         * read-rtl-function.h: New file.
41309         * read-rtl.c: Potentially include config.h rather than bconfig.h.
41310         For host, include function.h, memmodel.h, and emit-rtl.h.
41311         (one_time_initialization): New function.
41312         (struct compact_insn_name): New struct.
41313         (compact_insn_names): New array.
41314         (find_code): Handle insn codes in compact dumps.
41315         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
41316         (bind_subst_iter_and_attr): Likewise.
41317         (add_condition_to_string): Likewise.
41318         (add_condition_to_rtx): Likewise.
41319         (apply_attribute_uses): Likewise.
41320         (add_current_iterators): Likewise.
41321         (apply_iterators): Likewise.
41322         (initialize_iterators): Guard usage of apply_subst_iterator with
41323         #ifdef GENERATOR_FILE.
41324         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
41325         (md_reader::read_mapping): Likewise.
41326         (add_define_attr_for_define_subst): Likewise.
41327         (add_define_subst_attr): Likewise.
41328         (read_subst_mapping): Likewise.
41329         (check_code_iterator): Likewise.
41330         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
41331         logic to...
41332         (one_time_initialization): New function.
41333         (rtx_reader::read_until): New method.
41334         (read_flags): New function.
41335         (parse_reg_note_name): New function.
41336         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
41337         Handle reuse_rtx ids.
41338         Wrap iterator lookup within #ifdef GENERATOR_FILE.
41339         Add parsing support for RTL dumps, mirroring the special-cases in
41340         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
41341         values, and calling handle_any_trailing_information.
41342         (rtx_reader::read_rtx_operand): Convert return type from void
41343         to rtx, returning return_rtx.  Handle case 'e'.  Call
41344         finalize_string on XSTR and XTMPL fields.
41345         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
41346          "(nil)" values were omitted.  Call the postprocess vfunc on the
41347         return_rtx.
41348         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
41349         class ctor.  Initialize m_in_call_function_usage.  Call
41350         one_time_initialization.
41351         * rtl-tests.c (selftest::test_uncond_jump): Call
41352         set_new_first_and_last_insn.
41353         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
41354         * selftest-rtl.c: New file.
41355         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
41356         (selftest::get_insn_by_uid): New decl.
41357         * selftest-run-tests.c (selftest::run_tests): Call
41358         read_rtl_function_c_tests.
41359         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
41360         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
41361         dumps.
41362
41363 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
41364
41365         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
41366         operands in a special way.  Assert that pos+len <= mode precision.
41367
41368 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41369
41370         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
41371         3 argument Alias with unlimited for the negative form.
41372         (fno-vect-cost-model): Removed.
41373
41374 2017-01-05  Martin Liska  <mliska@suse.cz>
41375
41376         * hsa-gen.c (gen_hsa_divmod): New function.
41377         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
41378
41379 2017-01-05  Martin Liska  <mliska@suse.cz>
41380
41381         PR pch/78970
41382         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
41383         header.
41384
41385 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41386
41387         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
41388         small constant length operands.
41389
41390 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41391
41392         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
41393         between loop iterations.
41394
41395 2017-01-05  Martin Liska  <mliska@suse.cz>
41396
41397         PR sanitizer/78815
41398         * gimplify.c (gimplify_decl_expr): Compare to
41399         asan_poisoned_variables instread of checking flags.
41400         (gimplify_target_expr): Likewise.
41401         (gimplify_expr): Likewise.
41402         (gimplify_function_tree): Conditionally initialize
41403         asan_poisoned_variables.
41404
41405 2017-01-04  Jeff Law  <law@redhat.com>
41406
41407         PR tree-optimizatin/78812
41408         * rtl.h (contains_mem_rtx_p): Prototype.
41409         * ifcvt.c (containts_mem_rtx_p): Move from here to...
41410         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
41411         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
41412         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
41413         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
41414
41415 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41416
41417         * input.c (assert_char_at_range): Default-initialize actual_range.
41418
41419 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41420
41421         * df-scan.c (df_ref_create_structure): Make regno unsigned,
41422         to match the caller.
41423
41424 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41425
41426         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
41427         insns after final jump in test to emit dummy move.
41428
41429 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41430
41431         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
41432         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
41433
41434 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41435
41436         * multiple_target.c (create_dispatcher_calls): Init e_next.
41437         * tree-ssa-loop-split.c (split_loop): Init border.
41438         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
41439         scalar_type.
41440
41441 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
41442
41443         PR target/71977
41444         PR target/70568
41445         PR target/78823
41446         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
41447         (altivec_register_operand): Do not return true if the operand
41448         contains a SUBREG mixing SImode and SFmode.
41449         (vsx_register_operand): Likewise.
41450         (vsx_reg_sfsubreg_ok): New predicate.
41451         (vfloat_operand): Do not return true if the operand contains a
41452         SUBREG mixing SImode and SFmode.
41453         (vint_operand): Likewise.
41454         (vlogical_operand): Likewise.
41455         (gpc_reg_operand): Likewise.
41456         (int_reg_operand): Likewise.
41457         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
41458         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
41459         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
41460         SImode and SFmode.
41461         (rs6000_emit_move_si_sf_subreg): New helper function.
41462         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
41463         fixup SUBREGs involving SImode and SFmode.
41464         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
41465         numbers for the new peephole2 optimization.
41466         (peephole2 for SFmode unions): New peephole2 to optimize cases in
41467         the GLIBC math library that do AND/IOR/XOR operations on single
41468         precision floating point.
41469         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
41470         target macros to say whether we need to avoid SUBREGs mixing
41471         SImode and SFmode.
41472         (TARGET_ALLOW_SF_SUBREG): Likewise.
41473         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
41474         (UNSPEC_SI_FROM_SF): Likewise.
41475         (iorxor): Change spacing.
41476         (and_ior_xor): New iterator for AND, IOR, and XOR.
41477         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
41478         (movdi_from_sf_zero_ext): Likewise.
41479         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
41480         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
41481         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
41482         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
41483         (fms<mode>4): Likewise.
41484         (fnma<mode>4): Likewise.
41485         (fnms<mode>4): Likewise.
41486         (nfma<mode>4): Likewise.
41487         (nfms<mode>4): Likewise.
41488
41489 2017-01-04  Marek Polacek  <polacek@redhat.com>
41490
41491         PR c++/64767
41492         * doc/invoke.texi: Document -Wpointer-compare.
41493
41494 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41495
41496         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
41497         RejectNegative.
41498
41499         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
41500         descriptions for -gdwarf-5 and emit them as uleb128 instead of
41501         2-byte data.
41502
41503 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
41504
41505         PR target/78056
41506         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
41507         documentation of the powerpc_popcntb_ok attribute.
41508         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
41509         code to issue warning messages if a requested CPU configuration is
41510         not supported by the binary (assembler and loader) toolchain.
41511         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
41512         made to define a built-in function that has been disabled.
41513         (paired_init_builtins): Add assertion to prevent ICE if attempt is
41514         made to define a built-in function that has been disabled.
41515         (altivec_init_builtins): Add comment explaining why definition
41516         of the DST built-in functions is not preceded by an assertion
41517         check.  Add assertions to prevent ICE if attempts are made to
41518         define an altivec predicate or an abs* built-in function that has
41519         been disabled.
41520         (htm_init_builtins): Add comment explaining why definition of the
41521         htm built-in functions is not preceded by an assertion check.
41522
41523 2017-01-04  Jeff Law  <law@redhat.com>
41524
41525         PR tree-optimizatin/67955
41526         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
41527         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
41528         the points-to solution does not include pt_null.  Use DECL_PT_UID
41529         unconditionally.
41530
41531 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
41532
41533         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
41534         Use gen_int_mode instead of gen_lopwart for const_int operands.
41535
41536 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41537
41538         PR tree-optimization/71563
41539         * match.pd: Simplify X << Y into X if Y is known to be 0 or
41540         out of range value - has low bits known to be zero.
41541
41542 2017-01-04  Alan Modra  <amodra@gmail.com>
41543
41544         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
41545         * configure: Regenerate.
41546         * config.in: Regenerate.
41547
41548 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41549
41550         PR bootstrap/77569
41551         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
41552         a substring of the message, but strcmp with the whole message.  Ifdef
41553         ENABLE_NLS, translate the message first using dgettext.
41554
41555 2017-01-03  Jeff Law  <law@redhat.com>
41556
41557         PR tree-optimizatin/78856
41558         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
41559         (mark_threaded_blocks): Remove code to truncate thread paths that
41560         cross multiple loop headers.  Instead invalidate the cached loop
41561         iteration information and handle case of a thread path walking
41562         into an irreducible region.
41563
41564 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
41565
41566         PR target/78900
41567         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
41568         assertions.  Add support for doing the signbit if the IEEE 128-bit
41569         floating point value is in a GPR.
41570         * config/rs6000/rs6000.md (Fsignbit): Delete.
41571         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
41572         Update the length attribute if the value is in a GPR.
41573         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
41574         the sign or zero extension instruction, since the value is always 0/1.
41575         (signbit<mode>2_dm2): Delete using <Fsignbit>.
41576
41577         PR target/78953
41578         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
41579         extracting SImode to a GPR register so that we can generate a
41580         store, limit the vector to be in a traditional Altivec register
41581         for the vextuwrx instruction.
41582
41583 2017-01-03  Ian Lance Taylor  <iant@google.com>
41584
41585         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
41586
41587 2017-01-03  Martin Sebor  <msebor@redhat.com>
41588
41589         PR tree-optimization/78696
41590         * gimple-ssa-sprintf.c (format_floating): Correct handling of
41591         precision.  Use MPFR for %f for greater fidelity.  Correct handling
41592         of %g.
41593         (pass_sprintf_length::compute_format_length): Set width and precision
41594         specified by asrerisk to void_node for vararg functions.
41595         (try_substitute_return_value): Adjust dump output.
41596
41597 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
41598
41599         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
41600
41601 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
41602
41603         * doc/invoke.texi (SPARC options): Document -mlra as the default.
41604         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
41605         -mlra/-mno-lra was passed to the compiler.
41606
41607 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
41608
41609         PR rtl-optimization/65618
41610         * emit-rtl.c (try_split): Move initialization of "before" and
41611         "after" to just before the call to emit_insn_after_setloc.
41612
41613 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
41614
41615         * doc/md.texi (Standard Names): Remove reference to Java frontend.
41616
41617 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
41618
41619         * dwarf2out.c (gen_enumeration_type_die): When
41620         -gno-strict-dwarf, add a DW_AT_encoding attribute.
41621
41622 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
41623
41624         PR tree-optimization/78965
41625         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
41626         Change first argument from const call_info & to call_info &.  For %n
41627         set info.nowrite to false.
41628
41629         PR middle-end/78901
41630         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
41631         possibly throwing calls.
41632
41633         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
41634         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
41635         and fns handling, rather than in a separate case SSA_NAME.
41636
41637 2017-01-02  Jeff Law  <law@redhat.com>
41638
41639         * config/darwin-driver.c (darwin_driver_init): Const-correctness
41640         fixes for first_period and second_period variables.
41641
41642 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
41643
41644         PR target/78967
41645         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
41646         (*insvqi_1): New insn pattern.
41647         (*insvqi_1_mem_rex64): Ditto.
41648         (*insvqi_2): Ditto.
41649         (*insvqi_3): Rename from *insvqi.
41650
41651         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
41652
41653 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
41654
41655         * doc/cfg.texi (Edges): Remove reference to Java.
41656         (Maintaining the CFG): Ditto.
41657
41658 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41659
41660         PR middle-end/77674
41661         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
41662         transparent aliases.
41663
41664 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41665
41666         PR middle-end/77484
41667         * predict.def (PRED_CALL): Update hitrate.
41668         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
41669         * predict.c (tree_estimate_probability_bb): Split CALL predictor
41670         into direct/indirect/polymorphic variants.
41671
41672 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
41673
41674         Update copyright years.
41675
41676         * gcc.c (process_command): Update copyright notice dates.
41677         * gcov-dump.c (print_version): Ditto.
41678         * gcov.c (print_version): Ditto.
41679         * gcov-tool.c (print_version): Ditto.
41680         * gengtype.c (create_file): Ditto.
41681         * doc/cpp.texi: Bump @copying's copyright year.
41682         * doc/cppinternals.texi: Ditto.
41683         * doc/gcc.texi: Ditto.
41684         * doc/gccint.texi: Ditto.
41685         * doc/gcov.texi: Ditto.
41686         * doc/install.texi: Ditto.
41687         * doc/invoke.texi: Ditto.
41688 \f
41689 Copyright (C) 2017 Free Software Foundation, Inc.
41690
41691 Copying and distribution of this file, with or without modification,
41692 are permitted in any medium without royalty provided the copyright
41693 notice and this notice are preserved.